求助,mql5中,EA,多个持仓,怎么调用每个持仓的订单号和价格呢?
yuliang0898:
position是一个交易品种所有order的合并计算,你要像一个一个获得得用order求助,mql5中,多个持仓,怎么调用每个持仓的订单号和价格呢?有需要对具体的单进行操作,不知道怎么实现? 比如:对某个持仓单进行减一半的仓操作,就需要确定是哪个持仓单。
我试用下面代码读出部分数据,不是每个。。。,需要怎么弄呢?
if(PositionSelect(_Symbol)==true)
{
double x=PositionGetDouble(POSITION_PRICE_OPEN); //读出持仓价格,只读出第一个持仓单价格
printf(DoubleToString(x,Digits()) );
}
if(PositionSelect(_Symbol)==true)
{
long y=PositionGetInteger(POSITION_TICKET) ; //读出订单号码,只读出第一个订单号
printf(DoubleToString(y,Digits()) );
}
xkyup:
position是一个交易品种所有order的合并计算,你要像一个一个获得得用order
order读的是挂单吧,不是持有单,mql5的position是一个交易品种所有order的合并计算,你要像一个一个获得得用order
ulong ticket=0; long magic=0; int total=PositionsTotal(); for(int i=total-1;i>=0;i--) { if((ticket=PositionGetTicket(i))>0) { if(PositionGetInteger(POSITION_MAGIC)==magic && PositionGetString(POSITION_SYMBOL)==Symbol()) { double op=PositionGetDouble(POSITION_PRICE_OPEN); double lots=PositionGetDouble(POSITION_VOLUME); //... your code } } }
Ziheng Zhuang:
写的很规范啊,呵呵
我不是专业的程序员,所以是遇到问题才一个一个的解决,先试着套用看看,还有一些条件。
求助,mql5中,多个持仓,怎么调用每个持仓的订单号和价格呢?有需要对具体的单进行操作,不知道怎么实现? 比如:对某个持仓单进行减一半的仓操作,就需要确定是哪个持仓单。
我试用下面代码读出部分数据,不是每个。。。,需要怎么弄呢?
if(PositionSelect(_Symbol)==true)
{
double x=PositionGetDouble(POSITION_PRICE_OPEN); //读出持仓价格,只读出第一个持仓单价格
printf(DoubleToString(x,Digits()) );
}
if(PositionSelect(_Symbol)==true)
{
long y=PositionGetInteger(POSITION_TICKET) ; //读出订单号码,只读出第一个订单号
printf(DoubleToString(y,Digits()) );
}