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

 
Renat Fatkhullin:

No, es un objeto sincrónico.

Pensé que habías escrito que estabas planeando algunas funciones para la asincronía en mql.
¿Tal vez el eventoOnSocket puede ser asignado allí también?

 
Renat Fatkhullin:

No, es un objeto sincrónico.

También soy partidario de tener un manejador de eventos de socket para no tener que hacer un sondeo continuo por temporizador. Estoy seguro de que los desarrolladores podrían implementarlo de forma más elegante.

 
Maxim Kuznetsov:

Maxim, ya que estás tratando con Websockets, ¿puedes intentar conectarte al socket wss://api.huobi.pro/ws en tu proyecto sin parámetros adicionales?

El propósito es averiguar si es la biblioteca que usamos en C# o no.

En mi opinión, la toma de corriente debería abrirse en cualquier caso, así como a través del sitio, sin ningún parámetro adicional.

 
Fedor Arkhipov:

Maxim, ya que estás tratando con Websockets, ¿puedes intentar conectarte al socket wss://api.huobi.pro/ws en tu proyecto sin parámetros adicionales?

El propósito es averiguar si es la biblioteca que usamos en C# o no.

IMHO socket debe abrir en cualquier caso, así como a través del sitio, sin ningún tipo de parámetros adicionales.

El enchufe se abre, incluso la suscripción funciona.

C:\src>tclsh hibou.tcl                                                                                                                                                                                             Socket sock0000000002E8D890                                                                                                                                                                                        Connected :-)

put json:  { "sub": "market.btcusdt.kline.1min", "id": "1122" }

Message binary ▼       «V*ÈÌKW²24µ036µ425657©♣ ´áƒ!▬

Message binary ▼       «VÊLQ²R2442RÒQ*.I,)-♠òó³A¼Ò¤¤TlnbQvj‰^RIriqJ‰^vNf^ªžanf▲PQ      P¹¡©…™±©¥‘©‰‘±a- éÝ×kS

Message binary ▼       MÌÍ

à ►♦àwÙ³ˆëïêÛ´F→‰ÑҘö►òîM Ð∟g>f6ˆ#♦˜o¯)u~ïq]†Î§’kâ8ç

‘D♠ïV♫►„Rs具^ž÷¿òûþ♣¬↨Ã▬È     ¹u♀Jû\t̏ñ‚·¹­µ▼⌂š“q^£C-

Message binary ▼       MÌÍ

ƒ\?↨Òcºà°Ô­´þÇ◄“dHy÷F(4Ǚ™↔Â♦▲–á5ÇÆï-lëØøœS‰œ–T€A[Á“²ú¦œPŠ¬>«¶fð;¤ñOˆ♀ê3▬ðF↑âh↓„\×س%®

­CÈ   Ÿ€NæZ’ÔNôûß@âq|☺œ

datos enviados, pero o bien no es GZ de la documentación, o inteligente chino hizo cabeceras :-)

tienen que lidiar con su compresión, pero sinceramente me da mucha pereza :-)

PS script, que lo hace adjunto, hay líneas sólo nada ... es posible tirar de él de 4.

Archivos adjuntos:
hibou.zip  1 kb
 
Maxim Kuznetsov:

PD el script que hace esto se adjunta, son solo unas pocas líneas...puedes sacarlo del 4.

¡Muchas gracias! Así que se trata de la biblioteca C#.

 
Fedor Arkhipov:

¡Muchas gracias! Por lo tanto, debe tratarse de la biblioteca C#.

No creo que sea tan malo: más bien necesita ajustar las opciones/configuraciones - en primer lugar, hibou tarda bastante en conectarse, los temporizadores pueden fallar, y en segundo lugar, son quisquillosos con las versiones de TLS

 
Fedor Arkhipov:

¡Muchas gracias! Así que se trata de la biblioteca C#.

No, no hay ningún problema en la propia biblioteca. Tuvo que pasar algo de tiempo, pero lo desenterró.

Descargué varios ejemplos de githab, incluyendo los señalados, ninguno de ellos hizo funcionar el socket. Esto fue aún más confuso. Y la razón resultó ser el refuerzo del certificado de seguridad en el servidor del corredor.

Cambiar la configuración en la instancia de nuestro socket:

Ajustamos ligeramente la clase de programa


Este cambio se ha realizado para que el servidor no esté codificado en la biblioteca, sino que se pueda configurar desde el Asesor Experto

El resultado:


Así que, como resultado, la biblioteca es de muy amplio espectro.

A continuación, vamos a adjuntar la llamada de citas con Fedor.

Hay más interesados en este ejemplo, así que vamos a seguir mejorándolo.

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

¡Genial! ¡Funciona! Muchas gracias, Alexey.

 

Intenté aplicar la biblioteca a MT4, el archivo EA compila sin errores,

Pero cuando lo adhiero al gráfico obtengo el error "Global initialization failed" si utilizo el método que devuelve el tipo simple.

Si intento obtener una estructura, obtengo "Archivo ex4 no válido (8)

¿Funcionaría si tiro todas las estructuras

O si tienes que meterte con los IL o los com-ports

 
Fedor Arkhipov:

Intenté aplicar la biblioteca a MT4, el archivo EA compila sin errores,

Pero cuando lo adhiero al gráfico obtengo el error "Global initialization failed" si utilizo el método que devuelve el tipo simple.

y si intento obtener una estructura, obtengo "Archivo ex4 inválido (8)

Tal vez funcione si tiramos todas las estructuras.

el C# a 4 es una canción triste aparte.

A 5 es fácil, tiene shuffle dentro, si no, no se podría devolver la cadena desde la dll.