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

 
Alexey Viktorov:

¿Así que no conseguiste registrar una cuenta en la beta?

No.
 

El MT4-Tester contaba con un asistente de este tipo para los GA.


Ayudó a reducir considerablemente el tiempo de optimización. Por ejemplo, si el equilibrio está en el suelo, ¿por qué ir más allá? MT5 no tiene eso. Por eso tenemos que incorporar cosas tan razonables en nuestros EAs. No creo que muchos autores lo hagan. Así que probablemente sería razonable transferir dicha funcionalidad a MT5-Tester también.


También los asistentes para GA son relevantes. Esta es la más sencilla.

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Asesores Expertos: Validar

fxsaber, 2020.01.29 15:55

Yo recomiendo utilizar en mis EAs un ayudante similar de GA.

sinput int inMinTrades = 500; // Минимальное количество трейдов (позиций).
sinput int inMaxTrades = 90000; // Максимальное количество трейдов (позиций).

double OnTester()
{
  return(((TesterStatistics(STAT_TRADES) >= inMinTrades) && (TesterStatistics(STAT_TRADES) <= inMaxTrades)) ? TesterStatistics(STAT_PROFIT) : 0);
}

No permite que la AG se ponga del lado de los resultados estadísticos débiles. Aumenta la calidad y la rapidez de los resultados. Y para Validar también filtra de los pasajes con valores estadísticos débiles.


Por ejemplo, al reajustar en base a los cálculos de tres meses, establezco el número mínimo de operaciones > 100. De lo contrario, hay una mayor probabilidad de encontrar un pase en GA que da el mayor beneficio debido al pequeño número de operaciones exitosas (al azar). Evidentemente, dicho pase no debería tener nada que ver con la elección de la misma para su posterior comercialización.

Creo que es razonable que el probador tenga esos ayudantes. Más aún, porque no requiere ningún coste computacional.

 

Hola a todos.

Tengo un robot multimercado. Opera el arbitraje estadístico, los diferenciales. El robot está diseñado para que tome los instrumentos de la propia visión general del mercado o los tome del archivo de spreads (que se encuentra en el directorio raíz del programa en la carpeta de archivos). El robot analiza los datos, selecciona los pares de instrumentos más prometedores y los negocia.

Pregunta, ¿podrá el probador de estrategias de mt5 probarlo? Si los instrumentos de negociación no figuran en los parámetros de entrada del robot, como suele ser, sino que los instrumentos se toman de la visión general del mercado o de la carpeta Archivos, ¿podría funcionar el probador?

 
Peresvet Timonkin:

Hola a todos.

Tengo un robot multimercado. Opera el arbitraje estadístico, los diferenciales. El robot está diseñado para que tome los instrumentos de la propia visión general del mercado o los tome del archivo de spreads (que se encuentra en el directorio raíz del programa en la carpeta de archivos). El robot analiza los datos, selecciona los pares de instrumentos más prometedores y los negocia.

Pregunta, ¿podrá el probador de estrategias de mt5 probarlo? Si los instrumentos de negociación no figuran en los parámetros de entrada del robot, como suele ser, sino que los instrumentos se toman de la visión general del mercado o de la carpeta Archivos, ¿podría funcionar el probador?

La visión general del mercado se genera mediante las llamadas del código a los símbolos. Para un probador, seguro que hay una lista de monedas en cualquier variante. Y en el mundo real no hay ningún problema.

Lo que aparece en la captura de pantalla es para la optimización.
 
Alexey Viktorov:

La revisión del mercado está formada por las llamadas de símbolos del código. Para un probador debe haber una lista de monedas en cualquier variante. Y en el mundo real no hay ningún problema.

Lo que aparece en la captura de pantalla es para la optimización.

¿He entendido bien que no se puede probar con este tipo de configuración como lo hago yo?

¿el probador no puede tomar datos de la revisión del mercado del historial?

Y en cuanto al archivo en el que se prescriben las herramientas de comercio, ¿el probador tampoco puede trabajar con él?

Acabo de leer el manual, pero no encontré nada al respecto, dice que puedo probar y optimizar las estrategias múltiples, pero no sé mucho al respecto.

 
Peresvet Timonkin:

¿He entendido bien que no se puede probar con este tipo de configuración como lo hago yo?

¿el probador no puede tomar datos de la revisión del mercado del historial?

Y en cuanto al archivo en el que se prescriben las herramientas de comercio, ¿el probador tampoco puede trabajar con él?

Acabo de leer todo el manual para el probador, no pude encontrar una palabra al respecto, dice que puedo probar y optimizar las estrategias multirate, pero no sé mucho al respecto.

Si te esfuerzas, puedes hacer cualquier cosa. Por ejemplo, en OnInit() solicitar los ticks de las divisas requeridas y así añadirlas al resumen del mercado y luego trabajar con el resumen del mercado. Pero en este caso, se mire como se mire, debería haber una lista de monedas. Podemos tener dos opciones: trabajar con la lista y trabajar con los del informe de mercado. En consecuencia, tenemos que establecer una condición en OnInit() si el trabajo en el probador, a continuación, trabajar sólo con la lista. Existe un Asesor Experto de este tipo en el Mercado.

En cuanto al archivo: Podemos hacerlo, pero tenemos que tener en cuenta la ubicación del archivo. Debe estar ubicado en la carpeta del probador o en la carpeta compartida por todos los terminales. O insertarlo como recurso.
 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Probador de Estrategias de MetaTrader 5: errores, fallos, sugerencias de mejora

fxsaber, 2020.01.22 23:08

Mi construcción 2300. En el modo de puntos he aprendido a tener en cuenta el volumen.


Sin embargo, el beneficio de las operaciones InOut en este modo se calcula incorrectamente.


Si ejecutamos en modo normal, el beneficio es correcto.



Por lo tanto, el modo de pips no funciona ahora en el Netting (muestra el beneficio sobreestimado).


2310 es relevante. Es imposible utilizar el modo de pips en la red.

 

En el 2310 me he dado cuenta de que mi EA, que realiza frecuentes modificaciones, no puede ser perfilado.

Hice un boceto de prueba.

input int inFakeRange = 0;
sinput int inOffset = 10000;

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

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
  else
    OrderModify(Ticket, Ask - inOffset * _Point, 0, 0, 0);
}

Reproduce la imposibilidad de hacer un perfil literalmente inmediato en el modo de tictac real, ya que todo es muy lento.


Sin embargo, también hace que el terminal se mantenga en espera cuando se ejecuta en ticks reales (incluso en modo pips) ¡una sola pasada! Sólo una especie de asesino.


Si haces su Optimización (en el primer parámetro), va sin problemas, pero trae algunos malos pensamientos sobre el rendimiento...


HH Si lo ejecutas en el Visualizador y lo cierras antes de que termine, el Terminal se cuelga.

 
fxsaber:

Si lo optimizas (para el primer parámetro), está bien, pero te llevas algunas malas ideas sobre el rendimiento...

Sólo puedo compararlo con la variante virtual.

input int inFakeRange = 0;
sinput int inOffset = 10000;

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

#define  VIRTUAL_TESTER // Запуск в виртуальном торговом окружении
#include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
  else
    OrderModify(Ticket, Ask - inOffset * _Point, 0, 0, 0);
}


Variante normal.

optimization finished, total passes 5
optimization done in 1 minutes 04 seconds
shortest pass 0:00:12.560, longest pass 0:00:13.608, average pass 0:00:12.808
local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


Con Virtual.

optimization finished, total passes 5
optimization done in 0 minutes 06 seconds
shortest pass 0:00:00.954, longest pass 0:00:02.060, average pass 0:00:01.231
local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)


El probador es 13 veces más lento en un Asesor Experto básico en el modo Pips, ¡donde ni siquiera hay controles! Construye 2310.

 
fxsaber:

El probador es 13 veces más lento en un EA elemental en modo pips, ¡donde ni siquiera hay comprobaciones! Construye 2310.

Incluso este EA es más de dos veces más lento que Virtual en modo Pips.

input int inFakeRange = 0;
sinput int inOffset = 10000;

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

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnTick()
{
  static long Ticket = -1;
  
  if (Ticket == -1)
    Ticket = OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask - inOffset * _Point, 0, 0, 0);
}

¿Por qué ocurre esto? Todo el Asesor Experto está estableciendo BuyLimit en el primer tick. No hay nada más.

Razón de la queja: