Probador de Estrategias de MetaTrader 5: errores, fallos, sugerencias de mejora - página 41

 
Slava:
Y cuando se inicie la operación, se cargará otro símbolo - EURUSD

No, no se carga. Mirado en el visualizador, todo es correcto - un símbolo durante el comercio.

 
fxsaber:

El símbolo personalizado tiene todas las monedas iguales a la moneda de la cuenta. Es decir, el modo es casi similar al de "por pips", sin necesidad de conectar otros símbolos para calcular el margen, etc.

En el servidor donde hay una comisión (reproducido en ForexTimeFXTM-Demo01, EUR, Hedge) en el modo por ticks reales después de la primera operación se conecta otro símbolo de los estándar. Y todo, por supuesto, cuenta mucho más lento de lo que debería.


Todo funciona correctamente en MQ-Demo, donde no hay comisión (y esto, incorrectamente, porque la prueba de la corrección de la comisión no se realiza en el servidor principal de la demo).


¿Se reproduce este problema?

Debido a este fallo, si se necesita una comisión, la optimización se ralentiza mucho.

 

¿Es posible mostrar el número de posición en este deslizador?

Hago clic en el deslizador y uso las teclas IZQUIERDA/DERECHA del teclado para cambiar la velocidad. A veces se necesita la penúltima velocidad. No se puede ver exactamente dónde está el deslizador en este momento. Y es muy fácil seleccionar la última velocidad.

Una vez seleccionado, el Visor se congela. Y puedes tirar todos los resultados. Una ayuda digital para la velocidad como la que aparece en la pantalla estaría bien.


ZS Resulta que si no haces una operación, la velocidad máxima en el visualizador no provoca un cuelgue. Resulta que casi la muerte se debe a las operaciones comerciales.

 

Hay algunas personas que no entienden por qué el MT5 Tester muestra resultados de backtest diferentes a los de los probadores de la competencia utilizados anteriormente.

A continuación se reproduce esto.


En MQ-Demo, EUR, Hedge en el probador ponemos este EA y habilitamos la DLL (la necesitamos para abrir automáticamente los informes HTML en un navegador).

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define  VIRTUAL_TESTER // Запуск в виртуальном торговом окружении
#define  VIRTUAL_LIMITS_TP_SLIPPAGE // Лимитники и TP исполняются по первой цене акцепта - положительные проскальзывания
#include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577

#define  REPORT_TESTER             // В тестере будут автоматически записываться отчеты
//#define REPORT_TESTER_INPUTS      // В отчете одиночного прохода будут видны входные параметры советника - требует разрешения DLL.
#define  REPORT_BROWSER            // Создание отчета с запуском браузера - требует разрешения DLL.
#include <Report.mqh> // https://www.mql5.com/ru/code/18801

int OnInit()
{
  // Если стоп/фриз-уровень не нулевой - выходим.
  return(!MQLInfoInteger(MQL_TESTER) ||
         SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL) ||
         SymbolInfoInteger(_Symbol, SYMBOL_TRADE_FREEZE_LEVEL));
}

void OnTick()
{
  static bool FirstRun = true;
  
  if (FirstRun)
  {
    MqlTick Tick;
    
    if (SymbolInfoTick(_Symbol, Tick) && Tick.bid && Tick.ask/* && Tick.last*/)
    {
      // Сформировали комментарий для ордера: время и цена текущего тика.
      const string comment = TimeToString(Tick.time, TIME_SECONDS) + "." + IntegerToString(Tick.time_msc % 1000, 3, '0') + " " + 
                             DoubleToString(Tick.bid, _Digits) + "/" + DoubleToString(Tick.ask, _Digits);
                             
      OrderSend(_Symbol, OP_BUYLIMIT, 1, Tick.ask, 0, 0, 0, comment); // Выставляем BuyLimit по текущей цене

      FirstRun = false;
    }  
  }    
  else if (!OrdersTotal()) // Если нет открытых ордеров - выходим.
    TesterStop();
  
  if (OrderSelect(0, SELECT_BY_POS) && (OrderType() <= OP_SELL)) // Выставляем TP позиции по текущей цене
    OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), OrderClosePrice(), 0);  
}


En la pestaña de ajustes del Comprobador de Estrategias pulse CTRL+V para estas líneas.

[Tester]
Symbol=EURUSD
Period=M1
Optimization=0
Model=4
FromDate=2019.12.13
ToDate=2019.12.14
ForwardMode=0
Deposit=100000
Currency=EUR
ProfitInPips=1
Leverage=100
ExecutionMode=0
OptimizationCriterion=6
Visual=0
[TesterInputs]
VirtualTester=false
ReverseDeals=false
Report=true


Corre. El navegador mostrará un informe.

A continuación, establezcaVirtualTester=true y ejecútelo de nuevo, obteniendo un informe más en el navegador.


La primera vez operamos en el Probador de Estrategias de MT5 incorporado, la segunda vez - en uno de terceros.


Comparemos los informes. Aquí están en una imagen (arriba - el MT5-Tester estándar, abajo - el de terceros).



Se ve claramente que los resultados son muy diferentes. La apertura y el cierre no coinciden por tiempo y precio. En general, cada uno puede decidir por sí mismo dónde está el error.


SZZ La solución ha surg ido.

 
fxsaber:

Se puede ver claramente que los resultados son muy diferentes. Los horarios de apertura y cierre y los precios no coinciden. En definitiva, cada uno puede decidir por sí mismo dónde está el error.

¿Por qué MT5 sólo ejecuta el límite después de 2,6 segundos? ¿Se ha movido el precio hacia el otro lado inmediatamente después de fijarlo? ¿O no había garrapatas?

 
Andrey Khatimlianskii:

¿Por qué MT5 sólo ejecuta el límite después de 2,6 segundos? ¿Se ha movido el precio hacia el otro lado inmediatamente después de fijarlo? ¿O no había ninguna garrapata?

El siguiente tic que satisface el límite fue después de esa hora. Por supuesto, en el Probador es posible establecer un límite al precio actual y no conseguir que se ejecute. Por ejemplo, se puede establecer un límite en un extremo.

 
fxsaber:

El siguiente tick que satisface el limitador fue después de ese tiempo. Por supuesto, en el Probador es posible establecer un límite al precio actual y no conseguir que se ejecute. Por ejemplo, es posible establecer un límite en un extremo.

¿Especifican de qué estamos hablando: forex, exchange, rann?

En el mercado de divisas no hay ni puede haber órdenes limitadas.

 
Sergey Chalyshev:

¿Especifican de qué estamos hablando: forex, bolsa, rann?

Estamos hablando del Tester.

 
fxsaber:

Se trata del Probador.

El comprobador funciona de forma diferente en las cuentas de cambio y de divisas.
 
Sergey Chalyshev:
El comprobador funciona de forma diferente en las cuentas de acciones y de divisas.

Hay instrucciones para la reproducción de cualquier personaje. Si tiene alguna pregunta, hágala.

Razón de la queja: