Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Visualizzazioni:
19
Valutazioni:
(4)
Pubblicato:
Aggiornato:
\MQL5\Include\fxsaber\Memory\ \MQL5\Experts\
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

In Tester, durante l'ottimizzazione, è possibile che i passaggi si blocchino a causa della mancanza di memoria.

Esiste un metodo per calcolare tali passaggi di emergenza. Tuttavia, è difficile valutare tutte le numerose varianti dei parametri di input che comportano un forte consumo di memoria da parte dell'Expert Advisor.


È necessario individuare le configurazioni potenzialmente problematiche dei parametri di input di un Expert Advisor esistente. E poi scoprirne le cause.


Questa semplice libreria consente di seguire la dinamica delle variazioni del consumo di memoria in modo piuttosto semplice.


Esempio.

Per illustrare, prendiamo un EA laconico e aggiungiamo alcune righe (evidenziate).

#property tester_no_cache

#define  MEMORY_TESTER_OPTIMIZATION   // Funzionamento in modalità di ottimizzazione del Tester.
#include <fxsaber\Memory\Memory.mqh> // Monitoraggio del consumo di memoria.

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)); // Aumenta l'array di ~megabyte.
}

double OnTester()
{
  return(gMemory.GetMax()); // Consumo massimo di memoria durante l'esecuzione del programma.
}

L'Expert Advisor aumenta semplicemente il suo array.


Risultato.

L'immagine mostra il risultato dell'ottimizzazione.

Le misure del consumo di memoria sono simili.


Un singolo passaggio dell'insieme superiore produrrà questo risultato.

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


Scenari.

La libreria consente di individuare il consumo eccessivo di memoria da parte dell'Expert Advisor e di indagare ulteriormente sulle cause in modalità debug.

Minori sono le risorse consumate dall'Expert Advisor, maggiori sono le opportunità di ottimizzazione: aumento del numero di agenti di test - velocità di ottimizzazione.

Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/69335

Indicatore di rottura dell'azione del prezzo RSI Indicatore di rottura dell'azione del prezzo RSI

Un indicatore di inversione di tendenza ad alta precisione che combina le zone di esaurimento dell'RSI con i modelli di breakout delle candele.

Timer chiusura candela - Indicatore MT5 Timer chiusura candela - Indicatore MT5

Descrizione dell'indicatore - Candle Close Timer Nome: Candle Close Timer Versione: 1.0 Autore: BENTRADE TRADING Link: 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-timeframe pronto per la produzione con sistema intelligente di ripetizione degli allarmi. Monitora fino a 7 timeframe simultaneamente, evidenzia le zone di convergenza quando più di 3 TF si allineano e ora riproduce automaticamente le notifiche fallite per non perdere mai i setup critici di ipercomprato/ipervenduto.

Trend based on WPR Trend based on WPR

Questo indicatore combina WPR e profitto/perdita totale. Non so come spiegarvi meglio questo indicatore, ma potete provarlo.