¿Cómo es el Websocket? - página 23

 
Алексей Барбашин:

Así que expresas que te gustaría poder disfrutar del proceso por ti mismo. Sólo hay que entender que no se puede pedir al servidor una vela concreta, sólo un rango de velas para las fechas seleccionadas. Así que piensa en esa dirección.

Entonces sería mejor escribir los datos en un archivo. No entiendo cómo añadir una carpeta

 
Lo encontré, lo añadí
 
Maxim Kuznetsov:

¿es posible intervenir?

¿Nadie quiere hacer una clase/interfaz en el lado de la MT de antemano?

Es decir, dar un pliego de condiciones específico que se discuta y se haga cumplir.

comencemos:


class Hibou {

Hidou(string url=HIBOU_WS_URL);  // думаю почти бесспорно

~Hibou();

void DoEvent(); // веб-сокеты асинхронны, а может в тредах реализуем, будем дёргать при первой возможности

int State(); // некое текущее состояние

/// хенды по событиям протокола, вызываемые из DoEvevnt

virtual void OnConnect();  //  соеденились - зашибись

virtual void OnMessage(string json); // получили внятный Event

/// и так далее - заказчик представляет как он намерен использовать интерфейс.

/// если он этого не знает, мы за него ничего придумать не можем, клиника в руках пациентов

}

¡No puede! ¡TIENES QUE HACERLO! Cuantos más interesados participen, mejor.

Normalmente On[Event|Connect|Message] y demás se utilizan para notificar que el evento ha ocurrido, pero no tenemos la capacidad de notificar a MT, tal modelo de evento desafortunadamente no existe, no podemos pasar mensajes a MT((((

Así que sólo nos queda un método de sondeo periódico de sharp por parte de mql, por ejemplo mediante un minúsculo temporizador. (((

Y para que todo ocurra correctamente... Todos los que han leído la ayuda de mql han notado muchas veces la expresión "cola de eventos", y los desarrolladores, incluido Renat, nos dicen a cada paso que todos los eventos de la terminal son sincrónicos y se procesan en orden de cola, y todos los eventos del sistema y de la terminal se colocan en esta misma cola y se procesan secuencialmente. Por eso, en la primera edición propuse utilizar el mismo mecanismo de intercambio: la cola.

 

Conectar la biblioteca WebSocket4Net de los paquetes Nuget a nuestro proyecto.

Describe la clase de socket. Añade la propiedad IsOpen, que será la responsable de que el socket esté abierto.

Formalizando literalmente la clase socket, escribimos la información necesaria a través de las pistas de contexto.


A continuación, refinamos el gestor global. En su constructor estático crearemos inmediatamente una instancia del socket, para no olvidarnos de él.


He escuchado a Maxim y he añadido al gestor global el método de conexión a un corredor específico. Será conveniente en caso de desarrollo para otros corredores.

Estamos perfeccionando el web-socket y creando manejadores de eventos para el propio socket.


 
Алексей Барбашин:


He escuchado a Maxim y he añadido un método de conexión específico para el corredor al gestor global. Será conveniente que haya un desarrollo para otros corredores

debes haber estado escuchando con tu tercer ojo :-)

 
Maxim Kuznetsov:

debes haber estado escuchando con tu tercer ojo :-)

Max, has sugerido crear una clase, pero tenemos la clase GlobalManager para los métodos generales y no veo ningún sentido en crear una clase específica separada.

En cuanto a la interfaz para MT, tendremos la clase ConnectorMQL, cuando probemos todos nuestros métodos en el modo de consola.

Si me he equivocado en algo, por favor, corrígeme, intenta exponer tu punto de vista de forma diferente, no saques conclusiones precipitadas.

P.D. Por supuesto, puedes hacer no sólo un punto de entrada universal como ConnectorMQL, sino realmente una clase separada HuobiMQL, que enviará comandos especializados al gestor global.
 
Алексей Барбашин:

Algo que no puedo ver


 
Fedor Arkhipov:

No puedo verlo.


Parece que está bien, no está subrayado. Pero deberías poner un punto y coma al final de la línea.

 

He añadido una carpeta Points y he creado una clase HuobiMQL en ella


En los eventos de apertura y cierre de un socket, he añadido la configuración de la propiedad de estado del socket


 
Алексей Барбашин:

Max, has sugerido crear una clase, pero tenemos la clase GlobalManager para los métodos generales, y no veo ningún sentido en crear una clase específica separada todavía.

En cuanto a la interfaz con MT, tendremos la clase ConnectorMQL más adelante, cuando probemos todos nuestros métodos en modo consola.

Si me he equivocado en algo, corrígeme, intenta exponer tu punto de vista de forma diferente, no saques conclusiones precipitadas.

En cuanto al diseño: es mucho más sencillo - @Fedor Arkhipov(autor del tema y autor de la iniciativa) declara "quiero que sea así, pero ahora mismo necesito a Hibou". Y pequeñas/acordadas correcciones de nosotros los pobres :-) Porque él es el que sabe de qué va la idea.

Por mi parte, no tengo claro el propósito de muchas clases, pero eso son mis quejas...

Puedes tener cientos de jerarquías de clases y métodos :-)

Razón de la queja: