バックテストの精度
EA開発の拠り所はバックテストですよね。
僕がEAを作り始めた頃は、リアルの結果はバックテストの結果に収束すると考えていました。
しかし、そうでは無いこともよくある事が実際に運用してみて分かりました。
その理由についていくつか原因があると思いますが、今回はバックテストの精度についてデータを取ってみました。
ここで言う精度とは、バックテストがどれだけリアルトレードを再現しているのか?という事で考えています。
検証方法
リアルトレードのデータがあるEAを用意し、同じ期間のバックテストを行います。
そして、リアルトレードのエントリー時間と決済時間、バックテストのエントリー時間と決済時間を照合します。
成績は考えません。
如何にバックテストがリアルトレードを再現しているのかを確かめます。
サンプルで用意したのは、自作のNagisRSIWポンドドルとHLbreakオジ円です。
この2つはタイプが違うので、その辺りの傾向も見るのが目的です。
NagisRSIWポンドドルの結果
期間は2021年11月15日~2022年3月11日です。
リアルトレードは151回で、バックテストでは132回でした。
リアルトレード151回の内訳は
・エントリー時間と決済時間が一致した 74回(49%)
・エントリー時間は一致したが決済時間がずれた 33回(21.9%)
・バックテストには無かった 44回(29.1%)
この他に、バックテストにはあったがリアルには無かったのが25回です。
予想以上に再現していなかったというのが感想です 笑。
過去のバックテスト結果に収束するなんてとても思えないですよね。
NagisRSIWポンドドルは、移動平均線のパーフェクトオーダー時にウィリアムズ%レンジのレベルでエントリーします。
決済はウィリアムズ%レンジやRSIのレベル、TPSL、トレーリングストップのいずれかがあてはまった時です。
このようなロジックの場合は環境に左右されやすいと思います。
また、過剰最適化も起こりやすいのではないでしょうかね。
HLbreakオジ円の結果
こちらは稼働間もないのでデータ数は少ないのですが、ロジック的にエントリーがズレにくいのではないかと思って調べました。
期間は2022年2月4日~2022年3月18日です。
リアルトレードは27回で、バックテストでは28回でした。
リアルトレード27回の内訳は
・エントリー時間と決済時間が一致した 18回(66.7%)
・エントリー時間は一致したが決済時間がずれた 8回(29.6%)
・バックテストには無かった 1回(3.7%)
この他に、バックテストにはあったがリアルには無かったのが2回です。
こちらは予想通りエントリー時間のズレは少ないようです。
エントリー時間の一致だけで見ると96%ですね。
日足の高値安値ブレイクでのエントリーなので明確なのでしょう。
決済はTPSL、トレーリングストップのいずれかです。
細かいトレーリングストップなので決済はズレやすいと思います。
まとめ
バックテストで使われる疑似ティックは実際の値動きを完全に再現できるわけではありません。
なので、リアルトレードを完全に再現する事は無理なのは分かっていました。
それにしても、ロジックによってはこんなにも再現性が無かったとは…
ズレている部分もロジックから逸脱した動きをしているわけでは無いでしょうが、バックテストの結果は参考程度って事ですね。
当然、開発段階でバックテストの結果を重要視するのは変わりませんが、EAの評価としては不十分でしょうね。
あ、必ずしもリアルトレードの結果がバックテストより悪くなるわけではありませんよ。
もう少し詳しく分析しましたので、こちらもご覧ください。
自作EAの合計収支