選択したポジションの注文の種類を返す関数OrderType()の使い方【MQL4】

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

シェアする

  • このエントリーをはてなブックマークに追加

フォローする