見出し画像

MT4/MQLソースサンプル:スプレッド(askとbidの差)が一定値以下のみ動かす

処理内容

スプレッド開いていてる場合には~~~したくない!といったニーズがあると思います。
スプレッド開いてる時にオーダーしたくない、決済したくない、ログ出力したくない、、、などなど
この場合のコード記述の仕方を説明します。

そもそもなんですが、取引会社によって多少差はありますが
スプレッドって基本的に可変です。
普段は0.1pipsしか離れていなくても、オーストラリア市場とか
FOMC発表直前とかに開いたりします。
この、スプレッドが開くタイミングは特殊な値動きなので
特定の動作(エントリーとか)をしたくない!ってのにつながるんですね。

ではコードです。

無料ソースコード

■グローバル部分のコード
グローバル変数にスプレッドの固定数値をpipsで設定します。
ソースのどこのイベント内でも無い一番上に記述してください。この場合、5pipsに設定しています。

//グローバル領域に任意のスプレッドpips値を設定
int maxspread=5;

■呼び出し側のコードです。
呼び出したいタイミングに合わせてOnTick()、OnInit()とかOnTimer()の中で記述してみてください。
例の場合ですと、スプレッドが5pips以下の時のみやりたい処理を記述することになります。

if( ((Ask-Bid)/AdjustPoint(Symbol())) < maxspread )
{

//spredが一定値以下の時に動かしたい挙動をここに記述

}

以上でございます。

間違い・アドバイスなどあればご連絡くださいませ。

いいなと思ったら応援しよう!