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:
17
Valutazioni:
(35)
Pubblicato:
2025.04.04 10:53
\MQL5\Experts\fxsaber\ \MQL5\Include\fxsaber\MultiTester\
Task.mqh (7.66 KB) visualizza
MTTester.mqh (120.02 KB) visualizza
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

A volte è necessario eseguire l'Expert Advisor su più simboli. A tale scopo, nel tester MT5 è disponibile la modalità "Tutti i simboli selezionati nella finestra Market Watch". Ciò consente di eseguire le stesse impostazioni dell'EA su diversi simboli.


A volte, però, è necessario eseguire molte esecuzioni diverse del MT5-tester. Questa libreria permette di farlo.


Caratteristiche.

È possibile impostare un numero qualsiasi di combinazioni di simboli, timeframe e intervalli. E condurre non solo singole esecuzioni su di esse, ma anche ottimizzazioni, comprese quelle in avanti.


Scenari.

  • Ricerca su quali simboli e/o intervalli e/o intervalli di tempo il TS mostra buoni risultati.
  • Esecuzione di ottimizzazioni su intervalli consecutivi per valutare le prospettive di auto-ottimizzazione del TS.


Utilizzo.

Configuriamo MT5-Tester secondo le nostre esigenze.

L'immagine mostra che l'ottimizzazione verrà eseguita con forza bruta su tick reali a un certo intervallo.


Creare un elenco delle ottimizzazioni richieste. Ad esempio, è possibile eseguire un Expert Advisor dalla consegna di questa libreria.

Con le impostazioni mostrate nell'immagine, l'ottimizzazione verrà eseguita su tutti i simboli del Market Watch e per ogni simbolo verrà ottimizzata sui timeframe M1 e M15.


Il risultato sarà come questo


Ora è possibile vedere con sicurezza i risultati dell'ottimizzazione utilizzando gli strumenti standard di MT5-tester.


Programmazione.

Esempio1.

Consideriamo prima un esempio molto semplice.

    #include <fxsaber\MultiTester\MultiTester.mqh> // Esecuzioni multiple/ottimizzazioni in Tester.
    
    // Questa funzione è responsabile della generazione dell'elenco dei compiti..
    void SetTesterSettings()
    {
      TesterSettings.Add("AUDCAD"); // Eseguire AUDCAD con le impostazioni specificate nel Tester.
      
      TesterSettings.Add("EURUSD", PERIOD_H1); // Eseguire EURUSD H1 con le impostazioni specificate nel Tester.
      
      TesterSettings.Add("GBPUSD", PERIOD_M6, D'2019.07.01', D'2019.09.01'); // Eseguire GBPUSD M6 sull'intervallo specificato.
    }

    Il risultato dell'esecuzione di questo EA sarà costituito da tre chiamate del Tester con le impostazioni lette nel codice sorgente.


    Esempio2.

    Analizziamo il codice sorgente dell'Expert Advisor, la cui dimostrazione di avvio è stata fornita all'inizio.

    #include <fxsaber\MultiTester\MultiTester.mqh> // Esecuzioni multiple/ottimizzazioni nel Tester.
    
    sinput bool Period_M1 = false;         // Accendere M1
    sinput bool Period_M5 = false;         // Accendere M5
    sinput bool Period_M15 = false;        // Accendere M15
    sinput bool  false; // Solo caratteri personalizzati
    
    // Questa funzione è responsabile della generazione dell'elenco dei compiti.
    void SetTesterSettings()
    {
      // Cerca tutti i simboli nel Market Watch.
      for (int i = SymbolsTotal(true) - 1; i >= 0; i--)
      {
        const string Name = SymbolName(i, true);
    
        if (!OnlyCustomSymbols || SymbolInfoInteger(Name, SYMBOL_CUSTOM))
        {
          if (Period_M1)
            TesterSettings.Add(Name, PERIOD_M1); // Se M1 è impostato, aggiungere ogni carattere con questo TF.
    
          if (Period_M5)
            TesterSettings.Add(Name, PERIOD_M5); // Se M1 è impostato, aggiungere ogni carattere con questo TF.
    
          if (Period_M15)
            TesterSettings.Add(Name, PERIOD_M15); // Se M15 è impostato, aggiungere ogni simbolo con questo TF.
    
          if (!Period_M1 && !Period_M5 && !Period_M15) // Se non è stato impostato alcun TF, eseguiamo l'Expert Advisor sul TF.
            TesterSettings.Add(Name);
        }
      }
    }

    Il secondo esempio genera un elenco di attività in base ai TF e ai simboli contrassegnati nel Market Watch. Anche in questo caso, osserviamo i commenti nel codice sorgente.


    Quindi, tutto ciò che dobbiamo fare è scrivere questa stringa

    #include <fxsaber\MultiTester\MultiTester.mqh> // Esecuzioni multiple/ottimizzazioni in Tester.


    e scrivere una sola funzione che generi task in modo intuitivo.

    // Questa funzione è responsabile della generazione dell'elenco dei compiti.
    void SetTesterSettings()


    Caratteristiche.

    • Richiede il permesso di utilizzare una DLL. Vengono richiamate diverse funzioni WinAPI da user32.dll. Pertanto non è adatto al mercato, a meno che non venga bypassato.
    • Il file MTTester.mqh fornito contiene i metodi di controllo di MT5-tester, che possono essere utilizzati in altri progetti.
    • È possibile riprendere un'attività da un punto interrotto.

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

    Pan PrizMA n. leva 72 Pan PrizMA n. leva 72

    Costruire una retta mobile con un polinomio di 4 gradi. Estrapola la sinusoide e il suo assiale. Le linee costruite rimuovono un valore a ogni barra e viene costruita una linea mobile di valori estrapolati che non viene ridisegnata.

    MA Trend 2 MA Trend 2

    Sistema di trading con indicatore iMA (Moving Average, MA). Sviluppo della tendenza MA.

    Visualizzazione ottimizzata per l'output di testo del grafico di tipo console Visualizzazione ottimizzata per l'output di testo del grafico di tipo console

    Questa libreria consente di creare visualizzazioni che consentono di inviare facilmente informazioni di testo al grafico alla velocità più ottimale.

    Pannello di tracciamento manuale della posizione Pannello di tracciamento manuale della posizione

    Pannello basato sulla classe CDialog. Lavora sul simbolo corrente. Eliminazione, impostazione di Take Profit, impostazione di Breakeven su un gruppo di posizioni