Librerie: MultiTester - pagina 49

 
fxsaber #:
Siete sicuri di utilizzare la versione attuale di MTTester.mqh? Il codice seguente è lì.

Ricordo di aver aggiornato all'ultima versione, ma non so perché non ho aggiornato quel file. Ora funziona tutto bene.

 
Добрый день!

Перестал компилироваться прилагаемый скрипт.
Выдается ошибка:
la conversione del parametro 'short[260]' in 'ushort[] &' non è consentita MTTester.mqh 156 39
int user32::GetClassNameW(long,ushort&[],int) winuser.mqh 1414 37

Может быть что-то нужно поменять в MTTester.mqh ?

Ранее он прекрасно компилировался.

Не могли бы помочь?

С уважением, Александр
File:
_Noc.mq5  62 kb
 
klycko #:
Lo script allegato ha interrotto la compilazione.

Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading.

Librerie: MultiTester

fxsaber, 2025.06.08 16:57

Dalla KB scarico i sorgenti solo cliccando sul file corrispondente, come nell'immagine.

L'ho appena scaricato in questo modo per controllare - compilato senza errori.

 
fxsaber #:

Grazie mille!

Tutto funziona di nuovo!

 

Scaricato come mostrato nell'immagine sopra, ma errore in cmopile

Errore di compilazione di Mttester.mqh, controllare la nuova build di MT5 V5 BULD 5142.


ERRORI:


parameter conversion type 'short[260]' to 'ushort[] &' is not allowed MTTester.mqh 135 39

'ReadFile' - nessuno degli overload può essere applicato alla chiamata di funzione MTTester.mqh 1283 21


 
dave365 #:

Scaricato come mostrato nell'immagine precedente ma errore in cmopile

Forum sul trading, sui sistemi di trading automatizzati e sul test delle strategie di trading

Biblioteche: MultiTester

fxsaber, 2025.06.12 14:55

La dimensione della versione attuale del file MTTester.mqh è attualmente di 123.822 byte.

 

Ciao @fxsaber

Spero che tu stia bene.

Sto seguendo il tuo lavoro sul multitester. Ho letto gli esempi e la descrizione della libreria su come utilizzarla ma non sono in grado di sapere come verrà utilizzata.

Ho un EA che ho scritto per testare/ottimizzare un indicatore su 9 simboli. Ho implementato il codice come segue in un EA.

//+------------------------------------------------------------------+
//|MultiTesterBase.mq5 |
//|Copyright 2025, MetaQuotes Ltd. |
//| https://www.mql5.com
//+------------------------------------------------------------------+
#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"

#include <fxsaber\MultiTester\MultiTester.mqh>

#define  EA_NAME "IndicatorTesting\\EAs\\ash_indicator_testing.ex5"

// questa funzione è responsabile della generazione dell'elenco dei compiti
void SetTesterSettings()
{
   TesterSettings.Add(EA_NAME, "EURUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDNZD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "EURGBP", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "AUDCAD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CHFJPY", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "CADSGD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "BTCUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "XAUUSD", PERIOD_CURRENT);
   TesterSettings.Add(EA_NAME, "US500", PERIOD_CURRENT);
}
//+------------------------------------------------------------------+

Ma non so cosa fare dopo, perché voglio ottimizzare i parametri rispetto ai simboli dati, nel tester ho dovuto selezionare l'EA ash_indicator_testing, perché se non lo faccio non avrò i parametri di ottimizzazione. Dopo aver fatto questo ho applicato il frammento di codice incollato sopra (multitester ea) sul grafico! È la procedura giusta o sto sbagliando? Perché non sono riuscito a trovare abbastanza informazioni sull'utilizzo.

Per favore guidatemi su questo.

Cordiali saluti

 
Hafiz Tamur Ahmed #:

Per favore, indirizzatemi

Storicamente, MultiTester.mqh non viene utilizzato per scrivere interazioni con Tester, poiché utilizza un modello di eventi troppo complesso. Quindi consiglio subito di usare un approccio diverso: tramite MTTester.mqh.


Ecco un buon esempio.

Forum sul trading, sui sistemi di trading automatizzati e sulla verifica delle strategie di trading.

Biblioteche: MultiTester

fxsaber, 2024.01.17 12:13 AM

#include <fxsaber\MultiTester\MTTester.mqh>    // https://www.mql5.com/it/code/26132

#define _CS(A) ((!IsStopped()) && (A))
#define  PAUSE 200

void Run( const string Settings )
{
  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);

  MTTESTER::CloseNotChart();
    
  if (_CS(MTTESTER::SetSettings2(Settings)))
    MTTESTER::ClickStart(false);

  while (_CS(!MTTESTER::IsReady()))
    Sleep(PAUSE);
}

void OnStart()
{
  string Settings[] = {"[Tester]\n" +
                       "Expert=Input_String_Example_Alternative.ex5\n" +
                       "Symbol=EURUSD\n" +
                       "Period=M1\n" +
                       "Optimization=2\n" +
                       "Model=4\n" +
                       "FromDate=2023.01.01\n" +
                       "ToDate=2024.01.01\n" +
                       "ForwardMode=0\n" +
                       "Deposit=1000000000\n" +
                       "Currency=USD\n" +
                       "ProfitInPips=1\n" +
                       "Leverage=100\n" +
                       "ExecutionMode=0\n" +
                       "OptimizationCriterion=6\n" +
                       "[TesterInputs]\n" +
                       "inAmount=1||1||1||10||N\n" +
                       "inCount=2||2||1||20||N\n" +
                       "inPeriod=3||3||1||30||N\n" +
                       "inKoef=4.56||4.56||0.456000||45.600000||N\n" +
                       "inLog=7.89||7.89||0.789000||78.900000||N\n" +
                       "inFlag=true||false||0||true||N"
                      };

  for (uint i = ArraySize(Settings); (bool)i--;)
    Run(Settings[i]);
}

Le impostazioni del Tester vengono salvate tramite CTRL+C/V. È possibile salvarle in file separati e poi riempire l'array Settings[] nel sorgente di cui sopra con i dati di questi file.


Un ulteriore esempio.

Optimize EA over a time window
Optimize EA over a time window
  • 2025.06.30
  • Maker
  • www.mql5.com
Is it possible to make the Strategy Tester to Optimize EA running it automatically multiple times over a range of time windows...
 

Grazie per la risposta, ma non sono in grado di capire l'implementazione del controller EA, come dovrebbe essere implementato e come dovrebbe essere usato! applicandolo al grafico o usandolo nel tester. Perché ho letto il forum ma non ho visto apparire nessun pop up o qualcosa del genere, l'unica cosa che è successa sul mio lato quando ho applicato il controller EA sul mio grafico è una linea che dice di aspettare il tester e di cosa si sta facendo, e il tester della strategia sotto sfarfalla costantemente. Non sono stato in grado di fare nulla con il tester!

Sarebbe bello se una guida completa end-to-end venisse fornita nei documenti della libreria in modo che sia facile per i nuovi arrivati come me capire e implementare le cose in base ai loro scenari!

Cordiali saluti

CC: @fxsaber

 
Ottenere il numero di tick in un mese di calendario in modo non standard.
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/it/code/26132

#define  PRINT(A) Print(#A + " = " + (string)(A));

void OnStart()
{
  MqlTick Ticks[];
  
  // Numero di zecche per un mese di calendario in modo regolare.
  PRINT(CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1));
  
  // Il numero di ticchettii per mese solare in modo non standard.
  PRINT(MTTESTER::GetAmountFileMonthTicks(D'2025.08.01'));
}


Risultato.

CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, D'2025.08.01' * 1000, D'2025.09.01' * 1000 - 1) = 10820615
MTTESTER::GetAmountFileMonthTicks(D'2025.08.01') = 10820615