Presentazione seminario roma 4 marzo 2016 mt4 fabio pacchioni

47
Metatrader 4 Brevi cenni storici e funzionamento http://mql4academy.blogspot.it/

Transcript of Presentazione seminario roma 4 marzo 2016 mt4 fabio pacchioni

Page 1: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Metatrader 4Brevi cenni storici e funzionamento

http://mql4academy.blogspot.it/

Page 2: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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.

http://mql4academy.blogspot.it/

Page 3: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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.

http://mql4academy.blogspot.it/

Page 4: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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.

http://mql4academy.blogspot.it/

Page 5: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Linguaggio MQL4Brevi cenni storici e funzionamento

http://mql4academy.blogspot.it/

Page 6: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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

http://mql4academy.blogspot.it/

Page 7: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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);

http://mql4academy.blogspot.it/

Page 8: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Expert Advisor: Supertrend

Ovvero come si costruisce un trading system, test ed errori compresi

http://mql4academy.blogspot.it/

Page 9: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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

14 – 2

10 – 1.7

http://mql4academy.blogspot.it/

Page 10: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Idea di fondo: Supertrend – 15min

Prime difficoltà:

14 – 2

10 – 1.7

http://mql4academy.blogspot.it/

Page 11: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Continuano le difficoltà…

21 – 2.5

50 – 2,5

http://mql4academy.blogspot.it/

Page 12: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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…

http://mql4academy.blogspot.it/

Page 13: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

TF = 30MQualcosa c’è stavolta

60 - 2

http://mql4academy.blogspot.it/

Page 14: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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?

http://mql4academy.blogspot.it/

Page 15: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

5 - 3

http://mql4academy.blogspot.it/

Page 16: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

TF = H4

http://mql4academy.blogspot.it/

Page 17: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

http://mql4academy.blogspot.it/

Page 18: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

http://mql4academy.blogspot.it/

Page 19: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Expert Advisor: In-OutRisultati

http://mql4academy.blogspot.it/

Page 20: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Inside Bar(Harami) Outside Bar

(Engulfing)

http://mql4academy.blogspot.it/

Page 21: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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 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);

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);

http://mql4academy.blogspot.it/

Page 22: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

http://mql4academy.blogspot.it/

Logica di funzionamento

Chiusure trades

Stop lossFisso con parametro

Trailing stop•If Long: move stop on previous candle low•If Short: move stop on previous candle high

Tante piccole perdite, pochi grandi guadagni!!!

In modo discrezionale sarebbe difficile da reggere psicologicamente, in modo automatico dobbiamo solo lasciare andare

Page 23: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

http://mql4academy.blogspot.it/

EURUSD TF = Daily

http://mql4academy.blogspot.it/

Page 24: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

http://mql4academy.blogspot.it/

EURUSD TF = Daily

http://mql4academy.blogspot.it/

Page 25: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

TF = 30M

http://mql4academy.blogspot.it/

Page 26: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

TF = 30M

http://mql4academy.blogspot.it/

Page 27: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

TF = 15M

http://mql4academy.blogspot.it/

Page 28: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

EURAUDTF = H4

http://mql4academy.blogspot.it/

Page 29: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Expert Advisor: BollingerBO

Risultati

http://mql4academy.blogspot.it/

Page 30: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Logica dell’EA

http://mql4academy.blogspot.it/

Page 31: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

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 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)

http://mql4academy.blogspot.it/

Page 32: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

TF = 30M

http://mql4academy.blogspot.it/

Page 33: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Expert Advisor: MACloud

Risultati

http://mql4academy.blogspot.it/

Page 34: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Logica dell’EA

http://mql4academy.blogspot.it/

Semplice stop & reverse della

posizione

Lavora in apertura di barra successiva

no SL, no TP

Page 35: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Logica dell’EA

http://mql4academy.blogspot.it/

if (C[1] > MA1[1] && C[1] > MA2[1]) TrendNow = 1;else if (C[1] < MA1[1] && C[1] < MA2[1]) TrendNow = -1;else TrendNow = 0;

if (TrendNow > 0) res = OrderOpenF(Symbol(), OP_BUY, Lots, Ask, Slip, 0, 0, "OpenLong", MagicNumber, NULL, Blue);else if (TrendNow < 0) res = OrderOpenF(Symbol(), OP_SELL, Lots, Bid, Slip, 0, 0, "OpenShort", MagicNumber, NULL, Red);

Page 36: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Risultati – AUDUSD (30 min)

http://mql4academy.blogspot.it/

Estremi medie: 25 – 40, exp

Page 37: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Risultati – AUDUSD (30 min)

http://mql4academy.blogspot.it/

Page 38: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Risultati – #DE30 (30 min)

http://mql4academy.blogspot.it/

Page 39: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Risultati – EURUSD(H4)

http://mql4academy.blogspot.it/

Page 40: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Expert Advisor: TimeSeriesForecast

Risultati

http://mql4academy.blogspot.it/

Page 41: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Logica dell’EA

http://mql4academy.blogspot.it/

Semplice stop & reverse della

posizione

Lavora in apertura di barra successiva

no SL, no TP

Page 42: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Logica dell’EA

http://mql4academy.blogspot.it/

if ( iClose(Symbol(), Period(), 1) > TSF[1] && TSF[1] > TSF[2] && TSF[2] <= TSF[3] && ShortOpenOrders == 0) Long

if ( iClose(Symbol(), Period(), 1) < TSF[1] && TSF[1] < TSF[2] && TSF[2] >= TSF[3] && LongOpenOrders == 0) Short

var0 = TimeSeriesForecast( Length, BarsPlus ) ;condition1 = Close > var0 and var0 > var0[1] and var0[1] <= var0[2] ;if condition1 then sellshort next bar at marketelsebegincondition1 = Close < var0 and var0 < var0[1] and var0[1] >= var0[2] ;if condition1 then buy next bar at market;end;

Page 43: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Ottimizzazione GBPUSD H1 - da 1/1/15 a 30/9/15 (IS)

http://mql4academy.blogspot.it/

Parametri: Length = 12 – BarPlus = 10

Page 44: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Ottimizzazione GBPUSD H1 - da 1/10/15 a 2/3/16 (00S)

http://mql4academy.blogspot.it/

Parametri: Length = 12 – BarPlus = 10

Page 45: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

EURUSD H1 - da 1/10/15 a 2/3/16 (00S)

http://mql4academy.blogspot.it/

Parametri: Length = 12 – BarPlus = 10Stessi parametri di prima!

Page 46: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Risultati – #DE30 (15 min)

Parametri: 14-12

http://mql4academy.blogspot.it/

Page 47: Presentazione seminario roma 4 marzo 2016 mt4   fabio pacchioni

Vi ringrazio per l’attenzione

http://mql4academy.blogspot.it/