【MQL4定数】注文執行モードの定数(ENUM_SYMBOL_TRADE_EXECUTION)

【辞書】MQLリファレンス

注文執行モードの定数

注文執行の定数は、証券会社の注文執行モードを調べるときに使用されます。

主に、SymbolInfoInteger関数で使用されます。

それぞれ、SymbolInfoInteger関数の SYMBOL_TRADE_EXEMODEの返り値として使用されます。

 

注文執行モードの定数(ENUM_SYMBOL_TRADE_EXECUTION)

 

定数説明
SYMBOL_TRADE_EXECUTION_REQUESTリクエストモード
(提示された価格で約定)
SYMBOL_TRADE_EXECUTION_INSTANT即時執行モード
(約定価格を最優先)
(NDD方式)
SYMBOL_TRADE_EXECUTION_MARKETマーケットモード
(約定を最優先)
(DD方式)

注文執行モードの定数の使い方

主に、SymbolInfoInteger関数で使用されます。

それぞれ、SymbolInfoInteger関数の SYMBOL_TRADE_EXEMODEの返り値として使用されます。

ENUM_SYMBOL_TRADE_EXECUTION型の変数を作り、その変数にSymbolInfoIntegerの返り値を代入しましょう。

例えば、以下のように使用します。

SymbolInfoIntegerの返り値を ENUM_SYMBOL_TRADE_EXECUTION型にキャスト(型変換)し、変数に代入しています。

  //SymbolInfoInteger関数
  //注文執行モード情報を取得
  ENUM_SYMBOL_TRADE_EXECUTION symbolTradeExecution = (ENUM_SYMBOL_TRADE_EXECUTION)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_EXEMODE);

 

返り値は ENUM_SYMBOL_TRADE_EXECUTION型です。

 

サンプルプログラム

以下は、現在の通貨ペアの注文執行モードを取得し、チャート上にコメントとして表示するサンプルプログラムです。

//+------------------------------------------------------------------+
//| サンプル:注文執行モードの取得と表示                              |
//+------------------------------------------------------------------+
void OnStart()
{
   // 注文執行モードを取得
   ENUM_SYMBOL_TRADE_EXECUTION execMode = (ENUM_SYMBOL_TRADE_EXECUTION)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_EXEMODE);

   string execModeStr = "";

   // 取得した値に応じて文字列を設定
   switch(execMode)
   {
      case SYMBOL_TRADE_EXECUTION_REQUEST:
         execModeStr = "リクエストモード(提示された価格で約定)";
         break;
      case SYMBOL_TRADE_EXECUTION_INSTANT:
         execModeStr = "即時執行モード(約定価格を最優先 / NDD方式)";
         break;
      case SYMBOL_TRADE_EXECUTION_MARKET:
         execModeStr = "マーケットモード(約定を最優先 / DD方式)";
         break;
      default:
         execModeStr = "不明な執行モード";
         break;
   }

   // 結果をコメントとして表示
   Comment("通貨ペア: ", _Symbol, "\n",
           "注文執行モード: ", execModeStr, "\n",
           "定数値: ", IntegerToString((int)execMode));

   // エキスパートログにも出力
   Print("通貨ペア: ", _Symbol, " / 注文執行モード: ", execModeStr);
}

 

このプログラムでは、SymbolInfoInteger関数でSYMBOL_TRADE_EXEMODEを指定し、現在の通貨ペアの注文執行モードを取得しています。取得した値をswitch文で判定し、対応する説明文字列をチャート上に表示します。

 

【補足】注文執行モードの定数の列挙型(ENUM_SYMBOL_TRADE_EXECUTION)

注文執行モードの定数は、ENUM_SYMBOL_TRADE_EXECUTION​という列挙型に含まれています。

列挙型は、定数群をひとまとめにしたものです。

以下のように使います。

ENUM_SYMBOL_TRADE_EXECUTION symbolTradeExecution = SYMBOL_TRADE_EXECUTION_INSTANT;

上記のようにプログラムすると、symbolTradeExecution変数に SYMBOL_TRADE_EXECUTION_INSTANTの数値が代入されます。