Diskussion zum Artikel "Das MQL5-Kochbuch: Implementierung Ihrer eigenen Markttiefe"

 

Neuer Artikel Das MQL5-Kochbuch: Implementierung Ihrer eigenen Markttiefe :

Dieser Beitrag führt vor, wie die Markttiefe (Depth of Market, DOM) programmatisch verwendet wird, und beschreibt das Arbeitsprinzip der Klasse CMarketBook, durch die die Standardbibliothek von MQL5-Klassen erweitert werden kann und die praktische Methoden für die Verwendung der DOM liefert.

Autor: Vasiliy Sokolov

 
Sie haben lange gelesen, aber nicht verstanden, worum es eigentlich geht?
 
Михаил:
Ich habe lange gelesen, aber ich habe nicht verstanden, warum?

Imho, zumindest eine fertige Klasse (wie Standard Library) zu haben, um die aktuelle Liquidität eines Instruments zu analysieren.

Vasily ist gut gemacht! Hohes Code-Niveau und systematischer Ansatz. Weiter so!

 
Михаил:
Lange gelesen, aber nicht verstanden, warum das alles?
Dennis Kirichenko:

Imho sollte man zumindest eine fertige Klasse (wie die Standardbibliothek) haben, um die aktuelle Liquidität eines Instruments zu analysieren.

Gut gemacht Vasily! Hohes Code-Niveau und systematischer Ansatz. Weiter so!

Genau so. Die Aufgabe meiner "MQL Recipes" ist es, die MQL Standard Library mit neuen, nicht-trivialen Klassen zu erweitern, um dem Trader die Arbeit zu erleichtern.

Was den Preisstapel betrifft, so ist es von entscheidender Bedeutung, den effizientesten Mechanismus für den Zugriff auf Level-II-Daten bereitzustellen. Dies ist der Fall, wenn die Arbeit über eine Zwischenklasse viel schneller (und natürlich bequemer) sein kann als eine vollständige Suche des Stacks bei jedem OnBookEvent. Die Algorithmen, die in die Preisglas-Klasse eingebettet sind, wurden aus einem bestimmten Grund geschrieben.

 
Vasiliy Sokolov:

Ganz genau. Die Aufgabe meiner "MQL Recipes" besteht darin, die Standard-MQL-Bibliothek um neue, nicht-triviale Klassen zu erweitern, um die Arbeit des Händlers zu erleichtern.

Was das Kursbuch betrifft, so ist es von entscheidender Bedeutung, einen möglichst effizienten Mechanismus für den Zugriff auf Level-II-Daten bereitzustellen. Dies ist der Fall, wenn die Arbeit über eine Zwischenklasse viel schneller (und natürlich bequemer) sein kann als eine vollständige Suche des Stapels bei jedem OnBookEvent. Die Algorithmen, die in die Preisglas-Klasse eingebettet sind, wurden aus einem bestimmten Grund geschrieben.

 
nützliche Informationen für den Handel mit Glas! Es ist gut, dass es in dieser Angelegenheit Gleichgesinnte gibt )
 
Михаил:

Mikhail, wir warten immer noch darauf, von Ihnen im benachbarten Thread zu erfahren, in welche Richtung der letzte Handel geht.

Ich glaube, du hast auch versprochen, deinen Artikel über die Verwendung des Ereignismodells im MetaTrader5 zu schreiben. Ich würde ihn gerne endlich lesen.

 
Vasiliy Sokolov:

Mikhail, wir warten immer noch darauf, von Ihnen im benachbarten Thread zu erfahren, in welche Richtung der letzte Handel geht.

Ich glaube, du hast auch versprochen, deinen Artikel über die Verwendung des Ereignismodells im MetaTrader5 zu schreiben. Ich würde ihn gerne endlich lesen.

Der Artikel wurde noch nicht veröffentlicht (er ist im Gegensatz zu Ihrem Artikel sehr klein), aber Sie können ihn in meinem Blog lesen.

P/S Im benachbarten Thread und lesen Sie über die Richtung...

Übrigens, eine Bemerkung zu dem Artikel.

So wie du es geschrieben hast, geht das nicht:

//+------------------------------------------------------------------+
//| Funktion BuchEreignis|
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
   printf("Das Preisglas von " + symbol +  " geändert"); 
  }

Denn das BookEvent-Ereignis wird übertragen.

Und sobald Sie es abonnieren, erhalten Sie alles in OnBookEvent(),

die Sie im Market Watch geöffnet haben.

Deshalb müssen Sie das Ereignis für das ausgewählte Symbol filtern:

//+------------------------------------------------------------------+
//| Funktion BuchEreignis|
//+------------------------------------------------------------------+
void OnBookEvent(const string &symbol)
  {
//---
    if ( symbol == _Symbol )
    { 
      printf("Das Preisglas von " + symbol +  " geändert");
    } 
  }
 
Михаил:

Der Artikel wurde nicht veröffentlicht (zu klein, im Gegensatz zu Ihrem), aber Sie können ihn in meinem Blog lesen.

P/S Im benachbarten Thread und lesen Sie über die Richtung....

Übrigens, eine Bemerkung zu dem Artikel.

So wie du es geschrieben hast, geht es nicht:

Denn das BookEvent-Ereignis wird übertragen.

Und sobald Sie sich für den Empfang anmelden, erhalten Sie alles in OnBookEvent(),

die Sie im Market Watch geöffnet haben.

Deshalb müssen Sie das Ereignis nur für das ausgewählte Symbol filtern:

Michael, aus der Dokumentation:

MarketBookAdd

Ermöglicht das Öffnen des Preisbuchs für das angegebene Instrument, und abonniert auch den Empfang von Benachrichtigungen über Änderungen im angegebenen Buch.

bool MarketBookAdd(
stringsymbol// symbol
);

D.h. die Entwickler haben MarketBookAdd zu dem Zweck eingeführt, dass OnBookEvent nur aufgerufen wird, wenn sich der Stapel der vordefinierten Symbole in MarketBookAdd ändert. Somit werden nur vordefinierte Symbole zu OnBookEvent gelangen.

 

OnBookEvent() lesen

В отличие от других событий, событие BookEvent является широковещательным.
Это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd,
все остальные эксперты, имеющие обработчик OnBookEvent(), будут получать это событие.
Поэтому необходимо анализировать имя символа, которое передается в обработчик в качестве параметра const string& symbol.
 

Hallo,

vielen Dank für den Beitrag.

Es ist genau das, wonach ich gesucht habe.

Depth of Market kann ein guter Hinweis für Scalper sein.

Aber das Problem ist, dass ich nie wirklich sehen Tiefe des Marktes Volumen Informationen in meinen Terminals.

Wie bekommt man Zugang zu den Volumeninformationen, die der Broker zur Verfügung stellt?