Documentazione

Applicazioni

Ultimo aggiornamento il 21. 3. 2024 da Mark Fric

Test del nuovo indicatore in SQ X rispetto ai dati di MT

Test del nuovo indicatore in SQ X rispetto ai dati di MT

abbiamo appena creato (o stiamo sviluppando) il nostro nuovo indicatore. Come facciamo a sapere se lo abbiamo implementato correttamente?

Una volta creato il nuovo indicatore in StrategyQuant e compilato con successo, è necessario verificare se funziona davvero come in MetaTrader, ovvero se i valori calcolati da esso sono gli stessi di quelli in MT4.

 

Nota: questo articolo faceva parte di Esempio di indicatore di bustequindi si riferisce all'indicatore Envelopes. Ma la descrizione del test degli indicatori è valida per qualsiasi implementazione dell'indicatore.

 

A tal fine, nell'Editor del codice è disponibile uno strumento di verifica degli indicatori. Funziona semplicemente confrontando i valori calcolati in SQ con quelli calcolati in MT4.

 

In generale, funziona in pochi e semplici passaggi:

  1. Utilizzare lo script di aiuto per calcolare ed esportare i dati degli indicatori in MetaTrader
  2. Copiare i file di dati calcolati nella posizione corretta in modo che SQ possa trovarli.
  3. Configurare ed eseguire il test dell'indicatore in SQ

Utilizzare lo script di aiuto per calcolare ed esportare i dati degli indicatori in MetaTrader

Come primo passo dobbiamo preparare i dati di test della MT4 - dobbiamo calcolare l'indicatore su un certo numero di barre e salvare i valori calcolati in un file.

Per questo forniamo un semplice EA che potete utilizzare: si trova in {SQ}/custom_indicators/MetaTrader4/Experts/SqIndicatorValuesExportEA.mq4

 

Aggiungete questo EA alla vostra MetaTrader, modificatelo per calcolare il valore di uscita del vostro indicatore ed eseguitelo in MT4 StrategyTester su qualsiasi dato - per fare un test ottimale dovrebbe essere eseguito su almeno 1000 barre.

 

Poiché Envelopes ha due buffer di uscita, dobbiamo eseguirlo due volte: una volta per il buffer superiore e una per quello inferiore.

Ecco il codice modificato di questo script di esportazione che calcola l'indicatore degli inviluppi:

//+------------------------------------------------------------------+
//| SQ_IndicatorValuesExportEA.mq4 |
//| |
//| EA per esportare i valori degli indicatori da MetaTrader |
//| Output in: /{cartella dati}/tester/files/******.csv |
//+------------------------------------------------------------------+

#proprietà copyright "Copyright © 2019 StrategyQuant"
#property link "https://strategyquant.com"

stringa currentTime = "";
stringa lastTime = "";

//+------------------------------------------------------------------+

int start() {
   currentTime = TimeToStr(Time[1], TIME_DATE|TIME_MINUTES|TIME_SECONDS);
   if(currentTime == lastTime) {
      return(0);
   }
   
   doppio valore;

   // modificare il nome del file di seguito
   string fileName = "Buste_14_0_0_0.1_upper.csv";

   int handle = FileOpen(fileName, FILE_READ | FILE_WRITE, ";");
   if(handle>0) {
      FileSeek(handle,0,SEEK_END);

      // Ecco il valore dell'indicatore
      value = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 1 , 1); // valore superiore
      //valore = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 2 , 1); // valore inferiore
      
      FileWrite(handle, TimeToStr(Time[1], TIME_DATE|TIME_MINUTES|TIME_SECONDS), Open[1], High[1], Low[1], Close[1], Volume[1], value);
      FileClose(handle);
   }

   lastTime = currentTime;
   return(0);
}

calcolerà l'indicatore degli inviluppi su MT4 chiamando il suo metodo interno iEnvelopes() con i parametri appropriati.

Si noti che i parametri possono essere configurati, non è necessario utilizzare quelli predefiniti. È buona norma includere i valori dei parametri anche nel nome del file di dati di output, come nel nostro caso "Envelopes_14_0_0_0.1_upper.csv", in modo da sapere che è stato generato con questi parametri.

Ora possiamo eseguire questo script due volte in MT Tester:

Al termine dovrebbe creare un file di dati con i valori calcolati dell'indicatore e i prezzi Open, High, Low, Close per ogni barra. Il file verrà salvato in MetaTrader4 -> {cartella dati}/tester/files/nome_tuo_file.csv


Dovremmo vedere due file:
Envelopes_14_0_0_0_0.1_upper.csv
Envelopes_14_0_0_0_0.1_lower.csv

 

Copiare i file di dati calcolati nella posizione corretta in modo che SQ possa trovarli.


Copiare questi file in una cartella
{installazione SQ}/test/Indicatori/MetaTrader4

Creare questa cartella se non esiste, SQ Indicaotrs Tester cerca i file in questa cartella.

Ora che abbiamo preparato il file di dati, iniziamo un test in StrategyQuant.

 

Configurare ed eseguire il test dell'indicatore in SQ

Nell'Editor di codice, fare clic su Indicatori di prova nella barra degli strumenti.

Si aprirà la finestra di dialogo Indicator Tester, fare clic su Aggiungere un nuovo test. Aggiungere gli indicatori delle buste al test, sia per l'uscita superiore che per quella inferiore.

Lo si vedrà nella tabella seguente. L'ultima cosa da fare è modificare il file Nome del file di provain base ai nomi dei file dei dati di prova creati nel passaggio precedente e, facoltativamente, anche Parametri del test, se si sono usati altri tipi di dati oltre a quelli predefiniti:

Al termine, fare clic su Inizio per eseguire i test.

Nel caso ideale i test avranno successo e i valori calcolati in SQ corrisponderanno ai valori calcolati in MT4:

Se qualcosa non funziona, ci saranno differenze tra i valori di SQ e MT4. È possibile fare clic sul messaggio delle differenze per visualizzarle nell'elenco:

Se il test fallisce, verificare innanzitutto se i dati di test generati in MT4 utilizzavano gli stessi parametri dell'indicatore, perché potrebbe esserci un errore.

Se i dati del test sono corretti, c'è qualcosa che non va nell'implementazione SQ dell'indicatore: funziona in modo diverso dalla sua controparte MT4 e deve essere corretto.

 

Questo articolo è stato utile? L'articolo è stato utile L'articolo non è stato utile

Abbonarsi
Notificami
0 Commenti
Il più vecchio
Più recente I più votati
Feedback in linea
Visualizza tutti i commenti

Messaggi correlati