Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Facebook !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Vues:
20
Note:
(4)
Publié:
Mise à jour:
\MQL5\Include\fxsaber\Memory\
Memory.mqh (25.5 KB) afficher
\MQL5\Experts\
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Dans Tester, lors de l'optimisation, il peut arriver que des passes se bloquent en raison d'un manque de mémoire.

Il existe une méthode pour calculer ces passes d'urgence. Cependant, il est difficile d'évaluer toutes les variantes des paramètres d'entrée pour une forte consommation de mémoire par le conseiller expert.


Vous devez trouver les configurations potentiellement problématiques des paramètres d'entrée d'un Expert Advisor existant. Et en trouver les causes.


Cette bibliothèque simple vous permet de suivre la dynamique des changements dans la consommation de mémoire d'une manière assez simple.


Exemple :

Pour illustrer notre propos, prenons un conseiller expert laconique et ajoutons-lui quelques lignes (surlignées).

#property tester_no_cache

#define  MEMORY_TESTER_OPTIMIZATION   // Fonctionnement en mode d'optimisation du testeur.
#include <fxsaber\Memory\Memory.mqh> // Surveillance de la consommation de mémoire.

input int inMaxMB = 10;

void OnTick()
{
  static MqlRates Rates[];
  
  const int SizeMB = (ArraySize(Rates) * sizeof(MqlRates)) >> 20;
  
  if (SizeMB < inMaxMB)
    ArrayResize(Rates, ((SizeMB + 2) << 20) / sizeof(MqlRates)); // Augmenter le tableau de ~mégaoctets.
}

double OnTester()
{
  return(gMemory.GetMax()); // Consommation maximale de mémoire pendant l'exécution du programme.
}

L'Expert Advisor augmente simplement son tableau.


Résultat.

L'image montre le résultat de l'optimisation.

Les mesures de consommation de mémoire sont similaires.


Une seule passe de l'ensemble supérieur produira ceci.

Core 1  OnTester result 102
Core 1  2026.02.10 23:58:58   MQL_MEMORY_USED: Min = 0 Max = 102 Last = 0
Core 1  EURUSD,M1: 80954 ticks, 1437 bars generated. Environment synchronized in 0:00:00.020. Test passed in 0:00:01.781.
Core 1  EURUSD,M1: total time from login to stop testing 0:00:01.801 (including 0:00:00.020 for history data synchronization)
Core 1  202 Mb memory used including 23 Mb of history data, 64 Mb of tick data


Scénarios.

La bibliothèque vous permet de détecter une consommation excessive de mémoire par l'Expert Advisor et d'en rechercher les causes en mode débogage.

Moins l'Expert Advisor consomme de ressources, plus les possibilités d'optimisation sont nombreuses : augmentation du nombre d'agents de test - rapidité de l'optimisation.

Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/69335

Indicateur de rupture de l'action sur les prix RSI Indicateur de rupture de l'action sur les prix RSI

Un indicateur de renversement de tendance de haute précision combinant les zones d'épuisement du RSI et les motifs de rupture des chandeliers.

Candle Close Timer - Indicateur MT5 Candle Close Timer - Indicateur MT5

Description de l'indicateur - Candle Close Timer Nom : Candle Close Timer Version : 1.0 Author : BENTRADE TRADING Lien : https://www.mql5.com/en/users/dahmi_benali

Multi-timeframe RSI scanner with visual dashboard and alerts Multi-timeframe RSI scanner with visual dashboard and alerts

Scanner RSI multi-cadres prêt pour la production avec un système intelligent de rappel des alertes. Il surveille jusqu'à 7 périodes simultanément, met en évidence les zones de convergence lorsque 3 TF ou plus s'alignent, et relance automatiquement les notifications en cas d'échec pour s'assurer que vous ne manquiez jamais les configurations critiques de surachat/survente.

Trend based on WPR Trend based on WPR

Cet indicateur combine le WPR et le total des profits/pertes. Je ne sais pas comment vous en dire plus sur cet indicateur mais vous pouvez l'essayer.