请教大师,返回最近的未平仓的定单的开仓价格,应如何写代码!请大师帮助!

 

请教大师,返回最近的未平仓的定单的开仓价格,应如何写代码!请大师帮助!

感谢!

 
int Get_OpenTime_Max() {
	int i, n, ticket;
	datetime max=0, x;

	n = OrdersTotal();
	if (n == 0)
		return(-1);
	for (i=0; i<n; i++) {
		if (OrderSelect(i, SELECT_BY_POS) == false)
			continue;
		x = OrderOpenTime();
		if (x > max) {
			ticket = OrderTicket();
			max = x;
		}
	}
	return(tacket);
}

int start() {
	int tacket;
	double op;
	
	tacket = Get_OpenTime_Max();
	if (tacket == -1) {
		Print("错误!没有未平仓的定单。");
		return(0);
	}
	if (OrderSelect(ticket, SELECT_BY_TICKET) == false) {
		Print("错误!OrderSelect() fail. errno=", GetLastError());
		return(-1);
	}
	op = OrderOpenPrice();
	Print("最近的未平仓的定单的开仓价格=", DoubleToStr(op, 5));
	return(0);
}
 

感谢呀 论坛好人呀 祝你多多赚钱! 多多发财!万事如意呀!

 
y2k_connect 大师你好! 请问您给出的代码中的第一段程序是什么意思,函数Get_OpenTime_Max() 有何作用呀?请帮我说明一下好吗?因为我把您的这段代码镶嵌到我的程序中,我原来的程序不开仓交易了!请帮助!
 
hooyisl 写道 >>
y2k_connect 大师你好! 请问您给出的代码中的第一段程序是什么意思,函数Get_OpenTime_Max() 有何作用呀?请帮我说明一下好吗?因为我把您的这段代码镶嵌到我的程序中,我原来的程序不开仓交易了!请帮助!


"返回最近的未平仓的定单的开仓价格"

Get_OpenTime_Max()函数比较所有未平定单的开仓时间,返回最近一次开仓的定单编号。

然后在start()中,根据Get_OpenTime_Max()返回结果,取定单的开仓价格。最后用Print()打印“返回最近的未平仓的定单的开仓价格”,供你测试。


你不能简单的嵌入我提供的全部代码,因为那样的话会,程序会出现2个start()函数,必然发生会冲突。

 
hooyisl 写道 >>

请教大师,返回最近的未平仓的定单的开仓价格,应如何写代码!请大师帮助!

感谢!

doubloe price;

for(int i=orderstota()l-1;i>=0;i--)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if( OrderSymbol()!=Symbol() ||OrderMagicNumber()!=MAGIC ) continue;

price=orderopenprice;

break;

}

原因: