Discusión sobre el artículo "Cómo copiar el trading desde MetaTrader 5 a MetaTrader 4"

 

Artículo publicado Cómo copiar el trading desde MetaTrader 5 a MetaTrader 4:

¿Se puede tradear hoy en día en una cuenta real utilizando MetaTrader 5? ¿Cómo organizar este trading? Se aporta la base teórica de estas preguntas, así como los códigos con la ayuda de los cuales se realiza el copiado de las transacciones del terminal MetaTrader 5 a MetaTrader 4. Este artículo será útil tanto para los desarrolladores de los Asesores Expertos, como para los traders que operan en el mercado.

Fig. 4. Posiciones y órdenes en los terminales MetaTrader 4 (arriba) y MetaTrader 5 (abajo)

Autor: Nikolay Demko

 

Quizás el tema más interesante para hoy.

Al menos para mí personalmente, el artículo más interesante de todos.

 

Estoy de acuerdo, el tema es relevante en este momento. Permite no esperar a que los DC se balanceen.

 

Artículo útil y pertinente, ¡gracias al autor!


Una cosa confusa:

Чтобы не пропустить момент изменения позиции, следящая система должна быть реализована в функции OnTimer(), т.к. следить придется за всеми инструментами сразу, а тики приходят на разных символах в разное время. Также требуется передать сигнал об изменении содержимого файла.

¿Por qué no OnTrade()?

 
komposter:

¿Por qué no OnTrade()?

Estoy de acuerdo, el procesamiento normal de OnTrade() es necesario, así como un Tamer avanzado. Su ausencia es un error en cualquier EA, especialmente en un mult...

Y el autor se negó de bibliotecas para nada, se puede hacer mucho más con ellos (no estoy hablando de software especializado).

Aunque tiene razón, tenemos más margen para la imaginación :)

PD

También me gustaría ver ejemplos de distintos momentos, no sólo promediando y piramidando (sólo los he visto, igual no estoy atento).

He partido de esto:

1.2 Volúmenes de posición de trading

Veamos en detalle, ¿hace alguna diferencia qué orden cerrar? ¿No afectará al beneficio? Por ejemplo, tenemos dos órdenes abiertas a horas distintas y cerradas a horas distintas, pero que tienen solapamientos en el tiempo de vida. Es decir, intentemos emular una posición comercial en el sistema de contabilidad de órdenes.

Calculemos por variantes lo que ocurrirá con el beneficio, si cambiamos los niveles de cierre de la orden en los lugares:

tipo
volumen
nivel de apertura
nivel de cierre
vender0.11.393881.38438
vender0.11.38868
1.38149
 

Me gustaría añadir unas palabras sobre DLL y software adicional.

En este momento estoy considerando una variante que permite transmitir señales e intercambiar información con la ayuda de DLL (con posibilidad obligatoria de trabajar con ini-files).

Y la tarea máxima que veo (mi sueño de mucho tiempo) es desarrollar un servidor, cuya tarea principal será recoger y procesar información de diferentes plataformas (sería bueno también de varios clientes).

 
Interesting:

Estoy de acuerdo, la falta de un temporizador es un error en cualquier moult....

Y el autor no debería haber usado librerías, se puede hacer mucho más con ellas (no hablo de software especializado).

Aunque tiene razón, tenemos más margen para la imaginación :)

PD

También me gustaría ver ejemplos de distintos momentos, no sólo promediar y piramidar (sólo los he visto, igual no estoy atento).

He partido de esto:

1.2 Volúmenes de posición de trading

Veamos en detalle, ¿hace alguna diferencia qué orden cerrar? ¿No afectará al beneficio? Por ejemplo, tenemos dos órdenes abiertas a horas distintas y cerradas a horas distintas, pero que tienen solapamientos en el tiempo de vida. Es decir, intentemos emular una posición comercial en el sistema de contabilidad de órdenes.

Calculemos por variantes lo que ocurrirá con el beneficio, si cambiamos los niveles de cierre de la orden en lugares:

tipo
volumen
nivel de apertura
nivel de cierre
vender0.11.393881.38438
vender0.11.38868
1.38149

El sentido de este ejemplo es mostrar que el beneficio depende del dinero puesto en la previsión, en casos más complejos será el mismo (simplemente no quería cargar el artículo con un gran número de ejemplos demostrando lo mismo).

Respecto a las librerías, no estoy en contra de las librerías ex5, pero no quiero usar dlls porque desanima al usuario final.

Y realmente, quien quiere recibir un troyano junto con la compra. MQ intenta ceñirse a la seguridad en su política.

Así que sólo estoy añadiendo a su imagen, ya que no dll significa que el código es seguro.

 
komposter:

Artículo útil y pertinente, ¡gracias al autor!


Una cosa confusa:

¿Por qué no OnTrade()?

Interesante idea, todo lo que va al servidor sin duda se mostrará en OnTrade(). Pero sólo es necesario filtrar, para transferir al archivo no las solicitudes, pero ya las respuestas del servidor acerca de la orden ejecutada.

Simplemente no pensé en esta dirección.

 
Urain:

La esencia de este ejemplo es mostrar que el beneficio depende del dinero puesto en la previsión, en casos más complejos será el mismo (simplemente no quería cargar el artículo con un gran número de ejemplos que demuestran lo mismo).


Será lo mismo sólo si se adaptan los procesos de trading de MT4 a MT5, de lo contrario en determinadas situaciones puede haber diferencias (y bastante significativas).

Sólo habrá dos ejemplos: "voltear" y "recortar" (si se escriben de forma suficientemente compacta, no ocuparán mucho espacio).

Y estoy seguro de que son las volteretas y los truncamientos los aspectos más "peliagudos" y complicados de tales sistemas.

Urain:

Respecto a las librerías, no estoy en contra de las librerías ex5, pero no quiero usar dlls porque desanima al usuario final.

Y realmente, quien quiere recibir un troyano junto con la compra. MQ intenta ceñirse a la seguridad en su política.

Así que sólo estoy añadiendo a su imagen, siempre y cuando no hay dll, el código es seguro.

En cuanto a las librerías ex5, estoy de acuerdo (puede ser una buena solución crear una librería de clases especializada), pero hay un gran "pero" - La funcionalidad de las soluciones basadas sólo en MQL5 es muy inferior a todas las posibilidades que proporcionará DLL.

Y el problema con DLL es más fácil de resolver de lo que a mucha gente le parece, hay dos opciones:

1. Publicar el código fuente de la librería;

2. Proporcionar el código fuente a MQ para que lo revisen, compilen la librería y la pongan a disposición del público.

PS

También me plantearía sincronizar la información de balance de las dos plataformas (si es posible, claro).

 
Interesting:

Lo mismo ocurrirá sólo si adapta los procesos de negociación de MT4 a MT5, de lo contrario, en determinadas situaciones puede haber diferencias (y bastante significativas, por cierto).

Sólo habrá dos ejemplos: "flip" y "cut" (si se escriben de forma suficientemente compacta, no ocuparán mucho espacio).

Y estoy seguro de que son las volteretas y los truncamientos los aspectos más "peliagudos" y complicados de tales sistemas.

En cuanto a las librerías ex5, estoy de acuerdo (puede ser una buena solución crear una librería de clases especializada), pero hay un gran "pero" - La funcionalidad de las soluciones basadas sólo en MQL5 es muy inferior a todas las posibilidades que proporcionará DLL.

Y el problema con DLL es más fácil de resolver de lo que a mucha gente le parece, hay dos opciones:

1. Publicar el código fuente de la librería;

2. Proporcionar el código fuente a MQ para que lo revisen, compilen la librería y la pongan a disposición del público.

PS

También me plantearía sincronizar la información de balance de las dos plataformas (si es posible, claro).

No habrá diferencia ni en el rollover ni en el corte, la diferencia aparece sólo en la diferencia de niveles de cotización en el momento actual y desfase de ejecución.

Idealmente, si las cotizaciones entre los MT son iguales y el retraso es 0, el comercio traerá el mismo beneficio.

Usted entiende el punto principal, el beneficio se obtiene apostando. Si usted en los mismos momentos, en ambos terminales, en las mismas cotizaciones mantiene la misma apuesta obtendrá el mismo beneficio.

Sobre el dll, es poco probable que MQ indague en cada código de terceros comprobando su seguridad, y compiladores delphi o srp no todo el mundo tiene. Puedes postear el código de una biblia y sustituir el archivo compilado por otro. Así que por ahora solo ex5.

 
Urain:

Interesante idea, todo lo que va al servidor definitivamente se mostrará en OnTrade(). Pero sólo es necesario filtrar, para transferir al archivo no las solicitudes, pero las respuestas del servidor sobre la orden ejecutada.

Simplemente no pensé en esta dirección.

De hecho, OnTrade es un lugar ideal para procesar cambios en la lista de posiciones. Solo necesitas inicializarlo para que las operaciones existentes sean copiadas inmediatamente al inicio (y no en el siguiente evento de operación).

Filtrar eventos es muy simple - revise la lista de posiciones, y continúe procesando sólo si algo ha cambiado en ella.