¿Intercambio de datos entre dos terminales MT4? - página 4

 

Yo solía hacer una conexión de este tipo entre terminales a través de WinAPI. La lista de ventanas abiertas buscaría todos los terminales MT4 en funcionamiento. Había dos opciones para obtener presupuestos:


1. Leer las cotizaciones del "Market Watch" (control tipo ListView) de los terminales encontrados. Sólo se puede hacer desde una DLL externa.

2) Sin utilizar una DLL externa. En cada terminal el Asesor Experto que se ha iniciado escribe sus cotizaciones (para su símbolo) en el descriptor de texto de su ventana. Y un Asesor Experto de otro terminal encuentra esta ventana (con su propio nombre de símbolo) y lee la cotización.


Había una desventaja: si la conexión con el servidor de comercio en uno de los terminales se desconecta, el Asesor Experto en el otro terminal no lo sabrá. Para evitar esta situación, los expertos de cada terminal deben escribir la hora actual en un descriptor de texto de alguna ventana (la segunda variante puede escribirse en sus ventanas). Esto se hace cada cierto periodo de tiempo (por ejemplo, 0,5 seg.). El Asesor Experto de otro terminal lee este tiempo y lo compara con su propio tiempo.

 
Meat:

Yo solía hacer una conexión de este tipo entre terminales a través de WinAPI. La lista de ventanas abiertas buscaría todos los terminales MT4 en funcionamiento. Había dos opciones para obtener presupuestos:


1. Leer las cotizaciones del "Market Watch" (control tipo ListView) de los terminales encontrados. Sólo se puede hacer desde una DLL externa.

Podrías entrar en más detalles, es muy interesante. Estaría muy agradecido.
 
Sergey_Murzinov писал (а): Un poco más de detalle puede usted, es muy interesante. Se lo agradecería mucho.
Lamentablemente no tengo el código fuente de la DLL (y la propia DLL) en este momento. Pero he descrito el algoritmo general aquí: https://www.mql5.com/ru/forum/107435/page3

Si necesita más detalles, puede encontrar un diseño ya hecho en Internet, utilizando un motor de búsqueda (algo así como "obtener texto de ListView").

 

Yo he hecho ese bind mediante archivos (hasta 5 terminales), no he visto ningún lag.

El tiempo que se tarda en ejecutar una operación comercial es varios órdenes de magnitud más largo que el tiempo que se tarda en intercambiar información.

 
komposter:

Yo he hecho ese bind mediante archivos (hasta 5 terminales), no he visto ningún lag.

El tiempo que se tarda en ejecutar una operación comercial es varios órdenes de magnitud más largo que el tiempo que se tarda en intercambiar información.

Entiendo que ha pasado más de un mes, pero tal vez...

Has mencionado el tema de la vinculación de terminales a través de archivos, es lo que quiero implementar para mí. Llevo dos días en los foros, pero aún no he encontrado el camino a seguir. Todo lo que necesito es copiar un archivo escrito de un terminal a otros terminales (expertos/archivos). No soy programador, no sé cómo hacerlo. He encontrado una función ShellExecuteA, puede ejecutar una aplicación externa desde un indicador, pero si es posible hay una manera de copiar archivos de un EA a otro (no MQL) sin crear un archivo bat adicional. Por favor, ayuda, tal vez haya algún enlace a scripts ya hechos. Puede que me cueste entenderlo, DLL y WinAMI siguen siendo un tema desconocido para mí. Gracias de antemano.

 
Me pregunto por qué 2 DCs, toman dos pares correlacionados positivamente, obtienen el mismo resultado.
 
iskatel писал (а):П Me doy cuenta de que ha pasado más de un mes, pero tal vez... Has mencionado aquí el tema de la vinculación de los terminales a través de archivos, es algo que quiero implementar para mí. Llevo dos días en los foros, pero todavía no he encontrado el camino a seguir. Todo lo que necesito es copiar un archivo escrito de un terminal a otros terminales (expertos/archivos). No soy programador, no sé cómo hacerlo. He encontrado una función ShellExecuteA, puede ejecutar una aplicación externa desde un indicador, pero si es posible hay una manera de copiar archivos de un EA a otro (no MQL) sin crear un archivo bat adicional. Por favor, ayuda, tal vez haya algún enlace a scripts ya hechos. Puede que me cueste entenderlo, DLL y WinAMI sigue siendo un tema desconocido para mí. Gracias de antemano.

Vea cómo se implementa aquí: 'Optimización automática de un robot de comercio en el comercio real'.

Copiar usando ShellExecuteA.

 
xrust:
Me pregunto por qué 2 DCs, toman dos pares correlacionados positivamente, obtienen el mismo resultado.

2 DCs, esto es por experiencia de vida " no pongas todos los huevos en la misma cesta", lo que sea: problemas con la retirada, el servidor se cuelga. Estoy seguro de que usted sabe más que yo sobre estas situaciones. Buscando scripts para automatizar su trabajo. En realidad no tengo 2, tengo más. Me gusta comerciar manualmente y mientras se repiten las mismas acciones puede que te equivoques en alguna parte. Y el ordenador de varios terminales ejecutará las operaciones mucho más rápido que yo. Pero parece que ya he encontrado lo que buscaba. Gracias por su foro, buen trabajo.

Por cierto, debo confesar que no sé qué son los "pares positivamente correlacionados". De toda la frase sólo conozco la palabra "resultado".

Gracias por las respuestas.

 
El sistema se aplica desde hace tiempo...
quiere ponerse con los detalles... llame a stu_dent [@]mailcan.com
 
DentStu:
El sistema se aplica desde hace tiempo...
quiere ponerse con los detalles... llame a stu_dent [@]mailcan.com

Sí, ya lo hice. Pero gracias de todos modos.