【MQL4勉強プログラミング】int型・long型・bool型の口座情報を取得する方法

ザフナーラボブログ

AccountInfoInteger()関数は、int型・long型・bool型の口座情報を取得するために使用します。

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

long AccountInfoInteger(
int property_id
);

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

  • int property_id
    以下の表に従って、取得したい口座情報を指定します。

    指定する値
    取得する情報
    ACCOUNT_LOGIN 取引口座の口座番号
    ACCOUNT_TRADE_MODE トレードモード
    ACCOUNT_LEVERAGE 取引口座に設定されている最大レバレッジ
    ACCOUNT_LIMIT_ORDERS 発注することのできる待機注文の最大数
    ACCOUNT_MARGIN_SO_MODE 取引口座の強制ロスカット値を算出する計算方法の種類
    ACCOUNT_TRADE_ALLOWED 取引口座でトレードを行うことが許可されているかどうか
    ACCOUNT_TRADE_EXPERT 取引口座でEAを稼働させることが許可されているかどうか

    引数に「ACCOUNT_TRADE_MODE」を指定した場合は、「0」~「2」が返されますが、それぞれの内容は、以下の表のとおりです。

    返される値
    内 容
    デモ口座
    コンテスト口座
    リアル口座

    引数に「ACCOUNT_MARGIN_SO_MODE」を指定した場合は、「0」又は「1」が返されますが、それぞれの内容は、以下の表のとおりです。

    返される値
    内 容
    証拠金維持率に基づいて計算
    余剰証拠金額に基づいて計算

具体例

AccountInfoInteger()関数で取得できる口座情報を「ターミナルウィンドウ」に表示させたい場合は、以下のように記述します。


//口座番号
Print(“Account number is “,
      AccountInfoInteger(ACCOUNT_LOGIN));
//最大レバレッジ
Print(“Account leverage is “,
      AccountInfoInteger(ACCOUNT_LEVERAGE));
//最大待機注文数
Print(“Max pending order is “,
      AccountInfoInteger(ACCOUNT_LIMIT_ORDERS));

//トレードモード
if(AccountInfoInteger(ACCOUNT_TRADE_MODE) == 0)
  {
   Print(“Account mode is DEMO.”);
  }
else if(AccountInfoInteger(ACCOUNT_TRADE_MODE) == 1)
       {
        Print(“Account mode is CONTEST.”);
       }
else if(AccountInfoInteger(ACCOUNT_TRADE_MODE) == 2)
       {
        Print(“Account mode is REAL.”);
       }

//強制ロスカット値
if(AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE)
   == 0)
  {
   Print(“The stop out level is specified
         in percentage.”);
  }
else if(AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE)
        == 1)
       {
        Print(“The stop out level is specified
              in monetary terms.”);
       }

//トレードの許可
if(AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)
   == true)
  {
   Print(“Trade for this account is permitted.”);
  }
else if(AccountInfoInteger(ACCOUNT_TRADE_ALLOWED)
        == false)
       {
        Print(“Trade for this account is
              prohibited.”);
       }

//EAの許可
if(AccountInfoInteger(ACCOUNT_TRADE_EXPERT)
   == true)
  {
   Print(“Trade by EA is permitted
         for this account.”);
  }
else if(AccountInfoInteger(ACCOUNT_TRADE_EXPERT)
        == false)
       {
        Print(“Trade by EA is prohibited
              for this account.”);
       }
  • Print()関数の詳細については「こちら」を参照してください。