Enrico Malverti & Fabio Pacchioni illustrano il funzionamento di 4 expert advisors e la loro ottimizzazione. Segui i prossimi corsi e webinars di SWISSQUOTE su: http://goo.gl/P1kewH
Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016
1. Bande di Bollinger, Supertrend, pattern e
breakout
Relatore: Enrico Malverti
Modena, 5 Febbraio 2016
Impara a costruire eImpara a costruire e
ottimizzare le tue strategie diottimizzare le tue strategie di
tradingtrading
2. CHI SONO
Enrico Malverti
Trader ed analista
quantitativo. Da oltre 14
anni progetta modelli di
trading per clienti
istituzionali. Ha occupato
ed occupa ruoli di
direzione di società di
investimento e fondi.
Coordinatore R&D della
Cybertrade Srl. E’
portfolio manager e quant
analyst per una società di
gestione. E' autore di
“Trading system vincenti”,
Hoepli, 2013 e “Il
manuale del
risparmiatore”, Hoepli,
2015.
3. Per lavorare in borsa occorre metodo
Il vantaggio di usare software come
Metatrader è quello di poter testare le
vostre strategie di trading sui dati
storici verificandone l’efficacia
Si può fare paper trading e risparmiare sui costi di
avviamento. Se una strategia non funziona non la si usa.
Se funziona possiamo valutarne i rischi e iniziare a metterci
soldi sapendo fin dove possiamo spingerci con le perdite
prima di dovere preoccuparci.
4. Il trading algoritmico presenta anche
delle insidie
Occorre avere esperienza per valutare
correttamente una strategia, sia che siamo
noi a svilupparla sia che dobbiamo scegliere
tra Expert Advisor black box.
Oppure se non siete esperti seguite questi
consigli che vi daremo…
5. Vi presentiamo tre equity line (curve dei profitti):
Qual è la vostra aspettativa nel trading?
Scegliete la A), la B) o la C)??
6. La A) e la C) sono in realtà la stessa strategia
ottimizzata in due archi temporali diversi
Quali sono le insidie?
Caso acquisto Expert Advisor black box
- la strategia può essere overfittata nei parametri, ossia
troppo ottimizzata a posteriori sui dati passati;
- la strategia potrebbe non chiudere le posizioni in stop
lasciando correre le perdite;
- la strategia potrebbe aver considerato condizioni di
mercato non realistiche (slippage)
7. Quali sono le insidie?
Caso Strategia autoprodotta
-la strategia può avere troppi parametri e risultare
overfittata, ossia troppo ottimizzata a posteriori sui dati
passati;
- la strategia potrebbe contenere dei bug che ne
migliorano i risultati ma rendono non replicabili i risultati;
- la strategia potrebbe aver considerato condizioni di
mercato non realistiche (slippage)
- la strategia potrebbe essere stata testata su uno
storico troppo corto
8. COME EVITARE l’OVERFITTING:
1) Testing in sample –
out of sample
2) Utilizzare intervalli e
incrementi
ragionevoli
3) Guardare con
sospetto a strategie
molto sensibili al
variare dei parametri
Strategia EM BKOUT, esempio
pratico. Senza ottimizzazione:
13. BOLLINGER BANDS
Le bande di Bollinger sono un indicatore, sviluppato da John
Bollinger, che si basa sul concetto di volatilità, definita come
deviazione standard. La deviazione standard viene calcolata come
radice quadrata della varianza.
Nello specifico, le bande di Bollinger vengono collocate intorno ad
una media mobile, solitamente a 20 periodi. La banda di Bollinger
superiore è ottenuta aggiungendo alla media mobile due volte la
deviazione standard, mentre la banda di Bollinger inferiore è
ottenuta sottraendo alla media mobile due volte la deviazione
standard.
14. SUPERTREND
Il Supertrend inventato da Oliver Seban. La formula del Supertrend è
basata sul concetto di volatilità misurata dall’Atr a 10 periodi. Viene
calcolato il prezzo mediano come somma di massimo e minimo diviso due
e due bande pari a :
bandaup = prezzomediano + (moltiplicatore * volatilita);
bandadown = prezzomediano - (moltiplicatore * volatilita);
La banda up è corrispondente al prezzo mediano sommato ad
moltiplicatore per l’atr. La banda down è corrispondente al prezzo mediano
meno il moltiplicatore per l’Atr. Il valore standard del moltiplicatore è pari a
3. Se il trend è negativo e la chiusura è maggiore della banda superiore
(bandaup) allora il Supertrend indica un trend rialzista, assume il valore
della banda inferiore, che viene disegnata sul grafico e funge da trailing
stop dinamico che accompagna il rialzo. Viceversa se il trend è positivo e la
chiusura diventa minore della banda inferiore (banda down) il supertrend
assume il valore della banda superiore, che viene disegnata sul grafico e fa
da trailing stop dinamico per la fase ribassista.
15. ID/NR4:
ID significa Internal Day, NR4 vuol dire Narrow Range per 4
barre.
Internal Day (ID) è una barra il cui valore massimo è inferiore al valore
massimo della barra precedente e il cui valore minimo è superiore al valore
minimo della barra precedente; detto in parole diverse, il range della barra
corrente è completamente contenuto nel range della barra precedente.
Utilizzando la terminologia candlestick, una barra ID corrisponde a
un'Harami. Quindi, impiegando il metodo delle variazioni del range, una
barra ID è un preciso indicatore di diminuzione della volatilità rispetto alla
barra precedente.
Outside: barra che sta tutta fuori quella precedente, massimo > massimo
precedente e minimo < minimo precedente
IN-OUT: trading system basato su
pattern inside e outside
16. Consiglio utile: investite in modo inversamente
proporzionale a rischio e volatilità
Per approfondimenti si
veda: Il manuale del
risparmiatore
17. IL MIO METODO DI LAVORO
TRADING MULTI STRATEGY, MULTI SYSTEM,
MULTI TIME FRAME automatizzati
18. Algotrading automatizzato
Strategie Quantitative : operano
principalmente su futures con utilizzo
della tecnica multisystem,
multimarket e multi time frame (3
livelli di diversificazione), che
combina trading system proprietari
assemblati in base a coefficenti di
correlazione e quantitativi dinamici.
+ azioni daily
+ etf daily
+ Bond intraday e daily
19. Processo: TSR = Trading System Ranking
Utilizzo di modelli MATEMATICI per Selezionare
i System
Analisi ex-Ante della Resa e del Rischio
Possiamo isolare le strategie in base a criteri
quali: -Profit Factor -Average Trade -Percent
Profitable
21. Sviluppata da MetaQuotes Software
2002 : partenza del progetto Metatrader.
2005: Sviluppo e primo rilascio di MetaTrader 4.
Dal 2007 al 2010: sempre più brokers aggiungono la
MT4 come alternativa opzionale alle piattaforme già
esistenti. La rapida diffusione provoca l’esplosione di
codici e di EA, sia freeware che a pagamento.
Ottobre 2009: codifica della MetaTrader 5 in public
beta testing.
Settembre 2010: viene rilasciata la prima MT5.
2013 e 2014: linguaggio MQL4 completamente
rivisto, raggiungendo il livello di MQL5. Dalla build
600, MQL4 and MQL5 usano un MetaEditor unificato
e comune.
22. Sviluppato per
ambiente
Windows, anche in
Linux e su Mac
(Wine o
WineBottler,
oppure in machine
virtuali windows)
iOS o
Android
il cuore del Sistema, serve per
soddisfare le richieste dei
client (quotazioni, ordini,
news, ecc.), mantiene gli
archivi, non ha interfaccia
separata.
23. Prodotti di trading
Il focus è il margin trading, che permette di
lavorare a leva.
Mercati: Forex, CFD, equities,
commodities, ecc.
Timeframe: 1 m, 5 m, 15m, 30m, 1h, 4h,
1D, 1W, 1M. Possibili altri timeframe, ma
solo con l’uso di indicatori appositi che
aggregano le candele presentate nei
timeframe di default.
Grafici: a barre, a candele, a linea. Altri tipi
possibili ma solo con aggiunta di scripts.
25. Come vengono indicizzate le barre
La barra 0 è quella in corso, non
ancora finita.
La barra precedente è la barra 1, la
barra prima ancora è la 2, e così via
26. Barre e vettori sono la stessa cosa,
o no?datetime TimeAsSeries[];
//--- set access to the array like t
o a timeseries
ArraySetAsSeries(TimeAsSeries
,true);
datetime ArrayNotSeries[];
ArraySetAsSeries(ArrayNotSeri
es,false);
31. Va bene, capito, metto filtri e ritesto il sistema….
Aggiungo un trailing stop con il SAR, le entrate le lascio al supertrend, e ci
metto pure delle Bollinger bands per uscite “di emergenza”, nel caso la
volatilità esploda e il prezzo si muova in modo contrario… ritesto…
riottimizzo… il Massimo che ottengo è questo!
Verrebbe voglia di buttare tutto… Potrei però usarlo in modo opposto… Ma
questa è un’altra storia…
Mi resta solo da testarlo su altri timeframes e vedere cosa succede, prima di
buttare tutto e accettare la sconfitta…
33. Cambio: TF = H1, meglio
ancora
Dopo un po’ di ottimizzazioni
finalmente
si raggiunge qualcosa che
abbia senso
per il trading system:
Ulteriormente ottimizzabile,
ma timore di sovraottimizzare
presente…
Perché scelti questi
parametri?
47. Logica dell’EA
double lotTradeSize()
{
int Digit_Factor = 1;
double equity = AccountBalance();
//How to use the Lotsize and Lotstep values below to adjust
//the tradesize for different brokers automatically?
double lotSize = MarketInfo(Symbol(),MODE_LOTSIZE);
double lotStep = MarketInfo(Symbol(),MODE_LOTSTEP);
double One_Tick = MarketInfo(Symbol(),MODE_TICKVALUE) * Digit_Factor;
double MaxLot = MarketInfo(Symbol(), MODE_MAXLOT);
double MinLot = MarketInfo(Symbol(),MODE_MINLOT);
double spread = Ask - Bid;
double Risk_In_Money = ((Stop_Diff+spread)/Point/Digit_Factor) * One_Tick;
double DeltaValuePerLot = MarketInfo(Symbol(), MODE_TICKVALUE) /
MarketInfo(Symbol(), MODE_TICKSIZE);
// %risk = $ loss >>> SL = allowed volume
double tradesize = ( (equity * Percent/100) / Risk_In_Money) * DeltaValuePerLot;
tradesize = MathFloor( MathMax( 0, tradesize ) / lotStep) * lotStep;
if (tradesize > MaxLot)
tradesize = MaxLot;
if (tradesize < MinLot)
tradesize = MinLot;
//Alert("Tradesize: ", tradesize," - At risk : €",DoubleToStr(Stop_Diff*tradesize,2));
return (tradesize);
}
Lotti non costanti
Una volta deciso quale
percentuale del totale mettere a
rischio, l’EA calcola i massimi
lotti possibili sulla base dello
stoploss impostato.
Esempio:
Conto = 10.000 euro
5% a rischio = € 500 ogni trade
Se lavorassimo con 1 lotto std
di EURUSD (100.000), il valore
di ogni pip sarebbe di € 8.93,
per cui se avessimo uno stop a
40 pip il massimo numero di
lotti sarebbe:
500/(40*8,93) = 1,4 lotti (1,399)