double GetSellProfit(int Magic) { double SumTakeProfit = 0.0; int total=OrdersTotal()-1; for (int cnt = total ; cnt >=0 ; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_SELL) { SumTakeProfit += OrderTakeProfit(); } } return(SumTakeProfit); }
谢谢了
好像返回的不是总的,是单独的一个单子的盈利
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_SELL)
应该是当前货币对的、空单的总赢利值。
如果是所有持仓单(包括手工订单)的总赢利值应该是:
double GetSellProfit(int Magic) { double SumTakeProfit = 0.0; int total=OrdersTotal()-1; for (int cnt = total ; cnt >=0 ; cnt--) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); SumTakeProfit += OrderTakeProfit(); } return(SumTakeProfit); }
谢谢你的热心帮助!
如果仓位很多,我用 AccountEquity()>=AccountBalance()+MinProfit 作为平仓条件。想选择性的先关亏损单,再关盈利单,怎么才能实现,非常感谢您的热心帮助
double GetSellProfit(int Magic)
{
int total=OrdersTotal()-1;
for (int cnt = total ; cnt >=0 ; cnt--)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == Magic && OrderSymbol()==Symbol() && OrderType()==OP_SELL)
{
return(OrderTakeProfit());
}
}
return(0);
}
怎么改才可以返回选定多个订单的总赢利值?