求助,mql5中,EA,多个持仓,怎么调用每个持仓的订单号和价格呢?

yuliang0898  

求助,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  
yuliang0898:

求助,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()) );

  

position是一个交易品种所有order的合并计算,你要像一个一个获得得用order
yuliang0898  
xkyup:
position是一个交易品种所有order的合并计算,你要像一个一个获得得用order
order读的是挂单吧,不是持有单,mql5的
Ziheng Zhuang  
   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
           }
        }
     }
yuliang0898  
Ziheng Zhuang:

写的很规范啊,呵呵

我不是专业的程序员,所以是遇到问题才一个一个的解决,先试着套用看看,还有一些条件。

原因: