アカウントの強制ロスカットモードの定数
アカウントの強制ロスカットモードの定数は、強制ロスカットの判定方法を調べたいときに使用されます。
主に、AccountInfoInteger関数で使用されます。
それぞれ、AccountInfoInteger関数の ACCOUNT_MARGIN_SO_MODEの返り値として使用されます。
アカウントの強制ロスカットモードの定数(ENUM_ACCOUNT_STOPOUT_MODE)
| 定数 | 説明 |
| ACCOUNT_STOPOUT_MODE_PERCENT | 余剰証拠金維持率(%)で判定 |
| ACCOUNT_STOPOUT_MODE_MONEY | 余剰証拠金で判定 |
アカウントの強制ロスカットモードの定数の使い方
主に、AccountInfoInteger関数で使用されます。
それぞれ、AccountInfoInteger関数の ACCOUNT_MARGIN_SO_MODEの返り値として使用されます。
ENUM_ACCOUNT_STOPOUT_MODE型の変数を作り、その変数にAccountInfoInteger関数の返り値を代入しましょう。
例えば、以下のように使用します。
AccountInfoInteger関数の返り値を ENUM_ACCOUNT_STOPOUT_MODE型にキャスト(型変換)し、変数に代入しています。
//AccountInfoInteger関数
//アカウントの強制ロスカットの判定方法を取得
ENUM_ACCOUNT_STOPOUT_MODE accountStopoutMode = (ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);
返り値は ENUM_ACCOUNT_STOPOUT_MODE型です。
【補足】アカウントの強制ロスカットモードの定数の列挙型(ENUM_ACCOUNT_STOPOUT_MODE)
アカウントの強制ロスカットモードの定数は、ENUM_ACCOUNT_STOPOUT_MODEという列挙型に含まれています。
列挙型は、定数群をひとまとめにしたものです。
以下のように使います。
ENUM_ACCOUNT_STOPOUT_MODE accountStopoutMode = ACCOUNT_STOPOUT_MODE_PERCENT;上記のようにプログラムすると、accountStopoutMode変数に ACCOUNT_STOPOUT_MODE_PERCENTの数値が代入されます。
サンプルプログラム
以下は、アカウントの強制ロスカットモードの定数を使って、現在のアカウントのストップアウトモードをログに出力するサンプルプログラムです。
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数 |
//+------------------------------------------------------------------+
void OnStart()
{
// アカウントの強制ロスカットモードを取得
ENUM_ACCOUNT_STOPOUT_MODE stopoutMode = (ENUM_ACCOUNT_STOPOUT_MODE)AccountInfoInteger(ACCOUNT_MARGIN_SO_MODE);
// 強制ロスカットモードに応じて表示を分岐
switch(stopoutMode)
{
case ACCOUNT_STOPOUT_MODE_PERCENT:
Print("強制ロスカットモード: 余剰証拠金維持率(%)で判定");
Print("ストップアウトレベル: ", AccountInfoDouble(ACCOUNT_MARGIN_SO_SO), "%");
break;
case ACCOUNT_STOPOUT_MODE_MONEY:
Print("強制ロスカットモード: 余剰証拠金で判定");
Print("ストップアウトレベル: ", AccountInfoDouble(ACCOUNT_MARGIN_SO_SO), " ", AccountInfoString(ACCOUNT_CURRENCY));
break;
default:
Print("不明な強制ロスカットモードです。");
break;
}
// アカウント情報も併せて表示
Print("口座通貨: ", AccountInfoString(ACCOUNT_CURRENCY));
Print("残高: ", AccountInfoDouble(ACCOUNT_BALANCE));
Print("有効証拠金: ", AccountInfoDouble(ACCOUNT_EQUITY));
Print("必要証拠金: ", AccountInfoDouble(ACCOUNT_MARGIN));
Print("余剰証拠金: ", AccountInfoDouble(ACCOUNT_MARGIN_FREE));
}このサンプルプログラムでは、AccountInfoInteger関数にACCOUNT_MARGIN_SO_MODEを指定して強制ロスカットモードを取得し、switch文で判定結果を分岐して表示しています。





