Guarda come scaricare robot di trading gratuitamente
Ci trovi su Facebook!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Librerie

Codice che registra i grafici del bilancio e del patrimonio netto e calcola ulteriori criteri di ottimizzazione. - libreria per MetaTrader 5

Visualizzazioni:
28
Valutazioni:
(6)
Pubblicato:
Aggiornato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Ho deciso di condividere il codice di un grandeprogetto progettato in una libreria separata.

Se avete accesso al codice dell'Expert Advisor, potete salvare i grafici di bilancio e azionari e calcolare ulteriori criteri di ottimizzazione aggiungendo codice supplementare da questa libreria.

Scaricate il file Advanced Optimization Report Saver.mqh dal link allegato e salvatelo nella cartella del terminale \MQL5\Include\

Aggiungete il codice che collega il file scaricato: (potete aggiungerlo sotto l'ultima riga del codice del vostro Expert Advisor o in qualsiasi altro punto)

#include <Advanced Optimization Report Saver.mqh>

Successivamente, è necessario aggiungere le chiamate alle funzioni esportate alle funzioni esistenti nel proprio Expert Advisor: (se non ci sono funzioni, aggiungerle)

void OnTick(){
   //... il vostro codice
   
   //Salvare i grafici del bilancio e del patrimonio netto
   save_OnTick(TimeCurrent(), AccountInfoDouble(ACCOUNT_BALANCE), AccountInfoDouble(ACCOUNT_EQUITY));
}

void OnTesterInit()  {
   //... il vostro codice

   save_OnTesterInit();//print to chart "Non chiudere questa finestra fino a quando l'ottimizzazione non è stata completata!"
}
void OnTesterDeinit(){
   //... il vostro codice

    save_OnTesterDeinit();// ottenere i fotogrammi
}

double OnTester(){
   //... il vostro codice

   //salvare eventuali valori personalizzati:
   double AvgPips=0;
   save_Add( AvgPips, 2, "Custom 1", true);//valore, cifre, nome, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
   double Custom = 0;//il vostro fitness personalizzato
   saveCharts(Custom);//salvare il capitale finale, tutti gli accordi...
   return Custom;
}

Le funzioni save_Add consentono di aggiungere i propri criteri da includere nel rapporto :

   save_Add( AvgPips, 2, "Custom 1", true);//valore, cifre, nome, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");


Ad esempio, aggiungiamo questo codice all'Expert Advisor Moving Average della cartella Examples (...\MQL5\Experts\Examples\Moving Average\MovingAverage.mq5). Per prima cosa, copiare l'Expert Advisor originale e chiamarlo Moving Average Charts.mq5. A questo punto, aggiungere il codice delle istruzioni precedenti.

Le modifiche si trovano solo alla fine del codice, a partire dalla funzione OnTick() dopo la riga CheckForOpen();:

void OnTick(void)
  {
//---
   if(SelectPosition())
      CheckForClose();
   else
      CheckForOpen();
   //Salvare i grafici del bilancio e del patrimonio netto
   save_OnTick (TimeCurrent(), AccountInfoDouble( ACCOUNT_BALANCE), AccountInfoDouble( ACCOUNT_EQUITY));
  }

void OnTesterInit()  {
   //... il vostro codice

   save_OnTesterInit();//print to chart "Non chiudere questa finestra fino a quando l'ottimizzazione non è stata completata!"
}
void OnTesterDeinit(){
   //... il vostro codice

    save_OnTesterDeinit();// ottenere i fotogrammi
}

double OnTester(){
   //... il vostro codice

   //salvare eventuali valori personalizzati:
   double AvgPips=0;
   save_Add( AvgPips, 2, "Custom 1", true);//valore, cifre, nome, sort_min_to_max
   save_Add( TesterStatistics( STAT_PROFIT ), 2, "Custom 2");
   double Custom = 0;//il vostro fitness personalizzato
   saveCharts(Custom);//salvare il capitale finale, tutti gli accordi...
   return Custom;
}

#include <Advanced Optimization Report Saver.mqh>

Come si può vedere, è abbastanza semplice e richiede solo un paio di minuti.

Dopodiché, si può eseguire l'ottimizzazione:

L'ultima schermata mostra che il codice collegato ha aggiunto 2 parametri:

  1. Salva statistiche - abilita o disabilita la raccolta delle statistiche.
  2. Pixel nei grafici di equilibrio e azionari - specifica il numero di pixel nella larghezza dei mini grafici.

Una volta completata l'ottimizzazione, è possibile creare un report (utilizzando un programma che analizza i frame salvati) e vedere quanto segue:

100 righe con MovingPeriod


10 righe con MovingShift



Se ci sono più di 20 righe, verranno visualizzate solo 3 righe orizzontali di valori medi: 3 in alto e 3 in basso.

100 righe sono difficili da percepire, quindi è necessario ridurne il numero.
È possibile utilizzare le variabili di input non con lo stesso passo, ma con una scala attraverso un enumeratore (enum), ad esempio: 1,2,3,5,7,10,15,20,30,50,70,100 - ci saranno solo 12 righe anziché 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; // Periodo della media mobile
Potete scaricare la versione enum dell'Expert Advisor dai file allegati.

Invece di 1000 passaggi di ottimizzazione, ce ne saranno 120, e il tempo di calcolo sarà ~8 volte più veloce, e la dimensione del file ~8 volte più piccola.
Il risultato è più visibile:


Il risultato con MovingPeriod = 15 risalta immediatamente, con la linea media più alta e il massimo più alto.
Tuttavia, come spesso accade, i migliori risultati nel backtest non sono i migliori nel forward test.
Il vostro programma che analizza i frame salvati può visualizzare grafici come questo:

E criteri aggiuntivi come questo:

Se avete un codice per altri criteri interessanti, potete suggerirli per aggiungerli alla libreria.


Aggiornamenti:

  1. 2026-02-02: Aggiunto il supporto per i caratteri UTF nei nomi dei criteri personalizzati.

Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/68706

Previous Day highs and lows 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 With MA

Trade using MA. An easy indicator to identify the trend direction on a specific timeframe.

Binary tradng based on candle colors Binary tradng based on candle colors

Una semplice strategia di trading binario che conta i colori delle candele.

ShowTradeLines Service ShowTradeLines Service

Si tratta di un servizio che consente di mostrare i punti di entrata/uscita delle posizioni/vendite esistenti sotto forma di linee di tendenza e/o frecce sui grafici.