ここではストラテジーをバックテストに適用するにあたって事前に設定しておくべき設定に関して、個人的に必要だったところのみを書き残しておこうと思います。
目次
ストラテジーをチャートに適用する手順
まずはチャートにストラテジーの売買シグナルを適用することからです。ストラテジーを適用したい銘柄とインターバルでチャート分析ウィンドウを作成します作成後、「メニュー」バーの「挿入」→「ストラテジー」を選択します。ここでは自作した「練習用ストラテジー」を適用します。エントリーで買いも売りも行いエグジットまでコードされていますので4つ全部にチェックがついていることを確認します。
ストラテジーの個別設定と全体設定
「設定」がストラテジーの個別設定です。ストラテジーのリストで選択しているストラテジーに適用されます。
「すべてのプロパティ」がストラテジーの全体設定です。リストにある全てのストラテジーに適用されます。
トレードステーションでストラテジーを使う場合には、これらの個別設定と全体設定は必ず確認してからバックテストやリアルタイム自動売買を行うことが重大な注意事項となっています。
個別設定(「設定」)
4つのタブがあります。それぞれ「入力」、「新規」、「決済」、「計算」です。
入力
EasyLanguageで宣言したすべてのインプット(Input)の数値を調整することができます。また、バックテスト時には最適化も行うことが可能です。今回は初期値のまま進んでみます。
新規
エントリーしたときに表示する矢印などの色や太さを設定します。ここでも初期設定のまま進んでみます。
決済
エグジットしたときの矢印の太さや色を設定できます。ここも初期設定のまま進んでみます。
計算
イントラバーとはバーが確定する前の時点でのバーの状態のことです。ストラテジーには複数のシグナル(注文の判断)を含むものがあります。この設定を行った場合、1 つの足の確定までに同じシグナルから発注された最初のシグナルのときだけ注文を注します。もし複数のシグナルから発注された場合、それぞれのシグナルが最初の場合のみ注文を発注します。ここではイントラバーの設定を有効にして以下のように(初期値)にして進んでみます。
複数のシグナルとは、ストラテジーのプログラムで定義されたシグナル名が違う注文のことを意味します。例えば移動平均を使ったシグナル名が「SignalA」、MACD を使ったシグナルが「SignalB」のように複数のシグナルが入っているストラテジーがあります。
全体設定(「すべてのプロパティ」)
3つのタブがあります。それぞれ「一般」、「バックテスト」、「プログラムトレード」です。
一般
通貨:日本株をやるなら円(JPY)に設定しておく。
当初資本:取引資金額を設定することができます。バックテストでのみ使用されます。今回は100万円でスタートしてみます。
ルックインサイドバーバックテストを使用:大きな時間足でストラテジーを適用している場合、その買いや売りの様子を分足などの短い時間足で細かく確認することができます。
分析に用いる足の最大本数:バックテストで参照する足の最大本数を設定することができます。例えば、ストラテジーが 20 日間移動平均を使っている場合、21 本以上の設定値にしている必要があります。
現在保有しているポジションと同じ売買方向で、異なるストラテジー新規注文が生成される場合を対象とする:異なるストラテジー新規注文とは、ストラテジーのプログラムで定義されたシグナル名が違う注文のことを意味します。例えば移動平均を使ったシグナル名が「SignalA」、MACD を使ったシグナルが「SignalB」のように複数のシグナルが入っているストラテジーがあります。
ここでの設定は同方向にエントリーを増やすいわゆるナンピンやピラミッディングの回数を設定します。私はナンピンもピラミッデイングもしたくないので各々のシグナルにつきポジション数を1に設定しました。
バックテスト
バックテストの注文約定判定に関連する設定が利用できます。
指値または指値より…注文全体を約定させる:買いであれば指値注文価格以下、新規売りであれば指値注文価格以上に足の価格が達した場合に指値注文は約定します。
指値より有利な…注文全体を約定させる:買いであれば指値注文価格より 1 ティック以上下、新規売りであれば指値注文価格より 1 ティック以上上に足の価格が達した場合に指値注文は約定します。
ルックインサイドバーバックテストでイントラバー注文生成最適化を有効にする:チェックが入っていない場合、ストラテジーは足の確定時に一度だけ条件を評価して、条件を満たしている場合には注文を発注します。例えば 5 分足チャートで、5 期間移動平均が 20 期間移動平均を上抜いたら、という条件の場合、足の終値時点で計算された 5 期間移動平均が 20 期間移動平均を上抜いていれば、注文を発注します。
プログラムトレード
リアルタイムの自動売買の注文約定判定に関連する設定が利用できます。リアルタイムでストラテジーを動かしていると、チャートに適用しているストラテジー上では注文が約定していても、実口座の注文は約定しておらず、相違が出ることがあります。以下の設定により、その相違を可能な限り解消するようにすることができます。
ストラテジー注文の約定状況を、実市場での約定状況と同期する
「部分約定後、市場に出ている注文をそのまま継続する」にチェックを入れると、実口座で部分約定になってしまった場合、未約定の注文を取消さず発注したままにします。チェックを入れないと、次の足で未約定注文は取消されます(イントラバー注文設定を使っている場合には次のティックで未約定注文は取消されます)。
「ストラテジーのポジションを実際の口座ポジションと同期する」にチェックを入れると、ストラテジー上のポジションと実口座のポジションが一致しているとき、ストラテジーの自動売買を開始します。
「同じシグナルが連続して新規注文を発注する際に、前回のシグナルの注文執行確認を待つ」にチェックを入れると、同じシグナル名で以前に発注された新規注文がある場合、その注文取消し後に、新しい新規注文を出します。
参考文献: