COME FUNZIONANO
I TRADING SYSTEM
PROGRAMMAZIONE E STRATEGIE
AUTORI
Filippo A. Diodovich
PROGRAMMAZIONE ASSISTITA
MERCATO
APPENDICE
RISPOSTE ALLE DOMANDE DI COMPRENSIONE DEL TESTO
• CAPITOLO 1
• CAPITOLO 2
GLOSSARIO
CAPITOLO 1
TRADING SYSTEM - CONCETTI DI BASE
CAPITOLO 1
1.1. INTRODUZIONE
La prima parte sarà prettamente teorica, con la spiegazione dei concetti base
della programmazione dei Trading System, mentre la seconda parte sarà più
pratica e riguarderà la costruzione dei Trading System in modo automatico e
la verifica dei risultati con il BackTest. Infine, nell’ultima parte illustreremo una
serie di TS sviluppati da noi che possono essere efficaci.
Buona lettura!
1 Il nostro consiglio è comunque quello di monitorare attentamente le proprie posizioni con l’uso dei Trading System.
Solamente grazie a una gestione del rischio molto avanzata è possibile disinteressarsi totalmente della gestione dei TS.
2 L’Analisi Tecnica attiene allo studio dei grafici e dei cicli finanziari.
CAPITOLO 1
Proviamo a elencarne i principali:
1. ASSENZA DELL’EMOTIVITÀ
Con i TS viene eliminata una delle principali cause di perdita legate al
trading, ovvero la difficoltà di gestire le proprie emozioni. Questo aspetto
altera, soprattutto nei momenti di forte volatilità sui mercati, la no-
stra operatività discrezionale. Troppo spesso siamo così euforici quando
siamo in profitto che cerchiamo di ottenere sempre qualcosa in più, e
siamo così depressi quando siamo in perdita che vogliamo recuperare
il prima possibile quanto perso. Il Trading System è come un robot, non
prova emozioni. Ha delle regole e le applica senza paura o entusiasmo.
3. DISCIPLINA
Il Trading System segue un piano di trading ben definito, con una
gestione del rischio decisa a priori. Ciò assicura al trader un grado di
disciplina e rigore impossibile da raggiungere con il trading discrezionale.
5. DIVERSIFICAZIONE
L’utilizzo contemporaneo di più Trading System permette di dedicarci al
monitoraggio di più mercati e strumenti, aumentando così la diversifica-
zione del nostro trading.
2. Tutte le istruzioni per piazzare ordini sono attivate dopo che i calcoli sulla
candela (o la barra) corrente sono terminati. In altre parole, gli ordini saran-
no eseguiti all’apertura della candela successiva.
ISTRUZIONI DI BASE
Quando queste istruzioni sono precedute dalla lettera “D”, stiamo facendo
riferimento a n sedute prima di quella odierna. In particolare:
ESEMPI
ESEMPIO
Non è possibile prendere una posizione lunga e corta allo stesso tempo sullo
stesso mercato. Ciò significa che una posizione lunga verrà chiusa con l’istruzi-
one SELLSHORT, mentre una posizione corta verrà chiusa con l’istruzione BUY.
CAPITOLO 1
ESEMPI
INSERIRE LE QUANTITÀ
1. SHARES che corrisponde ad una unità dello strumento: “1 Share” può rap-
presentare un’azione, un contratto future o un lotto forex. Possono essere
utilizzati indifferentemente SHARE, CONTRACT, CONTRACTS, LOT o LOTS
su tutti i tipi di strumenti. Ricordiamo come il TS opera sullo strumento in
esame. Pertanto, se siamo sul grafico dell’eurodollaro, inserire l’istruzione di
acquisto di 1 CONTRACT vuol dire che il TS comprerà un lotto standard.
Se vogliamo comprare un lotto mini sull’eurodollaro dovremo lanciare il TS
avendo come sottostante il grafico del mini eurodollaro.
ESEMPIO
• L’intera quantità di una posizione per un’uscita (Es: SELL AT MARKET vende
l’intera posizione lunga).
TIPOLOGIA DI ORDINI
Non rimane che spiegare le tipologie di ordini. Ne esistono tre tipi diversi:
Gli ordini limite e stop con livelli specifici sono validi per la durata di una
candela (o barra) a partire dall’apertura della candela (o barra) successiva. Sono
quindi annullati ed eliminati se non eseguiti durante quella candela (o barra).
Fai attenzione a non confondere gli ordini al limite o gli ordini stop con gli stop
loss e i limiti/target di una posizione. I primi sono una tipologia di ordine, men-
tre i secondi sono dei livelli validi per una posizione aperta.
ESEMPI
Vuoi vendere 1 azione di UNICREDIT con un ordine al limite a 4,80 euro, allora le
istruzioni per il Trading System saranno
SELL 1 SHARE AT 4.80 LIMIT
CAPITOLO 1
1.4. STOP E TARGET
STOP DI PROTEZIONE
• SET STOP LOSS x: La posizione sarà chiusa quando le perdite saranno pari
a x unità del prezzo di entrata;
• SET STOP pLOSS x: La posizione sarà chiusa quando la perdita sarà pari a
x punti del prezzo di entrata;
• SET STOP %LOSS x: La posizione sarà chiusa non appena la perdita rag-
giungerà x%;
• SET STOP $LOSS x: La posizione sarà chiusa non appena la perdita rag-
giungerà il valore di x euro o dollari (a seconda della valuta dello strumento).
Le spese di intermediazione sono escluse da questo valore.
ESEMPI
Come per gli stop loss, la quantità e la direzione del profit target sono auto-
maticamente adattate al tipo di posizione in essere. Tutti i profit target sono
collegati alla posizione in essere. Pertanto, se non c’è una posizione aperta,
l’ordine profit target non sarà attivo.
TRAILING STOP
É possibile cambiare il tipo di target o stop impostati nel vostro codice sulla
base di condizioni personalizzate usando le istruzioni condizionali IF.
CAPITOLO 1
ESEMPIO
Voglio usare uno stop loss di 10% se il guadagno del trade precedente era almeno 10%,
altrimenti uno stop loss del 5%.
IF PositionPerf(1) > 0.1 THEN
SET STOP %LOSS 10
ELSE
SET STOP %LOSS 5
ENDIF
Passiamo ora a illustrare altre istruzioni di ProBuilder, utili ai fini della program-
mazione di un TS.
ESEMPIO
ESEMPIO
ESEMPIO
1° PASSO
Scelta dello strumento finanziario e del time frame e della strategia da adottare.
Nel nostro esempio sceglieremo il cambio EUR/USD con timeframe giorna-
liero. La strategia che adotteremo sarà molto semplice. Utilizzeremo, infatti, i
segnali derivanti dall’incrocio di medie mobili.
Per semplicità utilizzeremo un grafico giornaliero. Inseriamo nel nostro grafico
una media mobile veloce a 8 periodi e una media mobile lenta a 21 periodi.
Cliccare su Indicatori e Sistemi di Trading come mostrato nella figura seguente:
IMG. 1
2° PASSO
3° PASSO
4° PASSO
5° PASSO
6° PASSO
IMG. 4
7° PASSO
IMG. 5
8° PASSO
Aggiungiamo una condizione per la chiusura delle eventuali posizioni long aperte.
Clicchiamo su “Vendita” nella Pagina di Impostazione del TS Semplice. Si aprirà
ancora la finestra per aggiungere una condizione. Per semplicità, utilizziamo
come condizione di uscita della posizione, l’incrocio ribassista tra la EMA8 e la
EMA21.
IMG. 6
CAPITOLO 1
9° PASSO
10° PASSO
Aggiungiamo una condizione per la chiusura delle eventuali posizioni short ap-
erte. Clicchiamo su “Riacquisto” nella Pagina di Impostazione del TS Semplice.
Si aprirà ancora la finestra per aggiungere una condizione. Per semplicità, utiliz-
ziamo come condizione di uscita della posizione, l’incrocio rialzista tra la EMA8
e la EMA21.
11° PASSO
IMG. 7
CAPITOLO 1
Si aprirà una finestra dove possiamo inserire gli stop loss e i limiti.
Iniziamo con inserire gli Stop Loss mettendo una perdita massima di 40 pips
(usando il menù a tendina).
Stesso processo lo faremo con i limiti mettendo un target profit a 100 pips.
Per semplicità non inseriremo il trailing stop.
IMG. 8
12° PASSO
Dopo aver immesso tutti i requisiti del nostro Trading System, possiamo
cliccare su “Genera Codice”.
// Stop e target
SET STOP pLOSS 40
SET TARGET pPROFIT 100
CAPITOLO 1
APPENDICE:
DOMANDE DI COMPRENSIONE DEL TESTO
Una volta che abbiamo imparato a programmare la nostra strategia, non resta
che sottoporla a un test per verificarne l’efficacia. Introduciamo il concetto di
Backtesting, ovvero il processo attraverso il quale un trader può verificare il
funzionamento di una determinata strategia di trading nel passato. In parole
povere, si tratta di applicare la strategia in un preciso intervallo temporale per
vedere come avrebbe funzionato e i risultati che avrebbe ottenuto. La logica
alla base di questo ragionamento è che, se una strategia avesse funzionato
bene nel passato, potrebbe dare buoni risultati anche in futuro.
Non sempre, però, le performance future sono del tutto prevedibili a partire
dai risultati ottenuti in passato, dato che gli operatori non rispondono allo stes-
so modo agli eventi che si verificano di volta in volta. Risulta chiaro quindi che
il backtest potrebbe risultare in talune circostanze anche fuorviante.
Vi chiederete a cosa possa servire allora utilizzarlo...
Possiamo dire che il backtest rappresenta certamente un utile strumento che
può indicare se e in che misura la nostra strategia di trading sia vincente o
meno. Una strategia che ha ottenuto ottime performance nel passato, difficil-
mente darà pessimi risultati nel futuro.
IMG. 9
• Il capitale iniziale;
• Le commissioni e lo spread di intermediazione;
• L’ottimizzazione delle variabili;
• L’intervallo temporale.
Nella schermata che segue potete trovare tutte le variabili che possono essere
modificate. Le spiegheremo passo per passo a partire dal prossimo paragrafo.
IMG. 10
CAPITOLO 2
2.1. 1. CAPITALE INIZIALE
IMG. 11
CAPITOLO 2
Per rendere più realistici i risultati del backtest occorre tenere in considerazione
il fattore rischio. Non si può approcciare il trading senza valutare attentamente
la propria propensione al rischio. Un strategia che rappresenta una interessante
opportunità per una persona può sembrare rischiosa e stressante per un’altra.
È importante sentirsi a proprio agio con il livello di rischio assunto e il capitale
investito. Introdurremo nei prossimi paragrafi dei concetti utili nella scelta del
capitale iniziale.
Tutte queste forme di commissioni sono riportate nella valuta dello strumen-
to oggetto di backtest. Inoltre è possibile anche impostare delle commissioni
minime e massime.
Alcuni mercati, come quello forex, non prevedono il pagamento di una com-
missione, bensì lo spread, che rappresenta la differenza del prezzo bid-ask di
un determinato cross valutario. Lo spread viene espresso in pips, ovvero la
quarta cifra decimale dopo la virgola.
CAPITOLO 2
IMG. 12
Per procedere occorre cliccare sul tasto “Aggiungi” nella sezione “Ottimiz-
zazione delle variabili” (IMG. 13). Comparirà la finestra riportata di seguito
(IMG. 14). Da qui potrete impostare i parametri della vostra strategia che
intendete ottimizzare.
Prima di tutto bisogna inserire nella casella “Nome utilizzato nel programma”
il parametro così come presente nel codice di programmazione, rispettando le
maiuscole e le minuscole. È possibile rinominarlo per renderlo più riconoscibi-
le nell’interfaccia dell’ottimizzazione e restringere la variazione del parametro
ai soli valori positivi o negativi. Una volta impostata la variabile è possibile
definire il valore minimo e massimo entro i quali il parametro deve oscillare.
CAPITOLO 2
Il passo, invece, è l’intervallo di variazione del parametro nel range prefissato.
IMG. 14
Non resta a questo punto che avviare l’ottimizzazione. La strategia verrà te-
stata con tutte le combinazioni possibili delle variabili che abbiamo deciso di
ottimizzare. Al termine del processo, la cui durata può variare da pochi secondi
a qualche minuto, comparirà il cosiddetto “Rapporto ottimizzazione” (IMG. 15),
che racchiude tutte le combinazioni delle variabili sottoposte al test.
IMG. 15
CAPITOLO 2
Il rapporto di ottimizzazione può essere classificato secondo ben 5 diverse
statistiche:
Una volta eseguita l’ottimizzazione delle variabili, non resta che sostituire la
combinazione di parametri che soddisfa i nostri requisiti, secondo una delle
statistiche sopra indicate, nel codice di programmazione.
Riprendendo l’esempio precedente, e classificando i risultati dell’ottimizzazione
sulla base del miglior guadagno percentuale, la combinazione ottimale delle
nostre variabili risulta essere n (media mobile semplice) = 9 e m (media mobile
esponenziale) = 38.
Bisogna puntualizzare, però, che i risultati derivanti dal processo di ottimiz-
zazione possono cambiare in base all’intervallo temporale selezionato e al
timeframe di esecuzione.
IMG. 16
È possibile, per vari motivi legati soprattutto alla scarsa liquidità di alcuni mer-
cati, che a volte vogliamo restringere la nostra operatività solo a determinati
orari durante la seduta. Con ProRealTime è possibile impostare degli orari di
trading personalizzati per il mercato di nostra preferenza. Nel menù “Opzioni”
> “Fuso orario & Orari di trading” possiamo impostare gli orari di trading di
nostra preferenza. Ovviamente una simile scelta implica che sui grafici saran-
no visibili solo i prezzi relativi agli orari impostati. Nello specifico, è possibile
selezionare un intervallo temporale solo nel periodo compreso nell’arco di una
giornata (dalle ore 00 alle 24). Per esempio, se un mercato è aperto 24 ore su
24 è possibile scegliere di visualizzare solo le quotazioni tra le 9:00 e le 15:00,
ma non è possibile visualizzare le quotazioni tra le 20:00 di un giorno e le 10:00
del giorno successivo.
Alcuni mercati, tra cui il forex, scambiano anche durante il week-end. Le nego-
ziazioni, di norma, partono la domenica sera, come accade anche per gli indici
che IG quota 24 ore su 24. Sebbene con ProRealTime si possano escludere dal
grafico i dati del week end, questi valori sono comunque presi in considera-
zione durante il backtest. Per il mercato forex, che apre alle 22:00 (CET) della
domenica, le quotazioni sono incluse nella candela giornaliera del lunedì.
Infine, qualche precisazione merita anche il fuso orario. La strategia viene ese-
guita sempre secondo il fuso orario impostato sulla piattaforma4. In alternativa
è possibile personalizzare il fuso orario dal menù “Opzioni” > “Fuso orario &
Orari di trading”. Se modifichiamo il fuso orario, sarà necessario eseguire nuo-
vamente il ProBackTest affinché le modifiche effettuate siano operative.
4 Il fuso orario dello strumento finanziario è quello predefinito sul suo computer.
CAPITOLO 2
ad eseguire il backtest. Come già ricordato, il tempo di esecuzione potreb-
be variare in base all’intervallo temporale selezionato. Più ampio è l’intervallo,
maggiore sarà il tempo di esecuzione.
Dopo l’esecuzione, sul grafico del mercato oggetto di test, compariranno due
sezioni aggiuntive, ovvero:
IMG. 17
5 È possibile cambiare i colori a vostro piacimento. Potete associare ai profitti il colore verde e alle perdite il colore rosso.
CAPITOLO 2
mercato, mentre una serie di barre continue indicano che la posizione è ancora
aperta. In questo grafico, la scala riportata sull’asse di destra rappresenta il nu-
mero di contratti aperti, mentre sull’asse orizzontale vi è l’orizzonte temporale.
Una serie di statistiche circa i risultati del backtest sono disponibili in una
finestra denominata “Rapporto dettagliato”.
IMG. 18
Nella finestra sono presenti diverse cartelle, ognuna con dati del backtest:
• Panoramica
• Statistiche delle posizioni chiuse
• Lista ordini
• Lista posizioni chiuse
La sezione Panoramica è una sorta di quadro generale dei risultati del nostro
backtest. Sotto forma di grafici vengono riportate diverse informazioni come il
guadagno/perdita potenziale espressi sia in valore assoluto che in percentuale;
il numero di operazioni vincenti e perdenti; il profitto della migliore operazione,
la perdita della peggiore operazione; il profitto/perdita media delle posizioni
vincenti (o perdenti) e il guadagno medio per operazione.
CAPITOLO 2
Sempre in questa sezione, è possibile trovare una prima indicazione circa il Max
Drawdown e il Max Runup, così come la media di ordini eseguiti al giorno e il
tempo di azione della strategia sul mercato nell’intervallo temporale selezionato.
Nella seconda cartella (IMG. 19) sono disponibili le informazioni sulle posizioni
chiuse (non vengono considerate le posizioni aperte nel momento in cui vie-
ne eseguito il backtest). Vengono riprese e approfondite alcune informazioni
riportare nella panoramica generale.
IMG. 19
6 Nelle immagini riportate, le spese di intermediazione sono pari a 0 dato che non sono state impostate nell’esecuzione del
backtest.
CAPITOLO 2
IMG. 20
Infine, nella sezione “Lista posizioni chiuse” sono elencate tutte le posizio-
ni aperte e chiuse che possono essere classificate anch’esse per cronologia,
tipologia, durata, performance assoluta (e relativa) e spese di intermediazione.
IMG. 21
CAPITOLO 2
2.2. LANCIO DI PROORDER
IMG. 22
IMG. 23
CAPITOLO 2
Quindi andate sul mercato su cui desiderate eseguire il trading system,
facendo attenzione al timeframe su cui volete operare e cliccate sull’icona
(vedi 1 IMG. 24).
Si aprirà una nuova finestra, con due sezioni “Indicatori” e “Backtesting e
Trading Automatico” (vedi 2 IMG. 24). Selezionate quest’ultimo e vi apparirà la
lista dei vostri sistemi di trading che avete precedentemente salvato e testato.
IMG. 24
Una volta scelto il trading system cliccate sul tasto “Preparati per il trading
automatico” (vedi 3 IMG. 24). Il sistema di trading apparirà sulla finestra di Pro-
Order apertasi in precedenza come “in attesa” di esecuzione.
Cliccando su “Start” (vedi 1 IMG. 25) si aprirà una nuova finestra di conferma,
dove sono presenti le preferenze di trading7, nonché i dettagli del nostro tra-
ding system (il mercato su cui si desidera attivarlo con il relativo timeframe, il
fuso orario, il codice di programmazione).
L’ultimo step riguarda la grandezza massima della posizione per questo siste-
ma. Badate bene, la “Grandezza massima posizione” presente su ProOrder non
va assolutamente confusa con il numero di contratti presenti nel codice della
strategia. Sebbene entrambi riguardino l’entità della posizione che su cui ci si
vuole esporre, la “Grandezza massima posizione” qui riportata (vedi 2 IMG. 25)
ha sempre la precedenza sulle istruzioni del codice.
IMG. 25
CAPITOLO 2
Cliccando su “Esegui il sistema di trading” (vedi 1 IMG. 26) il nostro sistema
automatico sarà finalmente attivo e sarà visualizzato nella sezione “In corso di
esecuzione” (vedi 2 IMG. 26) della finestra di ProOrder.
IMG. 26
IMG. 27
IMG. 28
Infine, tutti i sistemi di trading in corso di esecuzione hanno una data di validità
unica, raggiunta la quale ProOrder li interromperà automaticamente. È possi-
bile, però, prolungarne la validità cliccando su “Prolunga” in basso alla finestra
in corso di esecuzione. Nelle preferenze di trading è possibile modificare il
numero di giorni di prolungamento.
8 Per definizione un ordine è in attesa di esecuzione se è stato inviato al broker e non è eseguito, rigettato o cancellato.
CAPITOLO 2
APPENDICE:
DOMANDE DI COMPRENSIONE DEL TESTO
10. Qual è il numero massimo di trading system che possono essere esegui-
ti sullo stesso mercato?
• Solo 1
• <5
• >5
• 5
CAPITOLO 3
STRATEGIE DI TRADING
CAPITOLO 3
3.1. INTRODUZIONE
La strategia EMA Cross ADX (Incrocio di Medie Mobili con ADX) è una strategia
molto semplice che anche il più neofita del trading potrebbe utilizzare. È una
strategia trend following che manda segnali attraverso gli incroci delle medie
mobili esponenziali, utilizzando l’indicatore ADX per individuare situazioni di
mercato in cui vi sia un trend (positivo o negativo).
1. EMA a 7 periodi
2. EMA a 20 periodi
Oltre alle due medie mobili impiegheremo anche l’indicatore ADX (Average
Directional Index) a 20 periodi, cercando di entrare in posizione (long o short)
solamente quando l’indicatore è superiore ai 20 punti.
Fissiamo stop loss e target profit a 40 e 100 punti (consiglio: utilizzare i mini
contratti per evitare esposizioni troppo grandi).
// Stop e target
SET STOP pLOSS 40
SET TARGET pPROFIT 100
Vi è poi un’altra linea, detta Signal Line, ottenuta dalla media a 9 periodi del
MACD, che indicheremo con z. La Signal Line ha una funzione di anticipare l’en-
trata sul mercato rispetto all’inizio del trend. Il segnale in questo caso si ha nel
momento in cui il MACD incrocia la signal line. Ovviamente il segnale rialzista
scatta quando il MACD incrocia al rialzo la signal line, e viceversa.
CAPITOLO 3
Questa è la strategia di default utilizzata da molti operatori. Noi facciamo un
passo oltre e chiediamo al sistema per quali valori di x, y e z il Trading System
riesce a dare risultati migliori. Possiamo quindi mettere i parametri p1, p2, p3,
per le varie medie esponenziali e procedere con l’ottimizzazione.
CODICE DA COPIARE
Una delle strategie più famose e performanti è quella del Turtle Classic. Nel
1980 un gruppo di traders conosciuti con il nome di «Tartarughe» utilizzava un
sistema che fondamentalmente impiegava il breakout dei prezzi negli ultimi 20
giorni. Ovvero se i prezzi realizzavano un nuovo massimo degli ultimi 20 giorni,
segnale di acquisto; se i prezzi avessero fatto un nuovo minimo degli ultimi 20
giorni, segnale di vendita. Abbiamo modificato il Turtle Classic in modo da es-
sere utilizzato un po’ su tutti i time frame e su molti strumenti (inizialmente era
utilizzato solo su indici e commodities).
Abbiamo modificato per tale strategia l’ampiezza degli stop loss e dei target
profit in modo da avere un rapporto rischio rendimento di 1 a 3.
Rischiando 1 unità di rischio avremo sempre 3 unità di rendimento. In tale modo
anche se i nostri trade sono al 50% vincenti avremo un saldo di profitto a fine
mese molto interessante.
CODICE DA COPIARE
Il Delphic Phenomenon è una strategia di trading ideata da Scot Lowry nel suo
libro “The Magic of Moving Averages” (tradotto in italiano “Il Trading facile con
le medie mobili”). Il trader statunitense ha scelto di inserire nel sistema basato
sulle medie mobili degli accorgimenti in modo da limitare i falsi segnali derivan-
ti dalle fasi laterali del mercato.
CODICE DA COPIARE
ncontratti = 1
TickProfitto = 30
TickStopLoss = 10
length2 = 40
mm2 = Average[length2](close)
TickProfitto = TickProfitto*Ticksize
TickStopLoss = TickStopLoss*Ticksize
Ind1 = Average[18](close)
Ind2 = Average[40](close)
filter=Long+Short
IF filter<>filter[1] THEN
con = 1
ELSE
con = 0
ENDIF
CAPITOLO 1
1. No spread
Lo spread sarà presente anche usando i trading system. Non è possibile
fare trading senza spread.
2. ProBuilder
Il linguaggio “basic” di ProRealTime si chiama ProBuilder.
6. STOP pLOSS 40
9. Nel caso ci fosse una posizione aperta il sistema non inserisce altre nuo-
ve posizioni su quello strumento
APPENDICE
CAPITOLO 2
2. Lo stop loss
È un parametro della strategia inserito nel codice di programmazione.
Gli altri sono parametri definiti per eseguire il backtest.
4. Commissione di deposito
6. MaxDrawdown
9. SI - SI
Su ProOrder è possibile slittare la scadenza di un trading system. Inoltre
possiamo anche decidere di quanti giorni prolungarne la scadenza.
10. 5
Sullo stesso mercato possono essere eseguiti fino a 5 trading system con-
temporaneamente.
GLOSSARIO
TERMINOLOGIA DEFINIZIONE
CONTRACT Contratto
IF Introduce le condizioni