スプレッドの違いによる影響を見極めよう!
本記事は、MT4の自動売買ツール、通称EA(エキスパートアドバイザー)について書かれています。
なぜバックテストが右肩上がりのEAを選んでいるのに、リアルになるとパフォーマンスが出ないのでしょう?
その大きな原因となるのが、「スプレッド」です。
1.スプレッドの違いによる成績比較
低スプレッド口座 VS 高スプレッド口座
以前、出品用ブローカーのスプレッド1.6pipsに合わせて、1.6pipsで開発したEAがあります。
EAのそもそもの出来はひとまず置いておき、ここは口座比較のお話しをします。
そのEAは、とあるブローカーのフォワードではプラス推移、そして出品ブローカーの高スプレッド口座で運用すると、マイナス推移となりました。
まずはこちらをご覧ください。
1.口座A(低スプレッド)
次に、こちらをご覧ください。
2.口座B(高スプレッド)
これらは、同じEA、同じ期間です。
違うのは、口座環境になります。
・口座A:低スプレッド・手数料ありの口座。
・口座B:高スプレッド・手数料なしの口座。
です。
このEAの、取引時間帯は次のようになります。
1.口座A(低スプレッド)
2.口座B(高スプレッド)
こうしてみると、1~9時・22・23時と、まんべんなく取引が行われています。
それでは、その時間帯の両口座のスプレッドを見てみましょう。
以下グラフのラインは、スプレッド平均値です。計測期間は、少々短いですが、2021年9月1~30日です。
1.口座A(低スプレッド)
1時台平均0.3、23時台0.2となっています。
ここではわかりやすく、平均値を0.3とします。
2.口座B(高スプレッド)
1時台と23時台平均が、1.8となっています。
ここではわかりやすく、1.8を平均値とします。
したがって、口座AとBの差は、1.5pipsでした。
ここで、最初の比較に戻ります。
2種類の成績は、手数料の計算をしなくて済むよう、pipsでデータを比較してみます。
1.口座A(低スプレッド)
2.口座B(高スプレッド)
2つの差は、1.3-(-0.5)で、1.8pips。
平均スプレッド測定値の差が1.5pipsでしたので、それと比較すると、誤差はあるもののある程度近い値になりました。
残りの0.3pipsの差は何かというと、測定できないので明確にはわかりません。
推測で言えば、スリッページ、配信レートの差、スプレッド差による注文シグナルのズレなどが挙げられます。
特に、注文シグナル発生のズレは大きく影響します。
・エントリーするタイミングで、エントリーできない。
・本来利確できる位置で、できない。
・損切りの位置が、早まる。
このEAロジックの場合特に、利確できる位置が変わってしまうのは、影響が大きいです。
1.5pipsも差があると、その分レートが伸びないといけません。
スキャルピングのような短期で、数pips単位で調整されたロジックになるほど、影響が大きくなります。
以上より、
・スプレッドが安く手数料がある(口座A)
・スプレッドが高く手数料がない(口座B)
2つの口座で差し引きコストが同じなら、スプレッドが安い口座の方がEA運用では有利ということができます。
まとめ
2.間違われやすいスプレッド
パフォーマンス低下の最大要因
バックテストでは好成績なのにも関わらず、いざ運用してみると痛手を受けることや、さっぱりトレードしないということがよく起こります。
その原因を探るべく研究を重ねた結果、一つの要因が大きく影響していると結論付けられました。
それは、「スプレッド」です。
とあるバックテストと、実際のブローカーのスプレッドがどうなっているかを見ていきます。
1.バックテスト例
通貨ペア:GBPAUD
スプレッド:40(4.0pips)
MT4ブローカー:A社(仮名)
一見、グラフはきれいな右肩上がりで、優秀な成績を収めてくれそうです。
これをQA(Quant Analyzer)で解析し、何時にトレードが行われているかを見てみると、このようになります。
0時台と23時台がメインでトレードされているのがわかります。
※A社は、冬GMTが+2ですので、これらのMT4時間帯(23~0時)は、日本時間の早朝、冬時間/5:00~6:59、夏時間/4:00~5:59となります。
2.スプレッド計測
それでは、この時間帯のスプレッドは、実際にどうなっているのでしょうか。
A社のスプレッドを測定してみました。すると、次のようになりました。
こちらは、とある1ヶ月の期間で、1時間毎に平均スプレッドを集計したグラフです。
表内00と23の値を見てみると、それぞれ、18.2・5.3とあります。これが平均pipsです。
ここで疑問に思われたかも知れません。
「平均が18.2と5.3だと、全くバックテストの条件と違うのでは?」
そうです。
バックテストではスプレッド40(4.0pips)でした。その値はトレードしていない多くの時間帯では通用するかも知れません。
しかし、肝心のトレードする時間帯では、全く歯が立たないということになってしまいます。
23時台であれば、5.3pipsは必要で、0時台にいたっては、18.2pipsも必要です。
0時台の18.2pipsに合わせると、どんなロジックでも歯が立たないことが容易に想像できますので、0時台のトレードは除き、23時台の5.3pipsに合わせて、5.5pipsとして再計測していきます。
3.調整後バックテスト
スプレッド5.5pipsで、0時台のトレードを省いてテストすると、次のようになります。
元々の4.0pipsバックテストを比較のために再掲します。
ご覧の通り、パフォーマンスが大きく下がってしまいました。
比較からおわかりのように、早朝スプレッド拡大が、パフォーマンスが落ちる最大の要因です。
取引時間が早朝メインにも関わらず、日中の計測スプレッドで開発してしまう。というのが、開発者でも間違えやすいポイントになります。
早朝メインでなくても、早朝にトレードが多いほど、スプレッド拡大の影響を受けます。
EAを選ぶ際には、充分に注意する必要があります。
まとめ
3.ロールオーバーは必ず誤差が出る
ロールオーバー
0時00分の前後数分間は、ロールオーバーといって、本来注文が通らない、調整時間になります。そしてロールオーバーでは、毎日必ずギャップが発生します。
このロールオーバーの時間帯は、ブローカーによってさまざまです。
正確な取引時間は、MT4から、通貨ペアごとの「仕様」で確認できます。
ロールオーバー時間帯は、本来はトレードしない時間帯ですが、バックテスト上は行われてしまいます。そこで、ロールオーバーの時間も注文制限するとどうなるか、試してみました。
具体的には、このブローカーのロールオーバー時間、23:55から0:10までの新規エントリーと決済を無しにしました。
するとこのようになりました。
元の調整バックテストが、別記事のこちらです。
前回0時台はトレードなしにしておりますので、日付が変わる前の5分間のトレードを制限しました。その結果、取引数が42回減少しました。
この評価は人それぞれで、変化は軽微と判断されるかもしれません。
日付が変わる境目では大抵、値段が飛びますので、バックテストでは比較的よくトレードが成立してしまいます。
図は、日付の境目でロングポジションを持って、値段が飛んで決済されている様子です。
これは、開発者が利用者を欺こうとしているわけではなく、MT4の仕様・ロールオーバーの存在という事情が重なって起こる、やむを得ない現象です。
これをもし、EA出品時にロールオーバーはトレードしないようにした状態で出品すると、トレードできる時にチャンスを失うということになります。また、ブローカーによって時間が異なるため、そもそもそのような制御はできません。
リアルでは、ロールオーバー時間帯でも約定している例もあります。必ず注文が通らないわけではないようです。
開発側には、機会損失にならないような設計が求められます。
そうするとバックテストで必ずリアルと誤差が出てきますので、運用側で、その点を予め念頭に置いて注意するしかありません。
ロールオーバーを含むトレードが盛んに行われるタイプのEAは、バックテスト成績よりも低い成績で見積もるようにしたほうがよさそうです。
バックテスト比較
別記事のはじめに掲載したスプレッド40(4.0pips)のバックテストと、ロールオーバー調整後のバックテスト、改めて比較してみます。
2つのバックテストを再掲します。
【スプレッド4.0pips】
【スプレッド5.5pips・0時台トレード完全無し・ロールオーバー除去】
これが、1つのバックテストから想定できる、実戦トレードの姿です。
右肩下がりとならないまでも、かなりのパフォーマンス差ではないでしょうか。
こちらは、筆者が過去に制作した朝スキャEAの比較的極端な事例でした。
実はまだ、考慮すべき点はあります。
しかしここではスプレッドの影響をわかりやすくするため、細かい解説は控えさせていただきます。
それでも、最初のバックテストそのままよりは、この考え方の方が実態に近づいていると言えるのではないでしょうか。
まとめ
4.0時台の評価をどうするか
0時台
0時台は、トレードができないから計測時は全て排除すべきか。というと、そうではありません。
スプレッドの計測結果を見れば、0時台は、ほぼトレードが期待できないと判断したほうがいいかもしれません。
しかし、実戦でもし0時台にトレードできると、明らかに他の時間帯と違うパフォーマンスが得られるのは確かです。
同じロジックのフォワードで、取引履歴の0時台とそれ以外での1年間の収益を比較すると、0時台の方が1トレードの収益平均がはるかに高くなりました。
ですので、0時台は、スプレッドが拡大していない状態でトレードができれば、高い収益が見込める絶好のチャンスと言えそうです。
別記事で計測したスプレッド例は、平均値です。グラフ上は0時台が高くなっていますが、毎日0時台が規則的に拡大するわけではありません。
拡大する時間帯がずれ、0時台が平時のスプレッドと同じ日も存在します。
1分足チャートです。
下のオシレーター部分は、スプレッドを表しています。
縦の白線が日付の境目で、0:00ですので、そこから少し進んだ部分が盛り上がっています。
この日は、1時台中盤から拡大し、2時台に収束するという具合でした。
このような例外パターンは、不定期に訪れます。
これは法則性が見出だせず、ブローカーやサーバー、日付によりバラバラで発生するようです。
このような日も存在しますので、ロジック内では、チャンスを逃さないよう、0時台を除外せずに組み立てることが一般的となっています。
バックテストを読む際には、この点も注意しなければなりません。
0時台は、成績が高まりやすいため、バックテストの表面の成績だけ見ると華やかでも、実際には0時台を多く含み、殆どトレードしないという可能性も充分あります。
好成績のバックテストを見たら、0時台を含むかどうかを疑います。
これを確認するためには、取引履歴が必要です。
取引履歴があって初めて、バックテストを正確に診断できるということになります。
変動スプレッドの注意点
少し話は逸れますが、TDSというツールで、バックテスト時に変動スプレッドを設定できます。
バックテストのスプレッド欄が「変動」となっていたら、TDSの変動設定でテストを行ったということです。変動は、リアルのスプレッドを再現できるかのような機能ですが、実はそうではありません。
変動設定をする際、設定した平均値の数pipsの範囲で変動するだけで、朝方のスプレッド急拡大急縮小には、全く対応できませんので、ご注意ください。
また変動にしていると、あたかも「ちゃんと計測しているな」という印象を持たれがちですが、表にスプレッド設定値が出てきませんので、いくらでも不正ができてしまいます。
たとえスプレッドを0.1pipsで行おうが、表には「変動」と表示されるだけです。
「変動」のバックテストと同時に「固定スプレッド」のテストが併記されていれば、その「固定スプレッド」のレポートを参照するようにしましょう。
「変動」のレポートだけでは、なんの参考にもならないというのが現状です。
まとめ
5.平時と違う、1時台・23時台のスプレッド
1時台・23時台
0時台の前後の時間帯、1時と23時。
この時間帯は、0時台の急拡大と平時をつなぐようなスプレッドの推移になり、平時よりも高くなります。
スプレッド計測グラフを再掲します。
1時台平均5.2、23時台平均が5.3pipsとなっています。
他の2~22時台平均は、3.7~4.1pipsで推移していますので、比較すると明確な差が出ています。
1.2~1.6pipsの差です。
EAのメイン取引時間帯がこの時間帯なら、平時のスプレッドではなく、該当時間帯のスプレッドでバックテストを行うべきです。そうでないと、パフォーマンスに誤差が出やすくなります。
失敗事例
稼働対象の口座のスプレッドを1.6pipsだと思い込み、それで開発をしたところ、次のような結果になりました。
このEAは、フォワードで、1時台と22~23時にトレードが多くなります。
それを、平時の1.6pipsで開発してしまいました。もし、取引が多い1時・23時台のスプレッドに合わせて開発していれば、結果は違ったかもしれません。
ちなみに、低スプレッドの口座で運用すると、このようになります。
低スプレッド口座ならプラスです。
こちらなら、なんとか1.6pipsで収まっていると判断できそうです。
稼働対象の口座の1時23時台のスプレッドは、本書執筆時点で計測すると2.0pipsが適切そうでした。
このEAが稼働していた当時のスプレッドは、計測していないので不明です。
EA自体の作りが未熟だったのもありますが、スプレッドのほんの少しの差で、大きくパフォーマンスが変わってくる可能性があります。
バックテストを見る際は、取引履歴からメインの取引時間帯を調べ、それが平時か、早朝かということだけでも情報を得て、該当時間帯のスプレッドを確認、という手順で診断。
これが、見誤らないバックテストの読み方です。
細かいスプレッドの推移
GBPAUD通貨の1時台23時台の細かい動きも見てみましょう。
スプレッドがどのような推移か、各時間帯を1分ごとに表記したグラフです。
【1時台】
1時00分~数分は、スプレッドが高いことに注意です。
時間制御で1:00にエントリーや決済をする仕様の場合、スプレッド拡大中の可能性があります。
【23時台】
23時台は、ロールオーバー時間帯を除いて集計すると、取引可能な部分の平均値がより正確にわかります。ロールオーバーの計測を含むと、平均値が上昇してしまいます。
今回の集計では説明を円滑にするため、ロールオーバーも含めています。
朝方スプレッド拡大傾向総括
こちらの動きは、GBPAUD通貨ペアに限らず、他も同様でした。
計測したブローカー数社では、いずれも同じような拡大傾向で、23時台は緩やかに拡大し、0時台が最も拡大、1時台が数分かけて急落後、緩やかに縮小、という具合でした。
変動性の口座であれば概ね同様の傾向だと推測しています。
計測した以外の口座については、確かなことはわかりませんが、
もしかしたら、0時台にそれほど拡大しないブローカーも存在するのかもしれません。ブローカーも無数にありますので、推測に留まる点はご容赦ください。
スプレッド計測で、運用レベル向上
スプレッド把握は、ご自身が稼働している口座で、常に計測しておくと確実です。
まずはメイン口座のスプレッド把握ができてないと、EAも選ぶことができません。
そして、おかしなトレードや、またはするべきポイントでトレードしなかった理由も、スプレッドをまず確認することで、見えてくることがたくさんあります。
スプレッドはウェブ検索で調べても正確には出てきません。一定期間の平均ではなく、ピンポイントの点での情報が大多数です。
また時間帯ごとの平均となると、一部の優良サイト以外ではほぼ情報はありません。
ですので、自分で計測するのが一番です。
スプレッドを計測するツールは、ウェブ検索で探すことができます。
ここではツールの解説は控えさせていただきます。
スプレッド計測によって、計測していないトレーダーと情報差をつける事ができます。
他のトレーダーと差をつけるということは、売買している向こう側の人と差をつけることに繋がります。
計測していたほうが、していないよりも一歩、有利に運用できます。
まとめ
総まとめ
この記事が気に入ったらサポートをしてみませんか?