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);
}
}
}
- for()文の詳細については「こちら」を参照してください。
- OrdersTotal()関数の詳細については「こちら」を参照してください。
- if()文の詳細については「こちら」を参照してください。
- OrderType()関数の詳細については「こちら」を参照してください。
- OrderClose()関数の詳細については「こちら」を参照してください。
- OrderTiclet()関数の詳細については「こちら」を参照してください。
- OrderLots()関数の詳細については「こちら」を参照してください。
- OrderClosePrice()関数の詳細については「こちら」を参照してください。