Services, nouvelles fonctionnalités dans l'architecture de MT5, les funérailles de MT4 ne sont pas loin. - page 5

 
Petros Shatakhtsyan:


Il est intéressant de noter qu'hier, je voulais utiliser les fonctions de MarketBookAdd et OnBookEvent pour créer un EA multi-devises.

Mais pour une raison quelconque, MarketBookAdd sur le testeur ne fonctionne pas. Il donne une erreur 4901-Theprice stackcannot be added.

Mais ça ne fonctionne qu'en temps réel...
 
Alexey Kozitsyn:
Il ne fonctionne qu'en temps réel.


Et je n'ai pas besoin d'avoir une pile de prix, mais d'avoir des fonctionnalités aussi simples :

1. effacer le contenu de Market Watch.

2. Ajoutez-y les caractères souhaités (ceci est disponible)

3. Utilisez la fonction ou l'événement pour recevoir tous les ticks qui sont affichés dans Market Watch pour chaque symbole, ou faites l'OptiScope avec la fonction Multi-tick.

 
Petros Shatakhtsyan:


Et je n'ai pas besoin d'obtenir la pile de prix, mais d'avoir des possibilités aussi simples :

1. effacer le contenu de Market Watch.

2. Ajoutez-y les caractères souhaités (ceci est disponible)

3. Utilisez la fonction ou l'événement pour recevoir tous les ticks qui sont affichés dans Market Watch de chaque symbole, ou faites Optiсk ensemble avec la fonction MultiTick.

Il n'est pas tout à fait clair pourquoi vous avez décidé de passer par la profondeur du marché si vous voulez travailler avec la surveillance du marché et les tics ?
 
Alexey Kozitsyn:
On ne comprend pas très bien pourquoi vous avez décidé de passer par la pile de prix si vous voulez travailler avec la vue d'ensemble du marché et les ticks ?

Et où allez-vous obtenir les données de toutes les cotations qui sont visibles ou ajoutées à l'aperçu du marché.
 
Petros Shatakhtsyan:

Et où allez-vous obtenir les données de toutes les cotations qui sont visibles ou ajoutées à l'aperçu du marché.
Hum... OnTimer(), OnTick(), OnCalculate()...
 
Petros Shatakhtsyan:

Et où allez-vous obtenir les données de toutes les cotations qui sont visibles ou ajoutées à l'aperçu du marché.

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:

Comment pouvez-vous être aussi impitoyablement obtus pendant autant de posts ?
Vous pouvez reconnaître les personnes qui offrent quelque chose d'utile aux flèches qui sortent de leur dos. Tout ce qui est nouveau est toujours accueilli avec une réponse hostile. Surtout ceux qui gagnent de l'argent en vendant des conseillers en arbitrage copiés de hrenfx puisque leur utilisation directe sur le marché est impossible en raison de l'opposition de cette société de courtage.
 
Maxim Dmitrievsky:


Il serait inefficace que EA traite chaque tick, même si des millisecondes sont utilisées dans le timer.

Besoin d'un moyen plus facile d'obtenir tous les ticks directement à partir de l'aperçu du marché.

Un OpTisk n'est pas possible, parce qu'il ne fonctionne que lorsque le prochain tick arrive là où se trouve l'EA.

 
Petros Shatakhtsyan:

Vous devrez toujours le faire via une minuterie. Le timer a simplement besoin d'un algorithme pour ne pas faire de demande si le dernier tick est le même que le tick précédent.

BookEvent ne vous aidera pas ici.

 
Alexey Kozitsyn:

Vous devrez toujours le faire via une minuterie. Le timer a simplement besoin d'un algorithme pour ne pas faire de demande si le dernier tick est le même que le tick précédent.

BookEvent ne vous aidera pas ici.


Oui, mais il faut aussi tenir compte du fait qu'il n'y a qu'une seule minuterie ici, pas tellement, tellement VC++, et si vous avez beaucoup de vérifications de minuterie, vous risquez de perdre beaucoup de ticks et tout deviendra de la bouillie.