twy888 发表于 2025-7-17 18:56:26

求助

这个EA设置的盈利点数平仓回测的时候没问题到了点数全部平仓,但是挂在模拟盘几张订单盈利到了平仓点数它就不全部平仓,只平仓最后下单那张订单,这是什么情况

Sure63219 发表于 2025-7-17 19:32:52

可以加我V交流一下,Lee343471826

金子涵 发表于 2025-7-17 21:07:16

//+-----------------------------------------------------平均盈利平仓-----------------------------------------------------+
if(单边均价盈N微点全平_0为关闭!=0)
{
    bool closeAllBuys = false;
    bool closeAllSells = false;
   
    // 先检查是否满足平仓条件
    if(平仓前多单总盈利 > 单边均价盈N微点全平_0为关闭*平仓前多单总手数*美元点值)
      closeAllBuys = true;
      
    if(平仓前空单总盈利 > 单边均价盈N微点全平_0为关闭*平仓前空单总手数*美元点值)
      closeAllSells = true;
   
    // 如果满足条件,则平掉所有对应方向的订单
    if(closeAllBuys || closeAllSells)
    {
      for(int i5=OrdersTotal()-1; i5>=0; i5--)
      {
            if(OrderSelect(i5,SELECT_BY_POS,MODE_TRADES)==true)
                if(OrderSymbol()==Symbol() && OrderMagicNumber()== EA交易ID)
                {
                  if(closeAllBuys && OrderType()==OP_BUY)
                  {
                        bool 多单平仓=OrderClose(OrderTicket(),OrderLots(),Bid,500,White);
                        if(多单平仓)
                            printf("均价盈利 全平多!");
                  }
                  if(closeAllSells && OrderType()==OP_SELL)
                  {
                        bool 空单平仓=OrderClose(OrderTicket(),OrderLots(),Ask,500,White);
                        if(空单平仓)
                            printf("均价盈利 全平空!");
                  }
                }
      }
    }
}

金子涵 发表于 2025-7-17 21:07:52

//+-----------------------------------------------------突破上轨平多破下轨平空-----------------------------------------------------+
if(突破上轨平多破下轨平空)
{
    bool closeBuys = (收盘价 > 布林线上轨);
    bool closeSells = (收盘价 < 布林线下轨);
   
    if(closeBuys || closeSells)
    {
      for(int i5=OrdersTotal()-1; i5>=0; i5--)
      {
            if(OrderSelect(i5,SELECT_BY_POS,MODE_TRADES)==true)
                if(OrderSymbol()==Symbol() && OrderMagicNumber()== EA交易ID)
                {
                  if(closeBuys && OrderType()==OP_BUY)
                  {
                        bool 多单平仓=OrderClose(OrderTicket(),OrderLots(),Bid,500,White);
                        if(多单平仓)
                            printf("突破上轨 全平多!");
                  }
                  if(closeSells && OrderType()==OP_SELL)
                  {
                        bool 空单平仓=OrderClose(OrderTicket(),OrderLots(),Ask,500,White);
                        if(空单平仓)
                            printf("突破下轨 全平空!");
                  }
                }
      }
    }
}

twy888 发表于 2025-7-17 21:52:59

金子涵 发表于 2025-7-17 21:07


是要替换里面的代码吗
页: [1]
查看完整版本: 求助