RSIとMACDはどのように責任ある形でバックテストできますか?
直接の回答
RSIとMACDの責任あるバックテストは、再現性と不確実性に焦点を当てます。指標の設定と、あらゆる判断ルールを明示的に定義し、「事前に既知」のデータ方針を一貫して用いて過去の価格系列に適用し、コストと執行の前提をモデル化し、アウト・オブ・サンプル検証(加えてバイアス検証)で結果を確認します。目的は予測ではなく、明確に述べた前提のもとで、あなたの定義が期待どおりに振る舞うかを確かめることです。
メカニズムと定義
RSI(Relative Strength Index)とMACD(Moving Average Convergence Divergence)は、価格系列から導かれる指標です。RSIは通常、直近の値動きを有界なオシレーターに変換します。一方、MACDは移動平均を比較し、その差(多くの場合、追加のシグナルラインを伴う)を用います。
責任ある形でバックテストするには、まず 安定したメカニクス と 変動する条件 を分けます:
- 安定したメカニクス(あなたのコードと定義): RSIの期間、MACDのファスト/スロー設定、シグナル/ヒストグラムの計算、そしてサンプリング頻度。
- 変動する条件(市場と実装によって変わるもの): ボラティリティのレジーム、スプレッド/手数料の構造、スリッページ、バーのタイミング(バーが閉じるタイミング)、そして注文がどのように約定されるか。
すべての計算前提を明示してください。たとえば、指標値がバーの終値で計算されるのか、次のバーの始値で行動するのか、また欠損データやコーポレートアクション(FXでは一般的ではないものの、データの連続性という点で関連し得ます)をどう扱うのかを述べます。バックテストがバーのデータを使うなら、指標のタイムスタンプを執行タイムスタンプに合わせるための正確なルールも指定すべきです。
RSIとMACDを組み合わせるなら、その組み合わせを決定論的な関数として定義します(たとえば、「RSIの条件AとMACDの条件Bの両方が真であること」)。それを曖昧な「シグナル」として説明するのは避け、別の人が検証できるように、ルールを素直な論理として書いてください。
エビデンス、例となるワークフロー、バイアス管理
実用的な責任あるワークフローは、次のようになります:
-
テスト前に設定を固定する。 RSIとMACDのパラメータ、エントリー/エグジットのロジック、そしてリスクまたはポジションサイジングのルールを一度決めます。パフォーマンスを確認した後に変更しないでください。
-
コストと執行の前提をモデル化する。 正確な取引条件が分からなくても、仮定を明示する必要があります:固定の1取引コストか変動コストか、約定が次のバーの始値で起きるのか、bid/askで起きるのか、あるいはスリッページ項で表すのか。コストモデリングなしでは、バックテストはしばしば結果を過大評価します。
-
アウト・オブ・サンプルで検証する。 データを少なくとも2つの区間に分割します:ルールの開発/検証に使う区間と、テスト用に保持する区間です。単一の静的な分割よりも、ウォークフォワードテスト(ローリングウィンドウ) を優先し、1回の分割ではなく時間をまたいで評価します。
-
過剰適合と複数テストのバイアスを制御する。 同じ評価ウィンドウに基づいて、繰り返しパラメータ調整を行うことは避けてください。多くのバリエーションをテストするなら、選択ルールを事前に定義するか、最終パフォーマンスを「確認済み」ではなく「探索的」として扱います。
-
質問に合う形でパフォーマンスを測る。 総リターンだけに注目するのではなく、不確実性を反映する分布的・一貫性の指標を追跡します(たとえば、期間ごとのリターンの安定性、最大ドローダウンの挙動、コストを増やしたときに結果がどう変わるかなど)。
重大な制限と失敗パターン
よくある失敗パターンは データリークとタイミングの誤り です:執行時点では利用できなかったはずのバーの情報を使って、指標値を計算してしまうこと。もう一つは レジーム依存 です:指標同士の関係はある市場環境では成り立っても、別の環境では失敗する可能性があります。責任あるバックテストは、複数の期間でテストし、コストと執行の感度の見方を含めることで、これらの弱点を明らかにすべきです。
検証と次の質問
RSI+MACDのバックテストを独立に検証するには、あなたの書いた仕様だけから再現できるべきです:
- 価格データの出所と時間軸(タイムフレーム)、
- RSIとMACDのパラメータ値、
- 指標の計算方法とタイムスタンプのアラインメントの正確さ、
- 決定論的な組み合わせルール、
- 執行のタイミングルール、
- コスト/スリッページの前提。
これらの詳細のどれかが欠けている場合、「結果」は検証可能ではなく、指標の挙動というより実装上の癖を反映している可能性があります。次の質問として、バーのアラインメントを少し変えたとき、仮定コストを増やしたとき、あるいは別の時間ウィンドウでテストしたときに、結論が似たままかどうかを確認してください。結論が些細な変更で崩れるなら、それらを弱いエビデンスとして扱ってください。
結論
責任あるRSIとMACDのバックテストは、魅力的な過去の数値を見つけることよりも、明確な定義、現実的な前提、バイアス管理、そしてアウト・オブ・サンプル検証を徹底することにあります。