Una visione global

0
37

La costruzione dei sistemi di trading

Sei un investitore sicuramente hai sentito parlare spesso dei sistemi di trading, forse hai imparato da tempo a gestire i mercati finanziari e nell’immensa quantità di informazioni ad essi correlate, avrai notato la possibilità di automatizzare gli elementi di decisione. È necessario però conoscere i vantaggi e gli svantaggi. Ti sei informato ed hai conosciuto diverse idee e concetti di investimento. Senti che è la strada che vuoi seguire e tuttavia ti rendi conto di non sapere da dove cominciare. Questo articolo vuole fornire una guida sull’insieme di passaggi e processi coinvolti nella creazione e implementazione di un sistema di trading.

L’approccio
La serie di passaggi coinvolti nella progettazione e nell’implementazione di una strategia è la stessa sia che tu sia un piccolo investitore sia che tu sia un grande gestore patrimoniale: variano semplicemente la raffinatezza, le risorse ed i mezzi disponibili. Dobbiamo anche tenere presente che questi processi sono simili a quelli presenti in qualsiasi industria manifatturiera e possono essere familiari. Vorrei mostrarvi l’approccio della “catena di produzione”.

In una fabbrica gli elementi di input sono da un lato una materia prima da trasformare (che in questo caso è il capitale di investimento) e dall’altro alcuni requisiti o obiettivi da raggiungere (generalmente relazionati a rendimento, parametri di rischio ipotizzabili, alcuni attivi su cui si desidera investire, ecc.). Il risultato finale è la consegna del prodotto trasformato, e in questo caso quel prodotto costituirebbe un ritorno economico più il capitale iniziale di entrata. Tutto ciò che accade tra questi elementi di input e ciò che otteniamo dagli output è quello che fa la nostra fabbrica.

Quindi, che cosa fa esattamente la fabbrica?
Fondamentalmente si tratta di un insieme di processi volti a cercare di garantire la consegna del prodotto richiesto con la massima qualità possibile, ovvero con il massimo grado di conformità ai requisiti. È qui che si trova il cuore dell’intera questione ed è importante che sia ben compreso: “Una buona parte del valore aggiunto è nell’insieme dei processi che utilizziamo per creare e sviluppare le strategie, piuttosto che nelle strategie stesse!”. Puoi progettare un ottimo sistema di trading, un vero gioiello e puoi rovinarlo con una gestione inefficiente.

Vediamo nel dettaglio cosa succede nella nostra fabbrica.

Abbiamo diverse sezioni: considera che sono sequenziali e output di ciascuna di queste sezioni sono un input (anche se potrebbe non essere l’unico) delle seguenti.

Come investitore sistematico, seguirai le stesse fasi, come abbiamo già detto, che tu sia un piccolo investitore o un istituto che gestisce enormi quantità di denaro. Quindi, se vuoi sviluppare strategie di trading… congratulazioni: devi diventare una fabbrica. Dal momento che è il caso di diventare una fabbrica efficiente e non un piccolo laboratorio caotico, mostrerò ciascuna di queste sezioni in modo da poter vedere cosa fanno, in modo da avere una mappa più chiara.

Ricerca
Le grandi società di investimento hanno centinaia di specialisti in innumerevoli settori dedicati esclusivamente alla ricerca e allo sviluppo di concetti di trading sfruttabili. Questo significa che i trader privati non hanno possibilità? Niente affatto! Le grandi istituzioni hanno limiti molto importanti su ciò che possono e non possono sfruttare. Ad esempio, quando ci riferiamo alla “capacità” delle strategie, si deve tener conto del fatto che ciò che può essere sfruttato con un conto di € 50.000, potrebbe essere impossibile da sfruttare per un grande Hedge Fund a causa dell’impatto sul mercato che avrebbero i loro ordini (arriverebbero ad annullare il vantaggio).

Come funziona la ricerca in questa sezione?
Esistono diversi approcci. Il trader deve prima di tutto essere pragmatico, è di per sé una piccola fabbrica e non può dedicare troppe ore esclusivamente a quest’area e generalmente adotta un tipo di approccio basato sull’analisi tecnica o sull’uso dei dati fondamentali. Fondamentalmente, di solito osservano alcune dinamiche nei grafici dei prezzi che dovrebbero essere in grado di tradurre in “regole” concrete e specifiche. Questo è importante perché un sistema di trading deve essere successivamente in grado di essere convertito in un algoritmo. Pertanto non devono esserci ambiguità nei punti di entrata e di uscita. Generalmente il trader utilizza un qualche tipo di software per evitare tutto il lavoro di elaborazione e manipolazione dei dati e delle serie di prezzi. Questo perché il grado di conoscenza necessario per la sua gestione e conservazione richiede competenze specifiche. Ci sono alcuni svantaggi nell’uso di un qualche tipo di software di trading, come meno flessibilità e versatilità quando si tratta di esprimere le idee, la dipendenza da una terza parte (il creatore della piattaforma) e l’ignoranza sull’affidabilità della qualità dei dati. Tuttavia, è qualcosa che l’investitore privato è disposto a sacrificare senza troppi problemi. D’altra parte, come si può capire, un’impresa di investimento è solita sviluppare la propria tecnologia e ha specialisti sia nella gestione che nel trattamento dei dati. Usa anche degli approcci più centrati al metodo scientifico, in cui si tratta di convalidare le ipotesi sulle inefficienze riscontrate nella dinamica dei prezzi. Come si può vedere, in questo caso c’è una differenza importante tra l’individuo e il professionista.

Se torniamo al nostro trader, possiamo dire che l’uscita del processo di ricerca è in realtà un insieme di inefficienze rilevate, segnali o punti di entrata o uscita in cui le probabilità che il prezzo sia diretto in una data direzione sono empiricamente più alte.

Questi segnali vengono trasformati direttamente in regole chiare e concise, cosa che chiameremmo “pseudocodice” che è una sorta di “ricetta” in un linguaggio comprensibile sui tempi in cui si verifica l’inefficienza. Quindi, l’uscita da questa fase di indagine è un insieme di inefficienze riscontrate. Quando sono in ingresso, parliamo di “setup”.

Progettazione
Quello che avremo è un archivio di segnali che aiuteranno quindi lo sviluppatore a creare i sistemi. La fase di progettazione implica, quindi, l’uso e la combinazione di questi segnali per costruire “strategie” complete interpretabili dal computer. Qui gli obiettivi del prodotto dovrebbero già essere presi in considerazione. Quello che fa lo stratega è usare la sua esperienza e le sue capacità per combinare una serie di segnali in modo coordinato con obiettivi specifici. Qui gli obiettivi del prodotto dovrebbero già essere presi in considerazione. Quello che fa lo sviluppatore della strategia è usare la sua esperienza e le sue capacità per combinare una serie di segnali in modo coordinato con degli obiettivi concreti. La strategia sviluppata è essenzialmente una “ipotesi” sulla dinamica del mercato e mentre normalmente un trader non cerca di trovare un senso economico o una causa fondamentale che genera tale comportamento (è sufficiente un controllo empirico), nelle aziende di investimento, l’ideale è ragionare sul motivo dei movimenti.

Vediamo un esempio di come si sviluppa un sistema
Immagina che il “progettatore” abbia i seguenti requisiti per sviluppare un sistema:

• Attivi: Azioni e Indici di azioni

• Solo posizioni long

• Alta probabilità di successi

• Perdita massima accettabile “X”%

Lo stratega con questi requisiti decide che in questo caso l’ideale è sviluppare un sistema di inversione in cui ci si posiziona long ogni volta che si verificano arretramenti (“pullback”). Per farlo, prenderà alcuni dei setup che ha in archivio e li combinerà per generare un segnale più o meno forte a seconda delle esigenze. Possiamo definirla la “logica” della strategia ed è ciò che potremmo assimilare all’ “edge” o vantaggio. In realtà si cerca di catturare la dinamica dei prezzi che si vuole sfruttare. Successivamente si lavora su possibili “filtri” per migliorare le funzionalità. Sono filtri perché non introducono nuovi punti di ingresso ma semplicemente ne prendono un campione, ovvero eliminano dei trade. Quindi, si lavora sulle variazioni delle entrate (al mercato, stop, limit, ecc.) e soprattutto sulle uscite, con particolare attenzione al controllo del rischio (stop loss). Una volta avuto lo pseudocodice di tutta la strategia avremmo qualcosa come in figura 3. Infine, si passera allo specifico linguaggio di programmazione con cui viene sviluppato il processo di valutazione Backtest. Cioè, l’output di questo processo sarebbe un algoritmo concreto, una strategia di trading.

Valutazione
La valutazione di una strategia di trading è senza dubbio il passo più importante che viene svolto e ha un’unica funzione essenziale: caratterizzare statisticamente il gioco che abbiamo creato al fine di stabilire “aspettative” e criteri di controllo. Si potrebbe pensare che basterebbe analizzare i risultati dell’attuazione della strategia in un periodo passato e quindi estrapolarne il futuro. Ovviamente non è affatto così semplice. A questo punto la probabilità di commettere errori è così alta che persino gli sviluppatori esperti ne fanno di così gravi da poter rovinare l’intera analisi. Ce ne sono così tanti possibili che daremo semplicemente una visione globale del processo senza entrare nei dettagli.

Passi:

1) Analisi preliminare:

In sostanza qui si comprovano cose come:

• Verificare che il sistema effettui correttamente gli ordini (non sarebbe la prima volta che un sistema viene creato e inserisce ordini in momenti in cui il prezzo non è stato quotato o li colloca dopo che la barra è stata chiusa in un posto in cui non lo avrebbe fatto nel trading reale);

• Ottenere un riepilogo statistico preliminare (utilizzato per sapere dove stanno andando i colpi e se si soddisfano efficacemente requisiti e obiettivi);

• Osservare il comportamento contro le variazioni di compressione (vediamo se l’idea funziona in serie temporali diverse o solo in una specifica). Ci interessa la robustezza.

 

2) Ottimizzazione In Sample:

I nostri sistemi avranno un certo numero di parametri (come ad esempio i periodi delle medie mobili). La domanda tipica sarebbe: quali usare? Quali sono quelli corretti? In realtà NON ce ne sono di corretti. Se il funzionamento della strategia dipende dalla scelta di un set parametrico specifico, stiamo andando male. Una strategia cerca di sfruttare una dinamica di mercato e quindi dovrebbe funzionare attraverso una serie di parametri che riproducono efficacemente quella dinamica. Questo è importante da capire. Darò un semplice esempio per illustrarlo: ho una media mobile applicata su una serie temporale su base giornaliera il cui obiettivo è determinare se sono in una tendenza al rialzo o al ribasso a medio termine. Per questa necessità, è indifferente se i periodi della media mobile siano 200, 150 o 250, tutti mi darebbero informazioni simili. Sicuramente ce ne sarà uno che massimizza determinati criteri, ma quello ottimale non è quello che dovrebbe caratterizzare la strategia se non vogliamo generare false aspettative. D’altro canto, una a 20 o 30 periodi sta sicuramente catturando un altro tipo di dinamica, cioè delle tendenze a breve termine.

L’ottimizzazione “In Sample”, quindi, consiste nel determinare gli intervalli parametrici della strategia che riproducono le dinamiche che vogliamo sfruttare. Il problema più grande che abbiamo nella fase di ottimizzazione è che finiamo per fare un “vestito su misura” per i dati della serie temporale, cioè, più parametri abbiamo e più combinazioni parametriche possiamo testare, più alti saranno i rapporti statistici che otterremo. Tuttavia, questo non avrà alcuna capacità di riproduzione in futuro. Quando ciò accade, parliamo di ottimizzazione eccessiva o “overfitting”. Questo è l’errore più grande che possiamo fare e non è facile evitarlo se non abbiamo protocolli progettati per questo. Una delle pratiche consuete è quella di non utilizzare la serie temporale completa, ma dividerla in 2 o anche 3 parti. Il periodo che utilizziamo per ottimizzare la strategia e i suoi parametri è chiamato “In sample” e di solito rappresenta il 60 o il 70% del totale. Il resto si chiama “Out of Sample”. Ad esempio, se abbiamo una serie temporale di 10 anni, utilizzeremmo circa 6 o 7 anni per l’In Sample e lasceremo il resto per l’Out of Sample. Ovviamente la selezione del periodo In Sample è importante nel processo di valutazione. Quindi essenzialmente ciò che viene fatto in questa sezione è ottimizzare il periodo In Sample in modo da trovare intervalli parametrici di lavoro.

3) Ottimizzazione Out of Sample

Una volta che avremo la nostra ottimizzazione e i nostri intervalli di lavoro, li applicheremo sulla parte che non abbiamo usato durante il processo di ottimizzazione In Sample, ovvero sull’Out of Sample.

L’obiettivo è realizzare la caratterizzazione statistica della strategia in base ai risultati ottenuti in questo periodo di Out of sample.

4) Test Profile

Questo processo si conclude con il riassunto delle proprietà statistiche della strategia.

La sua funzione è quella di servire come base per determinare cosa possiamo aspettarci da essa. La sua sezione più importante è la determinazione dei rischi della strategia. Qui è usuale ricorrere a tecniche, come l’analisi di Montecarlo, che ci consentono di simulare l’insieme di possibili percorsi compatibili con le proprietà della curva del capitale.

Ci sono molti consigli che vorrei dare.

• Non dobbiamo mai perdere di vista l’obiettivo di realizzare la valutazione: ottenere un insieme di statistiche che mi consenta di stabilire una certa aspettativa circa le future prestazioni del modello. Pertanto, dobbiamo concentrarci sull’ottenimento di risultati “realistici”.

• Idealmente, non utilizzeremo le serie temporali utilizzate nella fase di progettazione nella valutazione poiché introdurrebbe delle distorsioni di ottimizzazione. Alla fine della progettazione sapremmo già che la strategia funziona bene su quelle serie temporali. Avremo introdotto dei filtri in modo che funzioni bene, quindi non ci aiuta a valutarla.

• Il nocciolo della questione è evitare l’ottimizzazione eccessiva a tutti i costi.

Implementazione
Con implementazione ci riferiamo a come lavoreremo l’insieme dei segnali di input e output che in linea di principio ci fornisce il sistema. Ciò implica da un lato determinare la dimensione della posizione che assumeremo sul mercato, definendo così la nostra esposizione, e dall’altro vedere come integrare il sistema in modo che funzioni in combinazione con gli altri, ovvero creare il portafoglio. La dimensione della posizione deve essere conforme agli obiettivi e ai requisiti che abbiamo per il prodotto. Si tratta di rispondere alla domanda su quanto capitale rischierò nella prossima posizione. Come premessa, partiamo dal fatto che i risultati che andremo ad ottenere sono indipendenti l’uno dall’altro, non esiste alcuna relazione tra il risultato del prossimo trade e quello effettuato in precedenza (altrimenti potremmo aumentare o ridurre l’esposizione sulla base di queste previsioni e implementarla direttamente nella strategia). La dimensione della posizione è governata a sua volta da un algoritmo che migliorerà i vantaggi della strategia dato che comporrà il rendimento. Tuttavia, è necessario tenere presente quanto segue:

• Un algoritmo di gestione monetaria non converte una strategia perdente in una vincente.

• Questi algoritmi “amplificano” la curva dei risultati, aumentano la volatilità e aumentano i profitti, ma anche le perdite.

Vediamo un esempio in figura 5 di ciò che un algoritmo di gestione del denaro fa alla curva stessa dei risultati.

La creazione di un portafoglio è un altro degli aspetti fondamentali nella gestione degli investimenti. L’idea, come sapete, si concentra sul concetto di diversificazione come meccanismo per ridurre la volatilità globale. Di quanti asset/sistemi avremmo bisogno per ottenere un adeguato grado di diversificazione?

Senza entrare in considerazioni tecniche sulle correlazioni esistenti (IC: Intraportfolio correlation) possiamo stimare che con 6 o 7 attivi avremo già ridotto buona parte del rischio diversificabile. Il modo per ottenere i pesi da assegnare a ciascun sistema, di solito, segue un processo di ottimizzazione basato su alcuni criteri, ad esempio il famoso rendimento atteso per una data volatilità (Mean-Variance Optimization, MVO), ma ci sono molti altri “rapporti target” da essere ottimizzati. La decisione su quali criteri scegliere dipende ancora dalla propria capacità di soddisfare i requisiti e gli obiettivi.

Monitoraggio
Dopo aver completato tutti i passaggi precedenti e aver applicato la strategia sui mercati, entra in gioco il monitoraggio della sua evoluzione. In sostanza, questo passaggio consiste nel verificare se i risultati che stiamo ottenendo corrispondono alla caratterizzazione statistica della strategia (ricordare il Test Profile). In questo passaggio, ciò che viene fatto, quindi, è un insieme di studi statistici volti a contrastare le distribuzioni teoriche e reali. Il sistema rimarrà in vigore potendo essere utilizzato mentre questi test statistici ci informano che gli elementi del campione ottenuto (risultati reali) appartengono alla stessa popolazione di quelli teorici. In breve, continuiamo a giocare allo stesso gioco che abbiamo valutato. Di solito ci sono altri criteri per scartare una strategia, come il superamento di determinati livelli di drawdown, l’uso del controllo statistico dei processi, ecc. È importante evidenziare che le informazioni ottenute durante tutti questi passaggi vengono reintrodotte in tutto il ciclo di creazione della strategia, in modo da retroalimentare il sistema al fine di correggerlo e migliorarlo costantemente.

Conclusione
Abbiamo brevemente mostrato l’approccio della catena di produzione in cui è possibile osservare i processi che svilupperebbe la nostra fabbrica di strategie. È stato delineato solo il funzionamento di ciascuna di queste sezioni e lo sviluppatore deve approfondire ciascuna di esse per creare delle procedure efficaci. Infine, è bene ricordare che una grande strategia può essere rovinata da una sua cattiva attuazione. Bisogna concentrarsi principalmente sul buon funzionamento, con una corretta gestione dei processi e le possibilità di successo aumenteranno considerevolmente.

Carlos Prieto

Carlos Prieto è Quantitative Portfolio Manager di ATP Capital Management, un Commodity Trading Advisor (CTA). È laureato in fisica alla Università Complutense di Madrid, CAIA (Chartered Alternative Investment Analyst), CFT (Certified Financial Technician) e Professore del Corso Esperto universitario “Sistemi e modelli cuantitativi di trading algoritmico” impartita dalla Università Politecnica di Madrid.” cpmmh@yahoo.es