Backtesting は、データ、時間的な順序、執行の前提を明示して、取引や意思決定のルールを過去に適用するシミュレーションです。過去の標本におけるルールの挙動を確認できますが、その結果が持つ意味はテスト全体の設計に依存します。
Backtesting は過去のデータ上でルールを再現し、選んだ前提の下でどのような結果になったかを計算します。Bailey らはこれをアルゴリズム戦略の過去のシミュレーションと説明すると同時に、誤った発見のリスクを指摘しています。編集上の区別として、結果は特定の版のルール、データ、執行モデルに結び付きます。誰かが実際にその取引を行った証拠ではありません。再現可能な計算は誤りや不適切な着想を見つける助けになりますが、それだけで過去を信頼できる予測に変えることはできません。 [Bailey et al. — The Probability of Backtest Overfitting]
QuantConnect は、未公表の財務情報や後日の修正値など、将来の情報をシミュレーションに使うことで生じる偏りを説明しています。独自の時間上の取り決めでは、各入力について、それが属する期間の日付だけでなく、利用可能になった時点を求めます。確定したローソク足からのシグナルに、追加の前提なしで、既に利用できなくなった価格での取引を与えてはいけません。この例では、過去の終値を次の期間に初めて使用し、その期間の始値で約定することをモデルに明記します。 [QuantConnect — Research Guide]
QuantConnect は、期間末まで存続した証券だけをテストすることや、現在の指数構成を過去に遡って適用することに注意を促しています。独自の、より一般的な確認事項は、過去のデータ集合に、当時利用できたものの後に消えた商品も残っているかどうかです。欠損データ、方法の変更、市場の選択を記録する必要があります。Bitcoin のシミュレーションでは、あるサービスの価格を別のサービスでも約定可能な価格と自動的にみなすことはできません。データの整備とは修正を追跡できることであり、不都合な結果を取り除くことではありません。 [QuantConnect — Research Guide]
QuantConnect のドキュメントは、シグナルや注文と、約定価格および数量を決めるモデルを分けています。また、実取引での一部約定と、用意されたモデルが完全約定を仮定することの違いも指摘しています。独自の要件は、いつ注文を執行できるか、流動性が足りない場合にどうするか、古い価格をどう扱うかを記述することです。過去のデータで価格がある水準に触れただけでは、任意の大きさの注文に応じる相手がいたことにはなりません。約定モデルの結果は、あくまでシミュレーションの前提です。 [QuantConnect — Trade Fills: Key Concepts]
QuantConnect は Slippage を予想約定価格と実際の約定価格の差と説明し、遅延、接続、市場の状況の影響を挙げています。差は有利にも不利にもなり得ます。独自の費用確認では、手数料、約定価格、その他に生じ得る保有費用や資金調達費用を分けます。約定価格に既に含まれる費用を再び差し引いてはいけません。ゼロという値は特定のモデル上の仮定であり、費用のない市場の証拠ではありません。費用が悪化した場合の感応度は、小さな過去の利益が楽観的な設定に依存していないかを判断する助けになります。 [QuantConnect — Slippage: Key Concepts]
TimeSeriesSplit のドキュメントは、未来のデータでモデルを学習して過去のデータで評価することを避けるため、時間順に分割する方法を説明しています。独自の方法上の要件は、結果を見る前に、ルールを設計する期間と、その後の検証に使う期間を決めることです。失敗後に検証期間を基にルールを再調整すれば、その期間は既に開発へ影響を与えています。時系列の分割だけでは、前処理、重複する予測対象、繰り返す候補選択による情報漏洩は解決しません。手順とデータの区切りの両方を説明する必要があります。 [scikit-learn — TimeSeriesSplit]
Bailey らは、同じデータ上で最良の設定を繰り返し探すと、誤った発見や過去のノイズへの適合のリスクが高まることを示しています。独自の報告ルールは、勝ち残った曲線だけでなく、試行の履歴を示すことです。これにはパラメータ、期間、商品選択の変更も含まれます。多数の試行後に選んだ結果は、あらかじめ定めて変更しなかったルールと同じ意味を持ちません。彼らの過剰適合確率の推定手法を、この簡単な例で実行しているわけではなく、一度のデータ分割で代替しているわけでもありません。 [Bailey et al. — The Probability of Backtest Overfitting]
NFA は、仮想の結果は実取引を反映せず、後知恵を利用する可能性があり、流動性、Slippage、現実に損失を被った際の行動を十分にモデル化できないことがあると指摘しています。そのため、独自の報告では、データとコードの版、ルール、約定の前提、含めた費用、シミュレーションした全取引の一覧を保存すべきです。総リターンにはリスクの文脈と同じ条件下での比較が必要であり、見栄えのよいグラフを選ぶだけでは足りません。過去のテストを誤りなく実装しても、将来の市場での実行可能性やリターンは保証されません。 [NFA — Use of Promotional Material Containing Hypothetical Performance Results]
前の期間のシグナル、次の期間の約定
理解を深めるには、この項目とあわせて次もお読みください Trading Plan, Trading Journal, Slippage, Overfitting, Walk-forward Analysis. 次の項目からも参照されています Technical analysis, OHLCV, Timeframe, Candlestick chart.
01利益の出たバックテストは、戦略が今後も稼げる証拠ですか?+
いいえ。結果は特定のデータ、費用、約定モデル、最良候補の選択に依存している可能性があります。時間的な整合性、前提、選択手順を確認する必要があり、それでも将来のリターンを保証するものではありません。
02手数料は最終利益から差し引くだけで十分ですか?+
その方法がモデルと正確に一致し、利用可能な資金やその後の判断に影響しない場合に限ります。通常は、それぞれの出来事の時点で費用を計上し、約定価格と手数料を区別して、二重控除を防ぐ必要があります。