老周 发表于 2016-10-26 20:29:50

平均持仓价格

循环查询持仓单,计算每一个持仓单的 开仓价格*开仓量 汇总。然后除以 持仓总量。
此计算方法考虑了不同持仓单量不同的影响,将价格分摊到不同持仓量上。
补充:
算出平均持仓价格,就可以计算平均盈利点数。(用现价与平均持仓价格相减即可)。这里要注意的是,总持仓量的不同,所以平均盈利点数只是针对价格,未考虑持仓量的因素。

double HoldingOrderAvgPrice()
{
double Tmp=0;
double TotalLots=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic )
    {      
   Tmp+==OrderOpenPrice()*OrderLots();
   TotalLots+=OrderLots();
    }
}
return(Tmp/TotalLots);
}

页: [1]
查看完整版本: 平均持仓价格