你算的是历史单,不是持仓。
持仓应该统计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);
求高手帮我看下 总持仓的浮动盈亏 始终不对 打印后显示 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