Rejoignez notre page de fans
Сode d'enregistrement des graphiques d'équilibre et d'équité et de calcul de critères d'optimisation supplémentaires. - bibliothèque pour MetaTrader 5
- Vues:
- 81
- Note:
- Publié:
- Mise à jour:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
J'ai décidé de partager le code d' un grandprojet conçu dans une bibliothèque séparée.
Si vous avez accès au code de l'Expert Advisor, vous pouvez sauvegarder les graphiques d'équilibre et d'équité et calculer des critères d'optimisation supplémentaires en ajoutant le code de cette bibliothèque.
Téléchargez le fichier Advanced Optimization Report Saver.mqh à partir du lien ci-joint et sauvegardez-le dans le dossier terminal \MQL5\Include\
Ajoutez le code qui relie le fichier téléchargé : (vous pouvez l'ajouter sous la dernière ligne du code de votre Expert Advisor ou n'importe où ailleurs)
#include <Advanced Optimization Report Saver.mqh> Ensuite, vous devez ajouter les appels aux fonctions exportées aux fonctions existantes dans votre Expert Advisor : (s'il n'y a pas de fonctions, ajoutez-les)
void OnTick(){ //... votre code //Sauvegarder les graphiques de la balance et des capitaux propres save_OnTick(TimeCurrent(), AccountInfoDouble(ACCOUNT_BALANCE), AccountInfoDouble(ACCOUNT_EQUITY)); } void OnTesterInit() { //... votre code save_OnTesterInit();//print to chart "Ne fermez pas cette fenêtre tant que l'optimisation n'est pas terminée !" } void OnTesterDeinit(){ //... votre code save_OnTesterDeinit();// obtenir des cadres } double OnTester(){ //... votre code //sauvegarder les valeurs personnalisées : double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//valeur, chiffres, nom, tri_min_à_max save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//Votre fitness sur mesure saveCharts(Custom);/sauvegarde de l'équité finale, tous les accords... return Custom; }
Les fonctions save_Add, vous permettent d'ajouter vos propres critères que vous souhaitez inclure dans votre rapport :
save_Add( AvgPips, 2, "Custom 1", true);//valeur, chiffres, nom, tri_min_à_max
save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
Par exemple, ajoutons ce code au conseiller expert en moyenne mobile du dossier Exemples (...\MQL5\Experts\Examples\Moving Average\MovingAverage.mq5). Tout d'abord, copiez l'Expert Advisor original et nommez-le Moving Average Charts.mq5. Maintenant, ajoutez-y le code des instructions ci-dessus.
Les changements se trouvent seulement à la toute fin du code, à partir de la fonction OnTick() après la ligne CheckForOpen(); :
void OnTick(void) { //--- if(SelectPosition()) CheckForClose(); else CheckForOpen(); //Sauvegarder les graphiques de la balance et des capitaux propres save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY)); } void OnTesterInit() { //... votre code save_OnTesterInit();//print to chart "Ne fermez pas cette fenêtre tant que l'optimisation n'est pas terminée !" } void OnTesterDeinit(){ //... votre code save_OnTesterDeinit();// obtenir des cadres } double OnTester(){ //... votre code //sauvegarder les valeurs personnalisées : double AvgPips=0; save_Add( AvgPips, 2, "Custom 1", true);//valeur, chiffres, nom, tri_min_à_max save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2"); double Custom = 0;//Votre fitness sur mesure saveCharts(Custom);/sauvegarde de l'équité finale, tous les accords... return Custom; } #include <Advanced Optimization Report Saver.mqh>
Comme vous pouvez le voir, c'est assez simple et cela ne prend que quelques minutes.
Après cela, vous pouvez exécuter l'optimisation :


La dernière capture d'écran montre que le code connecté a ajouté 2 paramètres :
- Enregistrer les statistiques - permet d'activer ou de désactiver la collecte des statistiques.
- Pixels in balance and equity charts - spécifie le nombre de pixels dans la largeur des mini-graphiques.
Une fois l'optimisation terminée, vous pouvez créer un rapport (à l'aide d'un programme qui analyse les images sauvegardées) et voir ce qui suit :
| 100 lignes avec MovingPeriod | 10 lignes avec MovingShift |
S'il y a plus de 20 lignes, seules 3 lignes horizontales de valeurs moyennes seront affichées : 3 en haut et 3 en bas.
100 lignes sont difficiles à percevoir, il faut donc en réduire le nombre.
Vous pouvez utiliser des variables d'entrée non pas avec le même pas, mais avec une échelle via un énumérateur (enum), par exemple : 1,2,3,5,7,10,15,20,30,50,70,100 - il n'y aura que 12 lignes au lieu de 100.
enum nums1 {__0=0, __1=1, __2=2, __3=3, __5=5, __7=7, __10=10, __15=15, __20=20, __30=30, __50=50, __70=70, __100=100, __150=150, __200=200, __300=300, __500=500}; input nums1 MovingPeriod = 10; // Période de la moyenne mobileVous pouvez télécharger la version enum de l'Expert Advisor à partir des fichiers joints.
Au lieu de 1000 passes d'optimisation, il y en aura 120, et le temps de calcul sera ~8 fois plus rapide, et la taille du fichier sera ~8 fois plus petite.
Le résultat est plus visible :

Le résultat avec MovingPeriod = 15 ressort immédiatement, avec la ligne moyenne la plus élevée et le maximum le plus élevé.
Cependant, comme c'est souvent le cas, les meilleurs résultats sur le backtest ne sont pas les meilleurs sur le forward test.
Votre programme qui analyse les trames sauvegardées peut afficher des graphiques comme celui-ci :

et des critères supplémentaires comme celui-ci :
Si vous avez un code pour d'autres critères intéressants, vous pouvez les suggérer pour les ajouter à la bibliothèque.
Mises à jour :
- 2026-02-02 : Ajout de la prise en charge des caractères UTF dans les noms de critères personnalisés.
Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/68706
Previous Day highs and lows
Draws the previous day High, Low, and Close as horizontal reference lines on the chart for a configurable number of past days. Yesterday's levels extend into today as live support and resistance, with optional touch alerts.
Trade With MA
Trade using MA. An easy indicator to identify the trend direction on a specific timeframe.
Binary tradng based on candle colors
Une stratégie simple de trading binaire qui compte les couleurs des bougies.
ShowTradeLines Service
Il s'agit d'un service permettant d'afficher les points d'entrée/sortie des positions/opérations existantes sous forme de lignes de tendance et/ou de flèches sur les graphiques.


