MT4のEAで指定のスプレッドより大きいときは取引をしない

スポンサーリンク

はじめに

MT4で自動売買をしていますが、早朝や指標の発表時にスプレッドが広がって困ることがあります。

スプレッドが広がっている時に取引をしないためには、取引の時刻を指定することも出来ますが他の方法で実装したので紹介します。

ソースコード

ソースコードは下の通りです。

extern int MaxSpread = 4;

int start()
{
    if(Ask - Bid >= MaxSpread * Point){
        return(0);
    }
}

「MaxSpread」というのは、このスプレッド以上の時は取引をしないという設定値です。

私の使っているOANDAでは基本的にドル円のスプレッドは0.003円なのでスプレッドが0.004円以上の時は取引をしないために「 MaxSpread = 4」と設定をしています。

start()内の「Point」というのは0.1pipsつまり、ドル円なら100.000円のように小数第3位が最低表示桁なので「Point = 0.001」となり、ユーロドルなら1.10000のように小数第5位が最低表示桁なので「Point = 0.00001」となります。

start()内の

    if(Ask - Bid >= MaxSpread * Point){
        return(0);
    }

の解説をしておくと、「もしAsk(買値)とBid(売値)の差つまりスプレッドが4 × 0.001以上ならばreturnする」ということになります。

returnするとstart()ないの処理はすべて飛ばされ、その後新たにTickが更新されれば再度start()内の処理が走ります。

スプレッド拡大時を避けたい場合はぜひご活用下さい。

おすすめの書籍

MT4で自動売買をするのに役に立つ2冊です。

EAを組んだり、カスタムインジケータの作成には、この2冊で十分かと思います。

私自身これらを使って勉強しましたので、ぜひご活用ください。

コメント

タイトルとURLをコピーしました