テストのしくみ(現物取引の場合)
ストラテジーエディタでは、作成したストラテジーを過去データで検証(シミュレーション)することができます。(これをバックテストといいます。)ここではパイロンが行うバックテスト処理のしくみ(売買の決定方法)を説明します。
- 買いシグナルのチェック
テスト期間の開始日から順に買いシグナルをチェックします。
- フィルターのチェック
買いシグナルが出たら、シグナル日の株価が設定したフィルターを満たしているかをチェックします。
(フィルターのチェックは買付日の株価ではなくシグナル日の株価でチェックします。買付価格がいくらになるかは事前にわからないからです。)
- 買付日、買付価格を計算
注文方法が「次の日の始値」のとき:買いシグナルの次の日が買付日になります。ただし出来高がゼロであれば、さらにその次の日になります。買付日の始値が買付価格となります。
注文方法が「当日の終値」のとき:買いシグナルの当日が買付日となり、買付日の終値が買付価格となります。
- 買付株数と手数料を計算
テスト設定で、株数を指定している場合は、その株数を買い付けます。金額を指定している場合は、その金額で買える最大の株数を買います。残高不足で1単位も買えないのであれば、買付は成立せず1に戻って買いシグナルのチェックを続けます。1単位以上購入できれば買付は成立します。
買付価格と株数から手数料を計算します。
- 売りシグナル、ストップシグナルのチェック
買付日の当日(買いシグナル日=買付日 なら次の日)から順に売りシグナルとストップシグナルをチェックします。
- 売付日、売付価格を計算
売りシグナルまたはストップシグナルが出たら、買いシグナルと同様に売付日と売付価格を計算します。売付価格で持ち株の全てを売却します。手数料を計算し、損益の合計を残高に加えます。
以上が1トレード(買い→売り)の流れです。
期間の最終日まで1〜6までを繰り返します。
- 最終日
「最終日の終値で売却」にチェックしているとき:最終日に株を保有している場合は、最終日の終値で売却します。
具体例
テスト期間を4月1日から4月19日、注文方法は「次の日の始値」とします。
この例ではストップシグナルは省略しています。
日付(4月)
| 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | 19
|
曜日
| 月 | 火 | 水 | 木 | 金 | 月 | 火 | 水 | 木 | 金 | 月 | 火 | 水 | 木 | 金
|
買いシグナル
| | ■ | | ■ | | | | | | | | | ■ | |
|
売りシグナル
| | | | | | | ■ | | | | | | | |
|
始値
| | | B | | | | | C | | | | | | E |
|
終値
| | A | | | | | | | | | | | D | | F
|
- 買いシグナルのチェック
まず4月1日から順に買いシグナルをチェックすると4月2日に初めの買いシグナルが出ました。
- フィルターのチェック
買いシグナルの出た4月2日の終値(A)がフィルター条件を満たしているかチェックします。
- 買付日、買付価格を計算
買いシグナルの次の日の4月3日が買付日となり、買付価格は4月3日の始値(B)となります。
- 買付株数と手数料を計算
現在の残高で何株購入できるかを計算します。
例えば、残高が1,000,000円、(B)が800円、単元株が100株なら、残高で購入できる最大の株数は1200株となります。
手数料は800×1200×0.01=9,600円です。(手数料率が1%のとき)
- 売りシグナル、ストップシグナルのチェック
買付日の当日4月3日から順に売りシグナルをチェックします。4月9日に売りシグナルが出ました。
ストップシグナルをチェックする場合は、先ほどの買付日と買付価格(購入価格)を元に計算します。
- 売付日、売付価格を計算
買付と同じように、売付日は売りシグナルの次の日の4月10日、売付価格は4月10日の始値(C)となります。
売付価格で持ち株の全てを売却します。手数料を計算し、損益の合計を残高に足します。
これで買い→売りの1トレードが完了です。
- 買いシグナルのチェック
さらに4月10日から次の買いシグナルをチェックします。4月17日に買いシグナルが出ました。
(D)で株価のチェック、4月18日の始値(E)が買付価格となります。
- 最終日
最終日4月19日に株を保有しているので、4月19日の終値(F)で売却します。
最終日の売却もトレード数に含まれるので、このテストでは合計2トレードになります。