Mito o realtà? Possiamo creare strategie di Trading efficaci con solo 3 righe di codice?

Vuoi più aiuto? Prenota oggi la tua consulenza GRATUITA con il nostro team!

Definiremo una strategia che ti permetterà di avere tutto quello che ti serve per guadagnare costruendo e operando il tuo portafoglio di strategie automatizzate... Rispondi a qualche domanda nel nostro questionario e poi scegli giorno e ora più adatti a te.

PRENOTA ORA LA TUA CONSULENZA STRATEGICA >>

Quante righe di codice servono per creare un trading system efficace? Molti trader sono convinti che tra ingressi, uscite, condizioni e filtri, siano necessarie molte righe di codice per creare sistemi performanti.

In questo video abbiamo cercato di capire se sia realmente così o se si tratti invece dell'ennesimo falso mito…

Guardando il video scoprirai:
-in che modo la lunghezza di un trading system può influenzarne le performance
-perché un maggior numero di condizioni non porta ad una maggior robustezza
-in cosa consiste l'overfitting e perché può essere collegato alla lunghezza di un sistema
-che performance abbiamo ottenuto operando sul Feeder Cattle con un sistema composto da sole tre righe

Buona visione! 😎

Trascrizione

Introduzione

Buongiorno a tutti e ben ritrovati in questo nuovo video. Poche righe di codice non fanno certo una strategia tradabile.

Spesso si sente dire infatti che ne servono molte, ma molte di più, svariate decine se non centinaia, per impostare gli ingressi, per tutte le condizioni al contorno, senza contare quelle per le uscite dalla posizione.

Ma siamo proprio sicuri? Io sono Giuseppe Bucci, uno dei coach alla Unger Academy, e oggi vedremo come sfatare un mito abbastanza diffuso.

Parliamo della lunghezza del codice necessaria per tradare live le nostre strategie.

Cercheremo di capire se i nostri codici possono funzionare bene anche se fatti da pochissime righe.

E lo faremo analizzando una strategia reale che è attualmente live da ben cinque anni.

La lunghezza del codice? Tre righe! Che tra poco scopriremo insieme.

L'overfitting dei nostri sistemi

La questione di fondo è: avere un maggior numero di condizioni ci porta ad avere risultati migliori?

Facciamo un piccolo passo indietro e introduciamo il concetto di overfitting, questo mostro invisibile che, ahimè, affligge tutte le nostre strategie e dal quale dobbiamo cercare di star lontani per quanto possibile.

Ma che cos'è l'overfitting e come può il nostro codice tirarlo in ballo?

Farei con voi un semplice esempio grafico che ci può aiutare a capire meglio.

Immaginiamo di voler raccogliere con una singola linea quante più note verdi possibile.

Qui, in questo primo esempio, abbiamo una linea retta e il risultato non è certo il migliore.

Andiamo ad inserire allora un maggior numero di condizioni, ossia le curve di questa linea, per poter massimizzare il nostro risultato.

Beh, ma allora procediamo in questa direzione e introduciamo tante condizioni quante sono necessarie per portare a casa tutte le note verdi che sono sul nostro tavolo.

Ecco, in quest'ultimo caso abbiamo palesemente introdotto dell'overfitting.

Uscendo da questo esempio, per tornare ai nostri trading system, potremmo dire che quando inseriamo un numero eccessivo di condizioni stiamo di fatto modellando troppo la nostra strategia.

E perché lo facciamo? Perché vogliamo che vada a pescare nello storico quasi tutti i trade vincenti, lasciando da parte gli altri.

Questa pratica però, nel trading reale, porta il più delle volte a perdere denaro, proprio perché il sistema non conosce ancora i dati futuri.

Volendo trovare il giusto trade off tra numero di condizioni e performance del sistema, potremmo dire che l'ottimo lo si ottiene con un numero limitato di condizioni oltre il quale le performance inevitabilmente degradano.

Quando parlo di performance intendo quelle reali di un sistema live, non mi riferisco alle metriche in fase di test.

Ok, ma come si fa a sapere quale sia il numero ottimo di condizioni?

Non c'è una formula magica. Il numero dipende da tanti fattori.

Ma si tratta comunque di trovare il giusto equilibrio tra numero di condizioni e risultati e questo è qualcosa che si affina col tempo, man mano che si sviluppano le strategie.

Vi avevo anticipato che avremmo visto una semplice strategia fatta da pochissime righe e che ha comunque permesso di generare buoni profitti da quando è a mercato.

Un trigger di partenza sul Feeder Cattle

Andiamola a vederla da vicino.

Spostiamoci sulla nostra piattaforma MultiCharts e carichiamo il grafico continuo del Feeder Cattle a 5 minuti con dati dal 2010.

Dunque parto col dire che il Feeder Cattle è un mercato un po' particolare.

Particolare perché innanzitutto la session è abbastanza ridotta: va dalle 08:30 del mattino all'1:05 del pomeriggio orario dell'Exchange, quindi dura poco più di 4 ore e questo può causare dei gap overnight.

Inoltre, in passato non è sempre stata esattamente la stessa.

Altro aspetto da considerare è il fatto che l'Exchange fissi dei prezzi limite di ipercomprato o ipervenduto oltre i quali non è più possibile operare durante la sessione.

Quindi talvolta ci potremmo trovare nell'impossibilità di entrare - fin qui poco male - o di uscire dalla posizione.

Di contro però il Feeder Cattle mostra alcuni vantaggi, tra cui la possibilità di poterlo tradare con bassi capitali, prevedendo stop loss che in intraday possono anche essere di soli 400$-500$.

Partiamo da un semplicissimo trigger composto da due righe.

Dunque con la prima riga noi andremo a comprare con ordini stop al massimo della settimana corrente se nella giornata attuale non abbiamo ancora preso posizione.

Viceversa al minimo della settimana corrente andremo a vendere sempre con ordini stop.

Andiamo ad applicare il nostro segnale, o meglio il nostro trigger, sul chart e andiamo a verificarne le metriche.

Innanzitutto, vediamo che la strategia, se vogliamo chiamarla così, ha un guadagno significativo di 168.000$, ben distribuito tra long short.

Ha un massimo drawdown di 21.000$.

La curva è sicuramente gradevole e sia quella long che quella short mostrano una buona pendenza.

L'average trade è di 160$, anche qui ben ripartito tra long e short.

Andando poi a vedere l'annual, ci rendiamo conto che al netto di quest'anno, la strategia ha performato davvero bene.

Guardando il nostro codice però, potrebbe venirci un dubbio:

noi entriamo con ordini stop al massimo o minimo della settimana corrente, ma non abbiamo applicato nessuna finestra temporale.

Quindi, all'inizio della settimana, massimo e minimo potrebbero non essersi ancora distanziati sufficientemente.

Andiamolo a vedere sul chart.

Questo è un lunedì mattina e come vediamo l'ingresso avviene dopo pochissime barre dall'avvio della sessione.

Potremmo allora fare una prova, andare a modificare il nostro codice inserendo una nuova condizione.

Andremo quindi ad escludere il primo giorno della settimana, il lunedì, dalla nostra operatività.

Andiamo a caricare questo nuovo segnale sul nostro grafico e vediamo che cosa succede.

Dunque, il net profit è sceso, ma del resto abbiamo escluso un giorno dalla nostra operatività e quindi è abbastanza naturale.

L'equity non è bella come prima, ma è comunque crescente sia lato long che lato short.

L'average trade è rimasto pressoché inalterato.

Quindi andiamo ad aggiungere questa nuova condizione?

Direi di no, perché il nostro scopo è quello di creare una strategia profittevole con un numero minimo di condizioni.

Ci è bastato sapere che escludere il lunedì dall'operatività non ha cambiato sostanzialmente le nostre metriche.

L'applicazione dello stoploss

Abbiamo però un trigger senza nessuno stop loss.

Non lo abbiamo inserito volutamente perché volevamo capire come il nostro strumento rispondesse a questo semplice segnale col numero minore possibile di condizioni.

Dal MAE però notiamo che, con un drawdown superiore ai 1.000$, abbiamo tantissimi trade perdenti.

Questo ci suggerisce quindi di applicare uno stop nell'intorno di 1.000$.

Andiamo quindi sul nostro codice e inseriamo una semplice riga che chiuda tutti i nostri trade dopo una perdita di 1.000$.

Carichiamo questo nuovo segnale sulla nostra piattaforma e andiamo a vedere le nuove metriche.

Beh, il Net profit è salito a 180.000$.

Il massimo drawdown è sceso a 16.000$.

Vediamo un equity crescente in modo regolare sia dalla parte long che dalla parte short.

Abbiamo un average trade che si è mantenuto a livello di circa 165$.

Quindi possiamo dire di aver regolarizzato un po' la nostra strategia e come vediamo anche dall'annual ne abbiamo tratto beneficio.

**E' solo un trigger o è già una strategia? **

Bene ragazzi, ma questo è un trigger o è già una strategia?

Inizia a venirci qualche dubbio.

Torniamo sulle metriche. Vediamo come il massimo drawdown sia inferiore al 10% del Net Profit.

Lo vediamo anche dall'equity che è molto regolare.

L'average trade però ancora non è sufficientemente capiente: 165$ per questo strumento non ci mettono al riparo dallo slippage che talvolta accusa.

Dobbiamo quindi inevitabilmente introdurre un'altra condizione per cercare di migliorare il sistema.

Potremmo per esempio introdurre un pattern. Io ho lanciato un'ottimizzazione che voglio mostrarvi e ho ordinato qui i risultati per Net Profit decrescente.

Ricordiamoci che siamo su una commodity: dobbiamo quindi cercare delle condizioni che abbiano una specularità tra long e short.

Siamo partiti dalla condizione che vi mostro adesso in assenza di pattern, e qui vediamo le metriche che già conosciamo.

Notiamo che il pattern che noi abbiamo chiamato "-13" porti sì ad un piccolo incremento del massimo drawdown, ma certamente faccia fare un balzo non indifferente all'Average trade.

Quindi questo pattern ci piace.

Peraltro il suo parente stretto, chiamiamolo, il "-14", porta un average trade molto simile a quello.

Introduciamo allora questo pattern, ma di cosa si tratta?

Andiamo sul nostro codice e vediamolo subito.

Ecco, il codice cambierebbe così.

Di fatto abbiamo inserito una condizione di downtrend lato long e di uptrend lato short.

Andremo quindi a comprare sul massimo della settimana corrente se ieri c'è stata una Close minore del giorno prima e a vendere al minimo della settimana corrente, se ieri c'è stata una Close superiore a quella del giorno prima.

La strategia ai raggi X

Questo è il codice che abbiamo ottenuto. Semplicissimo.

Ma non per questo dobbiamo fargli sconti, anzi dobbiamo analizzarlo letteralmente i raggi X per capire se c'è qualcosa che non ci convince.

Torniamo sulle metriche: il Net Profit è di livello: 194.000$ ben ripartiti.

Il massimo drawdown è inferiore al suo 10% e questo ci piace.

Possiamo vederlo anche dall'equity che ci appare molto regolare sia lato che lato short.

Voglio peraltro farvi vedere come la strategia abbia proseguito la sua corsa dopo essere andata live più o meno da dove vi sto mostrando adesso.

Il Buy&Hold non ci indica un bias di fondo, quindi non possiamo pensare che la strategia sia stata aiutata dallo strumento stesso.

L'average trade è ottimo: 310$ ci mettono al riparo sicuramente da slippage e da commissioni.

Nell'annual vediamo inoltre che la strategia ha performato bene in tutto l'arco storico e anche il 2022 ha risentito positivamente dell'introduzione dell'ultimo pattern.

Opera circa una volta a settimana e l'average trade per anno ci indica che, a partire da quando è stata messa live, quindi dal 2018, ha mantenuto decisamente un buon ruolino di marcia.

Andiamo a vedere però alcune metriche che di solito guardiamo meno.

Dunque, dalla time analysis possiamo vedere che la strategia resti a mercato per circa l'80% del tempo.

La durata media dei trade la possiamo vedere qui come numero medio di barre per trade, direi circa 20 ore, quindi una settimana, in linea col trigger che abbiamo utilizzato all'inizio.

Personalmente io vado a vedere anche i Total trades e come vediamo sono equamente distribuiti in tutto l'arco storico, non sono addensati in qualche zona in particolare e questo mi piace.

Andando sul MAE però notiamo che a destra del massimo drawdown di 1.000$ ci sono dei trade perdenti.

Ma come è possibile? Noi avevamo impostato uno stop.

La ragione sono i gap overnight.

Come vediamo questo primo trade si è chiuso in stop correttamente, mentre questo secondo si è chiuso all'avvio della sessione successiva, ma con un valore di perdita superiore allo stop loss che avevamo impostato.

**Aggiungere altre condizioni? **

Possiamo introdurre delle nuove condizioni per migliorare il sistema?

Potremmo inserire per esempio una time window, ma la session è già molto stretta di suo.

Al limite potremmo escludere le prime e ultime due barre di giornata per evitare di operare proprio a ridosso dei cambi di sessione.

Potremmo anche inserire un take profit o altri pattern, ma così facendo correremo due rischi.

Innanzitutto aumenteremo il rischio di overfitting del sistema e questo non ci piace.

Inoltre perderemmo anche cinque anni di performance out of sample che ci hanno detto molto su come si comporti la strategia una volta messa live.

Conclusione

Decidiamo allora di tenerla così.

Il nostro lavoro è terminato e possiamo ufficialmente dire di aver creato una strategia composta da solamente tre righe.

Questa ha funzionato bene negli ultimi cinque anni, dando ottimi risultati.

Il bassissimo numero di condizioni peraltro ci lascia ragionevolmente confidenti che una strategia così quasi non conosca l'overfitting.

Quindi, per rispondere alla domanda dalla quale eravamo partiti, cioè un maggior numero di condizioni ci può portare a risultati migliori?

Quello che abbiamo visto sembra dirci il contrario.

Questo non significa che una strategia con molte condizioni non possa funzionare una volta messa live, né significa certamente che tutte le nostre strategie debbano per forza essere ridotte a pochissime righe,

ma, diciamo, che un sistema con tanti vincoli sarà meno robusto e potrà mostrare performance meno in linea con i nostri sviluppi.

Bene ragazzi, abbiamo quindi visto come sia possibile sviluppare strategie profittevoli anche con pochissime righe di codice e questo ha per così dire sfatato il mito della complessità a tutti i costi.

Se tra voi c'è qualcuno interessato al mondo del trading sistematico, vi consiglio di cliccare link in descrizione.

Da lì potrete vedere un video di Andrea Unger oppure ottenere il nostro libro best seller coprendo solo le spese di spedizione.

Potrete inoltre prenotare una call gratuita con un membro del nostro team.

Se il video vi è piaciuto lasciate un bel like, iscrivetevi al canale e cliccate sulla campanella così resterete sempre aggiornati.

Grazie dell'ascolto e alla prossima!

Vuoi più aiuto? Prenota oggi la tua consulenza GRATUITA con il nostro team!

Definiremo una strategia che ti permetterà di avere tutto quello che ti serve per guadagnare costruendo e operando il tuo portafoglio di strategie automatizzate... Rispondi a qualche domanda nel nostro questionario e poi scegli giorno e ora più adatti a te.

PRENOTA ORA LA TUA CONSULENZA STRATEGICA >>
Andrea Unger

Andrea Unger

Ciao, sono Andrea Unger, Trader professionista dal 2001 e unico a vincere per ben 4 volte il Campionato del Mondo di Trading con denaro reale.

Grazie a questi risultati sono spesso invitato come relatore in convegni in Europa, Stati Uniti e Asia. 

Sono inoltre autore di diversi libri, tra cui il primo in Italiano sulla Gestione del Rischio nel Trading, tradotto anche in Cinese e Inglese.

Metto a disposizione decenni di esperienza, di prove, di vittorie e sconfitte con le quali ho ideato un metodo scientifico, sistematico, replicabile e universale con cui, in soli 4 anni, più di 1.000 trader sono riusciti a rendersi autonomi.

Devi sapere infatti che gli studi dimostrano che solo il 25% dei trader guadagna, ma di questi ben il 90% lo fa con il trading sistematico...

Come mai allora i formatori insegnano quasi sempre solo il trading discrezionale? 

Non ti insegno a diventare ricco in poco tempo, ti insegno una professione che, con il duro lavoro, la passione, e sufficienti capitali potrebbe diventare la tua principale fonte di reddito.