Trading Systems

 

Introduzione

Un trading system è, come dice la definizione stessa, un sistema di trading, inteso come programma che seguendo delle trading rules,  genera dei segnali automatici di acquisto o vendita.

Una domanda è d'obbligo: funziona? Si in barba agli economisti accademici.

Naturalmente ciò non significa che un TS funzioni con tutti i Titoli, è ben difficile trovare la panacea per tutti i mali, ma penso che sia importante affiancare all'operatività "manuale" su diversi Titoli una efficace operatività automatica su pochi ma remunerativi Titoli.

Ci sono molti vantaggi nell'impiego di un trading system: soprattutto, l'assenza di stress nel prendere la decisione. Infatti la massima attenzione è concentrata nella progettazione e nel test del trading system, e una volta convinti che tutto funzioni ci si potrà fidare totalmente.

E' necessario però rispettare alla lettera le indicazioni del sistema, senza esitazioni se non si vogliono perdite anziché profitti. Quindi eliminando l'emotività e la soggettività.

Per la realizzazione di un trading system solido ed efficace sono necessari i seguenti passaggi:

 

 

Progettazione

E' di fondamentale importanza stabilire prima di tutto su che tipo di "oggetto" dovrà operare il sistema, questo perché un fondo ha caratteristiche ben diverse da una azione ed ancor più da un derivato.

In funzione dell'oggetto infatti si dovranno scegliere le regole operative da impartire al sistema. Si richiede, poi, un'oculata scelta degli indicatori sulla cui azione congiunta dovrà basarsi l'elaborazione. Dovranno essere quindi scelti degli strumenti che siano in grado non solo di rilevare con sufficiente approssimazione l'esistenza di una tendenza o di una fase di congestione, ma anche di rapportare alle varie situazioni di mercato le segnalazioni operative.

Dovrà, infine, essere pianificato un equilibrato criterio di gestione delle uscite dal mercato sia in caso di guadagno che in caso di perdita.

Le regole verranno definite anche in funzione del profilo di rischio che si intende imprimere al trading system.

Si dovranno infine studiare e preparare i dati di "input" del nostro sistema, ovvero le serie storiche ed i parametri (inteso come valori, limiti, ecc.), che alimenteranno il trading system.

 

 

Realizzazione

Questo punto è ovviamente in funzione delle proprie capacità di programmazione e sviluppo. L'unico consiglio che mi sento di dare è: non fidatevi ciecamente del lavoro fatto da altri, ma cercate sempre di valutare con la vostra testa, "entrando" dentro la logica del sistema e scoprendone le peculiarità, ed eventuali vizi.

 

 

Ottimizzazione dei Parametri

E' sicuramente la fase più delicata.

Consiste nell'aggiustamento dei parametri, successivamente alla loro fissazione su valori di massima, per renderli idonei a raggiungere contemporaneamente il duplice scopo di massimizzare i profitti e di dimostrare efficienza su tutto il periodo di simulazione.

Occorre quindi procedere sperimentando le varie possibilità fino all'individuazione di quella che produce i migliori risultati.

Per fortuna per l'ottimizzazione dei parametri ci sono le tecniche basate sugli algoritmi genetici che ci vengono in aiuto. Queste tecniche che spiegherò prossimamente in un focus di dettaglio, permettono con una serie non eccessiva di elaborazioni, di raggiungere rapidamente al set ottimale dei parametri.

 

 

Test
Per poter confidare, nelle capacità di generalizzazione del sistema, cioè nella sua attitudine a funzionare nell'operatività reale e futura, è necessario che esso venga provato, con risultati soddisfacenti, su più intervalli temporali che riflettano condizioni di mercato differenti. E' necessario infatti testarlo in "finestre" limitate e contigue sulla serie storica, tranne che sull'ultimo periodo (quello più recente), che servirà per effettuare una sorta di "prova del nove", per verificare la bontà dei parametri ottimizzati anche in condizioni "nuove" per il sistema. Questo a garanzia di buoni risultati anche in futuro.

 

 

Consolidamento
Per mantenere il sistema sempre in linea con gli eventuali cambiamenti fondamentali del sottostante, è bene riottimizzare ogni tanto i parametri.
Con una frequenza non necessariamente alta, ma conforme alla tipologia del titolo seguito ed alle caratteristiche costruttive del trading system.

 

 

Semplice TS basato su un Indicatore (TS Secondario di Momentum v9)

Il più semplice Trading System che si può realizzare è quello basato sull'incrocio di un qualunque indicatore con la sua media mobile. Possiamo quindi prendere un indicatore di momentum come il MACD o il ROC e considerare come segnale di acquisto (buy) la perforazione al rialzo da parte dell'indicatore nei confronti della sua media mobile, mentre si considera un segnale di vendita (sell), il caso inverso, ovvero la perforazione al ribasso della media mobile da parte dell'indicatore.

Il risultato può essere molto interessante come si può vedere dal grafico, in cui è rappresentata anche l'equity line, ovvero la curva di valorizzazione della quota seguendo i segnali del TS rispetto al prezzo del titolo stesso, a parità di valorizzazione iniziale.


Questo sistema automatico non sempre è redditizio, anzi solo alcuni titoli presentano delle caratteristiche in assoluto idonee ad un sistema di questo genere, perché le oscillazioni, la fluidità e si può dire il "ritmo" dei titoli determinano rendimenti molto diversi. Come potete vedere infatti dal secondo grafico, può succedere che l'elevato numero di segnali (con conseguenti alti costi di commissioni), sia addirittura sottoperformante rispetto al titolo ENI.


Come è possibile ovviare a questo inconveniente ?

Prima di tutto individuando con vari tentativi l'indicatore più performante per quel titolo, poi eventualmente cercando di individuare con qualche variazione, quali sono i parametri dell'indicatore più efficienti, come i giorni di base del ROC e della sua media mobile per il primo esempio con TELECOM.

Infine cercando di agire su di un parametro che ho implementato in Momentum v9 (solitamente non utilizzato in altri programmi), che trovate sempre nell'immagine della finestra di impostazione dei parametri del titolo. Si tratta di una soglia % rispetto allo zero dell'indicatore (50 per l'RSI), in modo da avere un segnale di acquisto/vendita solamente se il valore dell'indicatore al momento della perforazione si trova oltre la soglia, in percentuale rispetto al livello massimo/minimo che corrisponde al 100%.


Questo filtro avrà come effetto quello di ridurre i segnali evitando le piccole oscillazioni intorno allo zero e catturando solo i movimenti con ampiezza discreta.

Naturalmente questo valore sarà da impostare empiricamente e comunque non dovrà essere mai troppo alto per evitare di mancare dei segnali buoni. L'equity line ci aiuterà a capire a colpo d'occhio se la regolazione effettuata aumenta l'efficienza del Trading System Secondario o meno.

 

 

TS basato sull'incrocio di 2 medie mobili (TS Primario di Momentum v9)

Un altro semplice Trading System che si può realizzare è quello basato sull'incrocio di due medie mobili di un titolo. Ovvero considerando come segnale di acquisto (buy) la perforazione al rialzo da parte della prima media mobile nei confronti della seconda media mobile, mentre si considera un segnale di vendita (sell), il caso inverso, ovvero la perforazione al ribasso della prima media mobile nei confronti della seconda.

Ne deriva un sistema abbastanza solido, che sfrutta appieno i momenti di grande forza, ma che però diventa vulnerabile nei momenti di congestione, dando diversi falsi segnali.

Dal grafico si può vedere il risultato sull'indice Nasdaq, valutabile con l'accensione dell'equity line.


Questo trading systems diventa utilizzabile per l'operatività solamente se è possibile ottimizzarne i parametri (giorni di base delle due medie mobili), perché in "finestre" temporali diverse sullo stesso titolo, gli stessi valori possono dare rendimenti molto diversi, deteriorando la prerogativa essenziale di ogni trading systems, ovvero la continuità delle performance anche in futuro.


Nell'immagine che potete consultare con il pulsante a lato, troverete il risultato dell'elaborazione che analizza il rendimento del TS con i parametri correnti (5 e 26 giorni), sulla serie storica degli ultimi 6 anni. Dall'elaborazione risulta un sistema che pur con meno della metà di operazioni positive, consegue un buon rapporto Guadagni/Perdite, (si considera positivamente se è maggiore di 2).


Resta comunque la necessità (e la difficoltà) di ottimizzare i parametri per giungere in questo caso ai valori 5 e 26. I metodi di ottimizzazione sono diversi, ma quello che ritengo più efficiente è basato sull'algoritmo genetico (implementato nel software Momentum), e merita una trattazione specifica e dettagliata (vedi pagina ad esso dedicato).

 

 

TS basato sulla combinazione RSI e ROC (TS Primario di Momentum v9)

Un Trading System ancora più solido è quello basato su più indicatori in contemporanea, nel nostro caso il ROC per la rilevazione della velocità della tendenza, e l'RSI per l'individuazione delle situazioni di maggior forza del mercato, corrispondenti a un livello posto in prossimità della zona di ipercomprato.

Non esiste alcuna valida controindicazione al fatto che si tratta di due indicatori di momentum fortemente correlati tra loro, visto che la struttura dell'uno è completamente diversa da quella dell'altro.
Ne risulta un sistema non molto aggressivo ma solido, con segnali di acquisto in presenza di un mercato fortemente orientato al rialzo e segnali di azzeramento delle posizioni in caso di indebolimento della tendenza.

Fissata infatti una soglia abbastanza elevata dell'RSI, il sistema genera un segnale di acquisto non appena il valore dell'indicatore viene a trovarsi sopra tale livello e, contemporaneamente, il valore del ROC viene a trovarsi sopra al valore della sua media mobile; genera, invece, un segnale di vendita quando il valore del ROC perfora al ribasso la sua media mobile.


Dal grafico si nota soprattutto il basso numero di operazioni, dato dall'intervento del sistema solo in presenza di grande forza del titolo sottostante con il conseguente altissimo rendimento, verificabile dall'analisi compiuta sugli ultimi 6 anni, visibile in figura.

Da notare anche l'elevato periodo di liquidità (69%), ovvero la somma dei periodi in cui il sistema è fuori dal titolo e quindi consente l'impiego del controvalore ad esempio per altri investimenti. Evidentemente questo sistema è molto indicato per questo titolo, perché riesce ad interpretare molto bene il suo "ritmo".

Attenzione quindi perché non tutti i titoli sono aggredibili con un TS del genere, visto che devono presentare un "ritmo" dinamico e sfruttabile con alti rendimenti. Come per il trading, anche con i TS devo orientarmi solo sui titoli liquidi che mi danno maggior efficienza e non si muovono troppo in orizzontale. 


In questo trading system, ancora più che nel precedente esempio è necessaria l'ottimizzazione dei parametri, non solo perché sono 4 anziché 2, ma perché sono di natura diversa ed è difficile trovare dei valori che vadano bene per ogni finestra storica.


Anche in questo caso l'algoritmo genetico consente di convergere su dei valori discreti con elaborazioni non eccessivamente lunghe. Tra l'altro se la fase di ottimizzazione è stata eseguita correttamente e se il titolo non subisce particolari cambiamenti strutturali, non è necessario effettuare l'ottimizzazione frequentemente.