バックテストはリアルトレードをどれだけ再現しているのか?
ストラテジーテスターによるバックテストの精度について時々調べています。
バックテストは良くてもリアルで稼働開始したら思ったような成績にならないことが良くあります。
その原因は、過剰最適化だったりたまたまロジックと相場が噛み合わないからというように考えていました。
僕は少し前まで、過去に戻ってEAを動かしたらバックテストの結果が得られる…と思っていたのです。
そうだとすると、リアルの結果と同じ期間のバックテストはデータが一致するはずですよね?
過去に戻ってリアルトレードのデータを取得する事は出来ませんが、実際に稼働した期間は確かめる事ができます。
以前にも一致する割合を調べた事がありますが、今回は別のEAでもっと詳細に約定の価格を中心に見ていきます。
一致する割合を調べた記事はこちら。
検証方法
自作の仲値売りEA(NKS47)の2022年5月1日~5月31日のリアルトレードと同期間のバックテスト結果を比較します。
このEAは1分足のチャートで日本時間9:55の始値でドル円をショートし、最長で11:25の始値で決済します。
それまでの間にSLTPに到達したり、トレーリングストップの条件になれば決済する事もあります。
決まった時間にエントリーするのでエントリーの再現性は高いはずです。
そのような理由で、今回の検証にこのEAを選んでいます。
比較内容は、エントリーの時間と価格、決済の時間と価格です。
差が分かりやすいようにpips損益も載せています。
結果
各日、上段がリアルトレード、下段がバックテストです。
バックテストは1分足全ティック、スプレッド1.2pips固定で行っています。
5/16はミスによりリアルトレードのエントリーが無かったので抜けています。
時間はサーバータイムです。
ちなみに成績は以下の様になりました。
まとめ
概ね同じようなトレードはしていますね。
ただし、価格はピッタリ一致はしていません。
決済の時間がズレている場合が数回ありますが、トレーリングストップの再現が十分ではない為でしょう。
まぁこのロジックは再現性の高い方だと思いますが、それでもピッタリ同じ価格にはなりません。
インジケーターを使うようなロジックだと大きくズレる回もあると思います。
どちらかが空振りするなんてこともありますね。
成績に関しては、どちらが良くなるかは一概には言えませんかね。
バックテストがロジックから逸脱したトレードをすることはないと思いますが、数値はリアルと同じにはならないようですね。
その点を踏まえてバックテストの結果を見るのが良いのではないでしょうか。
自作EAの合計収支