EA開発を頑張る人:
バックテストではいい成績なのに結果が出ない。
ロジックに間違いはないはず…
他に考えられる原因は無いかな?
✔ 本記事の内容
最近はシェア争いで手数料(スプレッド)を引き下げる業者が増えてきました。
1pips以下であっても取引回数が増えると無視できない金額になります。
本記事ではスプレッドが自動売買の成績に与える影響について検証。
EA開発者向けに指定スプレッド以上で取引しないようにする方法も紹介します。
✔ 以下の悩みを解決
・自作したEA開発でいまいち成績が出ない
・証券会社を選ぶ際の参考にしたい
✔ 記事の信頼性
プログラミング経験ゼロからツール開発を初めて7年。
ブログでは開発経験を活かしたEA開発講座を投稿しています。
-
無料ソフトを使ったFX自動売買ツールの作り方【MT4で自作EA】
続きを見る
最近ではTwitterでトレード分析を発信。
20時、NY市場の分析です。
11ペアでトレンド発生、5ペアを抜粋。 #FX◎買い目安
ユーロ円:127.0
ポンド円:145.0
ユーロドル:1.210
ポンドドル:1.381
豪ドルドル:0.773
◎売り目安
該当なし想定レンジ、省略ペアは以下参照。https://t.co/0gBuOPIou5
— HAZU@FX分析配信用 (@Hazu26048962) February 15, 2021
1.バックテストでスプレッドの影響を検証
EAは 自作EA用のサンプルソースコード で公開しているものを使用します。
トレンドフォロー型、エントリーからの利確幅は30pips,損切幅は20pipsです。
MT4のバックテスト結果がマイナスになるまでスプレッドを広げていきます。
0pips=現在のスプレッドになってしまうので0.1pipsからのスタートです。
・テスト条件
通貨ペア:ドル円
モデル:全ティック
時間軸:M15
スプレッド:0.1、0.3、0.5、0.7、1.1
期間:2014.5.01-2020.4.22
初期資金:100万円
・テスト結果
スプレッド : 0.1pips 取引回数:4689 結果:+183万円
全体的に右肩上がりで安定しています。
最近のレンジ相場は逆風ですがスプレッドが狭ければ戦えるようです。
スプレッド : 0.3pips 取引回数:4689 結果:+136万円
+0.2pipsで利益が75%まで減少しています。
チャート形状は変わっているようには見えません。
スプレッド : 0.5pips 取引回数:4689 結果:+89万円
多くのFX業者が提供しているスプレッドが0.5pipsかと思います。
5年で+89%なので利回りは問題ありませんが後半が停滞しているのが気になります。
スプレッド : 0.7pips 取引回数:4689 結果:+42万円
いよいよ利益が出ているとは言い辛いレベルになってきました。
早朝はこれ位のスプレッドが珍しくないため考慮する必要がありそうです。
スプレッド : 1.1pips 取引回数:4689 結果:-50万円
完全にマイナスになってしまったので検証は終了です。
それでも2016年は利益が出ており、強いトレンドが発生していたことが分かります。
米国の大統領選挙や英国のブクレジットで相場が荒れていた時期ですね。
・結論:スプレッドは勝率に大きく影響する
テスト結果をグラフにまとめると以下のようになりました。
1日に複数回トレードするEAであればスプレッドを考慮すべきということでしょう。
予想外だったのはスプレッドと利益が比例関係を持っていたことです。
スプレッドが広がるにつれ加速度的に利益が減少するものと考えていました。
今回は一律でスプレッドを広げることで、「許容度」をチェックしています。
結果を見る限り0.8pipsがサンプルEAのスプレッド許容度ということになります。
実際はスプレッドは変動しますが、EAの良し悪しを測る材料にはなります。
1pips以上でも安定して利益を上げられるロジックであれば安心ですね!
2.スプレッド幅を制限する売買ロジック
今回使用したサンプルEAは取引条件でスプレッド幅を制限することが可能です。
現在の設定は PIP<=100 (10pips以下) でほぼ機能していない状況です。
ここを PIP<=8(0.8pips以下)に変更しておけば良いでしょう。
MarketInfo()関数で簡単に組み込めるのでお手持ちのEAでも設定してみてください!
command //------------------------------------------------------------------------------------ // 4. ordersend : ポジション構築 //------------------------------------------------------------------------------------ void ordersend(){ int res = 0; double BID = MarketInfo(rcur,MODE_BID); double ASK = MarketInfo(rcur,MODE_ASK); double PIP = MarketInfo(rcur,MODE_SPREAD); //売り指示 if(result==-1&&PIP<=100){ res = OrderSend(rcur,OP_SELL,0.5,BID,100,ASK+0.2,ASK-0.4,"Short",MAGICMA,0,clrRed); Sleep(3000); } //買い指示 else if(result==1&&PIP<=100){ res = OrderSend(rcur,OP_BUY,0.5,ASK,100,BID-0.2,BID+0.4,"Long",MAGICMA,0,clrRed); Sleep(3000); } }
3.自動売買に強い証券会社
本検証でスプレッドの影響が勝率に与える影響は無視できないことが分かりました。
当然ながら証券会社もこだわって選びたいところです。
きちんと選ばないと不利な状況でトレードを強いられる可能性があります。
自動売買と相性の良い証券会社
筆者はメインでFXTF、サブで外為ファイネストを使っています。
EAとの相性があるので使い分けができるとベストです。
以下の記事でMT4対応の証券会社をまとめています。
-
MT4でFX自動売買できる国内証券会社おすすめ。EA開発者が徹底比較
続きを見る
4.まとめ
本記事ではスプレッドが取引に与える影響を調査しました。
また、一定以上のスプレッドで取引しないロジックの作成方法を紹介しました。
以上、参考になれば幸いです。