相違:実時間 対 バックテスト

あなたは、リアルタイム(実際の取引仲介業者に開設したアカウント、実際のmarket simulationMarket Replayなど)に動作するストラテジーはバックテストでの成績とは異なる結果を生じることを予期するべきである。この違いは他のものよりも、それらのバー形式に特有の性質に起因して、あるバー形式(例えばPoint and Figure)の上でより簡単に目にするかもしれない。

注文の約定の決まり方

  • バックテストの場合、異なる結果を生み出す保守的あるいは自由主義的なフィル・アルゴリズム(訳注:Fill Algorithm、約定判定アルゴリズム」とでも訳せば良いか)を選択することができる。バックテスト中に分かる情報のみを使用するので、約定は4つのデータ点、すなわちバーのOHLC(訳注:Open = 始値、High = 高値、Low = 低値、Close = 終値)に基づいて決定される。
  • 実際のリアルタイムの市場データあるいは Market Replay を使用してシミュレーションを行う場合、注文が約定されるべきかどうかを決定するのに入ってくる市場データ(価格と売買高の両方)を使用するという点において、フィル・アルゴリズムはダイナミックである。
  • 実際の取引仲介業者を介したリアルタイムの取引の場合、注文は市場のダイナミクスに依存して約定される。

このように注文がいつ・どのように約定され得るのか、3つの明確に異なるモデルがある。バックテストの結果に基づいて予想した約定状況とは異なる、リアルタイムに約定しない注文を見かけるのは、このことが理由である。

注文の約定価格

  • バックテストの場合、バーのOHLCと注文価格に基づいて仮定の約定価格が作り出される。選択するフィル・アルゴリズムによって違いを持たせることもできる。
  • 実際のリアルタイムの市場データあるいは Market Replay を使用するシミュレーションの場合、約定価格は入ってくる市場データや売買高に基づく。この市場価格において使用可能な買い呼び値あるいは売り呼び値、および売買高に依存して、あなたはより良い約定価格あるいはより悪い約定価格を受け取るかもしれない。
  • 実際の取引仲介業者を介したリアルタイムの取引の場合、注文は市場のダイナミクスに依存して約定される。

このようにどのような価格で注文が約定され得るのか、3つの異なるモデルがある。

バーの終値またはtick毎にストラテジーを実行する

  • バックテストの場合、ストラテジーはそれぞれのバーの終値でのみ処理を実施することができる。
  • リアルタイム動作の場合、異なる結果を生み出すことができる、tick毎のストラテジーの実行を選択することができる(CalculateOnBarCloseをfalseに設定)。tick毎に実行している際、シグナルの状態がバーの終値でfalseであるとしても、同じバーの最中ではtrueであるということがあり得るが、これはバーの終値で注文を実行するシグナルを持つことができるからである。

チャート情報の違い

  • ある日DAY1とその後のDAY2でリアルタイムにストラテジーを実行する場合、リアルタイムでそれを行うような処理の代わりに、今、DAY1のデータでストラテジーのバックテストしているので、違いがあるかもしれない。あなたはどのようにチャートのバーが作られるのかを理解するべきです。
  • tick基準のチャートを使用する場合、完全に異なる見栄えのチャートを生成するには、リアルタイム・データとヒストリカル・データの間でtickの差が1つだけあれば良い。データセットが異なるのであれば、このことはまわりまわってストラテジーの計算に影響を与える。
最終更新:2014年06月09日 20:34