Librerie: Lavorare con i socket in MQL5 - pagina 2

 
avoitenko:

Non ho ancora eseguito il trasferimento delle quotazioni esattamente come fa MT4 via DDE, perché MT4 è un server di automazione. Lo faccio in questo modo: MT5 è un client, e se si desidera conoscere i prezzi_attuali, si invia una richiesta e si ottiene il risultato. Questo funziona per tutte le coppie di valute attive nella finestra di visualizzazione del mercato.

In questo progetto è anche possibile inviare tutte le quotazioni in un unico pacchetto. Ad esempio, in un Expert Advisor, con un timer ogni secondo, si ricevono i dati e prima di inviarli si controlla che i nuovi dati non siano simili a quelli già inviati per ogni coppia di valute, cioè una variazione dei dati di Ask o Bid sarà considerata un nuovo tick.

Il timer non è adatto, il carico eccessivo sarà troppo grande!

"...in modo che i nuovi dati non siano simili a quelli già inviati".

A volte, il valore della quotazione può essere uguale a quello precedente, determinando l'attività sul mercato.

 
gisip:

Il timer non è adatto, perché il carico è eccessivo!

A quanto pare, per risolvere il problema, è necessario ricevere e inviare al server i dati sull'evento OnBookEvent di modifica del prezzo del vetro.

 
avoitenko:

A quanto pare, per risolvere il vostro compito, è necessario ricevere e inviare al server i dati sull'evento OnBookEvent price tumbler change.

Avete un esempio di utilizzo dell'evento OnBookEvent price glass, perché non riesco a capire da dove iniziare?
 
gisip:
Avete un esempio di come utilizzare un prezzo di vetro OnBookEvent, perché non riesco a capire da dove iniziare?
Ottenere il bicchiere o usarlo nel TC?
 
Interesting:
Ottenere un bicchiere o usarlo in una TC?
Tutto ciò che non è patetico!
 
gisip:
Tutto ciò che non è inutile!

È meglio usare gli occhiali in Alpari (qui ci sono problemi).

Potete vedere un esempio qui
 

Ciao, ottimo lavoro!

Il mql5.dll funziona con EA mq4?

Hai un esempio?

 
Guardate questo esempio per MLQ4 - lavorare con i socket senza usare la DLL.
 

Grazie per questo!

ma per la versione x64 si deve cambiare my_rand() rutins

//--------------------------------------------------------------------------//
unsigned long long rand64()
//--------------------------------------------------------------------------//
{
        return ( static_cast<unsigned long long>( rand() ) << 32 ) | rand();
}

qualcosa del genere.

 
Однако, непосредственная работа с функциями этой библиотеки невозможна из-за отсутствия в MQL5 механизма работы с указателями и передачи сложных типов данных в качестве параметров в вызываемые функции DLL.

tutto è possibile! MQL5 normalmente passa/riceve strutture e puntatori ad esse nelle funzioni DLL.