ナンピンマーチンEAのバックテストは当てにならないのか?
巷では、以下のような話をよく見たり聞いたりします。
- ナンピンマーチンEAのバックテストは当てにならない
- フォワードテストを公開していないEAは信用できない
そこで今回は、バックテストとフォワードテストで全く同じロジックで結果を比較し、差異を分析してみたいと思います。 今回使用するモデルの詳細については、以下の記事をご覧ください。 ロジックについて細かく説明しています。
ちなみに、バックテストについては、MT4やMT5のバックテスト機能を使用していません。MT5からGOLDの全ティックデータをダウンロードし、Pythonにてバックテストモデルを実装しています。
フォワードテストについても、EAと言いながら実はMQL4やMQL5を用いたものではありません。PythonのMetaTrader5モジュールを利用しています。
従って、バックテストとフォワードテストどちらもPythonで同様のロジックで実践していますので、ロジック差はほぼないはずです。
2022年9月15日(木)の損益比較
それでは、バックテストとフォワードテストの比較をしていきます。
今回は、2022年9月15日(木)の1日の動きを見ることにします。
今回は、2022年9月15日(木)の1日の動きを見ることにします。
必要資金(required)および損益(profit)
バックテスト
required | profit | yield |
404,065 円 | 25,059 円 | 6.20 % |
必要資金(required)とは、ゼロカットになってしまう目安です。
このケースは、40万円で運用していると、ロスカットぎりぎりという感じです。
このケースは、40万円で運用していると、ロスカットぎりぎりという感じです。
フォワードテスト
required | profit | yield |
701,247 円 | 24,031 円 | 3.43 % |
フォワードテストの方が必要資金が大きくなっています。
バックテストの結果、50万円で運用すれば大丈夫と判断し、実際に運用してみたらゼロカットになってしまう、ということが起こりうる差です。
バックテストの結果、50万円で運用すれば大丈夫と判断し、実際に運用してみたらゼロカットになってしまう、ということが起こりうる差です。
必要資金(required)の内訳
バックテスト
pos. | lot | margin | DD |
12 | 4.12 | 98,880 円 | -305,185 円 |
バックテストでは、最大ポジション数(pos.)が12です。
ナンピンを重ねて行った結果、総lot数が4.12になっています。
ナンピンを重ねて行った結果、総lot数が4.12になっています。
フォワードテスト
pos. | lot | margin | DD |
13 | 6.22 | 149,280 円 | -551,967 円 |
一方のフォワードテストですが、最大ポジション数が1つ多い13ですね。
その結果、証拠金(margin)も含み損(DD)も大きくなり、70万円超ないと耐えられない、という状態になっています。
その結果、証拠金(margin)も含み損(DD)も大きくなり、70万円超ないと耐えられない、という状態になっています。
損益(profit)の内訳
バックテスト
pos. | profit | DD | |
buy | 12 | 12,107 円 | -305,185 円 |
sell | 5 | 12,952 円 | -12,226 円 |
今回大きめのポジションを持っていたのはbuyポジション側ということがわかります。
フォワードテスト
buyポジションの13というのが、どの時間帯で起こり、バックテストとフォワードテストでどのような違いがあったのか、そのあたりをこの後具体的に見ていきます。
1日の値動き(15分足)
この日は、1690前後で推移していましたが、16時以降に20~30ほど大きく下落して、その後は1665前後で推移していることが分かります。
このように大きな動きがあるとポジション数も多くなりDDも大きくなりがちですが、価格の戻りがそれなりにあればそこで利確することが出来ます。
このように大きな動きがあるとポジション数も多くなりDDも大きくなりがちですが、価格の戻りがそれなりにあればそこで利確することが出来ます。
セット毎の取引履歴の比較
ここからは、各セット毎にバックテストとフォワードテストでどのような差が生じたか見ていきます。
(buy_set_1~5) vs (buy_set_1~5)
buyポジションのセット1~5の比較を行います。
最初の1つ目のポジションをエントリー後、クローズするまでを1セットと呼ぶことにしています。
最初の1つ目のポジションをエントリー後、クローズするまでを1セットと呼ぶことにしています。
バックテスト(buy_set_1~5)
set | entry | close | profit | DD | pos. |
1 | 1:05 | 13:01 | 1,419 | -20,436 | 6 |
2 | 13:01 | 14:36 | 661 | -3,964 | 4 |
3 | 14:36 | 15:14 | 313 | -588 | 2 |
4 | 15:14 | 15:30 | 764 | -1,527 | 3 |
5 | 15:30 | 15:30 | 147 | -313 | 1 |
セット1からポジション数が6まで積み上がって、DDも-2万円とそれなりな動きをしていることがわかります。
フォワードテスト(buy_set_1~5)
set | entry | close | profit | DD | pos. |
1 | 1:05 | 13:01 | 1,440 | -20,520 | 6 |
2 | 13:01 | 14:36 | 641 | -3,492 | 4 |
3 | 14:36 | 15:14 | 317 | -587 | 2 |
4 | 15:14 | 15:30 | 772 | -1,565 | 3 |
5 | 15:30 | 15:30 | 145 | -317 | 1 |
フォワードテストの方も、セット1でポジション数6、DDは-2万円と、バックテストとほぼ同じような動きをしていることがわかります。
(buy_set_6~10) vs (buy_set_6~10)
続いて、6~10セット目も見ていきたいと思います。
バックテスト(buy_set_6~10)
set | entry | close | profit | DD | pos. |
6 | 15:30 | 15:32 | 147 | -100 | 1 |
7 | 15:32 | 15:43 | 438 | -1,776 | 3 |
8 | 15:43 | 15:44 | 146 | -60 | 1 |
9 | 15:44 | 15:46 | 157 | -51 | 1 |
10 | 15:46 | 15:47 | 144 | -67 | 1 |
あまりポジションも積み上がらず、比較的短期間で利確しているような動きです。
フォワードテスト(buy_set_6~10)
set | entry | close | profit | DD | pos. |
6 | 15:30 | 15:32 | 146 | -102 | 1 |
7 | 15:32 | 15:43 | 442 | -1,738 | 3 |
8 | 15:43 | 15:44 | 145 | -55 | 1 |
9 | 15:44 | 15:45 | 151 | -66 | 1 |
10 | 15:45 | 15:46 | 146 | -194 | 1 |
大きな動きではないこともあってか、ここまではバックテストとフォワードテストは、ほぼほぼ同じ動きをしています。微妙な差は、取引時のちょっとしたティック差でしょう。
(buy_set_11~15) vs (buy_set_11~15)
続きまして、セット11~15の比較です。
バックテスト(buy_set_11~15)
set | entry | close | profit | DD | pos. |
11 | 15:47 | 15:49 | 160 | -134 | 1 |
12 | 15:49 | 16:45 | 931 | -17,555 | 6 |
13 | 16:45 | 16:48 | 153 | -124 | 1 |
14 | 16:48 | 16:49 | 144 | -69 | 1 |
15 | 16:49 | 16:50 | 173 | -39 | 1 |
12セット目で少し大きめのDDですね。
フォワードテスト(buy_set_11~15)
set | entry | close | profit | DD | pos. |
11 | 15:46 | 15:49 | 158 | -80 | 1 |
12 | 15:49 | 16:44 | 1,185 | -15,253 | 6 |
13 | 16:44 | 16:48 | 146 | -103 | 1 |
14 | 16:48 | 16:49 | 155 | -43 | 1 |
15 | 16:49 | 16:49 | 159 | -69 | 1 |
こちらも12セット目で大きめのDDです。ポジション数はバックテストと同じく6ですので、そこまで大きな差は生じていない様子です。
(buy_set_16~23) vs (buy_set_16~20)
このあたりから、バックテストとフォワードテストでセット数がずれてきます。
バックテストですと、23セット目のクローズ時間が18:27ですが、フォワードテストでは20セット目のクローズ時間が18:27になっています。
この比較では、なるべく同じ時間帯のセットを比較するようにしています。
バックテストですと、23セット目のクローズ時間が18:27ですが、フォワードテストでは20セット目のクローズ時間が18:27になっています。
この比較では、なるべく同じ時間帯のセットを比較するようにしています。
バックテスト(buy_set_16~23)
set | entry | close | profit | DD | pos. |
16 | 16:50 | 16:53 | 296 | -549 | 2 |
17 | 16:53 | 16:59 | 154 | -153 | 1 |
18 | 16:59 | 17:17 | 480 | -1,416 | 3 |
19 | 17:17 | 17:59 | 1,767 | -305,185 | 12 |
20 | 17:59 | 18:02 | 144 | -329 | 1 |
21 | 18:02 | 18:12 | 613 | -3,901 | 4 |
22 | 18:12 | 18:17 | 154 | -109 | 1 |
23 | 18:17 | 18:27 | 149 | -227 | 1 |
19セット目でDDが-30万円です。これがこの日の最大含み損ですね。
12ポジションまで積み上がっていますが、17:17→17:59と、比較的短時間で利確まで行えていることがわかります。
12ポジションまで積み上がっていますが、17:17→17:59と、比較的短時間で利確まで行えていることがわかります。
フォワードテスト(buy_set_16~20)
set | entry | close | profit | DD | pos. |
16 | 16:49 | 16:58 | 145 | -311 | 1 |
17 | 16:58 | 17:00 | 146 | -145 | 1 |
18 | 17:00 | 18:02 | 2,247 | -551,967 | 13 |
19 | 18:02 | 18:17 | 439 | -3,073 | 3 |
20 | 18:17 | 18:27 | 152 | -186 | 1 |
フォワードテストの方は、17セット目が含み損最大になっています。-55万円です。ポジション数は、バックテストと比較して1つ多い13ですね。
時間ですが、17:00→18:02と、クローズタイミングはバックテストの19セット目とかなり近いです。18時前後で比較的大きく戻したことがわかりますね。
時間ですが、17:00→18:02と、クローズタイミングはバックテストの19セット目とかなり近いです。18時前後で比較的大きく戻したことがわかりますね。
(buy_set_24~28) vs (buy_set_21~25)
一つ前のバックテストの23セット目と、フォワードテストの20セット目を比較するとわかるのですが、ここではまた同じタイミングでエントリー→クローズという流れになっていて、いつの間にかまた同期し始めたことがわかります。
バックテスト(buy_set_24~28)
set | entry | close | profit | DD | pos. |
24 | 18:27 | 18:29 | 166 | -164 | 1 |
25 | 18:29 | 19:24 | 1,064 | -15,117 | 6 |
26 | 19:24 | 19:31 | 167 | -103 | 1 |
27 | 19:31 | 20:00 | 287 | -489 | 2 |
28 | 20:00 | 20:02 | 144 | -61 | 1 |
ここでは、DDの大きめな25セット目ではなく、27セット目に注目です。
19:31エントリー、ポジション数2で、20:00にクローズという流れです。
19:31エントリー、ポジション数2で、20:00にクローズという流れです。
フォワードテスト(buy_set_21~25)
set | entry | close | profit | DD | pos. |
21 | 18:27 | 18:29 | 152 | -112 | 1 |
22 | 18:29 | 19:22 | 1,016 | -13,805 | 6 |
23 | 19:22 | 19:31 | 146 | -116 | 1 |
24 | 19:31 | 19:35 | 171 | -102 | 1 |
25 | 19:35 | 20:01 | 313 | -772 | 2 |
一方のフォワードテストが、同期していたはずが24セット目のところでバックテストと異なる動きにまたなります。24セット目は比較的短時間で利確、その後25セット目がポジションを2つ持ってクローズと、微妙な差が生じています。
(buy_set_29~31) vs (buy_set_26~28)
buyポジション側の最後のセットです。
バックテスト(buy_set_29~31)
set | entry | close | profit | DD | pos. |
29 | 20:02 | 20:18 | 146 | -143 | 1 |
30 | 20:18 | 23:06 | 582 | -4,404 | 4 |
31 | 23:06 | 23:49 | -103 | -177 | 1 |
最後の3セットも、バックテストとフォワードテストでは微妙な差が生じています。
フォワードテスト(buy_set_26~28)
set | entry | close | profit | DD | pos. |
26 | 20:01 | 20:06 | 146 | -69 | 1 |
27 | 20:06 | 20:29 | 155 | -197 | 1 |
28 | 20:29 | 23:49 | -937 | -5,628 | 4 |
バックテストはポジション数4の30セット目を23:06に利確できたのに対し、フォワードテストは最後に4つのポジションを持ったまま23:49を迎えて強制クローズという結果になっています。
(sell_set_1~5) vs (sell_set_1~5)
sellポジション側についても同じようにセット毎に見ていきたいと思います。
バックテスト(sell_set_1~5)
set | entry | close | profit | DD | pos. |
1 | 1:05 | 3:15 | 146 | -149 | 1 |
2 | 3:15 | 4:00 | 144 | -275 | 1 |
3 | 4:00 | 5:54 | 160 | -292 | 1 |
4 | 5:54 | 6:03 | 249 | -120 | 1 |
5 | 6:03 | 7:32 | 292 | -592 | 2 |
この時間帯(いわゆる東京時間)は、安定的に動くので、あまりポジションが積み上がらないことも多いです。
フォワードテスト(sell_set_1~5)
set | entry | close | profit | DD | pos. |
1 | 1:05 | 3:15 | 150 | -144 | 1 |
2 | 3:15 | 4:00 | 145 | -283 | 1 |
3 | 4:00 | 5:54 | 159 | -296 | 1 |
4 | 5:54 | 6:03 | 274 | -125 | 1 |
5 | 6:03 | 7:38 | 148 | -308 | 1 |
5セット目だけ、バックテストが2つのポジションを持っているのに対し、フォワードテストは全てポジション数1です。ただ、それほど大きな差ではありません。
(sell_set_6~10) vs (sell_set_6~10)
続いて、sellポジションの6~10セット目です。
バックテスト(sell_set_6~10)
set | entry | close | profit | DD | pos. |
6 | 7:32 | 7:38 | 152 | -64 | 1 |
7 | 7:38 | 7:55 | 177 | -150 | 1 |
8 | 7:55 | 8:02 | 150 | -77 | 1 |
9 | 8:02 | 9:43 | 292 | -828 | 2 |
10 | 9:43 | 10:09 | 146 | -226 | 1 |
引き続き大きな差はなさそうです。2ポジなのか1ポジなのかという微妙な差があるのみです。
フォワードテスト(sell_set_6~10)
set | entry | close | profit | DD | pos. |
6 | 7:38 | 7:55 | 172 | -100 | 1 |
7 | 7:55 | 7:56 | 159 | -50 | 1 |
8 | 7:56 | 8:52 | 298 | -644 | 2 |
9 | 8:52 | 9:10 | 319 | -577 | 2 |
10 | 9:10 | 10:07 | 144 | -225 | 1 |
ナンピンマーチンは、このように安定しているレンジの動きでは、小さな利益を積み重ねていきます。
(sell_set_11~15) vs (sell_set_11~15)
11〜15セット目ですが、引き続きほぼ同期した動きをしています。
バックテスト(sell_set_11~15)
set | entry | close | profit | DD | pos. |
11 | 10:09 | 11:18 | 472 | -1,450 | 3 |
12 | 11:18 | 11:48 | 147 | -179 | 1 |
13 | 11:48 | 13:30 | 480 | -2,094 | 3 |
14 | 13:30 | 13:40 | 153 | -112 | 1 |
15 | 13:40 | 14:09 | 349 | -140 | 1 |
バックテストの11~13セット目にフォワードテストの11~12セット目が対応して微妙にズレているのですが、
フォワードテスト(sell_set_11~15)
set | entry | close | profit | DD | pos. |
11 | 10:07 | 11:48 | 313 | -1,139 | 2 |
12 | 11:48 | 13:30 | 458 | -1,957 | 3 |
13 | 13:30 | 13:40 | 152 | -83 | 1 |
14 | 13:40 | 13:42 | 149 | -39 | 1 |
15 | 13:42 | 14:09 | 195 | -296 | 1 |
バックテストの14~15セット目と、フォワードテストの13~15セット目が上手く噛み合って、同じような結果になっています。
(sell_set_16~20) vs (sell_set_16~21)
16~20セット目(フォワードテストは21セット目まで)です。
バックテスト(sell_set_16~20)
set | entry | close | profit | DD | pos. |
16 | 14:09 | 15:20 | 305 | -1,064 | 2 |
17 | 15:20 | 15:30 | 179 | -256 | 1 |
18 | 15:30 | 15:34 | 463 | -2,008 | 3 |
19 | 15:34 | 15:35 | 144 | -59 | 1 |
20 | 15:35 | 15:56 | 815 | -7,091 | 5 |
ポジション数が1~2くらいのセットは、多少ずれてもそれほど差が生じませんね。
フォワードテスト(sell_set_16~21)
set | entry | close | profit | DD | pos. |
16 | 14:09 | 15:10 | 292 | -927 | 2 |
17 | 15:10 | 15:20 | 337 | -603 | 2 |
18 | 15:20 | 15:20 | 145 | -144 | 1 |
19 | 15:20 | 15:34 | 430 | -1,799 | 3 |
20 | 15:34 | 15:34 | 144 | -47 | 1 |
21 | 15:34 | 15:56 | 828 | -7,093 | 5 |
バックテストの20セット目と、フォワードテストの21セット目が対応するようになりました。
(sell_set_21~26) vs (sell_set_22~27)
この6セットは、ほぼ完全同期です。
XM時間の15:30というのは、日本時間の21:30です。
XM時間の15:30というのは、日本時間の21:30です。
バックテスト(sell_set_21~26)
set | entry | close | profit | DD | pos. |
21 | 15:56 | 15:59 | 153 | -86 | 1 |
22 | 15:59 | 16:00 | 170 | -39 | 1 |
23 | 16:00 | 16:04 | 152 | -126 | 1 |
24 | 16:04 | 16:18 | 313 | -759 | 2 |
25 | 16:18 | 16:27 | 154 | -123 | 1 |
26 | 16:27 | 16:30 | 159 | -61 | 1 |
この時間帯の動きは、下げの初動というところです。
いわゆるNY時間に突入して動きが激しくなっています。
いわゆるNY時間に突入して動きが激しくなっています。
フォワードテスト(sell_set_22~27)
set | entry | close | profit | DD | pos. |
22 | 15:56 | 15:59 | 152 | -87 | 1 |
23 | 15:59 | 16:00 | 176 | -39 | 1 |
24 | 16:00 | 16:04 | 152 | -126 | 1 |
25 | 16:04 | 16:18 | 292 | -748 | 2 |
26 | 16:18 | 16:21 | 148 | -93 | 1 |
27 | 16:21 | 16:30 | 165 | -303 | 1 |
短期間で小さな利益を積み重ねるような動きです。
(sell_set_27~32) vs (sell_set_26~34)
このあたりは、先ほどの初動で一度下げてから、戻している時間帯です。
バックテスト(sell_set_27~32)
set | entry | close | profit | DD | pos. |
27 | 16:30 | 16:39 | 180 | -290 | 1 |
28 | 16:39 | 17:12 | 761 | -12,226 | 5 |
29 | 17:12 | 17:29 | 144 | -326 | 1 |
30 | 17:29 | 17:35 | 163 | -107 | 1 |
31 | 17:35 | 17:40 | 153 | -169 | 1 |
32 | 17:40 | 17:46 | 150 | -143 | 1 |
17時過ぎまで大きめに戻して、その後一気に下げ始めるタイミングがここです。
フォワードテスト(sell_set_26~34)
set | entry | close | profit | DD | pos. |
26 | 16:18 | 16:21 | 148 | -93 | 1 |
27 | 16:21 | 16:30 | 165 | -303 | 1 |
28 | 16:30 | 16:38 | 145 | -238 | 1 |
29 | 16:38 | 17:11 | 727 | -10,078 | 5 |
30 | 17:11 | 17:26 | 145 | -218 | 1 |
31 | 17:26 | 17:29 | 146 | -89 | 1 |
32 | 17:29 | 17:36 | 148 | -184 | 1 |
33 | 17:36 | 17:42 | 152 | -222 | 1 |
34 | 17:42 | 17:47 | 146 | -50 | 1 |
29セット目で5ポジまで積み上がりますが、すぐ下落で利確、その後1ポジを連続利確です。
(sell_set_33~37) vs (sell_set_35~39)
ここは下落時間帯。sellポジションは、次々と利確していきます。
バックテスト(sell_set_33~37)
set | entry | close | profit | DD | pos. |
33 | 17:46 | 17:49 | 343 | -94 | 1 |
34 | 17:49 | 17:49 | 144 | -43 | 1 |
35 | 17:49 | 17:50 | 146 | -134 | 1 |
36 | 17:50 | 17:51 | 184 | -109 | 1 |
37 | 17:51 | 17:52 | 177 | -184 | 1 |
1分程度の間隔で、連続利確です。
フォワードテスト(sell_set_35~39)
set | entry | close | profit | DD | pos. |
35 | 17:47 | 17:49 | 313 | -57 | 1 |
36 | 17:49 | 17:49 | 162 | -66 | 1 |
37 | 17:49 | 17:50 | 182 | -158 | 1 |
38 | 17:50 | 17:51 | 185 | -109 | 1 |
39 | 17:51 | 17:52 | 164 | -195 | 1 |
クローズしてすぐエントリーするのでスプレッドがもったいない、、という気持ちは捨てて見守ります。
(sell_set_38~42) vs (sell_set_40~44)
引き続き下落基調。こうなるとsell側のセット数は増えていきます。
バックテスト(sell_set_38~42)
set | entry | close | profit | DD | pos. |
38 | 17:52 | 17:52 | 149 | -50 | 1 |
39 | 17:52 | 17:52 | 250 | -67 | 1 |
40 | 17:52 | 17:55 | 292 | -704 | 2 |
41 | 17:55 | 17:56 | 156 | -50 | 1 |
42 | 17:56 | 17:57 | 163 | -59 | 1 |
バックテストとフォワードテストでほぼ同期ですね。
ちなみに18時が日本時間の深夜0時ですがまだまだ稼働時間帯です。
ちなみに18時が日本時間の深夜0時ですがまだまだ稼働時間帯です。
フォワードテスト(sell_set_40~44)
set | entry | close | profit | DD | pos. |
40 | 17:52 | 17:52 | 224 | -49 | 1 |
41 | 17:52 | 17:52 | 152 | -105 | 1 |
42 | 17:52 | 17:55 | 291 | -656 | 2 |
43 | 17:55 | 17:56 | 162 | -44 | 1 |
44 | 17:56 | 17:57 | 145 | -60 | 1 |
このような動きでは、バックテストとフォワードテストでほとんど差がなさそうです。
(sell_set_43~47) vs (sell_set_45~49)
一方的な動きが落ち着き、価格が上下するような動きに突入です。
バックテスト(sell_set_43~47)
set | entry | close | profit | DD | pos. |
43 | 17:57 | 17:57 | 170 | -109 | 1 |
44 | 17:57 | 18:05 | 582 | -4,404 | 4 |
45 | 18:05 | 18:09 | 157 | -126 | 1 |
46 | 18:09 | 18:10 | 146 | -54 | 1 |
47 | 18:10 | 18:33 | 676 | -4,153 | 4 |
4ポジ程度持っているのにも関わらず、10〜20分程度での利確です。
これは、価格の上下が激しい(ボラティリティが大きい)ことが分かります。
これは、価格の上下が激しい(ボラティリティが大きい)ことが分かります。
フォワードテスト(sell_set_45~49)
set | entry | close | profit | DD | pos. |
45 | 17:57 | 17:57 | 254 | -62 | 1 |
46 | 17:57 | 18:05 | 579 | -4,312 | 4 |
47 | 18:05 | 18:09 | 146 | -119 | 1 |
48 | 18:09 | 18:10 | 145 | -89 | 1 |
49 | 18:10 | 18:33 | 596 | -4,026 | 4 |
このような動きは、ナンピンマーチンの得意分野です。
大きく動いても戻してくれればすぐにポジション解消です。
バックテストとフォワードテストでほとんど差はないですね。
大きく動いても戻してくれればすぐにポジション解消です。
バックテストとフォワードテストでほとんど差はないですね。
(sell_set_48~52) vs (sell_set_50~56)
少し戻したのですが、また1時間くらい一方的下落の始まりです。
バックテスト(sell_set_48~52)
set | entry | close | profit | DD | pos. |
48 | 18:33 | 18:52 | 144 | -249 | 1 |
49 | 18:52 | 18:55 | 147 | -61 | 1 |
50 | 18:55 | 19:00 | 154 | -53 | 1 |
51 | 19:00 | 19:08 | 149 | -249 | 1 |
52 | 19:08 | 19:15 | 166 | -93 | 1 |
各セットのポジションと利確の仕方を見るだけで、ある程度チャートの形状が想像出来てしまうというのもナンピンマーチンの特徴です。
フォワードテスト(sell_set_50~56)
set | entry | close | profit | DD | pos. |
50 | 18:33 | 18:39 | 146 | -145 | 1 |
51 | 18:39 | 18:52 | 320 | -631 | 2 |
52 | 18:52 | 18:55 | 154 | -44 | 1 |
53 | 18:55 | 18:57 | 149 | -53 | 1 |
54 | 18:57 | 19:07 | 148 | -165 | 1 |
55 | 19:07 | 19:09 | 148 | -70 | 1 |
56 | 19:09 | 19:15 | 148 | -154 | 1 |
下落基調なので、sellポジション側は平和です。代わりに、buyポジション側で積み重なっている可能性があるわけですが。
(sell_set_53~56) vs (sell_set_57~61)
sellポジション側の最後です。ボラの高い状況も落ち着き、エントリーからクローズまでの時間が長くなってきました。
バックテスト(sell_set_53~56)
set | entry | close | profit | DD | pos. |
53 | 19:15 | 21:03 | 582 | -6,418 | 4 |
54 | 21:03 | 21:48 | 146 | -259 | 1 |
55 | 21:48 | 22:27 | 147 | -222 | 1 |
56 | 22:27 | 23:49 | -485 | -871 | 2 |
バックテスト側の53セット目は4つのポジションで、21:03に利確です。
フォワードテスト(sell_set_57~61)
set | entry | close | profit | DD | pos. |
57 | 19:15 | 20:52 | 750 | -8,102 | 5 |
58 | 20:52 | 21:03 | 146 | -77 | 1 |
59 | 21:03 | 21:49 | 146 | -275 | 1 |
60 | 21:49 | 22:33 | 161 | -251 | 1 |
61 | 22:33 | 23:49 | -629 | -995 | 2 |
一方の、フォワードテスト側の57セット目は、5つのポジションを20:52に利確です。より多くのポジションだったので、早めに利確したようです。
乖離が大きかったセットの詳細
概ね同じような動きをしているセットも多かったですが、それなりに乖離していたセットもいくつかあったので、個別に見ていきたいと思います。
(buy_set_19) vs (buy_set_18)
価格が大きく下落し、最もポジションを多く持った時間帯です。
これが最大含み損の差にも大きく影響しました。
これが最大含み損の差にも大きく影響しました。
グラフ – バックテスト(buy_set_19)
まずはグラフで見てみます。バックテストからです。
グラフ – フォワードテスト(buy_set_18)
次にフォワードテストです。
エントリータイミングがやや早く、クローズタイミングもやや遅いことが分かります。
エントリータイミングがやや早く、クローズタイミングもやや遅いことが分かります。
バックテスト(buy_set_19)
さて、バックテストですが、最初の注文が17:17から始まっています。
エントリー注文
time | lot | buy | ave. | order | DD |
17:17 | 0.01 | 1688.10 | 1688.10 | 1 | – |
17:22 | 0.02 | 1686.09 | 1686.76 | 2 | – |
17:35 | 0.03 | 1684.08 | 1685.42 | 3 | – |
17:40 | 0.05 | 1682.02 | 1683.87 | 4 | – |
17:47 | 0.08 | 1679.90 | 1682.20 | 5 | – |
17:49 | 0.12 | 1677.74 | 1680.47 | 6 | – |
17:50 | 0.18 | 1675.71 | 1678.72 | 7 | – |
17:51 | 0.27 | 1673.49 | 1676.86 | 8 | – |
17:52 | 0.41 | 1671.47 | 1674.97 | 9 | – |
17:52 | 0.62 | 1668.73 | 1672.81 | 10 | – |
17:56 | 0.93 | 1666.60 | 1670.69 | 11 | – |
17:57 | 1.40 | 1664.53 | 1668.60 | 12 | -305,185 |
このモデルのナンピン幅の設定は2.00なので、概ね2.00前後でポジションを追加して行っています。この点は想定通りのロジックと言えます。
実際のティックデータを用いてバックテストを行っているので、その分微妙な誤差が生まれています。
実際のティックデータを用いてバックテストを行っているので、その分微妙な誤差が生まれています。
クローズ注文
time | lot | ave. | close | profit |
17:59 | 4.12 | 1668.60 | 1668.63 | 1,767 |
12ポジ、合計4.12lotを、17:59に利確です。
利確幅は0.03とかなり狭いですが、12ポジを持った場合のロジック上の想定利確幅です。
利確幅は0.03とかなり狭いですが、12ポジを持った場合のロジック上の想定利確幅です。
フォワードテスト(buy_set_18)
続いてフォワードテストです。バックテストとの違いは、17:00からポジションを持ち始めていることです。最初のエントリー価格も、1691.10とバックテストよりも少し高めです。
エントリー注文
time | lot | buy | ave. | order | DD |
17:00 | 0.01 | 1691.10 | 1691.10 | 1 | – |
17:02 | 0.02 | 1689.05 | 1689.73 | 2 | – |
17:11 | 0.03 | 1687.02 | 1688.38 | 3 | – |
17:29 | 0.05 | 1685.01 | 1686.85 | 4 | – |
17:40 | 0.08 | 1682.94 | 1685.20 | 5 | – |
17:46 | 0.12 | 1680.93 | 1683.55 | 6 | – |
17:49 | 0.18 | 1678.14 | 1681.56 | 7 | – |
17:50 | 0.27 | 1676.11 | 1679.62 | 8 | – |
17:51 | 0.41 | 1674.06 | 1677.67 | 9 | – |
17:52 | 0.62 | 1672.05 | 1675.73 | 10 | – |
17:52 | 0.93 | 1670.01 | 1673.77 | 11 | – |
17:52 | 1.40 | 1667.89 | 1671.77 | 12 | – |
17:57 | 2.10 | 1665.35 | 1669.60 | 13 | -551,967 |
想定ナンピン幅2.00に対して、概ねその通りにポジションを追加して行っていますが、多少幅が大きくなっているタイミングがいくつかありますね。
これが、フォワードテスト(実際の相場)の場合に起こりうるバックテストの乖離かと思います。想定ナンピン幅に達したことを判定してから注文が通るまでの間に、値が大きく動いてしまうことがあります。
クローズ注文
time | lot | ave. | close | profit |
18:02 | 6.22 | 1669.60 | 1669.63 | 2,247 |
こちらは、18:02に利確です。13ポジでは、ロジック上の目標利確幅は0.02でしたが、0.03で利確という結果になっています。これは誤差レベルで悪くないですね。
ポジション数がバックテストよりも1つ多くなってしまった要因は、ポジションをエントリーし始めたタイミングがフォワードテストの方が早かったということだと言えそうです。