Risposta

Non tutti i Backtester Engine sono uguali

2 risposte

hannahis

Abbonato, bbp_partecipante, comunità, 21 risposte.

Visita il profilo

7 anni fa #116341

Non tutti i motori Backtester sono uguali.

 

Il modo in cui un backtester "organizza" i propri dati storici influisce in modo determinante sull'affidabilità e sulla validità del software.

 

In ogni esperimento scientifico, dobbiamo valutare la validità del test prima di valutare l'affidabilità dei risultati.

 

Non è valido usare una bilancia per misurare la propria altezza e quindi i "risultati" sono irrilevanti, non validi per il confronto.

 

Inoltre, se ogni volta che si sale sulla pesa (nell'arco di 2 minuti) e supponendo che tutte le altre variabili rimangano invariate, si continuano a ottenere risultati diversi, allora la pesa è uno strumento valido ma altamente inaffidabile.

 

Allo stesso modo, se un software forex non utilizza "correttamente" i dati storici per simulare il più possibile il comportamento di un mercato reale (come nel vostro conto live), allora non importa quante caratteristiche fantasiose abbia un software forex, è INVALIDO.

 

Riponiamo tanta fiducia in tutti questi test statistici, ma spesso non esaminiamo o valutiamo in primo luogo come funziona il motore di backtester del software. Non valutiamo se l'uso dei "valori delle barre precedenti" nella strategia multi time frame viene impiegato correttamente.

 

So che SQ sta aggiungendo funzioni Multi time frame a SQ4 (e sto aspettando di provarlo per vedere se è migliore di altri software) e quindi voglio scrivere per aumentare la consapevolezza del "problema comune" che ho affrontato con altri software forex che impiegano una metodologia difettosa nella loro logica multi time frame, in modo da sperare che SQ eviti queste cadute.

 

L'uso comune del "valore della barra precedente (PBV) del time frame superiore" nella funzione multi time frame è fondamentalmente sbagliato a mio avviso.

 

Ecco un esempio.

 

Utilizzo un grafico a 1 minuto e aggiungo alla mia strategia indicatori/regole M30, H1, H4.

 

Quando utilizziamo la barra di chiusura della PBV del time frame superiore come parte del calcolo del mio EA, vero/falso e se eseguire o meno l'operazione, abbiamo affrontato questo problema...

 

alle 11:57 l'EA dovrà raccogliere vari valori di chiusura delle barre da diversi/più time frame per determinare se le mie regole EA sono vere o false.

 

Per le regole a 1 minuto, verrà preso il valore del prezzo di chiusura della barra a 1 minuto alle 11:57.

 

Per le regole di M30, si prenderà la chiusura della barra precedente di M30 alle 11:30 (che ha uno scarto/differenza temporale di 27 minuti rispetto alla chiusura della mia barra attuale).

 

Per le regole H1, prenderà la chiusura della barra precedente di H1 alle 11:00 (che ha un gap temporale di 57 minuti dalla chiusura della barra corrente).

 

Per le regole H4, si prenderà la chiusura della barra precedente di H4 alle 8:00 (poiché l'intervallo di H4 è alle 00:00, alle 04:00, alle 08:00 e alle 12:00, ecc), ovvero uno scarto/differenza temporale di 3 ore e 57 dalla chiusura della barra attuale).

 

 

Vediamo un altro esempio: Immaginate che il vostro EA utilizzi, a intervalli diversi, 4 diversi valori di prezzo (invece di utilizzare solo il livello di prezzo di chiusura della barra corrente di 1min) per calcolare le regole di apertura/chiusura e determinare se eseguire o meno un'operazione.

 

Alle 15:46

 

Le regole a 1 minuto prenderanno/utilizzeranno il valore del prezzo di chiusura della barra alle 3:46 e il valore del prezzo di chiusura della barra corrente nel calcolo.

 

Le regole M30 prenderanno/utilizzeranno il valore del prezzo di chiusura della barra alle 3:30 (gap temporale =16min) (l'esempio precedente ha un gap temporale di 27min).

 

Le regole H1 prenderanno/utilizzeranno il valore del prezzo di chiusura della barra alle 3:00 (gap temporale = 46 minuti) (l'esempio precedente ha un gap temporale di 57 minuti).

 

Le regole H4 prenderanno/utilizzeranno il valore del prezzo di chiusura della barra alle 00:00 (gap temporale = 3 ore e 46 minuti) (l'esempio precedente ha un gap temporale di 3 ore e 57).

 

 

Qual è dunque l'implicazione di questo uso "improprio" della Barra Precedente dell'orario superiore e quali difficoltà comporta per gli utenti?

 

 

1. Per ottenere risultati coerenti, qualsiasi obiettivo EA deve avere una formula coerente.  

 

La formula del vostro EA è coerente? (ad esempio, quale metodo utilizza per calcolare i prezzi di mercato/i dati storici al fine di determinare se eseguire o meno un'operazione, se le regole sono vere/false).

 

Se utilizziamo un livello di prezzo e lo applichiamo a tutti i vari time frame, ad esempio utilizzando solo il valore di chiusura/apertura/prezzo corrente del grafico orario e applicandolo a tutti gli altri time frame, "produciamo" una formula coerente.

 

Tuttavia, se utilizziamo valori di barre precedenti multipli presi dal valore della barra precedente di più time frame, abbiamo creato una formula "variabile". Una formula che cambia continuamente perché si utilizzano diversi valori di prezzo presi in diversi intervalli temporali.

 

È una questione di buon senso: una formula variabile/modificabile produrrà risultati variabili/modificabili (risultati incoerenti) e una formula fissa produrrà risultati fissi, coerenti con la sua applicazione. Rimane fedele all'intenzione e all'esecuzione dell'utente.

 

Pertanto, non mi aspetto risultati coerenti da EA generati da software che utilizzano un diverso "valore della barra precedente" quando utilizzo regole multi time frame nel mio EA. In effetti, non sprecherò il mio tempo/denaro con questo tipo di software.

 

2. Pensate a come definire le vostre regole di trading, se utilizzate i valori delle barre precedenti in H4 (o in altri time frame superiori).  

 

Immaginate di volere che il vostro EA entri alla chiusura della barra corrente quando la MA di H4 si incrocia. Come si fa a stabilire questa regola se il software utilizza il valore della barra precedente di H4?  

 

Dovete pensare "all'indietro", cioè come appariva la condizione prima del crossover H4, in altre parole, come pensate che dovessero essere i vostri indicatori H4 4 ore prima che avvenisse il breakout (perché il software utilizza la barra precedente di H4, che era 4 ore fa).  

 

A volte, l'indicatore H4 rimane invariato per molte barre prima di un vero e proprio crossover, come si fa a inserire le regole della "barra precedente". Non sarebbe più semplice inserire le regole così come sono, alla chiusura della barra corrente?

 

Se il software utilizza la chiusura della barra corrente a 1 minuto per calcolare l'indicatore H4, allora posso semplicemente inserire le mie regole come: eseguire un'operazione quando la MA 100 di H4 incrocia la MA 200, in qualsiasi momento alla chiusura della barra a 1 minuto. È molto più facile quindi inserire la condizione di chiusura della barra precedente di H4, cioè 4 ore fa.

 

 

Il problema risiede nella metodologia di utilizzo dei dati storici da parte dello sviluppatore del software. Pertanto, non tutti i backtester sono (progettati) allo stesso modo.  

 

L'uso dei valori delle barre precedenti di altri multi time frame come punto di decisione/esecuzione produce prestazioni non realistiche e imprecise (EA).

 

Backtesting realisticoAnche se nessuna approssimazione può essere 100% perfetta, abbiamo fatto tutto il possibile per ricreare accuratamente le condizioni di mercato passate e l'esecuzione degli ordini per il trading strategico. I tipici motori di backtesting hanno molte ipotesi e scorciatoie, che si traducono in test irrealistici e risultati inaffidabili. MultiCharts è una piattaforma di trading di livello istituzionale che riduce al minimo le ipotesi e considera molti fattori.

 

 

Non sono qui per promuovere MC, ma per sottolineare e aggiungere l'enfasi sull'importanza di utilizzare correttamente i dati storici per ricreare le condizioni di mercato passate in modo da produrre risultati di backtesting affidabili/validi per selezionare quale EA scartare o mantenere.

 

 

 

L'utilizzo dei dati storici ha 2 funzioni diverse/primarie

 

1) Fornire il monitoraggio dei prezzi/movimenti in un determinato periodo di tempo (quanto indietro sono i dati storici). 

 

     Per questo motivo, questi dati sono confezionati in barre temporali OHLC. In questo modo è possibile vedere sul grafico MT4 i movimenti di prezzo nell'arco di mesi o anni.

 

2) Il software utilizza i valori di prezzo per calcolare se le regole dell'EA sono vere o false. Per l'esecuzione o l'apertura/chiusura di un'operazione in un ambiente di backtesting simulato.

 

 Anche se sto utilizzando l'indicatore H4, non devo dipendere dai valori di prezzo OHLC di H4 per decidere se al livello di prezzo corrente/alla chiusura della barra, c'è un crossover nella MA di H4? Questo è l'errore comune in cui credo cadano molti software. Il fatto che io utilizzi gli indicatori H4 come parte della formula del mio EA non significa che si possano utilizzare solo i valori delle barre OHLC di H4.  

 

L'uso dei dati storici a questo punto è per l'esecuzione, non per il monitoraggio dei prezzi. Poiché H4 è composto da più valori di barre a 1 minuto, è quindi più accurato utilizzare il valore della barra corrente o la chiusura della barra a 1 minuto e applicare questo valore a tutti gli indicatori per il calcolo e quindi determinare se eseguire l'operazione in modo tempestivo invece di utilizzare i "dati esterni" del valore della barra precedente di H4. In un mercato così volatile, quello che è successo 4 ore fa, la differenza di mercato/trend/prezzo sarebbe cambiata drasticamente.

 

 

La precisione è la chiave

    

In effetti, se in SQ sono disponibili più time frame, idealmente dovremmo utilizzare solo un grafico a 1 minuto per inserire tutte le nostre regole di trading. Il grafico temporale utilizzato determina la velocità/la frequenza con cui si desidera che l'EA analizzi il mercato alla ricerca di opportunità di trading. Non ha nulla a che vedere con le strategie utilizzate. È possibile inserire gli indicatori H4, H1 o qualsiasi altro orario nel grafico a 1 minuto. Il problema è una questione di velocità. Quanto velocemente volete che il vostro EA reagisca ai cambiamenti del mercato. Un EA lento non avrebbe probabilmente esecuzioni accurate di entrata/uscita.  

 

Nelle attuali condizioni di mercato volatili, è fondamentale che i nostri EA siano veloci e precisi. Se è così laggoso con tale divario/differenza di tempo, è molto difficile ottenere EA altamente accurati e redditizi. La maggior parte dei miei EA può guadagnare tra $3000 e $5000 a settimana (data l'attuale volatilità del mercato). Non sarei in grado di ottenere tali risultati se utilizzassi un time frame superiore a 1 minuto.

 

Quanto velocemente volete che il vostro EA scansioni il mercato e continui a cercare le opportunità giuste? Anche al minuto, ogni ora o ogni 4 ore? Quanto velocemente volete che il vostro EA risponda ai cambiamenti del mercato, ogni minuto o ogni ora.  

 

L'utilizzo di un grafico a 1 minuto mi consente di sviluppare EA con regole di entrata/uscita elevate. Con l'uso di più time frame e l'evitamento dell'uso "errato" di più valori di barre precedenti (invece di un valore di barra corrente), abbiamo maggiori speranze di ottenere buoni profitti da ogni movimento di mercato (ovviamente il resto dipende da quanto è solido il vostro piano/strategia di trading).

 

 

 

Perché pensate che Multi Chart abbia questa funzione?

 

Simulazione tick-by-tick

La lente d'ingrandimento a barre è essenziale per aumentare precisione durante il backtesting. MultiCharts può costruire barre più grandi da componenti più piccoli. barre dei secondi e dei minuti da ticchettii, barre delle ore e dei giorni da minuti.. Utilizzando la Lente di ingrandimento barre è possibile ricreare l'esatto movimento dei prezzi all'interno di ogni barra. Ad esempio, la Lente di ingrandimento delle barre può caricare in modo invisibile minuti che compongono l'ora, e La strategia sarà testata in modo retrospettivo minuto per minuto.

 

Quindi, utilizzando il grafico a 1 minuto per il vostro EA, state facendo un backtesting del vostro EA minuto per minuto (a condizione che lo sviluppatore utilizzi la chiusura della barra a 1 minuto come punto di calcolo per tutti gli altri input/regole multi time frame).

 

Ps: Non sono qui per promuovere MC, perché penso che MC e SQ siano due software molto separati. SQ è più adatto ai non programmatori. Ma possiamo imparare dall'esperienza degli altri.

 

 

Conclusione

Dal momento che SQ4 sta incorporando le funzioni di Mult time frame, si prega di non utilizzare la barra precedente del time frame più alto come metodologia di backtesting. Non comprerei mai un software con tali metodi di backtesting. Infatti, qualunque EA io abbia sviluppato utilizzando le funzioni del valore della barra precedente, questi EA (con formula variabile/differenza temporale) non produrranno mai risultati coerenti e affidabili che mi permettano di inserire il mio EA nel conto live. 

Sono impressionato dal team di sviluppo di SQ e quindi voglio che SQ riesca a trovare il modo di fornire strumenti efficaci e potenti ai suoi utenti dedicati, che sono tutti così solidali e riconoscenti nei confronti dei membri del team SQ. Il successo di SQ si tradurrà nel successo degli utenti (nella loro ricerca di EA redditizi). 

0

Mark Fric

Amministratore, sq-ultimate, 2 risposte.

Visita il profilo

7 anni fa #141579

Grazie per il lungo articolo, ho capito cosa intendi. In generale stai dicendo che non è una buona idea utilizzare il valore della barra precedente nelle strategie multi-TF.

 

Non la vedo così rigida, dipende, e a volte è vantaggioso utilizzare i valori delle barre precedenti. Ma il nuovo SQ4 non vi limiterà nella scelta, ha la possibilità di utilizzare il valore della barra corrente (ad esempio la barra H4 che è attualmente in fase di sviluppo), non siete limitati al valore della barra precedente.

 

Hai citato MultiCharts, è senza dubbio un buon software, ma SQ ha un motore di backtesting paragonabile o addirittura migliore, che utilizza la precisione dei tick reali in modo pulito e comprensibile.

Ho sempre trovato confusa la scelta di Tradestation/MultiCharts di utilizzare la simulazione delle barre interne.

Marchio
Architetto StrategyQuant

0

hannahis

Abbonato, bbp_partecipante, comunità, 21 risposte.

Visita il profilo

7 anni fa #141580

Grande!!!

 

Mark,

 

È rassicurante sapere che SQ4 non ha queste limitazioni, ma offre una flessibilità molto maggiore di quella che posso immaginare.

 

Ora vale la pena aspettare perché mi chiedevo come fosse organizzato il motore di backtest di SQ4 e se si ripetesse una qualche caduta.  

 

Sono molto felice di sapere che SQ4 è molto più "avanzato" di quanto vorrei. Ottimo lavoro.  

 

Le cose belle valgono l'attesa.... Aspetto con grande trepidazione.

0

Stai visualizzando 2 risposte - da 1 al 2 (di 2 totali)