ウォークフォワード分析とは?Pythonで戦略を自動評価するWebアプリを作成

カーブフィッティングは簡単に発生する

株やFX、先物取引で「過去に儲かった戦略」が、未来でも通用するとは限りません。

カーブフィッティング,つまり有意性のないトレードロジックを有意性があると誤認識する現象は,普通のバックテストだと下記のように簡単に発生します。

💡 実例的な違い(目安)

分析手法フィッティングのリスク実運用成績との乖離
通常のバックテスト高い(70~90%が過剰最適化)大きく乖離しやすい
ウォークフォワード分析中~低(30~50%に減少)実運用に近い成績

※これは目安であり、戦略の複雑さや市場のノイズによって変動します。


この記事では、PythonとFlask、Optunaを使って、トレード戦略をウォークフォワード分析で検証できる無料Webアプリをご紹介します。

ウォークフォワード分析とは?

ウォークフォワード分析(Walk Forward Analysis)は、過去のデータを訓練期間とテスト期間に分けて、戦略の「本番での再現性」をチェックする方法です。

このアプリでできること

  • ブラウザ上で簡単にパラメータ入力
  • 戦略を自動で最適化(Optuna使用)
  • 成績をリアルタイムで表示
  • CSVに自動保存

実際の検証結果

前提条件

スタートの資産は1、損切りは価格の1/15、ポジションサイズは損切り時に資産が-5%になるように、スプレッドは価格の0.1%、日足、Long方向のみ。log10資産の最終値(青バー)、決定係数(オレンジバー)をグラフで出力している

エントリー&エグジット条件と検証結果

(1)Randomでのエントリー & Randomでのエグジット

実はこれだけでも勝てるという非常に重要な事実。当然通貨によるが。ちなみに為替は勝てないので除外している。

(2)Randomでのエントリー & Trailing stopエグジット

Trailing stop(ダウ理論)は非常に有意性がある という発見。~システムトレード 基本と原則(実践編)~ でも同様の結論だったため,信憑性はありそう。損小利大 is ジャスティス

(3)Golden crossのエントリー & Dead crossエグジット

意外といまいち。決済の回数が少ないのが原因か。

(4)RSIでのエントリー & エグジット

いまいち。決済の回数が少ないのが原因か。

(5)価格のバウンドでエントリー& Trailing stopエグジット

Close[i-k1]>Close[i] and Close[i]>Close[i-k1//3-1] でエントリー。とりあえず現状一番これがよい。なぜかはわからん。

使ってみる(無料)


https://my-flask-app-mksr.onrender.com


まとめ


ウォークフォワード分析を通じて、より「実践で通用する戦略」を作ることが可能になります。 本アプリは、PythonとFlaskを用いた個人開発ですが、どなたでも自由にご利用いただけます

タイトルとURLをコピーしました