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

 
fxsaber:

El Android debe haber sido con una IP diferente.

El router no tiene que cambiar la IP después de un reinicio. Y es comprensible que se produzcan bloqueos de IP.

Tengo una IP dinámica, hay que pagar más por una estática

El androide funciona por WiFi, todos en casa tendrán la misma IP externa

Creo que hay un problema con los servidores DNS o CDN.

Android a través de Google DNS 8.8.8.8 debe trabajar - tal vez esa es la razón, al menos los recursos que RK ha bloqueado la mayor parte de la televisión a través de android se abre sin problemas sin ningún tipo de VPN, etc.

 
Haz un ping y rastrea, hace poco tuve un servicio que pensé que también tenía un baneo, sobre todo una vez, pero resultó que la señal se perdió en algún lugar entre los países
 

¿Puedes decirme cómo hacer un doble clic en un archivo opt/tst en el explorador para importar el caché correspondiente en el probador?

Intenté una línea como esta, no funciona.

terminal64.exe test.opt
Cadena de búsqueda: Uluchshenie 014.
 

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.03.05 06:06

Ahora todo es normal. La situación problemática es la siguiente.


Las dos veces me he metido durante la larga escritura de un gran post con carga de imágenes.

Largo - probablemente más de una hora (se distrajo muchas veces, luego volvió). Probablemente un sistema de seguridad que se activa con este comportamiento.

Para aclarar, el sitio se vuelve inaccesible durante muchas horas. Imagen superior.

Para reproducirlo, hay que ponerse a escribir una respuesta en un hilo del foro durante media hora, insertando imágenes en el mensaje. Al mismo tiempo, no es necesario terminar de escribir el puesto.


Después de este tiempo mql5.com no estará disponible con una respuesta como la que se muestra arriba.

 
La descripción de la optimización con el algoritmo genético dice que la optimización continúa desde donde se detuvo, si no cambiamos los parámetros de entrada - de hecho, la optimización se reinicia y los resultados de la nueva optimización se añaden a los resultados de la optimización detenida. Todavía sería conveniente tener una opción para detener la optimización, especialmente cuando lleva mucho tiempo. Esta cuestión sigue sin resolverse desde hace varios años.
Trabajar con agentes en la red local tampoco es óptimo: se tarda horas en olvidar a los agentes desconectados. Como resultado, la optimización se detiene entre 30 minutos y varias horas, hasta que el programa decide que el agente está perdido. Estas preguntas se han formulado en los foros durante varios años, pero no hay respuestas de los desarrolladores.
 

Ni siquiera sé dónde preguntar, ni cómo plantear el problema, pero lo intentaré:

hay 10 parámetros de entrada de EA

input int param1 =  00;
input int param2 =  01;
input int param3 =  02;
input int param4 =  03;
input int param5 =  04;
input int param6 =  05;
input int param7 =  06;
input int param8 =  07;
input int param9 =  08;
input int param10=  09;

int arr_param[10];

//+------------------------------------------------------------------+
int OnInit()
{
   arr_param[0] = param1;
   arr_param[1] = param2;
   arr_param[2] = param3;
   arr_param[3] = param4;
   arr_param[4] = param5;
   arr_param[5] = param6;
   arr_param[6] = param7;
   arr_param[7] = param8;
   arr_param[8] = param9;
   arr_param[9] = param10;
   
   return(INIT_SUCCEEDED);
}

los parámetros de entrada pueden tomar valores de 0 a 99

¿cómo organizar la búsqueda completa con un probador según el principio de las combinaciones sin repeticiones?

es decir, por número de combinaciones sin repeticiones - :

  1. 0, 1,2 ...99
  2. {0,1} {0,2}... {98,99}
  3. {0,1,2} {0,1,3}... {97,98,99}
  4. ....
  5. hasta 10 combinaciones sin repeticiones {0,1,2,3,4,5,6,7,8,9} {0,1,3..10}... {90,91,92,93,94,95,9697,98,99}

Generar todas las combinaciones sin repetición no es difícil, pero cómo hacer que las estrategias del probador llenen mi array int arr_param[10] no se me ocurre

ZS: Tengo que cambiar los parámetros para formar el nombre de la configuración del archivo - hay ajustes EA, quiero tratar de recoger una cartera de estrategias de forma automática

 
Igor Makanu:

No es difícil generar todas las combinaciones sin repeticiones, pero no puedo averiguar cómo hacer que el probador de estrategias llene un array int arr_param[10] por mí

Te pido que pongas un control de coincidencia en OnInit.

 
Igor Makanu:

¿cómo organizar una búsqueda completa con el probador según el principio de combinaciones sin repeticiones?

es decir, por el número de combinaciones sin repeticiones - :

  1. 0, 1,2 ...99
  2. {0,1} {0,2}... {98,99}
  3. {0,1,2} {0,1,3}... {97,98,99}
  4. ....
  5. hasta 10 combinaciones sin repeticiones {0,1,2,3,4,5,6,7,8,9} {0,1,3..10}... {90,91,92,93,94,95,9697,98,99}

Generar todas las combinaciones sin repetición no es difícil, pero cómo hacer que las estrategias del probador llenen mi array int arr_param[10] no se me ocurre

Quiero cambiar los parámetros para formar un nombre de archivo de configuraciones - hay configuraciones de EA, quiero tratar de recoger una cartera de estrategias de forma automática

Se ve así:

1. Establecemos una máscara de bits para cada parámetro:

  • 0 - no está incluido en el conjunto
  • 1 - se incluye en el juego

En total, introducimos un hiperparámetro de bits que se enumera de 1 a 2^10 (ya que hay 10 parámetros)

2. Los parámetros en sí se buscan de forma independiente, pero queremos comprobar si se incluyen en la optimización o no al llamar a OnInit. Si no participa, salimos por TesterStop. Esto no nos ahorrará combinaciones innecesarias, pero nos permitirá no probar las innecesarias.

 
fxsaber:

Te pido que pongas una comprobación de coincidencia en OnInit.

Sí, está claro que si el array contiene dos elementos idénticos entonces return(INIT_FAILED) - el problema es formar combinaciones con una búsqueda por un elemento, luego por el 2º... y así sucesivamente hasta 10 elementos

Rashid Umarov:

Se ve así:

1. Creamos una máscara de bits para cada parámetro:

  • 0 - no pertenece al conjunto
  • 1 - se incluye en el juego

En total, introducimos un hiperparámetro de bits que se enumera de 1 a 2^10 (ya que hay 10 parámetros)

2. Los parámetros en sí se buscan de forma independiente, pero queremos comprobar si se incluyen en la optimización o no al llamar a OnInit. Si no participa, salimos por TesterStop. Esto no eliminará las combinaciones innecesarias, pero permitirá evitar las pruebas innecesarias.

Ese es exactamente el algoritmo que estoy buscando, pero no he conseguido más allá de cómo generar todas las matrices por separado y luego utilizarlas en mi investigación (((

necesito un algoritmo, al menos "en los dedos" - lo escribiré yo mismo, el algoritmo de todas las combinaciones sin repetición no es complicado - buscado en los foros de estudiantes, y la mejor manera de utilizar el probador no entiendo todavía

 
Igor Makanu:

Sí está claro que si el array tiene dos elementos idénticos entonces return(INIT_FAILED) - el problema es formar combinaciones con una búsqueda por un elemento, luego por el 2º... y así sucesivamente hasta 10 elementos

Lo más probable es que tengas 10 CTs idénticos. Entonces los números de TC del conjunto deben estar en orden ascendente.