MT4/MQLソースサンプル:スプレッド(askとbidの差)が一定値以下のみ動かす
処理内容
スプレッド開いていてる場合には~~~したくない!といったニーズがあると思います。
スプレッド開いてる時にオーダーしたくない、決済したくない、ログ出力したくない、、、などなど
この場合のコード記述の仕方を説明します。
そもそもなんですが、取引会社によって多少差はありますが
スプレッドって基本的に可変です。
普段は0.1pipsしか離れていなくても、オーストラリア市場とか
FOMC発表直前とかに開いたりします。
この、スプレッドが開くタイミングは特殊な値動きなので
特定の動作(エントリーとか)をしたくない!ってのにつながるんですね。
ではコードです。
無料ソースコード
■グローバル部分のコード
グローバル変数にスプレッドの固定数値をpipsで設定します。
ソースのどこのイベント内でも無い一番上に記述してください。この場合、5pipsに設定しています。
//グローバル領域に任意のスプレッドpips値を設定
int maxspread=5;
■呼び出し側のコードです。
呼び出したいタイミングに合わせてOnTick()、OnInit()とかOnTimer()の中で記述してみてください。
例の場合ですと、スプレッドが5pips以下の時のみやりたい処理を記述することになります。
if( ((Ask-Bid)/AdjustPoint(Symbol())) < maxspread )
{
//spredが一定値以下の時に動かしたい挙動をここに記述
}
以上でございます。
間違い・アドバイスなどあればご連絡くださいませ。