【要約】バックテスト22パターンを比較して「負けパターン」を特定した話【デイトレボット開発記 #5】 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が作成したデイトレボットのバックテスト結果が、実運用に近い条件では赤字に転落した。当初のバックテスト(backtest_sliding.py)は、以下の点で現実の市場環境を反映できていなかった。
- ・銘柄ごとに独立して売買を行い、実質的に無制限のポジションを保有する前提であった。
- ・その足の終値でエントリーする設定であり、実際の約定遅延を考慮していなかった。
- ・スリッページや取引手数料といった、不可避なコストを計算に含めていなかった。
- ・日次損失上限の設定が銘柄単位に近く、リスク管理が不十分であった。
// Approach
開発者は22パターンのエントリー条件を比較検証し、負けパターンの特定と戦略の再構築を行った。まず、統計的分析を用いてパフォーマンスを低下させる要因を以下の通り特定した。
- ・500円未満の低価格銘柄における、スプレッドによる損失。
- ・出来高が1.5倍以上急増した際の、機関投資家の利確売りに巻き込まれるリスク。
- ・RSI 55-64の高値圏における、勝率の著しい低下。
- ・出来高を1.5〜3.5倍に限定し、価格帯を500円以上に制限。
- ・ADX(14)を導入し、トレンド相場とレンジ相場で利確ロジックを切り替え。
// Result
戦略の改善により、取引の質が劇的に向上し、収益性と安定性が両立された。改善後の戦略(combined_volume_15_35)では、以下の成果が得られた。
- ・取引回数を179回から72回へ削減し、優位性の高い局面のみにエントリーを厳選した。
- ・プロフィットファクター(PF)が0.88から2.62へと大幅に改善した。
- ・最大ドローダウンを従来の約83%削減し、リスク耐性を高めた。
- ・取引の質を上げることで、合計損益の大幅な改善を実現した。
Senior Engineer Insight
> バックテストにおける「先読みバイアス」やコスト無視の危険性を実証している。単なるパラメータ調整ではなく、市場の流動性や参加者の行動原理に基づいた仮説検証を行っている点が極めて実践的だ。取引回数の削減はリスク管理上正しいが、特定の条件下でのみ成立する過学習(Overfitting)のリスクには注意が必要である。