Services, neue Funktionen in der MT5-Architektur, die Beerdigung von MT4 steht vor der Tür. - Seite 5

 
Petros Shatakhtsyan:


Interessanterweise wollte ich gestern die Funktionen von MarketBookAdd und OnBookEvent nutzen, um einen EA mit mehreren Währungen zu erstellen.

Aber aus irgendeinem Grund funktioniert MarketBookAdd auf dem Testgerät nicht. Es wird die Fehlermeldung 4901 - DerPreisstapel kann nicht hinzugefügt werden.

Aber es funktioniert nur in Echtzeit...
 
Alexey Kozitsyn:
Es funktioniert nur in Echtzeit.


Und ich muss keinen Preisstapel bekommen, sondern so einfache Funktionen haben:

1. Löschen Sie den Inhalt von Market Watch.

2. Fügen Sie dort die gewünschten Zeichen ein (dies ist möglich)

3. Verwenden Sie eine Funktion oder ein Ereignis, um alle Ticks, die in Market Watch angezeigt werden, von jedem Symbol zu erhalten, oder machen Sie OptiScope zusammen mit der Multi-Tick-Funktion.

 
Petros Shatakhtsyan:


Und ich brauche nicht den Stapel von Preisen zu bekommen, sondern so einfache Möglichkeiten zu haben:

1. Löschen Sie den Inhalt von Market Watch.

2. Fügen Sie dort die gewünschten Zeichen ein (dies ist möglich)

3. Verwenden Sie eine Funktion oder ein Ereignis, um alle Ticks, die in Market Watch angezeigt werden, von jedem Symbol zu erhalten, oder machen Sie Optiсk zusammen mit der MultiTick-Funktion.

Es ist nicht ganz klar, warum Sie sich für die Markttiefe entschieden haben, wenn Sie mit Market Watch und Ticks arbeiten wollen?
 
Alexey Kozitsyn:
Es ist nicht ganz klar, warum Sie sich entschieden haben, durch den Preisstapel zu gehen, wenn Sie mit Marktübersicht und Ticks arbeiten wollen?

Und woher wollen Sie die Daten aller Kurse nehmen, die in der Marktübersicht sichtbar sind oder hinzugefügt werden?
 
Petros Shatakhtsyan:

Und woher wollen Sie die Daten aller Kurse nehmen, die in der Marktübersicht sichtbar sind oder hinzugefügt werden?
Ähm ... OnTimer(), OnTick(), OnCalculate()...
 
Petros Shatakhtsyan:

Und woher wollen Sie die Daten aller Kurse nehmen, die in der Marktübersicht sichtbar sind oder hinzugefügt werden?

MqlTick tickEUR;
MqlTick tickGBP;
MqlTick tickEURGBP;

GetSymbolByName(string symbol)   {    string symbol_name="";   // Имя символа на сервере //--- Если передали пустую строку, вернем пустую строку    if(symbol=="")       return(""); //--- Пройтись по списку всех символов на сервере    for(int s=0; s<SymbolsTotal(false); s++)      {       //--- Получим имя символа       symbol_name=SymbolName(s,false);       //--- Если искомый символ есть на сервере       if(symbol==symbol_name)         {          //--- Выберем его в окне "Обзор рынка"          SymbolSelect(symbol,true);          //--- Вернем имя символа          return(symbol);         }      } //--- Если искомого символа нет, вернем пустую строку    Print("Символ "+symbol+" не найден на сервере!");    return("");   } int OnInit()   { //---    GetSymbolByName("EURUSD"+SymbolSuffix);    GetSymbolByName("GBPUSD"+SymbolSuffix);    GetSymbolByName("EURGBP"+SymbolSuffix); }

void OnTimer() // или OnTick   {       if(!SymbolInfoTick("EURUSD"+SymbolSuffix,tickEUR)) {Print("EURUSD price has not been received"); return;}    if(!SymbolInfoTick("GBPUSD"+SymbolSuffix,tickGBP)) {Print("GBPUSD price has not been received"); return;}    if(!SymbolInfoTick("EURGBP"+SymbolSuffix,tickEURGBP)) {Print("EURGBP price has not been received"); return;} if(tickEUR.ask!=0 && tickEUR.bid!=0) {} // ну и все в этом духе }

 
Maxim Dmitrievsky:

Wie können Sie so viele Beiträge lang so unfassbar stumpfsinnig sein?
Menschen, die etwas Nützliches anbieten, erkennt man an den Pfeilen, die aus ihrem Rücken ragen. Alles, was neu ist, stößt immer auf Ablehnung. Vor allem diejenigen, die mit dem Verkauf von Arbitrage-Beratern, die von hrenfx kopiert wurden, Geld verdienen, da ihr direkter Einsatz auf dem Markt wegen des Widerstands dieser Maklerfirma unmöglich ist.
 
Maxim Dmitrievsky:


Es wäre ineffizient, wenn EA jeden Tick behandelt, selbst wenn Millisekunden im Timer verwendet werden.

Ich brauche einen einfacheren Weg, um alle Ticks direkt aus der Marktübersicht zu erhalten.

Ein durchgehender OpTisk ist nicht möglich, da er nur dann funktioniert, wenn der nächste Tick dort kommt, wo der EA steht.

 
Petros Shatakhtsyan:

Sie müssen dies weiterhin über einen Timer tun. Der Timer benötigt lediglich einen Algorithmus, der dafür sorgt, dass er keine Anfrage stellt, wenn der letzte Tick mit dem vorherigen Tick identisch ist.

BookEvent wird Ihnen hier nicht helfen.

 
Alexey Kozitsyn:

Sie müssen dies weiterhin über einen Timer tun. Der Timer benötigt lediglich einen Algorithmus, der dafür sorgt, dass er keine Anfrage stellt, wenn der letzte Tick gleich dem vorherigen Tick ist.

BookEvent wird Ihnen hier nicht helfen.


Ja, aber Sie sollten auch berücksichtigen, dass es nur einen Timer hier, nicht so, so VC + +, und wenn Sie eine Menge von Timer-Prüfungen haben, können Sie einfach eine Menge von Ticks verlieren und alles wird in Brei verwandeln.