AdjustSlippage()関数

1.AdjustSlippage()関数とは

 MetaTrader4(MT4)で、注文の発注の際に、許容スリッページ数を設定するためには、例えば、以下のように記述します。


int Ticket = OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0,NULL,1845,0,Magenta);

 許容スリッページ数の設定は、OrderSend()関数の第5引数の「10」という部分ですが、その単位は「ポイント」です(「ポイント」は、変数「Point」に格納されている値と同様です。)。

  • Pointの詳細については「こちら」を参照してください。

 「ポイント」は、提示レートの最小変動単位なので、提示レートが3桁又は5桁の業者において、提示レートが2桁又は4桁の業者と同様のpips単位で許容スリッページ数の設定を行おうとすれば、OrderSend()関数の第5引数を、以下のように変更する必要があります。

  • 第5引数
    100」に変更(=10 × 10

 しかし、このような処理を逐一行うことは、煩雑であるし、また、思わぬミスを誘発しかねません。

 そこで、提示レートが小数点以下3桁又は5桁の業者においては、許容スリッページ数10を乗ずるという処理を自動的に行うようにしたものが、AdjustSlippage()関数です。

2.AdjustSlippage()関数の内容

 AdjustSlippage()関数の具体的な内容は、以下のとおりです。

AdjustSlippage Function

⑴ AdjustSlippage()関数の定義

 AdjustSlippage()関数は、以下のように定義しています。

int AdjustSlippage(
string Currency,
int Slippage_Pips
);

 各引数の意味は、以下のとおりです。

  • string Currency
    許容スリッページ数の単位調整を行う通貨ペア名を指定します。
    通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
    特定の通貨ペア名を指定せず、EA等を適用しているチャートの通貨ペアの許容スリッページ数の単位調整を行いたい場合は、「Symbol()」と記述します。
  • int Slippage_Pips
    許容スリッページ数を指定します。

⑵ AdjustSlippage()関数の解釈

 AdjustSlippage()関数の解釈を示すと、以下のようになります。

ア 戻り値を格納する変数を宣言

 許容スリッページ数の単位調整を行った結果を格納するための変数(Calculated_Slippage)を、あらかじめ宣言しています。

 OrderSend()関数においては、許容スリッページ数は整数値で指定するので、int型で宣言しています。

  • 変数の詳細については「こちら」を参照してください。

イ 提示レートの小数点以下の桁数を取得

 通貨ペアの小数点以下の桁数を、変数Symbol_Digitsに代入する。

 なお、MarketInfo()関数の前に、(int)と記述していますが、これは、以下の理由によります。

  1. AdjustSlippage()関数においては、MarketInfo()関数によって取得された値を、int型の変数である「Symbol_Digits」に格納することにしている。
  2. しかし、MarketInfo()関数の戻り値はdouble型である。
  3. そこで、キャスト演算子を用いて、double型をint型に変換している。

 なお、型変換(キャスト)及びキャスト演算子の詳細については「こちら」を参照してください。

ウ 条件分岐(その1)

 通貨ペアの小数点以下の桁数が「又は」だったら。

エ 数値を代入(その1)

 第2引数に指定した値を、変数Calculatd_Slippageに代入する。

オ 条件分岐(その2)

 通貨ペアの小数点以下の桁数が「又は」だったら。

カ 数値を代入(その2)

 第2引数に指定した値に10を乗じた値を、変数Calculated_Slippageに代入する。

キ 結果を返す

 変数Calculated_Slippageに格納されている値を返す。

3.関連ツール

『EAつくーる』
MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!
MQL言語の学習ができ、裁量トレーダーもEA開発が可能になる!?|?fx-on.com
fx-onで購入する

 MT4で作動するEAをプログラミング不要で作成するためのツールです。

特 徴

  • インジケーターを組み合わせることで、EAを簡単に作ることができます。
    インジケーターは、MT4に標準で装備されているもののほか、市販のものも使用することができます
  • EAはmq4ファイルで作成されるので、mqlの学習にも役立ちます。
  • 作成したEAの著作権は本ツールを使用してEAを作成した本人に属し、販売なども自由です
  • シンプルなロジックのEAから高度なオプション付きのEAまで、簡単に作成することができます。