La table de tous les métiers. Accès via MQL5 - page 2

 
prostotrader:
Trouvé un bug et optimisé l'opération.

Un bon exemple, même s'il reste encore beaucoup de chemin à parcourir avant d'obtenir des performances optimales. Jusqu'à présent, les principaux freins sont au nombre de trois :

1. CopyTiks chaque OnBookEvent copie tous les ticks depuis le début :

int copied= CopyTicks(Symbol(),ticks,COPY_TICKS_ALL,start_time,0);

Il est possible d'optimiser cet aspect en effectuant des coupures dynamiques.

2. Énumération complète de tous les ticks reçus dans OnBookEvent

for(int i=1; i<copied; i++)
{
   if(( ticks[i].flags  &TICK_FLAG_BUY)==TICK_FLAG_BUY)
   {
      buy_deals++;
   }
   else
   if(( ticks[i].flags  &TICK_FLAG_SELL)==TICK_FLAG_SELL)
   {
      sell_deals++;
   }
}

Cela aussi peut être corrigé si vous le souhaitez.

3. Énumération complète de toutes les barres dans OnCalculation :

for(int i=rates_total-1; i>0; i--)
{
   SellBuffer[i]= SellBuffer[i-1];
   BuyBuffer[i] = BuyBuffer[i-1];
}
 
A la demande des membres du forum, j'ai finalisé l'indicateur
Dossiers :
DealsLent.mq5  9 kb
 
Vasiliy Sokolov:

Un bon exemple, même s'il reste encore beaucoup de chemin à parcourir avant d'obtenir des performances optimales. Jusqu'à présent, les principaux freins sont au nombre de deux :

1. CopyTiks chaque OnBookEvent copie tous les ticks depuis le début :

Il est possible d'optimiser cet aspect en effectuant des coupures dynamiques.

2. Énumération complète de tous les ticks reçus dans OnBookEvent

Cela aussi peut être corrigé si vous le souhaitez.

3. Énumération complète de toutes les barres dans OnCalculation :

Merci, mais vous n'avez pas raison partout.

1. Pas toutes les tiques (regardez bien).

2. comment voulez-vous procéder ?

3. facile à faire

Maintenant, nous allons le modifier...

 
Voilà, modifié.
Dossiers :
DealsLent.mq5  9 kb
 
prostotrader:

Merci, mais vous n'avez pas raison sur tout.

1. Pas toutes les tiques (regardez bien)

2. facile à faire

3. facile à faire.

Maintenant, nous sommes sur la bonne voie...

Oui, en effet, pas toutes les tiques.

En ce qui concerne le troisième point, je ne suis pas sûr que ce sera facile à faire. L'indicateur est tic-tac et nécessite donc un nouveau rendu sérieux.

Mais dans l'ensemble, tout va bien. Merci pour l'exemple.

 
prostotrader:
Ici, je l'ai modifié.
Merci.
 
Vasiliy Sokolov:

Oui, en effet, pas toutes les tiques.

Pour ce qui est du troisième point, je ne suis pas sûr que ce soit facile à faire. Parce que l'indicateur est un indicateur en tic-tac et qu'il nécessite donc un important re-rendu.

Mais dans l'ensemble, tout va bien. Merci pour l'exemple.

En effet, l'indicateur est basé sur des tics, donc seules les données actuelles (récentes) sont importantes.

Si l'utilisateur veut prendre un historique plus long des tampons,

c'est très facile à faire.

Sec.

 

Ici, l'utilisateur peut choisir la taille des données qui l'intéressent.

Si ActSize = 0 - tout l'historique disponible

Dossiers :
DealsLent.mq5  9 kb
 
La touche finale...
Dossiers :
DealsLent.mq5  10 kb
 

Quelqu'un sait-il quelle est l'erreur ?

L'indicateur fonctionne correctement, mais plus de barres sont affichées,

que ce pour quoi il a été conçu.