在MT5中想要获取各品种的 浮动盈亏,用哪个函数?

bhqt  
谢谢!
Ziheng Zhuang  

没用这样的函数,需要自己写,遍历所有持仓,把品种名称当作形参即可。

double TotalProfit(string symbol)
{
   double sum = 0.0;
   int total = PositionsTotal();
   for(int i=0; i<total; i++)
   {
      ulong ticket = PositionGetTicket(i);
      if(ticket>0 && PositionGetString(POSITION_SYMBOL)==symbol)
      {
         sum += PositionGetDouble(POSITION_PROFIT) + PositionGetDouble(POSITION_SWAP);
      }
   }
   return sum;
}
Dao Liang Ding  

你要的应该以点数为单位的吧


// 获取实时浮动盈利的点数和获取最大浮动盈利的点数
double FloatingProfit(bool returnMaxProfit = true)
{
   double profit = 0.0;
   double maxProfit = 0.0;
   double pointValue = SymbolInfoDouble(Symbol(), SYMBOL_POINT);
   for(int i = 0; i < PositionsTotal(); i++)
   {
      if (PositionGetSymbol(i) == Symbol() && PositionGetString(POSITION_SYMBOL) == Symbol())
      {
         double currentProfit = PositionGetDouble(POSITION_PROFIT) / pointValue;
         profit += currentProfit;
         maxProfit = MathMax(maxProfit, currentProfit);
      }
   }
   return returnMaxProfit ? maxProfit : profit;
}
double ProfitPoint      = FloatingProfit(false);     // 获取实时浮动盈利的点数
double MaxFloatingPoint = FloatingProfit(true);      // 获取最大浮动盈利的点数
原因: