下载MetaTrader 5
要添加评论,请登录注册
存储您的源代码在MQL5存储中。非常安全!
wood
25
wood 2010.06.04 02:21 

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);
}

怎么改才可以返回选定多个订单的总赢利值?

秋风踏浪
166
秋风踏浪 2010.06.04 23:04  
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);
}
wood
25
wood 2010.06.07 09:32  

谢谢了

wood
25
wood 2010.06.07 09:44  

好像返回的不是总的,是单独的一个单子的盈利

秋风踏浪
166
秋风踏浪 2010.06.07 19:04  

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);
}
wood
25
wood 2010.06.09 04:01  

谢谢你的热心帮助!

wood
25
wood 2010.06.15 02:11  

如果仓位很多,我用 AccountEquity()>=AccountBalance()+MinProfit 作为平仓条件。想选择性的先关亏损单,再关盈利单,怎么才能实现,非常感谢您的热心帮助

/
要添加评论,请登录注册