Discusión sobre el artículo "Usar WinInet.dll para el intercambio de datos entre terminales por internet"

 

Artículo publicado Usar WinInet.dll para el intercambio de datos entre terminales por internet:

En este artículo se describen los principios de trabajar con internet mediante las peticiones HTTP y el intercambio de datos entre terminales, usando un servidor intermedio. Se presenta una clase de la librería MqlNet para trabajar con los recursos de internet en el entorno MQL5. Seguir de los precios por distintos brokers, intercambiar mensajes con otros traders sin salir del terminal, buscar informaciones en internet; estos son solamente algunos ejemplos que se repasan en este artículo.

Autor: o_O

 

¡Potente! Artículo muy útil. Es difícil para los principiantes buscar en Internet toda esta información. Y aquí todo está recogido en un solo artículo.

En general, trabajar con Internet es uno de los temas más interesantes. Crear un sitio totalmente automático (pero mejor varios sitios o encabezados en varios sitios) para este terminal. Mostrar la situación actual del mercado en el sitio. Visualización de análisis de mercado y señales de negociación en el sitio. "Interceptación" de señales de negociación por otros terminales. Envío de señales y mensajes a los usuarios interesados. Añadir/eliminar usuarios "interesados" de la lista (base de datos) para su posterior atención por el servicio de terminal. Recopilación y análisis de información de otros sitios, creación y publicación de informes...

Para los principiantes también es importante disponer de bastantes ejemplos sencillos que utilicen esta tecnología.

 
Rinng писал(а) :

"Interceptación" de señales de negociación por otros terminales.

¿qué se entiende por interceptación? ¿se refiere a tomar una señal del sitio y ejecutarla en el terminal?

Enviar señales y mensajes a los usuarios interesados. Añadir/eliminar usuarios "interesados" a la lista (base de datos) para su posterior atención por el servicio del terminal.

Aquí hay dos opciones - o hacer un copiador ordinario de ofertas. sólo intercambio de información con un servidor intermedio.
O hacer el cálculo de una función oculta en el servidor, y dar al usuario el resultado de esta función para que su experto tome una decisión.

 
sergeev:

¿Qué entiende por interceptación? ¿Se refiere a tomar una señal del sitio y ejecutarla en el terminal?

Aquí hay dos opciones: o hacer una copia ordinaria de las operaciones, pero sólo intercambiar información con un servidor intermedio.
O hacer el cálculo de una función oculta en el servidor, y el usuario recibe el resultado de esta función para que su Asesor Experto pueda tomar una decisión.

1) "Interceptación" - exactamente recibir señales de este servidor intermedio (sitio) y ejecutar en el terminal del usuario.

2) Acceso a la información del servidor (señales de mercado, mensajes personales, análisis de mercado) mediante acceso personal, según la base de datos del usuario. Gestión de la base de datos del usuario a través del terminal maestro y/o a través del script del servidor (por ejemplo - script para el pago del acceso a la información a través de Webmani).

 

Rinng:

2) Acceso a la información del servidor (señales de mercado, mensajes personales, análisis de mercado) por acceso personal, según la base de datos del usuario. Gestión de la base de datos de usuario a través del terminal líder, y/o a través de script de servidor (por ejemplo - script de pago por acceso a la información a través de Webmani).

Si usted hace la recepción de información sobre el estado de "algo" en el terminal, creo que este es un punto interesante.

Como usted escribe - mensajes del servicio al que el usuario está conectado.... Por lo tanto, es una especie de desarrollo individual para algún servicio.

Si tienes una variante o ideas de un protocolo generalizado que se pueda instalar en cualquier servidor de origen y que sea fácil de conectar en un terminal, podemos discutirlo. Personalmente me interesa el tema de la globalización de las conexiones en los terminales.

 

Estoy interesado en publicar información del Asesor Experto en varios sitios y acceder a la información publicada de forma privada, por contraseña desde otros terminales. Y también gestión de base de datos de usuarios desde el EA.

En cuanto a la globalización de enlaces entre terminales, creo que no podemos prescindir de un servidor "remoto". En general, debería ser así:

Las tareas del terminal maestro incluyen la preparación de toda la información necesaria y la administración del servidor remoto.

Las tareas del servidor remoto incluyen la identificación de los terminales esclavos, la gestión de la base de datos de usuarios (terminales esclavos), la recepción y el envío de la información necesaria a los terminales, el diseño y la publicación del sitio o sitios.

La tarea de un terminal esclavo consiste en recibir y procesar la información que le está destinada y enviar una respuesta al servidor.

De forma sencilla, el servidor puede diseñarse en PHP 5.0.

El intercambio de datos puede realizarse mediante el protocolo FTP, intercambiando ficheros.

En general debe haber tres programas: servidor, terminal-admin-servidor, terminal-cliente.

 

Para este circuito, he aplicado dos enfoques.

1. El terminal maestro es el iniciador.
En este caso pone la información requerida en el propio servidor, y los esclavos simplemente la toman de allí y la procesan según el algoritmo. Esto no difiere del procesamiento habitual de la información, excepto por el hecho de que su fuente es el terminal maestro bajo nuestro control.

Aplicación: copiadores de transacciones, y sistemas que no requieren que el maestro reaccione a los estados de los esclavos.

2. Terminal esclavo iniciador.
En este caso el maestro actúa sólo como una máquina remota que sabe más que el maestro. Es decir, por ejemplo, contiene condiciones para entrar en el mercado mediante señales o fórmulas de cálculo ocultas, que son solicitadas por el esclavo.
Aplicación: cálculo de indicadores. Obtención de señales de trading.

Las funciones del servidor en este caso son realmente sólo en la diferenciación de los derechos de acceso. es decir, comprobar si el esclavo tiene derecho a tomar o dejar una solicitud (por cierto, de manera similar para el maestro). La base de datos de terminales puede almacenarse en MySQL o en un archivo csv normal.

Todo se realiza a través de peticiones (POST / GET) como FTP en este caso impone dificultades en la parte del servidor.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 

Metaarbitrage.mq5 no funciona. Se escribe en los registros:

¿Cómo solucionarlo?

sergeev:

Todo se implementa a través de peticiones (POST / GET) como FTP en este caso impone dificultades en la parte del servidor.
.

De acuerdo. Sugiero un paquete de php y MySql. Con MySql será fácil organizar un sistema de clasificación, almacenar datos, hacer selecciones.

 
Graff:

Metaarbitrage.mq5 no funciona. En los registros dice:

¿Cómo solucionarlo?

hmm. acabo de comprobarlo - en mi prueba el error se produce en la función HttpOpenRequestW con la línea Access violation read to 0x003F0070 in'kernel32.dll'.

Me parece que algo ha cambiado en las llamadas DLL después de la publicación del artículo

De acuerdo. Sugiero un paquete de php y MySql. Con MySql será fácil organizar un sistema de clasificación, almacenar datos, hacer selecciones.

Por supuesto. MySql siempre es mejor que sólo mantener archivos.
 
sergeev:

hmm. acabo de comprobarlo - en mi prueba, el error se produce en la función HttpOpenRequestW con la línea Access violation read to 0x003F0070 in'kernel32.dll'.

Me parece que algo ha cambiado en las llamadas DLL después de la publicación del artículo.

Por supuesto. MySql siempre es mejor que solo mantener archivos.

Los números de error son diferentes.

Listo para ayudar con el desarrollo del lado del servidor y scripts pcp en mi tiempo libre.

 
Graff:

Los números de error son diferentes.

Lo he enviado a servicedesk. que lo comprueben ellos también, creo que el error es más profundo, o realmente algo ha cambiado.

Estoy dispuesto a ayudar con el desarrollo del lado del servidor y scripts pcp en mi tiempo libre.

¿Cual es la idea, o mejor dicho, cual deberia ser la salida?
Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.