Bibliotheken: Arbeiten mit Sockets in MQL5 - Seite 2

 
avoitenko:

Ich habe die Übertragung von Kursen noch nicht genau so gemacht, wie MT4 es über DDE macht, weil MT4 ein Automatisierungsserver ist. Ich mache es so: MT5 ist ein Client, und wenn Sie die current_prices wissen wollen, senden Sie eine Anfrage und erhalten das Ergebnis. Das funktioniert für alle Währungspaare, die in der Marktansicht aktiv sind.

Sie können in diesem Projekt auch alle Kurse in einem Batch senden. In einem Expert Advisor können Sie zum Beispiel mit einem Timer jede Sekunde Daten empfangen und vor dem Senden prüfen, ob die neuen Daten nicht den bereits gesendeten Daten für jedes Währungspaar ähneln, d. h. eine Änderung der Daten für Ask oder Bid wird als neuer Tick betrachtet.

Timer ist nicht geeignet, zu viel Last wird zu groß sein !

"...so dass die neuen Daten nicht mit den bereits gesendeten Daten übereinstimmen".

Es kann vorkommen, dass der Kurswert mit dem vorherigen identisch ist, was die Aktivität auf dem Markt bestimmt.

 
gisip:

Durch Timer ist nicht geeignet, zu viel Last wird zu groß sein!

Offensichtlich, um Ihr Problem zu lösen, ist es notwendig, zu empfangen und senden Sie an den Server Daten auf dem OnBookEvent Preis Glas ändern Ereignis.

 
avoitenko:

Um Ihre Aufgabe zu lösen, ist es offensichtlich notwendig, Daten über das Ereignis OnBookEvent price tumbler change zu empfangen und an den Server zu senden.

Haben Sie ein Beispiel für die Verwendung von OnBookEvent Preis Glas, weil ich nicht verstehen kann, wo ich anfangen soll?
[Gelöscht]  
gisip:
Haben Sie ein Beispiel dafür, wie man ein Glas Preis OnBookEvent verwenden, weil ich nicht verstehen kann, wo ich anfangen soll?
Das Glas bekommen oder es im TC verwenden?
 
Interesting:
Ein Glas bekommen oder es in einem TC verwenden?
Alles, was nicht erbärmlich ist!
[Gelöscht]  
gisip:
Alles, was nicht wertlos ist!

Es ist besser, eine Brille in Alpari zu verwenden (hier gibt es Probleme mit ihnen).

Sie können ein Beispiel hier sehen
 

Hallo, sehr gute Arbeit!

Die mql5.dll arbeiten mit EA mq4?

Haben Sie Beispiel?

 
Schauen Sie sich dieses Beispiel für MLQ4 an - Arbeiten mit Sockets ohne Verwendung einer DLL.
 

Vielen Dank dafür!

aber für x64 Version müssen Sie my_rand() rutins ändern

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

etwas wie dies.

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

alles ist möglich! MQL5 übergibt/empfängt normalerweise Strukturen und Zeiger auf sie in DLL-Funktionen.