【MQL4勉強プログラミング】ポジションを保有した時の取引口座に残存する余剰証拠金額を取得

ザフナーラボブログ

AccountFreeMarginCheck()関数は、現在のレートで新規にポジションを保有した場合に、取引口座に残存する余剰証拠金額を取得するために使用します。

AccountFreeMarginCheck()関数は、以下のように定義されています。

double AccountFreeMarginCheck(
string symbol,
int cmd,
double volume
);

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

  • string symbol
    新規にポジションを保有する予定の通貨ペア名を指定します。
    通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
    特定の通貨ペア名を指定せず、EA等を適用しているチャートの通貨ペアの新規ポジションを保有した場合における取引口座の余剰証拠金額を取得したい場合は、「Symbol()」と記述します。
    Symbol()関数の詳細については「こちら」を参照してください。
  • int cmd
    新規にポジションを保有する際の注文の種別を指定します。
    注文の種別は、「OP_BUY」(=成行買い)又は「OP_SELL」(=成行売り)のいずれかで指定します。
  • double volume
    新規に保有することとなるポジションのロットサイズを指定します。

戻り値

現在のレートで新規にポジションを保有した場合に、取引口座に残存する余剰証拠金額を返します。

現在のレートで新規にポジションを保有すると、取引口座の余剰証拠金が不足する場合は、「エラー134」(=ERR_NOT_ENOUGH_MONEY)が生成されます。

具体例

新規にポジションを保有した場合に、取引口座の余剰証拠金額が不足する場合は、EAによる取引を行わないようにしたい場合は、以下のように記述します。


int start()
{
 if(AccountFreeMarginCheck(Symbol(),OP_BUY,0.1) <= 0)
   {
    return(0);
   }
 ……
 return(0);
}
  • Symbol()関数の詳細については「こちら」を参照してください。