【MQL4定数】通貨ペアのトレードモードの定数(ENUM_SYMBOL_TRADE_MODE)

【辞書】MQLリファレンス

通貨ペアのトレードモードの定数

通貨ペアのトレードモードの定数は、選択した通貨ペアでトレードが可能かどうか判別するときに使用されます。

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

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

 

通貨ペアのトレードモードの定数(ENUM_SYMBOL_TRADE_MODE)

 

定数説明
SYMBOL_TRADE_MODE_DISABLEDトレード禁止
SYMBOL_TRADE_MODE_LONGONLY買いトレードのみ許可
SYMBOL_TRADE_MODE_SHORTONLY売りトレードのみ許可
SYMBOL_TRADE_MODE_CLOSEONLY決済のみ許可
SYMBOL_TRADE_MODE_FULLトレード許可

通貨ペアのトレードモードの定数の使い方

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

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

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

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

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

  //SymbolInfoInteger関数
  //通貨ペアのトレードモード情報を取得
  ENUM_SYMBOL_TRADE_MODE symbolTradeMode = (ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE);

 

返り値は ENUM_SYMBOL_TRADE_MODE型です。

 

サンプルプログラム

以下は、現在の通貨ペアのトレードモードを取得し、エキスパートログに出力するサンプルプログラムです。

//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                        |
//+------------------------------------------------------------------+
void OnStart()
{
   // 現在の通貨ペアのトレードモードを取得
   ENUM_SYMBOL_TRADE_MODE tradeMode = (ENUM_SYMBOL_TRADE_MODE)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_MODE);

   // トレードモードに応じたメッセージを表示
   switch(tradeMode)
   {
      case SYMBOL_TRADE_MODE_DISABLED:
         Print(_Symbol, " はトレード禁止です。");
         break;
      case SYMBOL_TRADE_MODE_LONGONLY:
         Print(_Symbol, " は買いトレードのみ許可されています。");
         break;
      case SYMBOL_TRADE_MODE_SHORTONLY:
         Print(_Symbol, " は売りトレードのみ許可されています。");
         break;
      case SYMBOL_TRADE_MODE_CLOSEONLY:
         Print(_Symbol, " は決済のみ許可されています。");
         break;
      case SYMBOL_TRADE_MODE_FULL:
         Print(_Symbol, " はすべてのトレードが許可されています。");
         break;
      default:
         Print(_Symbol, " のトレードモードは不明です。");
         break;
   }
}

 

このサンプルでは、SymbolInfoInteger関数で現在の通貨ペアのトレードモードを取得し、switch文で各定数に応じたメッセージをエキスパートログに出力しています。

 

【補足】通貨ペアのトレードモードの定数の列挙型(ENUM_SYMBOL_TRADE_MODE)

通貨ペアのトレードモードの定数は、ENUM_SYMBOL_TRADE_MODE​という列挙型に含まれています。

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

以下のように使います。

ENUM_SYMBOL_TRADE_MODE symbolTradeMode = SYMBOL_TRADE_MODE_FULL;

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