Discussion de l'article "L'Histogramme des prix (Profile du Marché) et son implémentation en MQL5" - page 2

 

2010.03.09 21:12:54 PriceHistogram (#DD,MN1) Il n'y a pas d'historique accessible PERIOD_D1

 
gen5s:

Merveilleuse conseillère ! A été...

Le problème est apparu depuis la build 251. Maintenant, sur les builds plus récentes, il n'est pas reflété du tout, bien que le journal indique qu'il est chargé.

Il y a peut-être quelque chose à changer, à déplacer dans un autre répertoire ?

Merci de votre attention, j'ai vraiment fait une erreur. Corrigé. Attendez une mise à jour.

PS

Il y avait une erreur dans la recherche des tableaux max/min, après l'avoir corrigée, un bug est apparu dans le code de l'EA

dans ClassPriceHistogram.mqh lignes 188,189 et 205 il faut fixer WHOLE_ARRAY à 0.

 
bcsunwww:

2010.03.09 21:12:54 PriceHistogram (#DD,MN1) Il n'y a pas d'historique accessible PERIOD_D1

Merci pour votre message. Corrigé, attendez les mises à jour.
 
mql5:

Merci de l'avoir signalé, j'ai effectivement fait une erreur. Elle est corrigée. Attendez la mise à jour.

PS

Il y avait une erreur dans la recherche des tableaux max/min, après l'avoir corrigée, un bug est apparu dans le code de l'Expert Advisor.

Dans ClassPriceHistogram.mqh lignes 188,189 et 205 il est nécessaire de corriger WHOLE_ARRAY à 0.

Merci d'avoir suggéré (WHOLE_ARRAY), car j'étais déjà fatigué de chercher l'erreur.
 
vdv2001:
Merci pour l'astuce(WHOLE_ARRAY), j'étais déjà fatigué de chercher l'erreur.
Malheureusement, ce n'est pas la seule erreur dans le code de l'expert. Nous allons essayer de trouver et de corriger le code source.
 

PriceHistogram.mq5 ne fonctionne pas sur le graphique. Les messages d'erreur de l'éditeur Meta sont dans le fichier joint.

Dossiers :
 

Remplacement du fichier inclus ClassPriceHistogramA.mqh :

  • réduction du nombre de tentatives de copie des données de prix AMOUNT_OF_ATTEMPTS=2 ;
  • ajout de la fonction PrintErrorOnCopyFunction() pour afficher des messages lorsqu'une tentative d'exécution de la fonction CopyXXX() échoue.
    //+------------------------------------------------------------------+
    //| affiche un message en cas d'échec de la copie |
    //+------------------------------------------------------------------+
    void PrintErrorOnCopyFunction(string func_name,string symbol,ENUM_TIMEFRAMES tf,int err_code)
      {
       Print(func_name,"Échec de la copie des données de prix, erreur".,err_code);
       Print("Le tout premier rendez-vous par symbole-période"+
             symbol+" "+TimeframeToString(tf)+
             "pour l'instant = "+
             (datetime)SeriesInfoInteger(symbol,tf,SERIES_FIRSTDATE));
       Print("Le tout premier rendez-vous de l'histoire par symbole sur le serveur =",
             (datetime)SeriesInfoInteger(symbol,tf,SERIES_SERVER_FIRSTDATE));
       Print("Données du symbole synchronisées =",
             (bool)SeriesInfoInteger(symbol,tf,SERIES_SYNCRONIZED));
       int bars=Bars(symbol,tf);
       int max_bars_in_chart=TerminalInfoInteger(TERMINAL_MAXBARS);
       Print("Nombre de barres dans l'historique par période de symbole correspondante = ",bars,
             "   max_bars_in_chart =",max_bars_in_chart);
       datetime firstbar[];
       int copied=CopyTime(symbol,tf,bars-1,1,firstbar);
       if(copied<0)
         {
          Print("Le premier bar disponible a une heure d'ouverture.,firstbar[0]);
          Comment("Vous devrez peut-être augmenter la valeur de 'Nombre maximum de barres sur le graphique'");
         }
       else Print("N'a pas réussi à obtenir l'heure d'ouverture du plus ancien bar disponible");
       ResetLastError();
      }
Il serait plus correct de vérifier l'historique disponible avant les opérations CopyXXX(), d'analyser le nombre de barres sur le graphique à l'aide de la fonction
TerminalInfoInteger(TERMINAL_MAXBARS);
et d'essayer d'échanger les données (si cela a un sens) comme dans l'exemple Organisation de l'accès aux données
 

Il fonctionne désormais parfaitement. Veuillez télécharger les fichiers mis à jour.

La documentation complète des codes sources de l'article est maintenant disponible : L'Histogramme des prix (Profil de marché) et son implémentation dans MQL5

La documentation a été créée par Doxygen.

Voir les détails dans l'article Documentation auto-générée pour le code MQL5.

The Price Histogram (Market Profile) and its implementation in MQL5
The Price Histogram (Market Profile) and its implementation in MQL5
  • 2010.01.28
  • Dmitry
  • www.mql5.com
The Market Profile was developed by trully brilliant thinker Peter Steidlmayer. He suggested to use the alternative representation of information about "horizontal" and "vertical" market movements that leads to completely different set of models. He assumed that there is an underlying pulse of the market or a fundamental pattern called the cycle of equilibrium and disequilibrium. In this article I will consider Price Histogram - a simplified model of Market Profile, and will describe its implementation in MQL5.
 

Tout fonctionne maintenant. Veuillez télécharger les fichiers mis à jour.

Ajout de la documentation aux codes sources donnés dans l'article : Market_Profile_Help.rar


La documentation a été créée à l'aide du programme Doxygen.

Détails dans l'article Création automatique de la documentation pour les programmes MQL5.

 
Automated-Trading писал(а) # :

Tout fonctionne maintenant. Veuillez télécharger les fichiers mis à jour.

Il ne fonctionne pas, ne peut pas gérer le timing de la première barre et donne un avertissement lors de la compilation. "implicit conversion from 'number' to 'string' ClassPriceHistogram.mqh 404 10"

build 256 je joins le log.