cybertrade con swissquote @modena - venerdì 5 febbraio 2016
TRANSCRIPT
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
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.
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.
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…
Vi presentiamo tre equity line (curve dei profitti):
Qual è la vostra aspettativa nel trading?
Scegliete la A), la B) o la C)??
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)
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
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:
COME EVITARE l’OVERFITTING:Ottimizzazione
COME EVITARE l’OVERFITTING:Strategia EM BKOUT: ottimizzata
VI PRESENTIAMO ALTRE 3 STRATEGIE:
- BOLLINGER BANDS- SUPERTREND- IN-OUT
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.
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.
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
Consiglio utile: investite in modo inversamente proporzionale a rischio e volatilità
Per approfondimenti si veda: Il manuale del
risparmiatore
IL MIO METODO DI LAVORO
TRADING MULTI STRATEGY, MULTI SYSTEM, MULTI TIME FRAME automatizzati
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
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
Metatrader 4
Brevi cenni storici e funzionamento
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.
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.
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.
Linguaggio MQL4
Brevi cenni storici e funzionamento
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
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);
Expert Advisor: Supertrend
Ovvero come si costruisce un trading system, test ed errori
compresi
Idea di fondo: SupertrendSi trova l’indicatore e si comincia a costruire il trading system
14 – 2
10 – 1.7
Idea di fondo: Supertrend – 15min
Prime difficoltà:
14 – 2
10 – 1.7
Continuano le difficoltà…
21 – 2.5
50 – 2,5
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…
TF = 30MQualcosa c’è stavolta
60 - 2
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?
5 - 3
TF = H4
Expert Advisor: In-Out
Risultati
Inside Bar(Harami)
Outside Bar(Engulfing)
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);
TF = 30M
TF = 30M
TF = 15M
EURAUDTF = H4
Expert Advisor: BollingerBO
Risultati
Logica dell’EA
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)
TF = 30M
Vi ringrazio per l’attenzione