Text Size
Thursday, October 29, 2020
Area

Gandalf Store

Coding

Formazione

Consulenza

Come progettare "seriamente" un Trading System

Per comprendere quanto serio sia l'approccio di chi costruisca un trading system, è sufficiente verificare quanto sia stato "tirato" da un punto di vista metrico per ottenere una curva il più possibile regolare ed appetibile. Progettiamo sistemi dal 2001, prima con Traderlabs e successivamente con Gandalf Project (oggi stiamo mettendo la nostra esperienza e la tecnologia prodotta al servizio della gestione anche con Rocket Capital Investment), in un processo virtuoso di continuo rinnovamento. Ma non tutti coloro che operano sui mercati finanziari e sulle Commodity in particolare, hanno chiaro cosa vada osservato con più attenzione durante la fase di progettazione di un sistema.

Proveremo a descrivere per sommi capi quello che poi approfondiamo nei corsi di formazione che eroghiamo a privati e ad istituzionali del mondo del trading e dell'investing:

Setup di Ingresso: si tratta della tecnica con cui decidiamo di prendere posizione sul mercato, che sia al rialzo, al ribasso e bidirezionale. Tipicamente ha a che fare con criteri statistici, la cui matrice può essere quantitativa (ingressi di volatility breakout, level breakout, reversal, pattern multi time frame ecc.) oppure generati da algoritmi evolutivi o da Machine Learning (Programmazione Genetica, Random Forest, Deep Neural Networks ecc.)

Filtri Operativi: tipicamente il numero di operazioni generate consente una riduzione opportuna, per migliorare le metriche del sistema. Sto parlando in particolare della media di profit/loss delle operazioni (Average Trade) che ci parla della sostenibilità del sistema in termini di capienza sui costi fissi (commissioni fisse, commissioni variabili e slippage). Tali filtri cercano di escludere quei trade che abbassino il valor medio di Average Trade e Profit Factor, pur essendo magari in grado di generare una dinamica positiva della curva dei profitti (Equity Line). Stiamo parlando dei Filtri di Trend (possiamo decidere ad esempio di operare al rialzo sul 5 minuti soltanto se il trend giornaliero sia rialzista, oppure se il valore nominale di un ADX sia superiore o inferiore ad una certa soglia ecc.) dei Filtri di Volatilità (cerchiamo una compressione su un time frame superiore a quello su cui operiamo, sfruttando una fisiologica periodicità del "respiro" di mercato), dei Filtri Periodici o Bias (operare ad una certa ora in intraday o escludere un determinato giorno della settimana come il venerdì per operatività short sui principali metalli come Gold, Silver e Platinum) oppure dei Filtri di Liquidità (isoliamo in intraday le aree temporali su cui siano maggiori i volumi di scambio, per garantirci mediamente uno slippage minore e movimenti più partecipati).

Setup di Uscita: stiamo parlando dell'insieme delle modalità di uscita dal trade. Uscite a Tempo (che cerchino di cogliere l'inerzia di un movimento impulsivo), Uscite  su Livelli di prezzo o di volatilità (sono le più comuni e chiudono spesso trade partiti su medesimi criteri), Uscite a Pattern (in presenza di pattern ribassisti per operatività al rialzo e viceversa) o Uscite Monetarie (parliamo di criteri legari al money e position management come lo stoploss, il takeprofit, il trailingstop/profit ecc.)

Ovviamente potremmo continuare con ulteriori regole e suddivisioni, ma di base questi tre punti descrivono piuttosto bene i criteri cardine che caratterizzano un trading system. Se quello di cui abbiamo parlato è prevalentemente tecnica, affrontando il tema della validazione passiamo nel campo di una visione per così dire "a tutto tondo". Se è vero come è vero che il mercato è un animale mutevole, questo sembra togliere molte certezze. Come possiamo aumentare le probabilità che un dato sistema abbia una maggiore probabilità di continuare a generare profitti nel prossimo futuro?

La risposta esiste ed ha a che fare con il modo in cui percorriamo i vari step di progettazione: in letteratura oggi troviamo ovunque (non era così una ventina di anni fa) il suggerimento di testare il proprio sistema su storici sconosciuti o variati artificialmente ("noise addicted"), oppure banalmente di suddividere in periodi multipli In Sample ed Out of Sample l'unico storico a disposizione. Ancora è possibile ispirarsi al principio che la robustezza e quindi la "persistenza" del modello (siamo stati tra i primi a dare la definizione del concetto di persistenza) possa essere inversamente legata alla complessità delle regole in gioco. Si è anche visto come la complessità evocata dal modello non abbia alcun legame con la complessità del prodotto finito (possiamo ad esempio utilizzare un approccio estrememente complesso che generi un trading system dalle regole semplici).

Vediamo un esempio ispirato da un'intera classe di sistemi trend following che operino sui metalli e sul Gold Future in particolare. Stiamo parlando del sistema "Cloud Break" che, pur basandosi sul medesimo criterio di ingresso, è declinato in varie versioni che dipendono dal differente criterio di uscita.

Di seguito l'equity line ad operazioni chiuse della versione "Gold Cloud Break" che opera su barre a 15 minuti (equity ad unico contratto su Gold Future) ma ha un approccio tipicamente multi time frame:

Tra i vari sistemi di breakout su cui abbiamo lavorato in questi anni è uno di quelli che ha sofferto di meno la fase degli ultimi tre anni e sembra aver ripreso bene il suo lavoro di creazione di valore. Nella prossima tavola vediamo invece l'equity line ad operazioni aperte:

La curva è si regolare (si tenga conto della scala e del fatto che tale sistema non sia stato mai riottimizzato) ma mantiene delle irregolarità che non è nostra intenzione "limare". Il concept di tale sistema è semplice e così com'è funziona anche su Silver, Platinum, Soybeans, Sugar e su alcuni currency future, cosa non da poco e che ci parla di una corretta validazione.

La versione che ho appena mostrato e che verrà rilasciata ai corsisti del corso "L'Officina dei Trading System" (fruibile da remoto e anche in versione registrata) è basata su un'uscita legata ad un particolare bias di ogni singolo strumento (consiglio di evitare di produrre sistemi Bias in generale, per questioni legate alla loro tenuta, ma alcuni aspetti ricorrenti possono essere utili per essere innestati su una singola uscita, come in questo caso).

Vediamo cosa accade se cambiamo semplicemente il criterio di uscita con uno legato alla volatilità. Vediamo l'equity line ad operazioni chiuse:

Ed ora quella ad operazioni aperte (temporizzata):

Quello che emerge è che sembra di guardare un sistema completamente avulso dal primo: maggiore sofferenza negli ultimi anni con periodi più prolungati in laterale. Dovremmo aver compreso l'importanza di utilizzare i vari elementi di un trading system come fossero dei mattoncini lego da combinare tra di loro.

Ma anche se abbiamo lavorato bene, un trading system può desincronizzarsi dal comportamento del mercato di riferimento (si pensi alle tecniche di breakout sui metalli o a quelle di gap filling su alcuni index future, che hanno vissuto fasi alterne dal 2017 ad oggi). E' quindi necessario pensare ad un sistema di inibizione dell'operatività che intercetti una avaria in corso sul modello e ci difenda da perdite vitualmente infinite. Allo stesso modo tale sistema deve essere in grado di riaccendere la strategia qualora le condizioni ritornino sincrone al mercato su cui è applicata la strategia. Stiamo parlando dei sistemi di Performance Control o Equity Control che da soli meritano uno studio ed un approfondimento a parte (Il quinto modulo della Python Academy tratta proprio questo tema con grande dettaglio e per i vecchi utenti di Easylanguage e Powerlanguage stiamo per lanciare un nuovo prodotto di formazione che descrive la nostra lunga esperienza su questo tema, andando ben oltre il vecchio corso di Equity Control che abbiamo tenuto per otto anni consecutivi).

Ma se abbiamo ottenuto sistemi correttamente validati e potenzialmente persistenti, applichiamo delle strategie di Performance Control evolute per proteggerci dalle avarie, cosa manca ancora?

Ispirandosi alle Tecniche Rotazionali utilizzate per la composizione di portafogli di strumenti finanziari, abbiamo esteso molti di questi meccanismi alla Rotazione di Strategie all'interno di un intero portafoglio di Trading System. E' possibile utilizzare algoritmi che premino i migliori e associno loro una maggiore esposizione, che eliminino i peggiori o che facciano prevalere i trading system la cui produzione di utili sia il più decorrelata possibile in termini di paniere, solo per fare degli esempi (da oltre due anni trovate tutto nel sesto modulo della Python Academy).

Per quesiti ed informazioni potete scriverci una email a This email address is being protected from spambots. You need JavaScript enabled to view it.

Have a good trade!

Giovanni Trombetta

Founder & Head of Research & Development Gandalf Project

 

 

 

Privacy & Cookies Policy

Questo sito utilizza i Cookies per migliorare la navigazione. Utilizzando questo sito e continuando nella navigazione si intende accettata la Privacy Policy e la Cookies Policy. Puoi bloccare in ogni momento questa raccolta di informazioni seguendo le istruzioni contenute in queste pagine.

 


 

Topics

Intelligenza Artificiale

L' Intelligenza Artificiale e le più moderne tecnologie di Ingegneria Genetica al servizio del Trading...

Read more...

Consulenza

Gandalf Project è sia un Laboratorio di Finanza Quantitativa che una Società di Consulenza...

Read more...

Python

La scelta di Python come codice elementare per la modellizzazione di ambienti complessi...

Read more...