Rapporto bordi in StrategyQuant X

Una domanda comune a molti trader che utilizzano StrategyQuant X è: Come posso confrontare la qualità dei segnali di entrata delle strategie? Quale segnale ha un vantaggio migliore e una maggiore probabilità di successo?  In questo articolo vi mostrerò come utilizzare il nuovo strumento EDGE Ratio per valutare la qualità dei segnali di trading. L'Edge Ratio è stato menzionato per la prima volta pubblicamente in un ottimo libro di Curtis Faith Way of the Turtle. 

Nella nuova versione di StrategyQuant X - build 131 abbiamo aggiunto la possibilità di lavorare con il valore ATR(14) in un momento di apertura della posizione. Questo valore è accessibile tramite il campo order.ATROnOpen, una caratteristica fondamentale per l'utilizzo dello strumento EDGE ratio.

 

 

Che cos'è l'Edge Ratio?

L'Edge Ratio è il rapporto MFE / MAE normalizzato dalla volatilità dello strumento al momento dell'apertura della posizione.

Spieghiamo ora le singole componenti da cui si calcola il rapporto di edge ratio:

Massima escursione avversa (MAE) misura la perdita massima subita da una singola operazione mentre è aperta.

Al contrario, Massima escursione favorevole (MFE) misura il massimo profitto ottenuto da una singola operazione mentre è aperta.

ATR - Average true range misura la volatilità dello strumento.

 

L'immagine qui sopra mostra meglio la relazione tra MAE / MFE e Profitto/Perdita.

La prima riga mostra che il profitto/perdita della posizione è stato di 5,7, mentre il maggiore drawdown di MAE durante l'operazione è stato di 32,5 pip. Il maggior profitto osservato da MFE durante un'operazione è stato di 45,6 pip. Possiamo quindi notare che mentre il profitto finale della posizione è stato moderato, l'MFE è stato molto più grande e quindi il potenziale dell'operazione non è stato soddisfatto.

L'analisi di questi indici può aiutarvi a scoprire se i vostri metodi di uscita sono sufficientemente buoni. Nel caso del MAE, può aiutarvi a capire se le vostre uscite sono sufficienti. Per saperne di più su questi indici potete leggere questo buon articolo link.

 

Torniamo al calcolo dell'Edge Ratio. Il rapporto di edge ratio si calcola come segue

  1. Registrare il MAE in pips e il MFE in pips per ogni operazione.
  2. Dividere ciascuno di essi per l'ATR(14) per aggiustare la volatilità e normalizzare per le future analisi di mercato.
  3. Sommare ogni valore (MAE normalizzato e MFE normalizzato) e dividere per il numero totale di operazioni.
  4. L'edge ratio è la volatilità media normalizzata MFE divisa per la volatilità media normalizzata MAE

Quindi, un valore più elevato di MFE e contemporaneamente più basso di MAE porta a un rapporto di bordo più elevato. Ciò significa che il segnale ha un margine più elevato. (Il potenziale di profitto dell'operazione è superiore al potenziale di perdita).

 

Come si può utilizzare l'edge ratio in StrategyQuant X?

In primo luogo, possiamo utilizzare l'edge ratio come indicatore della performance della strategia. Possiamo lavorare con l'ipotesi che le strategie con un edge ratio più elevato possano essere più resistenti a eventuali cambiamenti nel trading fuori campione/reale. Tuttavia, si tratta di un'ipotesi che dovrebbe essere supportata da ampie analisi di validazione, idealmente con diverse centinaia di migliaia di strategie testate su più periodi.

Nel 2020 ho condotto una ricerca su un campione di 1,2 milioni di strategie generate casualmente e ho cercato di identificare le caratteristiche (Sharpe Ratio, fattore di profitto, ecc.) i cui valori possono influenzare la vera performance fuori dal campione di una strategia. In sostanza, ho cercato di identificare il ranking (Strategy Filtering Conditions) per selezionare le strategie per il trading live. Ho utilizzato lo Pseudo Edge ratio nei miei calcoli MFE / MAE ratio e sorprendentemente lo pseudo Edge ratio si è rivelato un buon predittore della selezione di strategie di alta qualità. Tuttavia, questa ricerca non è ancora stata completata, pertanto tratteremo questo argomento in un prossimo articolo.

Il tipo di ordini influisce sui risultati dell'edge ratio. Utilizzo principalmente gli ordini di mercato per misurare la qualità del segnale di apertura-chiusura, poiché gli ordini Stop/Limit coinvolgono altri fattori/dimensioni che influenzano il valore reale del segnale.

 

Altre domande

A questo punto, occorre considerare altri fattori importanti. Sappiamo che StrategyQuant dispone di un motore genetico molto efficiente, che viene costantemente migliorato.

Tuttavia, dobbiamo considerare che possiamo lavorare con miliardi di combinazioni di blocchi strategici. Il numero di condizioni e possibilità è chiamato "gradi di libertà". Dal punto di vista dell'apprendimento automatico e della scienza dei dati, più alti sono i gradi di libertà, maggiore è il rischio di overfitting della strategia, anche se la strategia supera i test MC e altri test di robustezza.

Questo non è un problema solo per noi sviluppatori di algoritmi, ma anche per gli scienziati che lavorano nel campo degli algoritmi evolutivi. In ogni caso, l'overfitting durante lo sviluppo delle strategie può portare al fallimento della strategia in condizioni di tempo reale e infine al collasso del suo margine.

È il rapporto Edge che può essere una componente significativa del ponte tra le strategie di sviluppo del flusso di lavoro puramente genetico e lo sviluppo di IDEA FIRST. Un ruolo chiave in questo processo è giocato dal Blocchi personalizzati - La funzione SQX, disponibile dalla versione 127, ci permette di definire le nostre parti di strategia. Ritengo che i blocchi personalizzati rappresentino un vero e proprio cambiamento e una parte importante del flusso di lavoro per la creazione di strategie in StrategyQuant.

È possibile definire filtri di regime, predefinire condizioni di entrata per il breakout e preparare il progetto della strategia in modo molto sofisticato. Con un progetto di strategia ragionevole e un'impostazione moderata del motore genetico, a mio avviso, è possibile eliminare in modo significativo il fattore overfitting nello sviluppo della strategia dal punto di vista della complessità della strategia e della complessità dell'impostazione del motore genetico.

Va notato che anche durante l'intero flusso di lavoro dell'idea prima è È estremamente importante prestare attenzione al metodo di partizione dei dati "train/test/validate".

StrategyQuantX è così flessibile che esistono diversi modi per analizzare l'edge ratio. Esistono flussi di lavoro complessi in cui è necessario lavorare con un'analisi strategica esterna, estrarre regole da xml per sincronizzarle con SQX, ecc. ed esistono opzioni più semplici che possono essere utilizzate all'interno del flusso di lavoro SQX esistente. Nella nostra analisi non utilizzeremo alcuno strumento esterno, tutto ciò di cui abbiamo bisogno è incluso in StrategyQuant.

 

Approccio incrementale Improver

Per questo approccio, utilizzeremo blocchi personalizzati, modelli e lo sviluppo di strategie incrementali utilizzando il motore genetico di SQX. Come primo passo, utilizzeremo l'analisi dell'Edge ratio per valutare la qualità dei segnali e selezionare quelli con il potenziale più elevato.

Quindi, sulla base di questa analisi, selezioneremo i gruppi di blocchi/strategie con il potenziale più elevato e li utilizzeremo nel processo di sviluppo genetico di StrategyQuantX. In questo modo ridurremo i gradi di libertà ed elimineremo la possibilità che SQX trovi strategie troppo sensibili al rumore.

 

1. Selezione del paniere di blocchi costruttivi testati

In questa fase, selezioneremo il paniere dei blocchi di costruzione da testare nella nostra analisi.

Possiamo selezionare i building block già implementati in StrategyQuant o creare i vostri utilizzando le funzionalità dei building block personalizzati.

Ecco alcuni link utili per imparare a creare il vostro blocco di costruzione personalizzato:

Non dimenticate una cosa importante. Se si utilizzano blocchi personalizzati e si esaminano contemporaneamente segnali long e short, è necessario impostare il blocco opposto per ogni blocco personalizzato. Anche in questo caso è necessario comprendere a fondo questa funzionalità di SQX.

È anche possibile utilizzare i blocchi predefiniti che sono presenti in Strategyquant X per impostazione predefinita. Di seguito, nell'immagine, sono riportati i blocchi selezionati che testeremo nella nostra analisi.

Selezione degli elementi costitutivi della nostra analisi

2. Creare un modello di strategia di test per eseguire l'analisi.

I modelli di strategia ci permettono di generare quasi ogni tipo di strategia in StrategyQuant. Prima di procedere alla creazione di un modello di strategia per la nostra analisi, vi invitiamo a consultare la descrizione dettagliata del funzionamento dei modelli nella nostra documentazione. qui.

Per la nostra analisi creeremo un modello con la seguente struttura: La strategia sarà sempre sul mercato. Entrerà in un'operazione long ogni volta che si verifica un segnale long. Entrerà in un'operazione short ogni volta che si verificherà un segnale opposto all'operazione long.

Nell'immagine sottostante possiamo vedere come abbiamo impostato i nostri segnali di entrata e di uscita.

Nell'immagine sottostante possiamo vedere che non utilizziamo alcun metodo di uscita e inseriamo l'entrata/reverse a mercato.

Nell'immagine sottostante si può notare che la logica di uscita è semplice.

 

3. Impostazione del costruttore in StrategyQuant X

Innanzitutto, si noti che quando si utilizza il modello di strategia, alcune impostazioni vengono sovrascritte. In altre parole: Le impostazioni del modello di strategia hanno la precedenza su quelle del costruttore.

Decidiamo di generare dal modello creato nel secondo passo. Modifichiamo le impostazioni nella configurazione di compilazione aggiuntiva per riflettere il nostro intento:

  • utilizzeremo la generazione di strategie casuali
  • utilizzeremo al massimo una condizione (segnale) da generare.

I blocchi/condizioni si scelgono dall'elenco dei blocchi che si desidera analizzare. Possiamo scegliere i blocchi personalizzati che abbiamo preparato nella prima fase.

Non abbiamo selezionato alcun metodo di entrata o di uscita proprio perché sono sovrascritti nel modello di strategia.

Un'altra cosa essenziale. È importante stabilire un numero minimo di segnali analizzati - in altre parole, il numero di operazioni.

Analizzare i segnali dell'edge ratio con un numero ridotto di operazioni è, a mio avviso, un'assurdità statistica. Un numero troppo elevato di segnali si tradurrà in un basso fattore di profitto per la strategia e probabilmente la maggior parte dei vostri profitti sarà assorbita dai costi di trading. D'altra parte, un numero basso di segnali può essere statisticamente insignificante.

Se si vuole stimare in modo statisticamente corretto il numero minimo di operazioni, la Formula della dimensione del campione di Cochran può aiutarci.

 

4. Generazione di strategie

Dopo aver preparato tutte le impostazioni, possiamo eseguire il builder in StrategyQuantX. Eseguiamo il builder per alcune ore per ottenere un ampio campione di strategie con segnali.

Nell'immagine sottostante, potete vedere la nostra banca dati dopo alcune ore. Si noti che nella banca dati sono presenti strategie che si sono concluse in perdita - hanno un profitto netto negativo, ma hanno un elevato edge ratio. Non ci interessa il risultato della strategia. Ci interessa che il segnale abbia un edge ratio positivo.

Selezioneremo le strategie con segnali che hanno un edge ratio superiore alla nostra soglia. Scegliamo le strategie con un edge ratio superiore a 1,5 .

Nell'immagine sottostante è possibile vedere l'aspetto della strategia casuale. Dallo pseudocodice si può notare che la strategia utilizza una regola per entrare long e il segnale opposto per entrare short. Questo è esattamente il modo in cui vogliamo misurare la qualità dei segnali. Nessun'altra uscita, solo il segnale puro.

 

 

5. Valutazione della robustezza del segnale

È una buona idea pensare a una possibile valutazione più approfondita dei segnali. Avendo strategie con una complessità molto bassa (abbiamo solo un segnale senza altre variabili), possiamo analizzare più facilmente la robustezza.

A questo punto, consiglio di eseguire un test Monte Carlo per randomizzare i parametri. In questo modo è possibile capire se un determinato segnale non sia una casualità statisticamente sovradimensionata, oppure ottimizzare una determinata strategia di segnale per vedere se i parametri del segnale sono robusti. System Parameter Permutation - SPP è utile per mostrare dove si trovano le impostazioni dei parametri del segnale all'interno della distribuzione dei risultati.

 

6. Utilizzo di Improver per la ricerca dei metodi di uscita e di entrata corretti.

Abbiamo selezionato strategie robuste (segnali) e vogliamo costruire strategie su di esse. A questo scopo è disponibile Strategy Improver. Ora possiamo impostare in modo più flessibile alcune impostazioni nella configurazione di costruzione aggiuntiva. In questo caso, impostiamo lo Stop Loss come opzione necessaria. Inoltre, carichiamo le strategie selezionate al punto 4 nella banca dati "Strategie da migliorare".

 

In questa fase, stabiliamo quali parti vogliamo migliorare. Lasceremo i segnali o le condizioni di entrata così come sono, miglioreremo solo i metodi di entrata/uscita.

In Building Blocks si impostano i tipi di entrata e di uscita. Non dimenticate di aggiungere gli indicatori e i blocchi di entrata con stop/limite. Se non li aggiungete, il miglioratore non troverà alcun miglioramento.

Alcune impostazioni di Improver funzionano in modo diverso. La differenza è principalmente nella classifica delle strategie. Quando si aggiornano le strategie, si imposta il numero di strategie aggiornate che devono essere presenti nella banca dati, almeno perché il miglioratore possa saltare l'aggiornamento alla strategia successiva. Se si imposta un valore elevato, il miglioratore potrebbe non trovare abbastanza strategie da aggiornare e rimanere bloccato.

C'è un piccolo bug in StrategyQuantX 131 a partire dal 22.4.2021 che rende impossibile utilizzare correttamente l'impostazione del ranking temporale. Dovrebbe comunque essere risolto in pochi giorni, ora dobbiamo adattarci e regolare il nostro flusso di lavoro in modo che non sia un problema.

L'obiettivo è assicurarsi che il miglioratore trovi delle strategie, quindi ho impostato il miglioratore in modo che mi trovi almeno dieci strategie da ogni strategia di base. È anche importante ridurre il numero di operazioni, poiché è probabile che il motore genetico selezioni strategie con ordini di stop/limite e quindi il numero di operazioni si ridurrà e sarà inferiore al numero originale di segnali.

 

Conclusione

L'aspetto positivo di questo approccio incrementale è la possibilità di separare le fasi di valutazione. Nella fase 6 abbiamo potuto analizzare separatamente la qualità del segnale. Ora, dopo aver aggiunto le nuove uscite, possiamo valutare separatamente la robustezza dei metodi di uscita. Analizzare contemporaneamente problemi multidimensionali è molto difficile e a rischio di errori.

Vi sarete chiesti come determinare se questo flusso di lavoro è migliore di quello attuale. La soluzione che utilizzo è quella di riservare due anni di dati per convalidare le mie conclusioni. Provate a generare qualche migliaio di strategie secondo il vostro flusso di lavoro e convalidate le prestazioni rispetto a due anni di dati reali fuori campione. Quindi provate a utilizzare quel flusso di lavoro per confrontare la distribuzione dei risultati e fare una stima statistica per stabilire se la differenza media nelle prestazioni delle strategie è statisticamente significativa. In un post successivo, analizzeremo statisticamente questo flusso di lavoro e ne determineremo l'efficienza.

È possibile scaricare lo snippet di edge ratio qui

 

 

Abbonarsi
Notificami
8 Commenti
Il più vecchio
Più recente I più votati
Feedback in linea
Visualizza tutti i commenti
A Casey
A Casey
16. 5. 2021 5:55

ottimo post, aspetto con ansia il prossimo!

Marco
Marco
22. 5. 2021 6:25

Ho provato questo modello. Se Non abbiamo selezionato alcun metodo di uscitaLe strategie hanno solo un'operazione. Ho sbagliato qualche impostazione?

clonex
clonex
Rispondi a  Marco
28. 5. 2021 4:08 pm

È necessario impostare un metodo di uscita nelle fasi successive ....

eduardo
eduardo
2. 6. 2021 12:24

Hai dato forma a ciò che pensavo senza saperlo da molto tempo. È un lavoro spettacolare, oro puro, sono ansioso di conoscere i tuoi progressi nel prossimo blog.

Emmanuel
19. 1. 2022 12:50

Ottimo articolo !!! e molto utile !!! grazie Clonex !

tonyc
tonyc
7. 5. 2022 3:42 am

Puoi condividere il file EdgeRatio.sqx?

tomas262
Admin
Rispondi a  tonyc
11. 5. 2022 11:39

È possibile trovare ulteriori file per la razione Edge qui https://strategyquant.com/codebase/trade-edge-ratio/ nella nostra base di codice

Farhan
13. 7. 2022 9:21

Grazie per l'ottima idea. nella prima fase se imposto il filtro #of trade a >200 allora filtra tutte le strategie perché hanno fatto solo 1 trade. quindi non ho nessuna strategia da continuare nella seconda fase per migliorarla.

Ultima modifica 1 anno fa da Farhan

Continua a leggere