Valutare la performance di trading delle strategie

Un problema comune per un trader è sapere quando la sua strategia ha perso il vantaggio o, in breve, quando si verifica una situazione che non si adatta alle strategie attuali. Le strategie generate dal data mining possono subire un degrado delle prestazioni abbastanza rapidamente e questi snippet possono aiutare ad analizzare tali situazioni. Questo episodio è l'introduzione a una serie di articoli in cui introdurrò nuovi snippet WHAT-IF per aiutarci ad affrontare questo problema. Nelle puntate successive, introdurremo anche snippet basati sulla logica del controllo statistico della qualità e, infine, condurremo uno studio per verificare se questi snippet riducono statisticamente il profilo di rischio delle strategie.

Nella parte di oggi, ho preparato uno snippet che consente allo sviluppatore della strategia di misurare il drawdown massimo nel periodo in-sample (il periodo di allenamento) e quindi di terminare la strategia quando raggiunge il valore percentuale di questo drawdown nel periodo out-of-sample.

.

Ho preparato due versioni dell'Analisi WHAT-IF

 

1.Logica di formazione/test

e WHAT-IF snippet, è possibile impostare la soglia percentuale del drawdown percentuale nel campione. Ad esempio, è possibile scegliere 50% di IS DD o 150% di IS DD. Infine, la strategia si disattiva durante il periodo fuori campione quando raggiunge la percentuale di drawdown misurata nel campione DD.

2. Logica di formazione/validazione/test

Questo snippet WHAT-IF funziona con la logica di test di formazione/validazione. Questo metodo di analisi si basa sul metodo hold-out. Nel metodo hold-out per la selezione del modello, il set di dati viene suddiviso in tre set diversi: training, validazione e test.

Fonte: https://vitalflux.com/hold-out-method-for-training-machine-learning-model/

 

Il frammento What If ha due modalità.

 

  1. Il drawdown massimo viene misurato nella parte di dati di formazione e la strategia smette di operare nella parte di dati di validazione e di test dopo aver raggiunto il drawdown massimo di formazione.
  2. Lo snippet WHAT-IF determina il drawdown massimo nella parte di dati di convalida e interrompe il trading nella parte di dati di test dopo aver raggiunto la percentuale di drawdown misurata nella parte di dati di convalida.

 

In Strategy Quant X è possibile impostare la formazione/validazione/test nella sezione Dati.

 

Ulteriori informazioni su come utilizzare e impostare formazione/validazione/test sono disponibili in qui.

 

Vediamo l'uso pratico di questi snippet:

 

Formazione/Test What-IF snippet

 

Nella figura qui sopra, vediamo un semplice backtest di una strategia RSI suddiviso in un periodo in-sample e in un periodo out-of-sample. Possiamo notare che la strategia raggiunge il massimo drawdown nel periodo fuori campione.

 

Dopo aver utilizzato lo snippet WHAT-IF, possiamo vedere cosa succede quando la strategia esce dal trade dopo aver raggiunto 50% del drawdown massimo dalla parte campione dei dati. La strategia in Out of sample terminerà l'operazione in anticipo. Nella parte inferiore del database, possiamo vedere come sono cambiate le statistiche di ciascuna strategia. Il drawdown di What If Out Of Sample è inferiore.

 

Formazione/Validazione/Test WHAT-IF snippet

 

Snippet funziona in due modalità:

Modalità = 1

Funziona in base all'ipotesi che la stratégy trading venga disattivata quando viene raggiunto il valore percentuale del massimo drawdown del periodo di formazione. Questa logica viene applicata sia nel periodo di validazione che in quello di test.

Modalità = 2  

Funziona con l'ipotesi che la stratégy trading venga disattivata quando il valore percentuale del drawdown massimo viene misurato nel periodo di convalida. Questa logica viene applicata nel periodo di prova.

 

 

Backtest di base

Nella figura seguente, vediamo il backtest iniziale della strategia suddiviso in Training/Validation/Testing.

 

 

Modalità = 1

Dopo aver utilizzato lo snippet WHAT-IF, vediamo che la strategia non è riuscita a raggiungere 50% del suo drawdown misurato nel periodo di formazione. Il drawdown di 50% è stato raggiunto solo nella parte di test dei dati, dove il trading è stato interrotto.

 

Modalità = 2

In questa modalità, ho impostato un drawdown di 100% nella parte di validazione dei dati. Nella parte di test, la strategia ha raggiunto abbastanza rapidamente un drawdown di 100% e ha smesso di operare.

 

Questi frammenti "WHAT-IF" sono un'introduzione all'argomento. L'obiettivo è quello di elaborare l'intero flusso di lavoro. Per quanto riguarda l'implementazione nelle piattaforme, → la soluzione sopra descritta può essere implementata in MT4/MT5 e anche in Tradestion/Multicharts. In ogni caso, in termini di modularità, la piattaforma migliore è Metatrader 5.

Alla fine del blog, vorrei aprire una discussione sulle idee che potrebbero essere integrate negli snippet. Se avete idee, postatele nella discussione sotto l'articolo o direttamente a [email protected].

 

Entrambi i frammenti di What if possono essere scaricati qui.

 

clonex / Ivan Hudec

Ivan Hudec — “Clonex” sul forum

Faccio trading da 15 anni e utilizzo StrategyQuant X dal 2014. Attualmente mi occupo di tre cose: sviluppo e metto alla prova strategie automatizzate, amplio le funzionalità di SQX con indicatori personalizzati, snippet e strumenti Python per l’apprendimento automatico e la ricerca quantitativa, e aiuto altri trader a raggiungere i loro obiettivi più rapidamente, evitando loro gli anni di costosi errori che io stesso ho commesso lungo il percorso.
La maggior parte delle strategie di trading al dettaglio sembra ottima nei backtest, ma fallisce quando viene applicata dal vivo. Il mio lavoro è esattamente l’opposto: strategie oneste, validate e sufficientemente solide da poter essere utilizzate con denaro reale. Scrivo di questo processo — gli aspetti positivi, quelli negativi e il fenomeno dell’overfitting di cui nessuno parla — sul mio sito, algotrading.space.
Se vuoi approfondire i temi della validazione, dello sviluppo personalizzato di SQX o della creazione di un vero vantaggio competitivo grazie a dati e codice, è proprio lì che condivido tutto ciò che so.  www.algotrading.space

11 Commenti
Vecchi
Più recenti Le più votate
Commerciante di api
2. 3. 2022 10:01

Ciao Clonex,

Grazie per la descrizione e gli snippet. Avete considerato la possibilità di utilizzare un metodo di adattamento di una distribuzione come il Beta e poi di utilizzare le proprietà statistiche per interrompere il trading se c'è una deviazione oltre la soglia consentita/scelta? Tim Masters ne parla nei suoi libri.

Grazie
Commerciante di api

Commerciante di api
Rispondi a  clonex / Ivan Hudec
2. 3. 2022 16:51

Quali metodi SQC state considerando per la vostra prossima ricerca?

Emmanuel
11. 4. 2022 6:03 pm

Eccellente !!!!!! Grazie mille Clonex per questo fantastico lavoro !!!!!

hannahis
14. 6. 2022 7:52 pm

"Un problema comune per un trader è sapere quando la sua strategia ha perso il vantaggio, o in breve, quando si verifica una situazione che non si adatta alle strategie attuali. Le strategie generate dal data mining possono subire un degrado delle prestazioni abbastanza rapidamente..." Qualcuno si è mai seduto a riflettere sul motivo per cui le strategie spesso perdono il loro vantaggio (soprattutto nel caso di strategie estratte dai dati e non basate su una solida teoria del trading)? Se non ci si siede e non si riflette a fondo, non si fa altro che rincorrere il vento e... Leggi il resto "

Ultima modifica 4 anni fa di hannahis
hannahis
Rispondi a  hannahis
14. 6. 2022 20:11 pm

Non dovrete più cercare o trovare strategie robuste. Conoscerete gli ingredienti delle strategie robuste e inizierete a costruirle (senza più bisogno di cercare, perché sapete come giocare con i market maker, la chiave per sviluppare strategie robuste). I software non conoscono la manipolazione del mercato, perché guardano solo i dati ma non l'intenzione che sta dietro ai dati (manipolazione del mercato). Quindi, guardando solo ai dati (storici) senza comprendere la manipolazione del mercato, il software non saprà cosa cercare e quali caratteristiche è importante avere, ecc.

Adam Kundrát
Rispondi a  hannahis
8. 8. 2022 8:06

Interessante linea di pensiero e molto probabilmente giusta per quanto riguarda il fatto che i market maker hanno essenzialmente intenzioni diverse di operare rispetto ai trader abituali. Non sono sicuro che tu abbia messo il segno di uguale tra le attività dei market maker e la manipolazione del mercato, ma credo di sì. Allora la domanda è se la manipolazione sia un'attività intenzionale o piuttosto un'attività derivante dall'esistenza dei market maker. L'una o l'altra e considerando le sue riflessioni le domande sarebbero: (1) è possibile trovare strategie redditizie? Sulla base delle sue riflessioni, credo che la risposta sia SÌ ma la sua... Leggi il resto "

Adam Kundrát
8. 8. 2022 8:20

Ciao Clonex, grazie per il tuo articolo. Non sono sicuro di riuscire a cogliere l'intero significato della tua aggiunta, ma ho capito bene che il risultato del tuo test confronta essenzialmente il DD più alto nel dataset del campione con il valore attuale definito del DD di una strategia di trading sul conto live e interrompe il trading della strategia quando il valore definito viene superato? Ad esempio, DD in-sample = $1.000, valore predefinito = 130% di DD in-sample = $1.300. Quando la strategia supera il valore predefinito del DD ($1.300) sul conto live, MT4/MT5 chiude tutte le operazioni.... Leggi il resto "

SteveChou
9. 3. 2023 4:06

Questa è una buona idea per consentire al trader di sapere per quanto tempo fallirà la sua strategia dopo averla creata.
Ma ho un suggerimento che forse può essere migliorato in questa valutazione.
Può cambiare il DD di riferimento dal risultato della strategia originale al risultato Monte Carlo 95% (o altrimenti %).
Perché sappiamo che il risultato del MC può predire il risultato della strategia in futuro.
Quindi, se il risultato di riferimento può essere modificato in quello del MC, forse sarà meglio.
È solo un'idea di pensiero.

Continua a leggere