Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 625

 
Igor Makanu:

Experimente con dicho código, lea el mensaje en el registro del Asesor Experto (cambie el TF, introduzca la variable, recargue el terminal sin cerrar el Asesor Experto...)

y la segunda variante es describir en el ámbito global una variable con modificador estático

En primer lugar, esto es mql4.

En segundo lugar, necesito ejecutar OnInit() en cualquier cambio de variables del Asesor Experto.

¡Eso es todo lo que pido de ayuda!

¡¡¡¡Sí, reiniciar la terminal y cambiar el texto ayuda, pero al cambiar las variables, OnInit() no funciona y por eso me da todos los problemas!!!!

 
Игорь:

En primer lugar, es mql4. En segundo lugar, necesito ejecutar OnInit() para cambiar las variables del EA.

En segundo lugar, necesito que se ejecute OnInit() cuando se cambien las variables del Asesor Experto.

¡Eso es todo lo que pido de ayuda!

¡¡¡¡Reiniciar la terminal y cambiar el texto ayuda, pero al cambiar las variables, OnInit() no funciona y por eso me salen todos los problemas!!!!

Tengo la siguiente solución. OnInit() copia las variables en la primera ejecución del EA. En Calc...() o lo que sea en MT4, comprueba si las variables son idénticas a sus copias. Si las variables no coinciden, entonces ejecutamos forzosamente OnInit() y si es necesario, ejecutaremos algo más antes para actualizar el EA. Y por último, volver.

 
Игорь:

En primer lugar, es mql4. En segundo lugar, necesito ejecutar OnInit() para cambiar las variables del EA.

En segundo lugar, necesito que se ejecute OnInit() cuando se cambien las variables del Asesor Experto.

¡Eso es todo lo que pido de ayuda!

¡¡¡¡Sí, reiniciar la terminal y cambiar los seguros ayuda, pero al cambiar las variables, OnInit() no funciona y por eso me salen todos los problemas!!!!

¿Has mirado el código que te di? Era MT4 y todo funciona como pediste

lea la documentaciónhttps://docs.mql4.com/ru/runtime/event_fire

He ejecutado el código que sugerí, cambié la variable externa var dos veces, aquí está el registro del Asesor Experto:

0       15:36:39.736    Compiling 'test'
0       15:37:37.573    Expert test EURUSD,H1: loaded successfully
0       15:37:39.101    test EURUSD,H1 inputs: var1=1; 
0       15:37:39.130    test EURUSD,H1: Вызов OnInit(), var1=1
0       15:37:39.130    test EURUSD,H1: initialized
0       15:37:51.341    test EURUSD,H1: uninit reason 5
0       15:37:51.343    test EURUSD,H1: Вызов OnInit(), var1=34567
0       15:37:51.343    test EURUSD,H1: initialized
0       15:37:51.366    test EURUSD,H1 inputs: var1=34567; 
0       15:38:04.124    test EURUSD,H1: uninit reason 5
0       15:38:04.126    test EURUSD,H1: Вызов OnInit(), var1=-9999
0       15:38:04.126    test EURUSD,H1: initialized
0       15:38:04.149    test EURUSD,H1 inputs: var1=-9999; 

Aquí está el código donde están los "errores".

Usted puede llamar a cualquier función desde cualquier lugar en un programa MQL. La función de inicialización de un Asesor Experto es una función, y usted puede forzar la llamada OnInit(), pero por lo general no lo necesita.

События клиентского терминала - Программы MQL4 - Справочник MQL4
События клиентского терминала - Программы MQL4 - Справочник MQL4
  • docs.mql4.com
Сразу же после того, как клиентский терминал загрузит программу (эксперт или пользовательский индикатор) и запустит процесс инициализации глобальных переменных, будет послано событие Init, которое обрабатывается функцией OnInit(), если она есть. Это событие также генерируется после смены финансового инструмента и/или периода графика, после...
 
Igor Makanu:

hay muchos errores en el código, en

es mejor normalizar los precios, entonces funcionarán, luego el servidor dará un error de "precios erróneos", es deseable normalizarStopLoss_SELL

y lo más probable es que tenga que comprobar si el StopLoss es igual a cero, y no es deseable comparar números reales para que sean iguales, debe intentar comparar números reales a > o <

Si hay muchos errores, ¿le importaría señalarlos todos?

 
Igor Makanu:

¿has mirado el código que te he dado? era MT4 y todo funciona como pides

a continuación, lea la documentaciónhttps://docs.mql4.com/ru/runtime/event_fire

He ejecutado el código que sugerí, cambié la variable externa var dos veces, aquí está el registro del Asesor Experto:

Aquí está el código donde están los "errores".

Usted puede llamar a cualquier función desde cualquier lugar en el programa MQL, la función de inicialización de un Asesor Experto es también una función. Usted puede forzar la llamada a OnInit(), pero por lo general no es necesario - el terminal llama aOnInit() por sí mismo.

¡¡¡¡¡¡¡¡¡Muchas gracias gracias a su código de errores he encontrado !!!!!!!!! ¡¡¡¡BUENA SUERTE !!!! ¡¡¡¡¡¡Y GRACIAS POR LA AYUDA !!!!!!

 
Por favor, avisa. ¿Cómo puedo hacer que el indicador MA estándar no se muestre para todo el historial, sino para un número determinado de velas? Me gustaría hacerle una pregunta.
 
prom18:
Por favor, avisa. ¿Cómo puedo hacer que el indicador MA estándar no se muestre para todo el historial, sino para un número determinado de velas? Gracias.
¡Escriba su propio indicador MA con la configuración de la profundidad de la historia!
 

¿Cómo puedo establecer manualmente las cotizaciones paraprobar un EA?

Debe haber una solución, pero no he podido encontrarla

 
Galim_V:

¿Qué pasa con F12 después de una pausa?

Me refería específicamente a fijar el movimiento de precios

 
Andrey Sokolov:

¿Cómo puedo establecer manualmente las cotizaciones paraprobar un EA?

Seguramente hay una solución, pero no la he encontrado

Escribe tus propios ticks y ponlos en el probador de estrategias.

Razón de la queja: