MQL5获取订单持仓价格错误

 
for(int i=0; i<total; i++)//循环获取单个订单内容
        {
         //--- 订单的参数

            ulong  position_ticket=PositionGetTicket(i);// 持仓价格

问题:

看到说明文档, PositionGetTicket()返回的是持仓价格,但是我打印 position_ticket时却显示是交易单号,而不是持仓价格,请问怎么获取持仓价格呢

 

这个函数返回的是单号,中文文档翻译的有问题。

直接看英文文档  https://www.mql5.com/en/docs/trading/positiongetticket

价格是double类型,获取价格用函数 PositionGetDouble

Documentation on MQL5: Trade Functions / PositionGetTicket
Documentation on MQL5: Trade Functions / PositionGetTicket
  • www.mql5.com
PositionGetTicket - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
不曉得你看到的是哪部分 我看到的說明很清楚的
你要的東西 裡面應該都有
void OnStart() 
  { 
//--- 订单属性返回值的变量 
   ulong    ticket; 
   double   open_price; 
   double   initial_volume; 
   datetime time_setup; 
   string   symbol; 
   string   type; 
   long     order_magic; 
//--- 当前挂单量 
   uint     total=OrdersTotal(); 
//--- 反复检查通过订单 
   for(uint i=0;i<total;i++) 
     { 
      //--- 通过列表中的仓位返回订单报价 
      if(ticket=OrderGetTicket(i)) 
        { 
         //--- 返回订单属性 
         open_price    =OrderGetDouble(ORDER_PRICE_OPEN); 
         time_setup    =(datetime)OrderGetInteger(ORDER_TIME_SETUP); 
         symbol        =OrderGetString(ORDER_SYMBOL); 
         order_magic   =OrderGetInteger(ORDER_MAGIC); 
         positionID    =OrderGetInteger(ORDER_POSITION_ID); 
         initial_volume=OrderGetDouble(ORDER_VOLUME_INITIAL); 
         type          =EnumToString(ENUM_ORDER_TYPE(OrderGetInteger(ORDER_TYPE))); 
         //--- 准备和显示订单信息 
         printf("#ticket %d %s %G %s at %G was set up at %s", 
                ticket,                 // 订单报价 
                type,                   // 类型 
                initial_volume,         // 已下交易量 
                symbol,                 // 交易品种 
                open_price,             // 规定的开盘价 
                TimeToString(time_setup)// 下订单时间 
                ); 
        } 
     } 
//--- 
  }