Mt4 Fin de soporte. - página 19

 
Alexey Viktorov:

Un consejo de un autodidacta:

Para facilitar la transición a mql5, es conveniente no utilizar las variables de periodo int en mql4 sino del enum ENUM_TIMEFRAMES

Resolveré el problema a mi manera. Lo principal es que la función debe funcionar bien y no ralentizar el programa y ser utilizada en ambos terminales. El resto depende de mí.
 
Dmitry Fedoseev:

¿Por qué?


Porque cuando se implementa algo así a través de otros lenguajes, me cuesta averiguar cómo entrar en la terminal. Puede abrir cualquier cosa y todo, y si se implementa a través de µl, entonces también puede poner bots en él a través de botones.

Y también puedes poner una base de datos, luego algún software más, y llevar todas tus cosas en un solo icono
 
Alexander Puzanov:

Me complace creer que sus problemas no pueden resolverse sin ellos. Hay que entrar en los detalles para no creerlo :)


Girar

Ahora en un tick tenemos que determinar la nueva barra en H1, M5 y D1. Es decir, las primeras 1 horas y 5 minutos el Asesor Experto duerme y sólo a la 1:05 de un nuevo día tiene que despertarse y hacer algo.

¿Serán 3 variables globales? ¿Y si necesitamos hacer lo mismo en 2-3-7 Expert Advisors? ¿Cuántas variedades más de nombres de variables globales debemos crear?

 
Реter Konow:
Resolveré la tarea a mi manera. Lo principal - la función debe funcionar bien y no ralentizar el programa y ser utilizado en ambos terminales. El resto depende de mí.

Su dilación en dar una solución es una respuesta elocuente. Porque con la POO el problema se resuelve de forma sencilla y estándar sin necesidad de pensar.

 
Реter Konow:
Resolveré el problema a mi manera. Lo principal es que la función funcione bien y no ralentice el programa y se utilice en ambos terminales. Deja el resto a mi discreción.
Nadie está imponiendo nada. Era sólo una opinión.
 
Dmitry Fedoseev:

Esta es su dilación en dar una solución, que es una respuesta elocuente. Porque con la POO el problema se resuelve de forma sencilla y estándar sin necesidad de pensar.

No me dedico al comercio, así que esta tarea no es habitual para mí. No interfieras.
 
Alexander Puzanov:

Me complace creer que sus problemas no pueden resolverse sin ellos. Hay que entrar en detalles para creerlo :)

He oído a mucha gente quejarse de que "trabajar con indicadores en MT5 es mucho más complicado que en MT4".

Pues bien, el enfoque OOP permite unificar este trabajo para que al Asesor Experto no le interese en qué plataforma se está ejecutando.

Lo tengo organizado de esta manera.

Si necesitamos un indicador (digamos, la MA) - el Asesor Experto tiene que declarar el objeto CMA_IParams:public CIndicatorParamsI, en el que almacena todos los parámetros de la MA que necesitamos. A continuación, pase un puntero a esta estructura al proveedor de datos, en la función GetIndicator(). Esta función devolverá el puntero a la interfaz virtual CIndicator. Eso es todo. Esta interfaz tiene todos los datos necesarios sobre el indicador llamado.

Si se necesita cualquier otro indicador, se declara el objeto derivado de la interfaz CIndicatorParamsI, se escriben en él todos los parámetros del indicador y se pasa al proveedor de datos, en su lugar se devuelve el punteroal indicador creado.

Cuando se requiere un nuevo indicador - su código portable se escribe en el proveedor de datos, entonces de nuevo - cualquier usuario puede solicitar un nuevo indicador al proveedor de datos, pasando sus parámetros al proveedor de datos.

Como resultado - digamos, si un Asesor Experto trabaja "para volver a la media" - se hace muy fácil cambiar esta misma media, por ejemplo, tomar el medio del Canal de Precios en lugar de la MA - sólo cambiando el objeto de parámetro.

Me pregunto cómo se organiza esto para los fans del enfoque procesal.

 
George Merts:

La gente suele quejarse de que "trabajar con indicadores en MT5 es mucho más complicado que en MT4".

Así, el enfoque OOP permite unificar este trabajo, de modo que el Asesor Experto, de nuevo, ni siquiera se interesa por la plataforma en la que se está ejecutando.

Lo tengo organizado de esta manera.

Si necesitamos un indicador (digamos, el MA) - el Asesor Experto tiene que declarar el objeto CMA_IParams:public CIndicatorParamsI, en el que almacena todos los parámetros de MA que necesitamos. A continuación, el puntero a esta estructura debe pasarse al proveedor de datos en la función GetIndicator(). Esta función devolverá el puntero a la interfaz virtual CIndicator. Esta interfaz contiene todos los datos necesarios sobre el indicador llamado.

Si se necesita cualquier otro indicador, se declara el objeto derivado de la interfaz CIndicatorParamsI, se escriben en él todos los parámetros del indicador y se pasa al proveedor de datos, devolviéndose en su lugar el punteroal indicador creado.

Cuando se requiere un nuevo indicador - su código portable se escribe en el proveedor de datos, entonces de nuevo - cualquier usuario puede solicitar un nuevo indicador al proveedor de datos, pasando sus parámetros al proveedor de datos.

Como resultado - digamos, si un Asesor Experto trabaja "para volver a la media" - se hace muy fácil cambiar esta misma media, por ejemplo, tomar el medio del Canal de Precios en lugar de la MA - sólo cambiando el objeto de parámetro.

Me pregunto cómo se organiza esto para los fans del enfoque procesal.

Es mejor no empezar con ello. Esto es lo que asusta. Incluso yo, un partidario de la OOP que la conoce mal, tropecé por este texto... ...no entendía nada. Por eso intento explicar la diferencia en el nivel más bajo.
 

Lo siento, tengo que irme. Los pedidos llegaron... Si no te importa, continuaremos mañana.

 
Alexey Viktorov:

Lo siento, tengo que irme. Los pedidos llegaron... Si no te importa, continuaremos mañana.

¿Hay una orden para que vaya al oeste?

Razón de la queja: