MQ5 代码求助

 

求高手帮我看下 总持仓的浮动盈亏 始终不对 打印后显示 0,错误出在哪里?请高手指点!

  HistorySelect(0,TimeCurrent());
   uint total=HistoryDealsTotal();
   for(uint i=0;i<total;i++)
     {
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         if(HistoryDealGetString(ticket,DEAL_SYMBOL)==Symbol()&&HistoryDealGetInteger(ticket, DEAL_MAGIC)==m_magic)
           {
            trades++;
            result=result+HistoryDealGetDouble(ticket,DEAL_PROFIT);
            //if(result<0) loss-=result;
            //else profit+=result;
           }
        }
     }


 result打印出后始终是 0

trades 打印出数据准确

 我也试过result=HistoryDealGetDouble(ticket,DEAL_PROFIT); 也是0

 然后 profit+loss  打印 也是0
 

你算的是历史单,不是持仓。

持仓应该统计Position.

参考代码:

//+------------------------------------------------------------------+
//|                                                                  |
double TotalProfit(int magic)
  {
   double pft=0;
   for(int i=PositionsTotal()-1;i>=0;i--)
     {
      ulong ticket=PositionGetTicket(i);
      if(ticket>0)
        {
         if(PositionGetInteger(POSITION_MAGIC)==magic && PositionGetString(POSITION_SYMBOL)==Symbol())
           {
            pft+=PositionGetDouble(POSITION_PROFIT);
           }
        }
     }
   return(pft);
  }
//+------------------------------------------------------------------+
 
你算的是历史订单!
 
Ziheng Zhuang:

你算的是历史单,不是持仓。

持仓应该统计Position。

谢谢

 
martin19760110:
你算的是历史订单!

谢谢

 
Ziheng Zhuang:

你算的是历史单,不是持仓。

持仓应该统计Position.

参考代码:

您好,能否帮我看看这个https://www.mql5.com/zh/forum/287717#comment_9260761

应该交易的地方没有交易,不知道怎么回事,谢谢

请问这个为什么错误?
请问这个为什么错误?
  • 2018.11.05
  • www.mql5.com
如附件, void CheckForClose(void) { MqlRates rt[2]; //--- go trading only for first ticks of new bar if(CopyRates(_Symbol,_Period,0,2,rt...
 
 string profit = DoubleToString(AccountProfit(),2);
原因: