Intercambio de datos entre dos EAs que se ejecutan en diferentes terminales

 

Este hilo es una continuación técnica del hilo "Prohibición de la NFA sobre el bloqueo a partir del 15 de mayo de 2009".

En particular, a partir de este post:

"La NFA prohíbe el cierre a partir del 15 de mayo de 2009

solandr 26.04.2009 12:06

2. Si tiene una cuenta de corretaje americana, la dividirá en 2 cuentas separadas de igual tamaño. En una cuenta todas las posiciones para todos los instrumentos serán de COMPRA solamente, en la otra todas las posiciones para todos los instrumentos serán de VENTA solamente. Esta regla no se infringe cuando se prohíbe la cobertura en una cuenta, porque tenemos 2 cuentas. Entonces necesitamos un método para distribuir las operaciones del único Asesor Experto entre estas 2 cuentas diferentes. Dado que esta no ha sido mi tarea anterior, me gustaría saber qué métodos están disponibles para la ejecución eficiente de órdenes de un Asesor Experto en 2 cuentas diferentes.

Me gustaría discutir la implementación técnica del intercambio de datos entre dos EAs que trabajan en diferentes terminales.

Creo que la dirección más prometedora para la discusión es la transferencia de información entre EAs utilizando un espacio de memoria compartida, pero cualquier otra opción puede ser discutida.

Es decir, cada uno de los Asesores Expertos necesita tener la información completa sobre las órdenes del otro terminal. ¿Cómo se arregla esto?

Me gustaría pedir que sólo se discutieran detalles técnicos en este hilo. Gracias de antemano.

 
Todos los detalles técnicos, así como la aplicación del algoritmo, están descritos desde hace tiempo. Utiliza la búsqueda.
 
HIDDEN >> :
Todos los detalles técnicos, así como la aplicación del algoritmo, están descritos desde hace tiempo. Utiliza la búsqueda.

¿Se refiere a este artículo o a otra cosa?

Selección automatizada de CC para un trabajo experto eficaz".

 
 

Para su tarea, utilizar el conjunto de herramientas descritas en el artículo sobre la selección automatizada de CC es un tiro al aire. Sin dlls, puedes arreglártelas sólo con archivos.

 

El uso de sqllite3 por parte de uno de los terminales sugiere que esta es una de las formas más fáciles.

Sería una buena idea que los desarrolladores cargaran toda la información de los terminales en esta base de datos.

Luego, con las funciones habituales, tendremos acceso a la lectura de información más estructurada...

Por ejemplo, ahora es una tarea no trivial analizar los registros para estimar, por ejemplo, la calidad de la apertura de posiciones.

*

Perdón si me salgo del tema...

*

Si hablamos de DB, estoy buscando formas que puedan ayudar durante el intercambio entre cuentas,

¿cómo escribir y leer las mismas celdas de la base de datos?

Es decir, para sus propósitos, comenzamos una tabla , y en sus campos, llamemos condicionalmente A, B, C, D, con una fila.

Esquemáticamente, es así:


A
B
C
E
datos
123
1.2548
12.04.2009
comprar
 
solandr >> :

Este hilo es una continuación técnica del hilo "Prohibición de la NFA sobre el bloqueo a partir del 15 de mayo de 2009".

En particular, a partir de este post:

"La NFA prohíbe el cierre a partir del 15 de mayo de 2009

solandr 26.04.2009 12:06

2. Si tiene una cuenta de corretaje americana, la dividirá en 2 cuentas separadas de igual tamaño. En una cuenta todas las posiciones para todos los instrumentos serán de COMPRA solamente, en la otra todas las posiciones para todos los instrumentos serán de VENTA solamente. Esta regla no se infringe cuando se prohíbe la cobertura en una cuenta, porque tenemos 2 cuentas. Entonces necesitamos un método para distribuir las operaciones del único Asesor Experto entre estas 2 cuentas diferentes. Dado que esta no ha sido mi tarea anterior, me gustaría saber qué métodos están disponibles para la ejecución eficiente de órdenes de un Asesor Experto en 2 cuentas diferentes.

Me gustaría discutir la implementación técnica del intercambio de datos entre dos EAs que trabajan en diferentes terminales.

Creo que la dirección más prometedora para la discusión es la transferencia de información entre EAs utilizando un espacio de memoria compartida, pero cualquier otra opción puede ser discutida.

Es decir, cada uno de los Asesores Expertos necesita tener la información completa sobre las órdenes del otro terminal. ¿Cómo se arregla esto?

Me gustaría pedir que sólo se discutieran detalles técnicos en este hilo. Gracias de antemano.

Tengo varias ideas

Intercambio de 1 archivo

2- es posible utilizar varios métodos de eventos de Windows

3 a través de TCP/IP


El intercambio de archivos es más sencillo en términos de complejidad


hay que tener cuidado con el intercambio de archivos

El acceso al mismo archivo por parte de diferentes programas debe estar debidamente separado

En cualquier caso, hay que tener una buena idea de cómo funciona el intercambio de archivos.

 
kombat >> :


Si hablamos de mysql, entonces estoy buscando formas que también sean útiles para el intercambio entre cuentas,

¿cómo escribir y leer las mismas celdas de la base de datos?


Elemental, Watson. A través de consultas SQL.

 
Reshetov >> :

Es elemental, Watson. Mediante consultas SQL.

¡Gracias, Holmes! ;)))

El único problema es cómo hacerlo...

Yo, por ejemplo, aún no he sucumbido a esta tarea.

(aunque sólo trabajo en él ocasionalmente).

*

Si en serio, el problema es hacer una petición de lectura/escritura por coordenadas específicas de la tabla.

 
kombat >> :

¡Gracias, Holmes! ;)))

El único problema es cómo hacerlo...

Yo, por ejemplo, aún no he sucumbido a esta tarea.

(aunque sólo trabajo en él ocasionalmente).

*

En serio, el problema es hacer una consulta de lectura/escritura para coordenadas específicas de la tabla.


SQL también puede hacerlo

hay un problema... ¿Cómo saben los dos EAs que hay que meterse con el SQL?

tendrán que utilizar un monitor en ambos Asesores Expertos que utilizará una cantidad de tiempo para mirar en SQL para ver si el EA ha "escrito" algo

Es similar al intercambio de archivos ! Tienes que pasar por el mismo problema - con cada quantum de tiempo que vas al archivo

si algo ha cambiado, si un amigo que comercia en otra cuenta ha informado de algo


--

es más económico y mejor utilizar un evento

se produce el evento - ¡patada!

si no ha surgido un evento - ¡no patee!

cada experto puede tener el impulso de contarle a su amigo sus intenciones

este será el evento... así es como patea a su amigo dormido

windows es un sistema operativo dirigido por eventos - mejor ir en esa dirección

--

 

En principio, es más que suficiente para mí comprobar/registrar un archivo a intervalos regulares.

En cuanto al acceso a los archivos, un colega me sugirió la siguiente idea. Al escribir en un archivo, lo llamamos algo así como archivo.funcionando. En cuanto terminemos de escribir en él, le cambiamos el nombre a archivo.salida. Después de que el archivo sea leído por el segundo Asesor Experto , elimine el archivo. De esta manera, le hacemos saber al primer Asesor Experto que podemos escribir un nuevo archivo con la información pasada durante el siguiente ciclo de operación del primer EA (después de una cierta cantidad de tiempo). Tal vez, para la seguridad de la separación de accesos, podríamos utilizar algunas banderas.


He visto algunos ejemplos de uso de TCP/IP cuando los datos se envían a través del localhost 127.0.0.1 en algún puerto. Cada Asesor Experto conoce el puerto de otro y le transmite datos, al mismo tiempo que escucha en su propio puerto para interceptar los datos de otro Asesor Experto. Tengo un ejemplo de cómo se puede hacer esto en VB script. No sé cómo se puede implementar en un EA.

¿Existen ejemplos de transmisión de datos a través de TCP/IP para Expert Advisors?

Razón de la queja: