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」が返されますが、それぞれの内容は、以下の表のとおりです。
返される値 内 容 0 デモ口座 1 コンテスト口座 2 リアル口座 引数に「ACCOUNT_MARGIN_SO_MODE」を指定した場合は、「0」又は「1」が返されますが、それぞれの内容は、以下の表のとおりです。
返される値 内 容 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()関数の詳細については「こちら」を参照してください。