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

 

Después de la optimización, encontré esto

En dos pases, en los que los beneficios y las detracciones están muy cerca, el factor de recuperación es muy diferente.


ZZY El modo bruto "por pips". No recomiendo su uso todavía. Especialmente si se está optimizando.

 

El optimizador de MT5 no tiene esta característica de MT4.



Así que tienes que hacerlo de esta manera.

sinput uint inMaxOrders = 0; // Максимальное количество ордеров.
sinput double inMaxAbsoluteDD = 0; // Максимальная абсолютная просадка

bool IsMaxOrders()
{
#ifdef __MT4ORDERS__
  return(inMaxOrders && MT4ORDERS::LastTradeResult.order > inMaxOrders);
#else
  return(false);
#endif
}

bool IsMaxAbsoluteDD()
{
  static const double StartBalance = AccountInfoDouble(ACCOUNT_BALANCE);

  return(inMaxAbsoluteDD && ((StartBalance - AccountInfoDouble(ACCOUNT_EQUITY)) > inMaxAbsoluteDD));
}

void OnTick()
{
  static const bool IsTester = MQLInfoInteger(MQL_TESTER);
  
  if (IsTester && (IsMaxOrders() || IsMaxAbsoluteDD()))
  {
  #ifdef __MQL5__
    TesterStop();
  #else // __MQL5__
    ExpertRemove();
  #endif // __MQL5__
    
    return;
  }
// ....


De lo contrario, será muy malo y llevará mucho tiempo.

 

Después de la optimización, los Agentes no se descargan durante un tiempo (un número decente de minutos) mientras están preparados para el combate. Esta es una solución realmente genial.

A veces los Agentes consumen mucha memoria, que es necesaria después de la Optimización. Así que decidí liberarlo deshabilitándolos.


Sin embargo, ellos, no descargaron.


¿Es posible hacer que se descarguen mediante la opción de menú "Desactivar" o crear la opción de menú "Descarga forzada"?

 
¿El informe del probador "Tiempo máximo de mantenimiento de la posición" no tiene en cuenta los fines de semana?
 

Rendimiento.

Una sola carrera
SSD
Una sola carrera
RAM-Drive
Segundo pase del optimizador
Unidad SSD/RAM
Pase único
Virtual
Optimizador de segunda pasada
Virtual
72 segundos 64 segundos 28 segundos 26 segundos 18 segundos


Las pasadas individuales se hicieron "en caliente", es decir, tras la primera pasada individual se inició inmediatamente una segunda pasada.

Hay que hacer algo con respecto a la frenada de una sola carrera. Es 2,5 veces más lento que Optimizer.

Y no se trata sólo de registros redundantes. Virtual no registra nada, pero sigue siendo mucho más rápido en el optimizador.

 

¿Es una buena solución ocultar completamente los rangos de cambios de los parámetros de entrada cuando se selecciona una sola ejecución?


Cuando cargo un archivo de conjunto, solía ser inmediatamente visible de qué optimización se había seleccionado. Ahora no lo es.


ZZY Hasta que no marques la casilla, no podrás ver el rango. Esto se ha convertido en un gran inconveniente. Y cuando la casilla está marcada, no se puede ver el valor por defecto.

 

Chicos, estoy harto de los registros de una sola pasada. Absolutamente imposible trabajar con RAM-Drive por culpa de ellos. Gigabytes de basura en unas pocas pasadas. Es una pieza realmente desagradable. El RAM-Drive se atasca muy rápidamente.

Yo utilizo Virtual. No tengo ningún problema en este sentido. Sin embargo, me gustaría resolver radicalmente este problema a través de WinAPI.


¿Pueden aconsejarme que se bloqueen automáticamente los archivos Tester\Agent-127.0.0.1-300x\logs\*.log antes de ejecutar una sola vez? Quiero escribir una solución de una vez y olvidarme para siempre de esta asquerosidad.

El problema es que ni siquiera manualmente se pueden eliminar estos archivos ya que están ocupados por el Terminal. Hay una opción Unlocker. Tendré que ver si hay una versión para consolas.


En general, pido cualquier ayuda en este caso.


SZY Y lo que debería hacer el límite máximo en el tamaño de logs....

 
fxsaber:

Chicos, estoy harto de los registros de una sola pasada. Absolutamente imposible trabajar con RAM-Drive por culpa de ellos. Gigabytes de basura en unas pocas pasadas. Es una pieza realmente desagradable. El RAM-Drive se obstruye muy rápidamente.

Yo utilizo Virtual. No tengo ningún problema en este sentido. Sin embargo, me gustaría resolver radicalmente este problema a través de WinAPI.


¿Pueden aconsejarme que se bloqueen automáticamente los archivos Tester\Agent-127.0.0.1-300x\logs\*.log antes de ejecutar una sola vez? Quiero escribir una solución de una vez y olvidarme para siempre de esta asquerosidad.

El problema es que ni siquiera manualmente se pueden eliminar estos archivos ya que están ocupados por el Terminal. Hay una opción Unlocker. Tendré que ver si hay una versión para consolas.


En general, cualquier ayuda que pueda recibir en este caso.


SZY Y lo que debería hacer el límite máximo en el tamaño de logs....

¿Prohibir la escritura en la carpeta de registros?

 
Andrey Khatimlianskii:

¿Prohibir la escritura en la carpeta de registros?

Esta opción no funciona.


Ejecuto dicho archivo por lotes en la carpeta Terminal una vez después de reiniciar el ordenador.

rem Создали RAM-Drive для Тестера.
imdisk -a -o awe -s 3 G -m Z: -p "/fs:ntfs /q /y /v:MT5Tester"

mkdir z:\Tester
mklink /j Tester z:\Tester

rem Кеш оптимизатора будет сохраняться на диске.
mkdir cache
mklink /j z:\Tester\cache cache

rem Временный RAM-Drive, чтобы на него можно было перенаправить log-папки.
imdisk -a -o awe -s 3 M -m Y: -p "/fs:ntfs /q /y /v:MT5Tester_Logs"

mkdir y:\logs
mklink /j Tester\logs y:\logs

mkdir y:\logs0
mkdir Tester\Agent-127.0.0.1-3000
mklink /j Tester\Agent-127.0.0.1-3000\logs y:\logs0

mkdir y:\logs1
mkdir Tester\Agent-127.0.0.1-3001
mklink /j Tester\Agent-127.0.0.1-3001\logs y:\logs1

mkdir y:\logs2
mkdir Tester\Agent-127.0.0.1-3002
mklink /j Tester\Agent-127.0.0.1-3002\logs y:\logs2

mkdir y:\logs3
mkdir Tester\Agent-127.0.0.1-3003
mklink /j Tester\Agent-127.0.0.1-3003\logs y:\logs3

mkdir y:\logs4
mkdir Tester\Agent-127.0.0.1-3004
mklink /j Tester\Agent-127.0.0.1-3004\logs y:\logs4

mkdir y:\logs5
mkdir Tester\Agent-127.0.0.1-3005
mklink /j Tester\Agent-127.0.0.1-3005\logs y:\logs5

mkdir y:\logs6
mkdir Tester\Agent-127.0.0.1-3006
mklink /j Tester\Agent-127.0.0.1-3006\logs y:\logs6

mkdir y:\logs7
mkdir Tester\Agent-127.0.0.1-3007
mklink /j Tester\Agent-127.0.0.1-3007\logs y:\logs7

rem Убили временный RAM-Drive
imdisk -D -m Y:


Después, no se crean archivos de registro. Hasta ahora no he notado ningún retraso en el lado del probador. Parece ser una solución que funciona.

 
fxsaber:

Esta opción no funciona.

¿Cómo se prohíbe la grabación?

Razón de la queja: