待機注文を取り消してくれるOrderDelete()関数(MQL4)

関数OrderDelete()

待機注文(新規指値注文、新規逆指値注文)を削除、取り消します。

書式

bool  OrderDelete(
	int        ticket,      // 待機注文のチケットを指定
	color      arrow_color  // 矢印カラー
	);

引数

int Ticket;

bool res = OrderDelete(
	Ticket,      // 買、又は売の待機注文のチケットを指定する
	clrNONE  // 矢印コード
	);
if(!res){
	Print(GetLastError());
}

戻り値

if(!res){
	Print(GetLastError());
}else{
	Print("待機注文の削除成功");
}

サンプル

下記はサンプルの実行結果の画像
画像下から
待機注文(逆指値買注文)の発注
待機注文(逆指値買注文)の取り消し

//グローバル変数
extern int MagicNumber = 12345;
int buyPendingTicket = 0;
int flag = 0;
int slippage = 30;  //30pointを指定:1point=0.1pips換算_Point

void OnTick(){

	//買逆指値注文(待機注文)
	if(flag == 0){
		buyPendingTicket = OrderSend(
		Symbol(),OP_BUYSTOP,MarketInfo(Symbol(),MODE_MINLOT),
		Ask+(1000*_Point),slippage,Ask+(1000*_Point)-(500*_Point),Ask+(1000*_Point)+(500*_Point),
		NULL,MagicNumber,0,clrNONE
		);   
		flag =1;
	}

	if(flag == 1){
	//待機注文削除 OP_BUYSTOP
	if( OrderSelect(buyPendingTicket,SELECT_BY_TICKET,MODE_TRADES) 
			&& OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber){
				
		bool	resDelete = OrderDelete(buyPendingTicket,clrNONE);
		if( resDelete == false ){
				Print("オーダーデリートエラー:エラーコード=",GetLastError());
		} 
	}else{
		Print("オーダーセレクトエラー:エラーコード=",GetLastError());
	}
		flag=2;
	}
}

関数OrderSelect(),関数OrderSend(),関数OrderMagicNumber(),関数OrderSymbol()

シェアする

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

フォローする