【MQL4定数】シグナル情報の取得定数:Integer型(ENUM_SIGNAL_BASE_INTEGER)

【辞書】MQLリファレンス

シグナル情報の取得定数:Integer型

シグナル情報の取得定数:Integer型は、シグナルの情報を取得するときに使用されます。

シグナルとは、他人のエントリーポイントを表示する機能です。

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

それぞれ、SignalBaseGetInteger関数の引数として使用されます。

 

口座情報の取得定数は、Integer型の他にも、String型、Double型があります。

 

シグナル情報の取得定数:Integer型(ENUM_SIGNAL_BASE_INTEGER)

定数返り値の型説明
SIGNAL_BASE_DATE_PUBLISHEDlongシグナルの公開日時
SIGNAL_BASE_DATE_STARTEDlongチャート監視開始日時
SIGNAL_BASE_IDlongシグナルID
SIGNAL_BASE_LEVERAGElongシグナルのレバレッジ
SIGNAL_BASE_PIPSlongシグナルの利益(pips)
SIGNAL_BASE_RATINGlongシグナルのポジション比率
SIGNAL_BASE_SUBSCRIBERSlongシグナルの購読数
SIGNAL_BASE_TRADESlongシグナルの取引数
SIGNAL_BASE_TRADE_MODElongシグナルのトレードモード
(0:リアル,1:デモ,2:コンテスト)

シグナル情報の取得定数:Integer型の使い方

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

それぞれ、SignalBaseGetInteger関数の引数として使用されます。

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

  //SignalBaseGetInteger関数
  //シグナルIDを取得
  long signalBaseGetInteger = SignalBaseGetInteger(SIGNAL_BASE_ID);

 

返り値は long型です。

 

サンプルプログラム

以下は、シグナル情報の取得定数:Integer型を使って、各種シグナル情報を取得・表示するサンプルプログラムです。

//+------------------------------------------------------------------+
//| シグナル情報(Integer型)取得サンプル                              |
//+------------------------------------------------------------------+
void OnStart()
{
   // シグナルの総数を取得
   int totalSignals = SignalBaseTotal();

   if(totalSignals == 0)
   {
      Print("利用可能なシグナルがありません。");
      return;
   }

   // 最初のシグナルを選択
   if(!SignalBaseSelect(0))
   {
      Print("シグナルの選択に失敗しました。");
      return;
   }

   // シグナルIDを取得
   long signalId = SignalBaseGetInteger(SIGNAL_BASE_ID);
   Print("シグナルID: ", signalId);

   // シグナルの公開日時を取得
   long datePublished = SignalBaseGetInteger(SIGNAL_BASE_DATE_PUBLISHED);
   Print("公開日時: ", TimeToString((datetime)datePublished, TIME_DATE | TIME_MINUTES));

   // チャート監視開始日時を取得
   long dateStarted = SignalBaseGetInteger(SIGNAL_BASE_DATE_STARTED);
   Print("監視開始日時: ", TimeToString((datetime)dateStarted, TIME_DATE | TIME_MINUTES));

   // シグナルのレバレッジを取得
   long leverage = SignalBaseGetInteger(SIGNAL_BASE_LEVERAGE);
   Print("レバレッジ: ", leverage);

   // シグナルの利益(pips)を取得
   long pips = SignalBaseGetInteger(SIGNAL_BASE_PIPS);
   Print("利益(pips): ", pips);

   // シグナルのポジション比率を取得
   long rating = SignalBaseGetInteger(SIGNAL_BASE_RATING);
   Print("ポジション比率: ", rating);

   // シグナルの購読数を取得
   long subscribers = SignalBaseGetInteger(SIGNAL_BASE_SUBSCRIBERS);
   Print("購読数: ", subscribers);

   // シグナルの取引数を取得
   long trades = SignalBaseGetInteger(SIGNAL_BASE_TRADES);
   Print("取引数: ", trades);

   // シグナルのトレードモードを取得
   long tradeMode = SignalBaseGetInteger(SIGNAL_BASE_TRADE_MODE);
   string tradeModeStr;
   switch((int)tradeMode)
   {
      case 0: tradeModeStr = "リアル";     break;
      case 1: tradeModeStr = "デモ";       break;
      case 2: tradeModeStr = "コンテスト"; break;
      default: tradeModeStr = "不明";      break;
   }
   Print("トレードモード: ", tradeModeStr, " (", tradeMode, ")");
}

このサンプルでは、SignalBaseSelect関数で最初のシグナルを選択した後、SignalBaseGetInteger関数に各定数を渡してシグナル情報を取得しています。

 

【補足】シグナル情報の取得定数:Integer型の列挙型(ENUM_SIGNAL_BASE_INTEGER)

シグナル情報の取得定数:Integer型は、ENUM_SIGNAL_BASE_INTEGER​という列挙型に含まれています。

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

以下のように使います。

ENUM_SIGNAL_BASE_INTEGER signalBaseInteger = SIGNAL_BASE_ID;

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