こちらは続きになります。まだの方はこちらから。
前回の記事ではTick Data SuiteとTickstoryを使用してティックデータの取得、実際検証まで行いました。その結果同じデータなのに結果が大きく違っていました。この記事ではそれは何故なのか?調査結果とその理由を記載したいと思います。
ティックデータは同じなのに結果がなぜ違うのか?
まずは疑ったのは夏時間や冬時間です。取得したティックデータは夏時間、冬時間を考慮されているか確認する必要があります。
私が使用しているAxioryのサイトに冬時間開始の記載がありました。
米国冬時間の開始に伴い、11月4日より取引時間が変更になります。
ご利用中のお客さまにおかれましては、ご理解とご協力の程よろしくお願い申し上げます。
今回使用した過去半年分のティックデータ(2019/07/25-2020/1/28)で2019/07/25-2019/11/1が夏時間、2019/11/4-2020/1/28までが冬時間になります。
実際に検証してみましょう。まずは冬時間
Tick Data Suite EAを+7で設定して検証
2019/11/04-2020/1/28 USDJPY
9時50分30秒で買、9時54分50秒で手仕舞い 結果
9時55分00秒で売、9時59分30秒で手仕舞い 結果
買い 勝率45.76% プロフィットファクタ0.56 | 売り 勝率38.98% プロフィットファクタ0.33 |
Tickstory EAを+9で設定して検証
2019/11/04-2020/1/28 USDJPY
9時50分30秒で買、9時54分50秒で手仕舞い 結果
9時55分00秒で売、9時59分30秒で手仕舞い 結果
買い 勝率58.62% プロフィットファクタ1.20 | 売り 勝率52.54% プロフィットファクタ1.47 |
同じ冬時間でも結果が違います!冬時間、夏時間は関係ないのかもしれません。
細かくデータを見ていきます。
Tick Data Suite 買いのデータ
115 | 2020.01.24 02:50 | buy | 58 | 1.00 | 109.545 | 0.000 | 0.000 | ||
116 | 2020.01.24 02:54 | close | 58 | 1.00 | 109.545 | 0.000 | 0.000 | -6.00 | 9702.49 |
117 | 2020.01.27 02:50 | buy | 59 | 1.00 | 109.010 | 0.000 | 0.000 | ||
118 | 2020.01.27 02:54 | close | 59 | 1.00 | 109.029 | 0.000 | 0.000 | 11.43 | 9713.92 |
Tickstory 買いのデータ
113 | 2020.01.24 00:50 | buy | 57 | 1.00 | 109.545 | 0.000 | 0.000 | ||
114 | 2020.01.24 00:54 | close | 57 | 1.00 | 109.545 | 0.000 | 0.000 | 0.00 | 10075.32 |
115 | 2020.01.27 00:50 | buy | 58 | 1.00 | 109.010 | 0.000 | 0.000 | ||
116 | 2020.01.27 00:54 | close | 58 | 1.00 | 109.029 | 0.000 | 0.000 | 17.43 | 10092.75 |
Tick Data Suiteのデータでは取引116を見ていただけると分かりますがエントリーとエグジットが同値ですがマイナス6ドルとなっています。これは手数料を考慮したものだと思います。一方、Tickstoryのデータは同値の場合、0ドルとなっています。つまりすべての取引でTick Data Suiteのデータでは手数料分マイナス6ドル分引かれてるということになります。
ちなみにこちらで作成したEAは買いときAskの値段で買い、Bidの値段で売っているのでスプレッド分はすでに考慮されています。
BIDはトレーダーが売るときの価格で、ASKは買うときの価格を表しています。つまり「トレーダー目線」からいうとBID=売値、ASK=買値ということです。
手数料6ドルは正しいのでしょうか。Axioryでは3ドルとなっています。
ナノスプレッド口座は、1注文あたりの手数料、100,000通貨あたりUS$ 3.0
これは片道の手数料で、往復取引では6ドルかかります。※2020/2/4時点では日本円で654円かかります。
Tick Data Suiteの6ドルはそのまま使えます。Tickstoryのデータの手数料を変更する必要があります。
もっと細かい話すると、過去データを検証するときは、ティックデータの時間になってしまいます。実際にEAを動かした場合には設定した9時50分30秒で買、9時54分50秒で手仕舞いを行いますが過去データではティックデータの時間になります。
例:以下の例ではその時間にティックデータがあるのでその通りに売買されます。
2020.01.27 00:50:30 Nakane-trade1.0 USDJPY,M1: open #58 buy 1.00 USDJPY at 109.010 ok
2020.01.27 00:50:30 Nakane-trade1.0 USDJPY,M1: now 2020.01.27 09:50:30 Ask 109.01 Spread 0.002 Num 58
2020.01.27 00:54:50 Nakane-trade1.0 USDJPY,M1: close #58 buy 1.00 USDJPY at 109.010 at price 109.029
2020.01.27 00:54:50 Nakane-trade1.0 USDJPY,M1: Now 2020.01.27 09:54:50 Bid 109.029 Ask 109.031
以下の例では9時50分30秒ではティックデータがなく7秒後にエントリーとなっています。
2020.01.24 00:50:37 Nakane-trade1.0 USDJPY,M1: open #57 buy 1.00 USDJPY at 109.545 ok
2020.01.24 00:50:37 Nakane-trade1.0 USDJPY,M1: now 2020.01.24 09:50:37 Ask 109.545 Spread 0.002 Num 57
2020.01.24 00:54:50 Nakane-trade1.0 USDJPY,M1: close #57 buy 1.00 USDJPY at 109.545 at price 109.545
2020.01.24 00:54:50 Nakane-trade1.0 USDJPY,M1: Now 2020.01.24 09:54:50 Bid 109.545 Ask 109.547
もし、前にティックデータが9時50分29秒にあったとして9時50分37秒とで大きな値段の乖離がある場合にはデータの信頼性は落ちるかもしれません。
もちろん、両者ともに手数料は変更は可能になっています。
Tick Data Suite 手数料変更画面
Tickstory 手数料変更画面
こちらは2か所変更が必要でした。 基本手数料入力と手数料の種類を0に |
変更後のTickstoryのデータはこちら
変更後は、なぜかレートが違う部分があり、まったく同じ結果にはなりませんでしたが同じような結果になりました。
夏時間と冬時間の対応
Tick Data Suite
以下の設定を変えることでTickstoryと同じように日本時間(UTC+9)で検証できました。
GMTオフセットを0 DSTを無しに |
協定世界時の略称はUTCである
Tickstory
こちらはUTCなので夏時間対応はする必要はなくそのまま使用できます。
今までの検証から私が使用しているAxioryでは手数料が高すぎて利益どころかマイナスになることが分かりました。では手数料のほとんどかからない国内のFX口座で取引した場合を検証してみたいと思います。
「取引コスト(スプレッドなど)で比べる」を含む5項目 ... - ザイFX!
上記のサイトを参考として10万通貨コスト1ドルとします。
どちらも期間は半年(2019/7/25-2020/1/28)、通貨はもちろんUSDJPY
9時50分30秒で買、9時54分50秒で手仕舞います。
9時55分00秒で売、9時59分30秒で手仕舞いますが売りのところですがTick Data Suiteのティックデータでは大きなドローダウンがあることに気づきました。クローズの処理で9時59分30秒から10時の間で30秒間、価格が動かなかったことが原因のようです。なので10秒ほどクローズの処理をどちらも早めました。こちらは過去データの検証の際の現象で、実際の運用では9時59分30秒と設定したらその時間にクローズされますのでこのような大きなドローダウンは起きないだろうとお考え下さい。
241 | 2020.01.13 00:55 | sell | 121 | 1.00 | 109.586 | 0.000 | 0.000 | ||
242 | 2020.01.14 00:59 | close | 121 | 1.00 | 110.154 | 0.000 | 0.000 | -525.50 | 9590.69 |
Tick Data Suite EAを+9で設定して検証 GMTオフセットを0、DSTを無し、手数料ベース1に設定
9時50分30秒で買、9時54分50秒で手仕舞い 結果
勝率58.46%、プロフィットファクタ1.47
9時55分00秒で売、9時59分20秒で手仕舞い 結果
勝率51.15%、プロフィットファクタ1.12
Tickstory EAを+9で設定して検証 基本手数料1、手数料の種類0に設定
2019/11/04-2020/1/28 USDJPY
9時50分30秒で買、9時54分50秒で手仕舞い 結果
勝率58.46%、プロフィットファクタ1.50
9時55分00秒で売、9時59分20秒で手仕舞い 結果
勝率51.15%、プロフィットファクタ1.12
ほぼ同じような結果になりました!
そして半年の結果からですがこのEAを使い続ければ資金が増えるということが確認いただけたと思います。ただし、こちらの記事でも記載したように手数料がほとんどかからない業者を使う必要があります。