スプレッド検査関数 checkSpread

MetaTrader 4
GogoJungle
2019/08/02 21:58
61

スプレッドが規定値以下であるかを確認する関数です。
発注前に実行することでスプレッドが拡大した状態でのエントリーを避けることができます。

bool checkSpread(
double max_spread_pips,
string symbol=NULL
);

パラメータ
max_spread_pips
許容する最大スプレッド値。
単位はpips単位で指定。

symbol
スプレッドを判定する通貨ペア名を指定。
このパラメータは省略可能です。
省略された場合にはプログラムが適用されているチャートの通貨ペアにて計算が行われます。

戻り値
現在のスプレッドが規定値以下であればtrue, 規定値を超えていればfalse

ソースコード

bool checkSpread(double max_spread_pips, string symbol=NULL){
// 通貨ペアの指定が無かった場合はチャートの通貨ペアで計算
if(symbol == NULL){
symbol = Symbol();
}

// スプレッドを取得
double spread = MarketInfo(symbol, MODE_SPREAD);

// 単位を揃える
if(Digits == 3 || Digits == 5){
max_spread_pips *= 10;
}

// スプレッド判定
if(spread > max_spread_pips){
return(false);
}

return(true);
}

サンプル1

#property copyright “Copyright 2016, gogojungle”
#property link “http://labo.fx-on.com”
#property version “1.00”
#property strict

extern int MaxSpread = 5; //最大スプレッド(pips単位)

void OnTick(){
/* ---------------
各種処理
--------------- */

if(checkSpread(MaxSpread) == true){
// 発注処理
}
}

bool checkSpread(double max_spread_pips, string symbol=NULL){
// 通貨ペアの指定が無かった場合はチャートの通貨ペアで計算
if(symbol == NULL){
symbol = Symbol();
}

// スプレッドを取得
double spread = MarketInfo(symbol, MODE_SPREAD);

// 単位を揃える
if(Digits == 3 || Digits == 5){
max_spread_pips *= 10;
}

// スプレッド判定
if(spread > max_spread_pips){
return(false);
}

return(true);
}

サンプル2
複数通貨で取引する場合など、特定の通貨ペアでスプレッドの確認を行うには第2引数に通貨ペア名を指定する。

#property copyright “Copyright 2016, gogojungle”
#property link “http://labo.fx-on.com”
#property version “1.00”
#property strict

extern int MaxSpread = 5; //最大スプレッド(pips単位)

void OnTick(){
/* ---------------
各種処理
--------------- */

if(checkSpread(MaxSpread, “EURUSD”) == true){ // 注釈1
// 発注処理
}
}

bool checkSpread(double max_spread_pips, string symbol=NULL){
// 通貨ペアの指定が無かった場合はチャートの通貨ペアで計算
if(symbol == NULL){
symbol = Symbol();
}

// スプレッドを取得
double spread = MarketInfo(symbol, MODE_SPREAD);

// 単位を揃える
if(Digits == 3 || Digits == 5){
max_spread_pips *= 10;
}

// スプレッド判定
if(spread > max_spread_pips){
return(false);
}

return(true);
}

注釈1 この行は全ブローカー対応に相応しくない書き方で書かれています。
参考:modifySymbol

CheckSpread.zip

コメント

関連項目

カテゴリ
投稿内容
新着順
投稿者
閲覧数
コメント
お気に入り
いいね
検索結果がありません。