Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

49
Bande di Bollinger, Supertrend, pattern e breakout Relatore: Enrico Malverti Modena, 5 Febbraio 2016 Impara a costruire e Impara a costruire e ottimizzare le tue ottimizzare le tue strategie di trading strategie di trading

Transcript of Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Page 1: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Bande di Bollinger, Supertrend, pattern e breakout

Relatore: Enrico Malverti

Modena, 5 Febbraio 2016

Impara a costruire e Impara a costruire e ottimizzare le tue strategie di ottimizzare le tue strategie di

tradingtrading

Page 2: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

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.

Page 3: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Per lavorare in borsa occorre metodoIl 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.

Page 4: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

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…

Page 5: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Vi presentiamo tre equity line (curve dei profitti):

Qual è la vostra aspettativa nel trading?

Scegliete la A), la B) o la C)??

Page 6: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

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)

Page 7: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

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

Page 8: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

COME EVITARE l’OVERFITTING:1) Testing in sample –

out of sample2) Utilizzare intervalli e

incrementi ragionevoli

3) Guardare con sospetto a strategie molto sensibili al variare dei parametri

Strategia EM BKOUT, esempio pratico. Senza ottimizzazione:

Page 9: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

COME EVITARE l’OVERFITTING:Ottimizzazione

Page 10: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

COME EVITARE l’OVERFITTING:Strategia EM BKOUT: ottimizzata

Page 11: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016
Page 12: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

VI PRESENTIAMO ALTRE 3 STRATEGIE:

- BOLLINGER BANDS- SUPERTREND- IN-OUT

Page 13: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

BOLLINGER BANDSLe 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.

Page 14: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

SUPERTRENDIl 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.

Page 15: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

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

Page 16: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Consiglio utile: investite in modo inversamente proporzionale a rischio e volatilità

Per approfondimenti si veda: Il manuale del

risparmiatore

Page 17: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

IL MIO METODO DI LAVORO

TRADING MULTI STRATEGY, MULTI SYSTEM, MULTI TIME FRAME automatizzati

Page 18: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Algotrading automatizzato

SStrategie 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

Page 19: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Processo: TSR = Trading System Ranking

UUtilizzo di modelli MATEMATICI per Selezionare i System

AAnalisi ex-Ante della Resa e del Rischio

PPossiamo isolare le strategie in base a criteri quali: -Profit Factor -Average Trade -Percent Profitable

Page 20: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Metatrader 4

Brevi cenni storici e funzionamento

Page 21: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Sviluppata da MetaQuotes Software2002 : 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.

Page 22: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

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.

Page 23: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Prodotti di tradingIl 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.

Page 24: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Linguaggio MQL4

Brevi cenni storici e funzionamento

Page 25: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Come vengono indicizzate le barreLa barra 0 è quella in corso, non

ancora finita.La barra precedente è la barra 1, la barra prima ancora è la 2, e così via

Page 26: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Barre e vettori sono la stessa cosa, o no?datetime TimeAsSeries[];//--- set access to the array like to a timeseries ArraySetAsSeries(TimeAsSeries,true);

datetime ArrayNotSeries[]; ArraySetAsSeries(ArrayNotSeries,false);

Page 27: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Expert Advisor: Supertrend

Ovvero come si costruisce un trading system, test ed errori

compresi

Page 28: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Idea di fondo: SupertrendSi trova l’indicatore e si comincia a costruire il trading system

14 – 2

10 – 1.7

Page 29: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Idea di fondo: Supertrend – 15min

Prime difficoltà:

14 – 2

10 – 1.7

Page 30: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Continuano le difficoltà…

21 – 2.5

50 – 2,5

Page 31: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

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…

Page 32: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

TF = 30MQualcosa c’è stavolta

60 - 2

Page 33: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Cambio: TF = H1, meglio ancora

Dopo un po’ di ottimizzazioni finalmente si raggiunge qualcosa che abbia sensoper il trading system:

Ulteriormente ottimizzabile, ma timore di sovraottimizzare presente…

Perché scelti questi parametri?

Page 34: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

5 - 3

Page 35: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

TF = H4

Page 36: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016
Page 37: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016
Page 38: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Expert Advisor: In-Out

Risultati

Page 39: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Inside Bar(Harami)

Outside Bar(Engulfing)

Page 40: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

INSIDE = high1 < high2 AND low1 > low2; //inside conditionOUTSIDE = high1 > high2 AND low1 < low2; //outside conditionLongStopEntry = Max(high2, high1); //define a long order price ShortStopEntry = Max(low2, low1); //define a short order price

If ( OUTSIDE == true) Long & Short pending

// Pending order Long

ticketL = OrderOpen(Symbol(), OP_BUYSTOP, Lots, LongStopEntry, iSlipp, buySL, buyTP, "Pending Long", MagicNumber, _ExpDate, Blue);// Pending order Short

ticketS = OrderOpen(Symbol(),OP_SELLSTOP, Lots, ShortStopEntry, iSlipp, sellSL, sellTP, "Pending Short", MagicNumber, _ExpDate, Blue);

Logica di funzionamento if( INSIDE == true) Long & Short pending

// Pending order LongticketL = OrderOpen(Symbol(), OP_BUYSTOP, Lots, LongStopEntry, iSlipp, buySL, buyTP, "Pending Long", MagicNumber, _ExpDate, Blue);// Pending order Short

ticketS = OrderOpen(Symbol(),OP_SELLSTOP, Lots, ShortStopEntry, iSlipp, sellSL, sellTP, "Pending Short", MagicNumber, _ExpDate, Blue);

Page 41: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

TF = 30M

Page 42: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

TF = 30M

Page 43: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

TF = 15M

Page 44: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

EURAUDTF = H4

Page 45: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Expert Advisor: BollingerBO

Risultati

Page 46: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Logica dell’EA

Page 47: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Logica dell’EAdouble 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 costantiUna 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 tradeSe 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)

Page 48: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

TF = 30M

Page 49: Cybertrade con Swissquote @Modena - venerdì 5 febbraio 2016

Vi ringrazio per l’attenzione