【MQL4勉強プログラミング】EAで選択した注文の決済日時を取得する方法は?

ザフナーラボブログ

OrderCloseTime()関数は、選択した注文の決済日時を取得するために使用します。

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

datetime OrderCloseTime();

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

戻り値

選択した注文の決済日時を返します。

返された値が「0」ではなかった場合は、選択した注文が既に決済されていることを表します。

保有ポジション(=未決済注文)や待機注文を選択した場合は、「0」が返されます。

したがって、OrderCloseTime()関数の戻り値が「0」か否かを確認することによって、選択した注文が未決済か否かを判別することができます。

注意点

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

  • OrderSelect()関数の詳細については「こちら」を参照してください。
  • 選択した注文の約定日時を取得したい場合は「こちら」を参照してください。

具体例

選択した注文が未決済であれば、保有ポジションを決済する場合には、以下のように記述します。


for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
     if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == true)
       {
         if(OrderCloseTime() == 0)
           {
             bool Closed = OrderClose(OrderTicket(),OrderLots,OrderClosePrice(),
                                      10,clrMagenta);
           }
       }
   }