【MQL4勉強プログラミング】選択した注文の種別(指値買い、成行買いなど)を取得する方法は?

ザフナーラボブログ

OrderType()関数は、選択した注文の種別(指値買い、成行買いなど)を取得するために使用します。

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

int OrderType();

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

戻り値

以下の表に従って、選択した注文の種別が返されます。

種 別
定 数
内 容
OP_BUY
買い注文
OP_SELL
売り注文
OP_BUYLIMIT
買い指値の待機注文
OP_SELLLIMIT
売り指値の待機注文
OP_BUYSTOP
買い逆指値の待機注文
OP_SELLSTOP
売り逆指値の待機注文

注意点

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

具体例

買いポジションと売りポジションの、それぞれの決済条件に従ってポジションを決済したい場合は、以下のように記述します。


void OnTick()
{
  ……
  for(int i = OrdersTotal() - 1; i >= 0; i--)
     {
       if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
         {
           if(OrderType() == OP_BUY)
             {
               if(買い決済条件)
                 {
                   bool Closed = OrderClose(OrderTicket(),OrderLots(),
                                            OrderClosePrice(),10,clrMgenta);
                 }
             }
           else if(OrderType() == OP_SELL)
                  {
                    if(売り決済条件)
                      {
                        bool Closed = OrderClose(OrderTicket(),OrderLots(),
                                                 OrderClosePrice(),10,clrAqua);
                      }
                  }
         }
     }
  ……
}