ストキャスティクス・オシレーターを責任ある形でバックテストする方法
バックテストする前に、ストキャスティクス・オシレーターが何かを理解する
ストキャスティクス・オシレーターは、現在の価格を直近のレンジと比較する指標です。一般的な形では、ルックバック期間(レンジ・ウィンドウ)から作られる %Kライン(さらにしばしば 平滑化 のステップ)と、通常 %Dライン(典型的には%Kの移動平均)があります。
バックテストは定義に依存するため、まず、実装する正確な式を書き出すべきです(たとえば:高値/安値の選び方、ルックバック長、使用する平滑化手法と長さ)。わずかな違いでも、例えば同じバーのローソク足の高値/安値を使うのか、それとも前にずらして使うのかで、結果が変わり得ます。
記載すべきデータ、メカニクス、前提
責任あるバックテストは、クリーンで、よく仕様化されたデータ・パイプラインから始まります。
1) データ項目とアライン方法を定義する
- OHLC(始値・高値・安値・終値)に使うタイムゾーンとバーサイズを指定する。
- 欠けたバー、異常なスパイク、データが不完全な日をどう扱うかを決める。
- 指標が意思決定時点で利用可能だった情報だけを使うようにする(バー終値とバー始値では重要です)。
2) 入力として指標パラメータを定義する
- テストするパラメータ集合を明記する。例:
- %K ルックバック長
- %K 平滑化長(適用する場合)
- %D 移動平均の種類と長さ
3) 計算ルールを正確に指定する 実装の詳細を書き出す:
- ルックバック・ウィンドウ内で、転がり(rolling)の最高値の高値と最安値の安値を使って%Kを計算するかどうか。
- オシレーターを毎バー更新するのか、それともバーがクローズした後にのみ更新するのか。
4) 「指標の挙動」と「取引ルール」を分ける 指標は、(動き方=時系列として)バックテストできますが、それが単独のシグナルであると主張する必要はありません。パフォーマンスを推定するには、明示的で検証可能な意思決定ルールが必要です(たとえば、オシレーターの値を仮想的なアクションに対応づける条件)。それでも、これらのアクションをどう執行するかによって結果は変わります。
コスト・特徴のコントロール:コストと変動要因をモデル化する
バックテストが失敗することが多いのは、リターンを変える実際の摩擦(frictions)を無視したり、過小にモデル化したりするためです。
基本的な執行モデルに含めるべきコスト 正確な数値を当てる必要はありませんが、テストするコストの種類をモデル化し、常に一貫して適用する必要があります:
- ビッド/アスク・スプレッドの前提(または同等の取引コスト・モデル)
- 手数料(該当する場合)
- スリッページ(理論上の価格よりどれだけ不利な約定になるか)
コントロールすべき変動要因 ストキャスティクス・オシレーターを含むモメンタム指標は、市場レジームによって挙動が異なることがあります。誤解を招く結論を減らすには:
- 複数の時間帯(単一の過去ウィンドウだけでなく)をテストする。
- 研究対象が複数なら複数の銘柄を使う、または少なくとも複数の異なるレジームを使う。
- 評価中は指標パラメータを固定する。変更は別のチューニング手順でのみ行う。
シンプルでバイアスに配慮したチューニング手法
- データをチューニング(イン・サンプル)期間と、その後の評価(アウト・オブ・サンプル)期間に分割する。
- チューニング区間でのみパラメータを調整する。
- パラメータを固定し、アウト・オブ・サンプル区間で追加の微調整なしに評価する。
証拠と、責任あるワークフローの例
責任あるワークフローは、運に当てることではなく検証に焦点を当てます。
例:ワークフロー(概念的であり推奨ではない)
- バーサイズ(例:時間単位あたり1本のバー)を選び、パラメータ定義を明確に書いた形でストキャスティクス・オシレーターを実装する。
- オシレーター値に基づいてアクションを発火させる仮想的な意思決定ルールを作る。トリガーの正確なロジックを明記する。
- 取引コスト・モデルを、少なくとも1つの感度レンジ(例:「低」「中」「高」の摩擦シナリオ)とともに追加し、評価を再実行する。
- ウォークフォワードまたはローリング・ウィンドウのアプローチを使う:より早いウィンドウでチューニングし、次のウィンドウで評価し、これを繰り返す。
- 平均だけでなく、頑健な診断で結果を要約する。
確認すべき重要な診断
- イン・サンプルとアウト・オブ・サンプルの挙動を比較する。
- 結果が少数のイベントや限られた日付に強く依存していないかを調べる。
- パラメータや閾値を、妥当な範囲でわずかにずらしたときに不安定にならないかを探す。
限界と、含めるべき失敗モード
技術的に正しいバックテストでも誤解を招くことがあります。よくある失敗モードには次が含まれます:
1) 先読み(lookahead)とアラインメントの誤り 意思決定時点では知られていなかった情報を使うと、パフォーマンスが過大評価され得ます。
2) 歴史への過剰適合 自由度が多すぎる(指標パラメータに加えてルールの閾値、コスト仮定まで)と、戦略がシグナルではなくノイズに適合してしまう可能性があります。
DOCUMENT END