✔ 本記事のテーマ
FX自動売買システム(EA)で考慮すべき「スプレッド」の影響
✔ 記事を読むメリット
「業界最小〇〇円!」という広告を見たことはありませんか?
最近はシェア争いで手数料(スプレッド)を引き下げる業者が増えてきました。
1pips以下であっても取引回数が増えると無視できない金額になります。
EA開発時に見落としがちなスプレッド影響の調査結果を報告します。
また、指定スプレッド以上で取引しないようにする方法を紹介します。
✔ 以下の方におすすめ
・EA開発に興味がある方
・証券会社を選ぶ際の参考にしたい方。
↓そもそも「MT4って何?」という方はこちら。
メタトレーダー(MT4)の使い方!入手方法も解説
↓サンプルEAの動かし方や評価、改編方法は以下
MT4で自作するFX自動売買システム(EA)とは?作り方を徹底解説!
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.EA開発に詰まったら
EA開発に限らず、物事に詰まったら外部の知識を頼るのが賢い選択です。
以下ではトレードとプログラミングに役立つ参考書籍やサービスを紹介します。
①書籍でトレードの勉強
基本ブログ内で完結するよう心がけていますが、以下の本があると理解が深まります。
シリーズものですがとりあえず1冊読んでみると良いかと思います。
②無料のプログラミングスクールを活用
ソースコードの理解に苦しむようであれば初級レベルのプログラミングを学びましょう。
最初の基礎ベースを身に着けるならTechAcademyがおすすめです。
TechAcademyは1週間の無料体験があるので、それで十分学べるかと思います。
4.まとめ
本記事ではスプレッドが取引に与える影響を調査しました。
また、一定以上のスプレッドで取引しないロジックの作成方法を紹介しました。
その他のロジックについて知りたい方は以下の記事を参照下さい。
>>参考:『FX自動売買システム(EA)の自作に困った際のヒント集』
以上、参考になれば幸いです。