当ブログで運用中のFX Bot(セッションブレイク戦略)のバックテスト最適化を行いました。
結果として、たった1つの設定変更で利益率が大幅に改善しました。その過程を記録します。
最適化前の状態
最適化前のFX Botの主な設定はこちらです。
- 利確(TP):30pips固定
- 損切り(SL):24pips固定
- 最大保有時間:3時間
2年間(1時間足)のバックテスト結果はPF=1.20(月利2.8%)でした。
24ヶ月中17ヶ月が黒字。悪くはないけれど「これで十分か?」という水準です。
ボトルネックは「TP=30pips固定」だった
いくつかのパラメータを変えてバックテストを回した結果、最大のボトルネックはTP(利確)を30pipsで固定していたことだとわかりました。
ブレイクアウト戦略は「大きく動いたときに大きく取る」のが本質です。
それなのに30pipsで利確してしまうと、50pips・100pipsと伸びるはずだったトレードを途中で切ってしまいます。
これではせっかくの「大勝ち」がなくなり、勝ちトレードの平均利益が小さくなってしまいます。
改善策:TP撤廃 + トレーリングストップ
そこで以下の変更を行いました。
- TP(利確)を撤廃 ― 上限を設けず、利益を伸ばせるだけ伸ばす
- 最大保有時間を3時間→12時間に延長 ― 大きな動きを取りこぼさない
- トレーリングストップを導入 ― 含み益が一定以上になったらストップロスを自動で引き上げ、利益を確保しながら追従する
最適化後のバックテスト結果
結果はこうなりました。
| 最適化前 | 最適化後 | |
|---|---|---|
| PF(プロフィットファクター) | 1.20 | 2.27 |
| 月利(バックテスト上) | 2.8% | 17.1% |
| 黒字月の割合 | 17/24ヶ月 | 21/24ヶ月 |
| 平均利益 | ― | 47.6pips |
| 平均損失 | ― | -20.1pips |
PFが1.20→2.27と大幅に改善しました。
バックテストの数字を鵜呑みにしない
ただし注意点があります。バックテストの数字は過去のデータに対する結果であり、未来の成績を保証するものではありません。
実際のスリッページやスプレッドの変動、相場環境の変化などを考慮すると、実運用ではバックテストの65〜75%程度の再現率になると想定しています。
それでも、PF=2.27という水準は十分に実用に耐えうると判断し、この設定で本番運用を開始しました。
次のステップ:実運用データ → 機械学習へ
今後は実際の運用データが蓄積されるにつれて、そのデータを使った機械学習(ML)によるBot強化も視野に入れています。
バックテストでの最適化は「過去データへのフィッティング」に過ぎません。
実運用データが十分に集まれば、より実態に即したモデル改善が可能になります。
まとめ
- TP=30pips固定がボトルネックだった
- TP撤廃+トレーリングストップでPF=1.20→2.27に改善
- バックテストの数字は鵜呑みにせず、実運用再現率65〜75%と想定
- 今後は実運用データを使ったML強化も視野に
実際の運用成績は毎月このブログで公開していきます。
バックテスト通りにいくのか、いかないのか。その過程も含めて正直に記録します。


コメント