関数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