任何菜鸟问题,为了不给论坛添乱。专业人士,不要路过。没有你就无处可去 - 6. - 页 406

 
bergkamp.:
这里有一个例子...如果你只是把睡眠放在代码的最后,它将如何工作?

如果你不在意启动功能后30秒内不会启动(因此EA在这段时间内不会执行任何行动),那么请把睡眠

 

专家顾问在视觉模式的测试器中测试正常,但优化完全缓慢,虽然优化只有两个参数,时间也不长,这是什么原因?

 
vadynik:

专家顾问在视觉模式的测试器中测试正常,但在优化中却完全缓慢,虽然优化只有两个参数,时间也不长,这是什么原因?

优化所需的时间比单次测试运行要多得多,即使是在可视化模式下。尝试增加参数变化的步骤。或者转为按开盘价测试。
 
khorosh:

如果你不在意启动功能30秒后不会启动(因此EA在这段时间内不会采取任何行动),那么请把睡眠。

因此,30秒后,启动功能和所有顺序功能 随着一个刻度的到来而重新启动,并将回到睡眠状态,持续30秒......。 我错了吗?"专家 "会在同一时间内完成他的所有行动吗?
 
bergkamp.:
因此,30秒后,启动功能和所有顺序功能 随着一个刻度的到来而重新启动,并将回到睡眠状态,持续30秒。我错了吗?
是的,当sleep 运行时,start()函数并没有结束,因此不会重新启动。
 
vadynik:


优化器会不会被图形对象拖累?

还有,如果设置了CLR_NONE ,为什么标签仍然会出现?

优化时没有图形。问题:"那么,标记出现在哪里?"?
 
vadynik:


优化器会不会被图形对象拖累?

还有,为什么如果设置了CLR_NONE ,标签还是会出现?


看来,如果在EA中创建了图形对象,那么这样的EA的优化就根本不可能。然而,我不能肯定地说。至少,我的使用趋势线的专家顾问没有被优化。我不能说什么标签,我需要有整个代码。
 
khorosh:
是的,只要sleep在运行,start()就不会结束,因此不会重新启动。
start()到底是不是必须的?
 
bergkamp.:
无论如何需要启动吗?
这取决于你是否需要它来做专家的工作,我看不到你的专家的代码。如果是一些有便士目标的小人物,可能有必要这样做。
 

有一个关闭所有订单的功能,它 从最后一个开仓开始 关闭,请告知如何重新做,使它从第一个开仓开始 关闭,以最后一个开仓结束


//+------------------------------------------------------------------+
//|                 Закрыть все ордера                               |
//+------------------------------------------------------------------+


double ClossAllOrders ()

{
  int total = OrdersTotal();
  for(int i=total-1;i>=0;i--)
  {
    OrderSelect(i, SELECT_BY_POS);
    int type   = OrderType();

    bool result = false;
    
    switch(type)
    {
      //Close opened long positions
      case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), Slippage, Lime );
                          break;
      
      //Close opened short positions
      case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), Slippage, Lime );
                          break;

      //Close pending orders
      case OP_BUYLIMIT  :
      case OP_BUYSTOP   :
      case OP_SELLLIMIT :
      case OP_SELLSTOP  : result = OrderDelete( OrderTicket() );
    }
    
    if(result == false)
    {
      Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
      Sleep(500);
    }  
  }
}

// End