Websocket come? - pagina 19

 
Renat Fatkhullin:

No, è un oggetto sincrono.

Pensavo che avessi scritto che stai progettando alcune funzioni per l'asincronia in mql.
Forse l'eventoOnSocket può essere assegnato anche lì?

 
Renat Fatkhullin:

No, è un oggetto sincrono.

Sono anche favorevole ad avere un gestore di eventi socket in modo da non dover fare un polling continuo tramite timer. Sono sicuro che gli sviluppatori potrebbero implementarlo in modo più elegante.

 
Maxim Kuznetsov:

Maxim, visto che hai a che fare con i Websockets, puoi provare a connetterti al socket wss://api.huobi.pro/ws nel tuo progetto senza parametri aggiuntivi?

Lo scopo è quello di scoprire se è la libreria che usiamo in C# o no.

IMHO la presa dovrebbe aprirsi in ogni caso, così come attraverso il sito, senza alcun parametro aggiuntivo.

 
Fedor Arkhipov:

Maxim, visto che hai a che fare con i Websockets, puoi provare a connetterti al socket wss://api.huobi.pro/ws nel tuo progetto senza parametri aggiuntivi?

Lo scopo è quello di scoprire se è la libreria che usiamo in C# o no.

IMHO socket dovrebbe aprire in ogni caso, così come attraverso il sito, senza alcun parametro aggiuntivo.

La presa si apre, anche l'abbonamento funziona.

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|☺œ

invio di dati, ma non è GZ dalla documentazione, o intestazioni intelligenti fatte in cinese :-)

hanno a che fare con la loro compressione, ma onestamente sono troppo pigro :-)

PS script, che lo fa allegato, ci linee solo nulla... è possibile tirarlo da 4.

File:
hibou.zip  1 kb
 
Maxim Kuznetsov:

PS lo script che fa questo è allegato, ci sono solo poche righe... potete tirarlo dal 4.

Grazie mille! Quindi si tratta della libreria C#.

 
Fedor Arkhipov:

Grazie mille! Quindi, deve trattarsi della libreria C#.

Non penso che sia così male: ha piuttosto bisogno di modificare le opzioni/impostazioni - in primo luogo, hibou impiega molto tempo per connettersi, i timer possono bloccarsi, e in secondo luogo, sono esigenti riguardo alle versioni TLS

 
Fedor Arkhipov:

Grazie mille! Quindi si tratta della libreria C#.

No, non c'è nessun problema nella biblioteca stessa. Ho dovuto spendere un po' di tempo, ma l'ho tirato fuori.

Ho scaricato diversi esempi da githab, compresi quelli segnalati, nessuno dei quali ha fatto funzionare il socket. Questo era ancora più confuso. E la ragione si è rivelata essere il rafforzamento del certificato di sicurezza sul server del broker.

Cambiare l'impostazione nell'istanza del nostro socket:

Modifichiamo leggermente la classe Programma


Questo cambiamento è stato fatto in modo che il server non fosse hardcoded nella libreria, ma potesse essere impostato dall'Expert Advisor

Il risultato:


Quindi, come risultato, la biblioteca è molto ampia.

Poi, alleghiamo la chiamata delle citazioni con Fedor.

Ci sono più parti interessate a questo esempio, quindi continuiamo a migliorarlo.

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

Fico! Funziona! Grazie mille, Alexey!

 

Ho provato ad applicare la libreria a MT4, il file EA si compila senza errori,

Ma quando lo collego al grafico ottengo l'errore "Inizializzazione globale fallita" se uso il metodo che restituisce il tipo semplice.

Se cerco di ottenere una struttura, ottengo "Invalid ex4 file (8)

Funzionerebbe se buttassi via tutte le strutture

O se hai bisogno di pasticciare con l'IL o i com-ports

 
Fedor Arkhipov:

Ho provato ad applicare la libreria a MT4, il file EA si compila senza errori,

Ma quando lo collego al grafico ottengo l'errore "Inizializzazione globale fallita" se uso il metodo che restituisce il tipo semplice.

e se cerco di ottenere una struttura, ottengo "Invalid ex4 file (8)

Forse funzionerà se si buttano fuori tutte le strutture.

il C# a 4 è una canzone triste a parte.

A 5 è facile, ha shuffle all'interno, altrimenti la stringa non potrebbe essere restituita dalla dll.