関数OrderType()
int OrderType(); //引数なし
戻り値
選択したポジションの買?売?指値?逆指値?のオーダータイプを数値で返します。
オーダータイプは6つあります。
- 0 //買いの成行注文
- 1 //売りの成行注文
- 2 //買いの指値注文
- 3 //売りの指値注文
- 4 //買いの逆指値注文
- 5 //売りの逆指値注文
詳しくは関連記事をどうぞ。
EAの注文方法の種類を指定する定数(指値や逆指値)
サンプルコード
下記の画像はサンプルを実行したものです。
待機注文は待機している間だけ待機扱いになり、実際にポジションを持つと買い、売りに変更されます。

int BuyTicket=0;
int SellTicket=0;
if(BuyTicket==0){
BuyTicket = OrderSend(Symbol(),OP_BUYLIMIT,MarketInfo(Symbol(),MODE_MINLOT),
getAsk(Symbol())-500*_Point,30,
0,0,
"sample",12345,0,Green);
if(OrderSelect(BuyTicket,SELECT_BY_TICKET)){
Print("BuyTicketのオーダータイプは",OrderType());
}
//オーダータイプは2 OP_BUYLIMIT
}
if(SellTicket==0){
SellTicket = OrderSend(Symbol(),OP_SELLSTOP,MarketInfo(Symbol(),MODE_MINLOT),
getBid(Symbol())-500*_Point,30,
0,0,
"sample",12345,0,Green);
if(OrderSelect(SellTicket,SELECT_BY_TICKET)){
Print("SellTicketのオーダータイプは",OrderType());
}
//オーダータイプは5 OP_SELLSTOP
}
if(OrderSelect(BuyTicket,SELECT_BY_TICKET) && OrderType() == OP_BUY){
Print("BuyTicketのオーダータイプは",OrderType());
OrderClose(OrderTicket(),OrderLots(),getBid(Symbol()),30,clrNONE);
BuyTicket = 0;
}
//オーダータイプは0 OP_BUY
if(OrderSelect(SellTicket,SELECT_BY_TICKET) && OrderType() == OP_SELL){
Print("SellTicketのオーダータイプは",OrderType());
OrderClose(OrderTicket(),OrderLots(),getAsk(Symbol()),30,clrNONE);
SellTicket = 0;
}
//オーダータイプは1 OP_SELL
