Errores, fallos, preguntas - página 342

 
Urain:

La solución más sencilla para MQ sería dar los parámetros de la función

arrays en lugar de variables, que ahora existen como parámetros. La solución, por supuesto, es unilateral, ya que no hay manera de transferir datos entre EAs de todos modos, pero aún así es mejor que nada.

Aún mejor sería algo así

void SendData(const int handle,const long &lparam[],const double &dparam[],const string &sparam[])
void GetData(const int handle,const long &lparam[],const double &dparam[],const string &sparam[])

Para poder enviar a un destinatario concreto y recibir de un remitente concreto. No sólo enviarlo por algún gráfico. Y hacer público el mango. Bueno, algo así.

 

Hay una tarea de este tipo: la ventana del indicador debe ser eliminada y restaurada del Asesor Experto. Pero los datos calculados permanecen constantes.

Una solución sencilla es crear un indicador para calcular los datos (llamémoslo "Calcular") y un indicador para mostrar los datos en una ventana aparte, llamémoslo "Trazar". El indicador "Plot " es llamado por iCustom("Calculate"), pero el Asesor Experto también es llamado antes por iCustom("Calculate"). Se llaman con los mismos parámetros. He mencionado en alguna parte que dos indicadores con los mismos parámetros no se crean en un gráfico, sino que crean una manija adicional que se refiere a la manija principal del proceso del indicador ya iniciado.

De ahí la pregunta: después de borrar Plot del EA y añadirlo de nuevo, ¿el indicador Calculate lanzado en Plot se calculará de nuevo o sólo tomará los datos calculados del indicador Calculate lanzado en el EA?

 
Urain:

He mencionado en alguna parte que no se crean dos indicadores con los mismos parámetros en un gráfico, sino que sólo se crea un manejador adicional que hace referencia al manejador principal de un proceso de indicador ya en marcha.

Guía de referencia MQL5 / Indicadores técnicos / Funciones para trabajar con indicadores técnicos:

"Todas las funciones como iMA, iAC, iMACD, iIchimoku, etc., crean una copia del indicador técnico correspondiente en la caché global del terminal cliente.Si ya existe una copia del indicador con estos parámetros, no se crea una nueva copia, sino que se incrementa el contador de referencias a esta copia.

Estas funciones devuelven el asa de la copia del indicador correspondiente. A partir de este asa, se pueden recuperar posteriormente los datos calculados por el indicador correspondiente..."

"Nota. Múltiples llamadas de la función indicadora con los mismos parámetros dentro de un mismo programa mql5 no incrementarán el contador de referencia muchas veces, el contador se incrementará sólo una vez en 1 . ...".

 
Yedelkin:

Guía de referencia MQL5 / Indicadores técnicos / Funciones para trabajar con indicadores técnicos:

...

"Nota. El acceso múltiple a la función de indicador con los mismos parámetros dentro de un mismo programa mql5 no conlleva el incremento múltiple del contador del indicador, el contador se incrementará sólo una vez en 1. ...".

Sí, eso es exactamente. Gracias por el consejo.

No entiendo exactamente esta línea. ¿Es posible considerar el indicador lanzado en el Asesor Experto como un solo programa o se trata de dos programas?

Si se cumple el primer supuesto, todo está bien. Pero si el compilador los trata como programas diferentes, entonces hay un problema.

 
Urain:

¿Puede considerarse el indicador que funciona en la EA como un solo programa, o se trata de dos programas?

1. El Manual dice:"Todas las funciones como iMA, iAC, iMACD, iIchimoku, etc., crean una copia del indicador técnico correspondiente en la caché global del terminal cliente".

Lo leo como (refiriéndose a tu pregunta):"Todas las funciones, como iMA, iAC, iMACD, iIchimoku , etc.son llamadas desde un programa mql5 particular ycrean una copia del indicador técnico apropiado en la caché global del terminal cliente". Por lo tanto, la frase común"EA E ejecuta el indicador I" significa que EA E llama a la función I, la cual crea una copia del indicador en el caché global de la terminal del cliente y hace que EA E reciba el manejador de esa copia.

2. si "EA E llama a la función indicadora I", significa que llama a la función indicadora "dentro de un programa mql5".

 
He descargado la compilación 420 de aquíhttps://www.mql5.com/ru/forum/23/page11 pero en realidad se instala la 412. ¿Tengo un problema o se han olvidado de cambiar el archivometaquotes.net?
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:.
 
Yedelkin:

1. El Manual de Referencia dice:"Todas las funciones como iMA, iAC, iMACD, iIchimoku, etc., crean una copia del indicador técnico correspondiente en la caché global del terminal cliente".

Lo leo como (refiriéndose a tu pregunta):"Todas las funciones, como iMA, iAC, iMACD, iIchimoku, etc. son llamadas desde un programa mql5 particular y crean una copia del indicador técnico apropiado en la caché global del terminal cliente". Por lo tanto, la frase común"EA E ejecuta el indicador I" significa que EA E llama a la función I, la cual crea una copia del indicador en el caché global de la terminal del cliente y hace que EA E reciba el manejador de esa copia.

2) Si "EA E llama a la función del indicador I", entonces estamos hablando de llamar a la función del indicador "dentro de un solo programa mql5".

Lo tengo. La frase clave aquí es"en la caché global del terminal cliente".

Si es así, todo está bien. Se ha aclarado una cuestión más.

 
a483483:
Descargo la build 420 de aquíhttps://www.mql5.com/ru/forum/23/page11 pero en realidad se instala la 412. Tengo un problema o enmetaquotes.net archivo se olvidó de cambiar?

Así que espera y debería actualizarse a la última versión.

SZS simplemente deja el terminal funcionando y ocúpate de tus asuntos, al cabo de un rato verás en el terminal el mensaje de que se ha descargado tal o cual versión y te pedirá que reinicies el terminal.

 

¡Buenas tardes!

Después de actualizar a la versión 420 empecé a probar mi EA y noté que empezó a "perder" por alguna razón. Analicé mis operaciones y me di cuenta de que el stop loss se activa a precios inexistentes. Por ejemplo, puse el stop loss en 1.06520 en EURUSD, pero funciona, aunque el precio máximo es 1.05920. Cuando miro más allá, veo muchas ofertas de este tipo. El Take Profit se activa por el mismo principio (a precios no existentes) - la delta es la misma - 600 puntos. En el probador del gráfico las flechas de subida y bajada "cuelgan" en el aire, lejos de las barras.

Se adjunta una captura de pantalla.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
Archivos adjuntos:
eurusd.jpg  235 kb
 
Kairoser:

¡Buenas tardes!

Después de actualizar a la versión 420 empecé a probar mi EA y noté que empezó a "perder" por alguna razón. Analicé mis operaciones y me di cuenta de que el stop loss se activa a precios inexistentes. Por ejemplo, puse el stop loss en 1.06520 en EURUSD, pero funciona, aunque el precio máximo es 1.05920. Cuando miro más allá, veo muchas ofertas de este tipo. El Take Profit se activa por el mismo principio (a precios no existentes) - la delta es la misma - 600 puntos. En el probador del gráfico las flechas de subida y bajada "cuelgan" en el aire, lejos de las barras.

Se adjunta una captura de pantalla.

Intente probar su EA en el servidor MQ. Es posible que Alpari siga teniendo el viejo problema de los datos históricos incorrectos.
Razón de la queja: