OrderType()関数は、選択した注文の種別(指値買い、成行買いなど)を取得するために使用します。
OrderType()関数は、以下のように定義されています。
int OrderType();
OrderType()関数には引数がないので、()内には何も記述しません。
戻り値
以下の表に従って、選択した注文の種別が返されます。
OP_BUY | 買い注文 | |
OP_SELL | 売り注文 | |
OP_BUYLIMIT | 買い指値の待機注文 | |
OP_SELLLIMIT | 売り指値の待機注文 | |
OP_BUYSTOP | 買い逆指値の待機注文 | |
OP_SELLSTOP | 売り逆指値の待機注文 |
注意点
OrderType()関数を使用するためには、あらかじめOrderSelect()関数で注文を選択していなければなりません。
- 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);
}
}
}
}
……
}
- for()文の詳細については「こちら」を参照してください。
- OrdersTotal()関数の詳細については「こちら」を参照してください。
- OrderClose()関数の詳細については「こちら」を参照してください。
- OrderTicket()関数の詳細については「こちら」を参照してください。
- OrderLots()関数の詳細については「こちら」を参照してください。
- OrderClosePrice()関数の詳細については「こちら」を参照してください。