¿Intercambio de datos entre dos terminales MT4?

 

¡Hola!


Quiero poner en práctica la siguiente estrategia: "Forks on the difference in quotes from different brokerage companies:

La estrategia es muy simple, es que usted puede poner las tasas opuestas en la misma herramienta en dos empresas de corretaje y esperar a que la divergencia de las cotizaciones en la dirección correcta, entonces usted puede cerrar ambas apuestas y hacer un beneficio en total (el valor de las cotizaciones de discrepancia debe ser mayor que la comisión total de las dos empresas de corretaje).


Esta estrategia no es nueva desde hace mucho tiempo, pero aún no la he visto. Quiero usarlo.


El principal problema es la necesidad de conocer en todo momento el valor de las cotizaciones de ambas empresas de corretaje simultáneamente, y el Asesor Experto trabaja con un solo terminal (una empresa de corretaje).

Es decir, en cada uno de los terminales de MT4 se está ejecutando un Asesor Experto y este Asesor Experto sólo conoce sus cotizaciones y las de su vecino, ¡y nosotros no conocemos sus cotizaciones!

Tenemos que hacer que ambos EAs conozcan las cotizaciones del otro, es decir, que puedan intercambiar datos entre ellos.


Quiero que compartan lo que saben al respecto. También quiero recibir algunos comentarios.


Se me ocurrieron 2 maneras de intercambiar datos:


1) la más trivial: escribir datos en un archivo y leer este archivo por otro Asesor Experto. Básicamente, es muy fácil de hacer. El único problema es que el Asesor Experto sólo puede leer y escribir archivos de "su directorio". Pero todo se puede solucionar con dll.

Hay otra buena desventaja: la baja velocidad de intercambio. No se puede comparar con la velocidad de escritura y lectura de la memoria(((.


2) No estoy seguro de lo que puede hacer (ya que no soy un muy buen programador), pero, aquí, me gustaría aprender de los programadores tales:

Asignar un lugar en la memoria y escribir citas allí, la dirección a este lugar es conocida por ambos EAs, por lo que ambos pueden leer y escribir en este lugar.

Por supuesto, toda esta tecnología se implementa a través de un dll.

3) También he encontrado GlobalAddAtom, pero ¿cómo escribir una dll con ella?


Si alguien está interesado en la estrategia y también quiere ponerla en práctica, póngase en contacto conmigo, ¡compartiré gustosamente mi trabajo!

 
Un triste final para tal estrategia podría ocurrir http://www.kroufr.ru/forum/index.php/topic,6265.0.html
 
¿Y cómo prevé este tipo de trabajo a través de una DLL?
 
geopoint:
Un triste final para tal estrategia podría ocurrir http://www.kroufr.ru/forum/index.php/topic,6265.0.html
No lo entiendo, ¿verdad? Seguramente se trata de que el DC puede irse a la mierda si se entera, ¿no?
 
D500_Rised:
¿Y cómo se imagina este tipo de trabajo a través de DLL?

No creo que los medios estándar de MQL4 puedan hacer el intercambio. Pero si sabes cómo hacerlo, ¡compártelo, por favor!

Y a través de la dll, podrías, por ejemplo, conectar una función que pudiera leer archivos de cualquier directorio, ¡no sólo de uno!

 

dlls de cada terminal seguirán haciendo referencia al mismo archivo común. Me parece que esto provocará una serie de fallos que darán lugar a un funcionamiento inestable de dicho esquema. EN MI OPINIÓN.

¿Has mirado el multiterminal? ¿Es posible conectarse a diferentes servidores al mismo tiempo?

Se me ocurrió una idea: si multiterminal tiene la capacidad de trabajar con varias cuentas, entonces probablemente pueda trabajar con los servidores reales y de demostración simultáneamente. ¿Y si sustituimos la dirección del servidor de demostración por la dirección del servidor real de otra empresa de corretaje?

 
D500_Rised:

dlls de cada terminal seguirán haciendo referencia al mismo archivo común. Me parece que esto provocará una serie de fallos que darán lugar a un funcionamiento inestable de dicho esquema. EN MI OPINIÓN.

¿Has mirado el multiterminal? ¿Es posible conectarse a diferentes servidores al mismo tiempo?

Se me ocurrió una idea: si el multiterminal tiene la capacidad de manejar más de una cuenta, entonces tal vez sea posible trabajar con los servidores reales y de demostración simultáneamente. ¿Y si sustituimos la dirección del servidor de demostración por la dirección del servidor real de otra empresa de corretaje?

No hay errores, porque ya hice este camino a través del archivo. Los archivos son 2, es decir, cada EA tiene su propio archivo en el que guarda las cotizaciones y los EAs leen los archivos de los demás. Lo principal es hacer una lectura y escritura correctas (el Asesor Experto lee el mismo archivo todo el tiempo y escribe en el mismo archivo todo el tiempo). Estoy de acuerdo en que la estabilidad será peor que la referida a la memoria.


El Multiterminal no tiene esa opción, y aunque la tuviera, no se pueden ejecutar EAs allí. ¿Desea poner en práctica un esquema de este tipo de forma manual? (No lo hago)

 
D500_Rised:

¿Has mirado el multiterminal? ¿Es posible conectarse a diferentes servidores al mismo tiempo?


no
 

Me pregunto si es posible ordenar en el tiempo write_1---read_2, write_2---read_1.

Cómo se ordena el proceso para que los EAs no se encuentren en el mismo archivo, pueden distinguir los datos previamente leídos de los nuevos (requiere identificación de tiempo adicional)

Y en general, ¿merece la pena el juego? Si va a haber una diferencia en las cotizaciones, hay varias cosas en contra de este juego a la vez:

1- 2 spreads (2*2-4 pips)

2- Deslizamiento.

3- Baja velocidad real de ejecución de las órdenes(durante el procesamiento de la orden del distribuidor, el precio puede cambiar y anular la diferencia positiva) + recotizaciones

etc.

 
D500_Rised:

Me pregunto si es posible ordenar en el tiempo write_1---read_2, write_2---read_1.

Cómo se ordena el proceso para que los EAs no se encuentren en el mismo archivo, pueden distinguir los datos previamente leídos de los nuevos (requiere identificación de tiempo adicional)

Y en general, ¿merece la pena el juego? Si va a haber una diferencia en las cotizaciones, hay varias cosas en contra de este juego a la vez:

1- 2 spreads (2*2-4 pips)

2- Deslizamiento.

3- Baja velocidad real de ejecución de las órdenes (durante el procesamiento de la orden del distribuidor, el precio puede cambiar y anular la diferencia positiva) + recotizaciones

etc.

Esto no es un problema ya que un EA está escribiendo todo el tiempo a un archivo y el otro EA está leyendo todo el tiempo de este archivo y no importa en qué orden sucede. Para comprobar la relevancia de los datos he utilizado la hora local, es decir, las citas se escriben cada 100 milisegundos y luego se comprueba la relevancia por la hora local.


Sobre los "candelabros": no sé la respuesta exacta, por eso quiero comprobarlo. Me convencen más los datos cuantitativos. Si el spread total es de 4 pips y la divergencia es de 10 pips, entonces incluso en malas condiciones podemos obtener al menos la mitad de 6 pips rentables, ¿qué opinas?

 
D500_Rised:

Cuestiono la posibilidad de un orden correcto temporizado de escritura_1--lectura_2, escritura_2--lectura_1.

Tal vez puedas sugerir tu propio método, porque estamos hablando de una sola manera: a través de un archivo, pero hay otros más avanzados: a través de la memoria, ¿puedes decir algo sobre ellos?