【MQL4勉強プログラミング】EAで選択した注文のマジックナンバーを取得する方法!

ザフナーラボブログ

OrderMagicNumber()関数は、選択した注文のマジックナンバー(=各EAを識別する整数値)を取得するために使用します。

OrderMagicNumber()関数は、以下のように定義されています。

int OrderMagicNumber();

OrderMagicNumber()関数には引数がないので、()内には何も記述しません。

戻り値

選択した注文のマジックナンバーを返します。

注意点

OrderMagicNumber()関数を使用するためには、あらかじめOrderSelect()関数で注文を選択していなければなりません。

具体例

複数のEA(「EA_1」と「EA_2」とします。)を運用している場合に、特定のEA(EA_1)によって保有することになったポジションのみを決済したい場合は、以下のように記述します。


#property strict

input Magic_1 = 1111; //EA_1のマジックナンバー
……
void OnTick()
{
  ……
  for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
         {
           if(OrderMagicNumber() == Magic_1)
             {
               if(決済条件)
                 {
                   bool Closed = OrderClose(OrderTicket(),OrderLots(),
                                            OrderClosePrice(),10,clrNONE);
                 }
             }
         }
     }
  ……
}