ストラテジーのバックテスト

(Play Video)

バックテストは、ストラテジーのヒストリカル性能を解析することを可能にする。
バックテストを実行するために必要なことは以下の以下の通り:

* NinjaTraderと共にインストールされている、いくつかの定義済みのサンプル・ストラテジーがある。

+ バックテストの実行方法

バックテストの開始

ストラテジーのバックテストを実行するには:

  1. 単一の銘柄またはInstrument List(リスト中の全銘柄でバックテストする場合)の上で左クリックした後、右クリックして右クリックメニューを表示する。その右クリックメニュー上で Backtest... 項目を選択する。この操作の代わりに、 ストラテジー・アナライザー のツールバーにある" b "アイコンをクリックしても良い。デフォルトのホット・キーである CTRL + B を使用することもできる。
  2. 滑り出してくるメニュー上の Strategy 項目でバックテスト対象のストラテジーを選択する。
  3. バックテストのプロパティを設定し、 OK ボタンをクリックする。(各プロパティの定義については下の "バックテストのプロパティの理解" 項目を参照すること)

バックテストの進捗状況はControl CenterのStatus Bar内に表示される。

+ ヒストリカル・プロセッシング・オプションの理解

ヒストリカル・フィル・プロセッシング

NinjaTraderは、バックテストに使用できる2つのシステム・フィル・アルゴリズムを提供する。さらに、あなたに何らかのプログラミング経験があるなら、あなたは独自のアルゴリズムをスクリプト化することができる。 (訳注:フィル・アルゴリズム(Fill Algorithm)とは、ヒストリカル・データに対して出した注文を どのような基準で約定とみなすかを決めるアルゴリズムのこと。「約定判定アルゴリズム」とでも訳せばよいか。)

2つのシステム・フィル・アルゴリズムは以下の通り:
Default
指値注文とストップリミット注文の約定に対して保守的で現実的なアプローチを取るアルゴリズムである。

  • 指値注文は、その指値を突き抜けた場合に約定する。
  • 指値注文は、常に指定されたその指値(それ以上は良くならない)で約定される。(例えば、指値注文がバーn(n番目のバーという意味)で発行されたら、NinjaTraderはバーn+1でその注文が約定されたかどうかをチェックし、このバーがギャップ・ダウンし且つその指値注文が買い注文であるなら、その注文はバーn+1の高値ではなく指値で約定される。)

Liberal
指値注文とストップリミット注文の約定に対して寛大なアプローチを取るアルゴリズムである。

  • 指値注文は、その指値に触れた場合に約定する。
  • ギャップ・ダウン・バー(陰線?)においては、買い指値注文はそのギャップ・ダウン・バーの高値で約定する。
  • ギャップ・アップ・バー(陽線?)においては、売り指値注文はそのギャップ・アップ・バーの低値で約定する。

スリッページも模擬市場の状況として設定することができ、その値は1つの銘柄に対する変動幅の最小値である"ticks"単位で表現される。スリッページは指値注文を使うときには起き得ないので、成行注文および逆指値注文にのみ適用される。

外国為替のバックテストでの特殊な環境

バックテストでの注文量は、ほとんどの場合で実際に取引仲介業者に開設したアカウントのものとは異なり、絶対値である。例えば、実際に取引仲介業者に開設したアカウントにおいて、FXの取引1回で扱われる数量は、想定元本の100,000倍に等しいかもしれない(あなたの取引仲介業者を調べてみよ)。しかし、バックテストでの数量1は文字通りの値1であり、100,000ではない。それ故、バックテストで数量100,000の取引を行いたいのであれば、値100,000を入力する必要がある。ストラテジーをバックテスト環境から実際の取引環境に転換する場合、注文料を適切に修正する必要があることを覚えておくこと。 (詳細はRunning FX Strategiesの項を参照)

+ バックテストのプロパティの理解

バックテスト・プロパティ

Backtest ウインドウでは次のプロパティが使用可能である:

Parameters
ユーザー定義された入力
Price based on
データ系列を駆動するのに使用する市場データの形式
Type
データ系列のバー形式
Value
データ系列の値 (訳注:例えばバーを形成する周期)
From
バックテストを実施する期間の開始日
To
バックテストを実施する期間の終了日
Session template
そのデータ系列向けのセッション時間のテンプレート (詳細は"Session Manager"の項を参照)
Include commission
バックテストの成績に手数料を反映させるかどうか (詳細は"Commission Tab"の項を参照)
Label
そのストラテジーであることを示すためにチャート上に表示するテキスト (訳注:表示場所はStrategy Analyzerウインドウのタイトル)
Maximum bars look back
インジケーターの値を計算するのに使用するバーの最大個数、"TwoHundredFiftySix"に設定するとメモリに優しい
Min. bars required
バックテストが処理を開始する前に必要とするバーの最小個数
Fill type
バックテストにおける、注文約定の処理/判定アルゴリズム
Slippage
スリッページの量、ticks per execution?単位で指定する
Entries per direction
"Entry handling"プロパティに基づいて、ポジションがアクティブである間にdirection毎に許可するエントリーの最大個数 (ここでのdirectionとは売買の方向(買い/売り)のことか?それとも市場に参加/退場する意味での方向か?)
Entry handling
entry orderの扱われ方 (ここでのentry orderが意味するところがわからない)
  • "AllEntries"に設定した場合、ストラテジーは、ポジションが開いている間に達した"Entries per direction"プロパティで設定されているentryの最大許容数まで全てのentry orderを処理する
  • "UniqueEntries"に設定した場合、ストラテジーは、それぞれ一意に名前付けされたentry毎に"Entries per direction"プロパティで設定されているentryの最大許容数までentry orderを処理する
Exit on close
有効にした場合、開いているポジションはセッションの最後のバーで閉じられる
Set order quantity
注文量の決定方法、その選択肢は次の通り:
  • "by default quantity" - ユーザー定義の注文量
  • "by strategy" - ストラテジーの中でプログラム的に指定された注文量
  • "by account" - Instrument Managerで設定されている銘柄毎のMargin(委託証拠金)設定に基づいて、最大注文量を決定するために使用される仮想的な口座残高を設定することを可能にする
Time in force
注文が効力を持つ時間 (訳注:"Gtc"(= good till canceled)に設定すると「キャンセルされるまで有効」になる)
最終更新:2014年06月13日 03:48