Prorealtime EA – superTrend 10 min EURJPY 2.6

Questo EA (Expert Advisor) è un codice di autotrading con ProOrder è basato sull’indicatore SuperTrend ed è a livello INTRADAY (10minuti) ed è molto simile a quello visto qui, ma la posizione viene aperta con 2 minilotti (al posto di 1) in modo tale da liquidare metà della posizione a target raggiunto. Inoltre è possibile testare il codice con un altra meccanica ( “Alembert inverso” oppure “piquemoche” ) cambiando semplicemente il valore 0 in 1 nei due sistemi (vedere codice). Detto questo il più performante è il “piquemoche” che è quello che viene usato di default.

Descrizione: Questa è una variante della martingala e si chiama “Piquemouche“. In caso di perdite, aumentiamo la grandezza della posizione di 1 se abbiamo meno di 3 perdite consecutive. Se abbiamo più di 3 perdite consecutive, raddoppiamo la posizione. Un guadagno rimette la posizione a 1 unità. Questo sistema di trading é meno pericoloso della martigala classica, poiché non aumentiamo la grandezza della posizione in maniera esponenziale prima di 3 perdite successive.

Risultato: Profit 53.3%, un massimo di  1lotto e mezzo (6 trade perdenti consecutivi) e un drawdown del 6.13% (76450JPY)

Considerazione: perde alcuni trade importanti (perchè inizano nelle ore notturne e proseguono senza invertire), ma rimane stabile e guadagna anche se il mercato lateralizza.

Backtest: Il backtest è stato eseguito con i minilotti, un capitale iniziale di circa 10000 euro,  su 45000 candele (dal 11/12/2013 al 27/02/2015), spread 2.5 pip e un Time frame 10 minuti.

I valori ottimali di backtest sono ora di chisura 20 GMT (il sistema permette di aprire posizioni fino alle 19.50, poi dalle 20, non si aprono posizioni e alle 20:30 chiude quelle aperte precedentemente)

x = 5.4 (moltiplicatore supertrend)

p= 10 (periodi supertrend)

EURJPY2.6

Screen Shot 2015-02-27 at 11.23.18

Screen Shot 2015-02-27 at 11.23.09

// ALEMBERT INVERSO:
// Si tratta di un sistema di trading in cui diminuiamo la grandezza della posizione in caso di perdita
// o aumentiamo la grandezza della posizione in caso di guadagno.

// PIQUEMOUCHE
// La Piquemouche é un'altra variante della martingala classica. 
// In caso di perdite, aumentiamo la grandezza della posizione di 1 
// se abbiamo meno di 3 perdite consecutive. 
// Se abbiamo più di 3 perdite consecutive, raddoppiamo la posizione. 
// Un guadagno rimette la posizione a 1 unità

// !!!!!! SCEGLI IL SISTEMA DA USARE !!!!!!
// decommentare la riga 
// sistema=1  // ALEMBERT INVERSO
sistema=2  // PIQUEMOUCHE

// SCEGLI QUANTITA' MINILOTTO INIZIALE (minimo 2) 
ONCE OrderSize = 2 

//SCEGLI ORARI
oraapertura=6 //GMT quindi  ore 7 in ITALIA
orachiusura=20 //GMT quindi  ore 21 in ITALIA
minutichiusura=30

// SCEGLI PARAMETRI INDICATORE supertrend
//EURJPY 3 minuti
//pip=40
//x=10 
//p=20 

//EURJPY 10 minuti
pip=40
x=5.4 //oppure 5.5 o 5.3
p=10

// --------- INIZIO SISTEMA-------------
ONCE ExitIndex  = -2
ONCE mytarget=0
IF sistema =2 then
ONCE BadTrades = 0
ENDIF


indicatore1= Supertrend[x,p]

// Condizioni per entrare su posizioni long
c1 = close crosses over indicatore1
c2 = close crosses under indicatore1

//--------------LONG----------------
// Condizioni per entrare LONG
IF NOT LongOnMarket AND c1 AND hour < orachiusura  AND hour >= oraapertura THEN
BUY OrderSize SHARES AT MARKET
mytarget=0
ENDIF

//Uscire da LONG in caso di inversione trend
if LongOnMarket AND c2 then
sell OrderSize SHARES AT MARKET
ExitIndex=BarIndex
mytarget=0
endif

// target raggiunto vendo metà posizione LONG 
// e lascio andare l'altra che al limite inverte
IF LONGONMARKET AND mytarget=0 AND high>positionprice+(pip*POINTSIZE) then
SELL ROUND(OrderSize/2) SHARES AT MARKET
mytarget=1
ENDIF

//chiuso la posizione all'ora prestabilita
if LONGONMARKET AND hour =orachiusura and minute = minutichiusura then
sell OrderSize SHARES AT MARKET
ExitIndex=BarIndex
mytarget=0
endif

//-------------SHORT--------------
// Condizioni per entrare SHORT
If NOT shortonmarket AND c2 AND hour < orachiusura AND hour >= oraapertura THEN
SELLSHORT OrderSize SHARES AT MARKET
mytarget=0
ENDIF

//Uscire da SHORT in caso di inversione trend
if shortonmarket AND c1 then
EXITSHORT OrderSize SHARES AT MARKET
ExitIndex=BarIndex
mytarget=0
endif

// target raggiunto vendo metà posizione SHORT 
// e lascio andare l'altra che al limite inverte
IF SHORTONMARKET AND mytarget=0 AND low<positionprice-(pip*POINTSIZE) then
EXITSHORT ROUND(OrderSize/2) SHARES AT MARKET
mytarget=1
ENDIF


//chiuso la posizione all'ora prestabilita
if shortonmarket AND hour =orachiusura and minute = minutichiusura then
EXITSHORT OrderSize SHARES AT MARKET
ExitIndex=BarIndex
endif

//Utilizzo SYSTEM alembert inverso
IF sistema =1 THEN
IF Barindex =ExitIndex+ 1 THEN
ExitIndex=0
IF PositionPerf(1) <0 THEN
OrderSize = MAX (OrderSize - 1,1)
ELSIF PositionPerf(1) >=0 THEN
OrderSize = OrderSize +1
ENDIF
ENDIF
ENDIF

//Utilizzo SYSTEM PIQUEMOCHE
IF sistema =2 THEN
IF Barindex =ExitIndex+ 1 THEN
ExitIndex=0
IF PositionPerf(1) <0 THEN
BadTrades = BadTrades + 1
IF BadTrades < 3 THEN
OrderSize = OrderSize +1
ELSIF BadTrades MOD 3 = 0 THEN
OrderSize = OrderSize * 2
ENDIF

ELSIF PositionPerf (1) >=0 THEN
OrderSize =2
BadTrades = 0
ENDIF
ENDIF
ENDIF
//STOP DI PROTEZIONE GLOBALE perchè il codice sopra fa sempre riferimento 
// alla chiusura della candela, mentre lo spo loss interviene durante la candela

SET STOP ploss 150 //1100€ lotto standard


IF STRATEGYPROFIT < -200000 THEN //1500€
QUIT
ENDIF
// Nota bene : Ricordate che i sistemi di trading sono valutati alla chiusura della barra. 
// Nell'esempio qui sopra, le  perdite possono essere superiori a 1500€ (200000 JPY) 
// nel caso di una grossa perdita su una signola candela o nel caso di un gap. 
// Di conseguenza, un utente che vuole interrompere un sistema di trading 
// dopo una perdita di 1100€ (150 pip con 1 lotto standard),
// imposterà prima di tutto uno STOP LOSS per limitare le perdite, 
// poi userà il blocco del codice riportato qui sopra per interrompere il sistema.

3 pensieri su “Prorealtime EA – superTrend 10 min EURJPY 2.6”

  1. Buona sera,
    caricando il codice in PRT, l’Autotrading ProOrder mi indica che “i sistemi di trading con ordini che chiudono la parzialmente una posizione non possono essere inviati a ProOrder (ad esempio: SELL 3 SHARES AT MARKET).

    Come avete risolto tale impedimento?

    1. Sul broker IG avevo questo problema (cge non si presentava in simulazione). Credo che con Interactive Broker (sul quale si appoggia PRT) non ci sia questa limitazione(anche se non ho avuto poi il tempo di appurarlo di persona). Suggerisco di contattare il supporto prima di aderire al broker.

      1. Infatti lavoro con IG. Peccato davvero che non funzioni anche perchè la strategia mia piaceva particolarmente. Se non ci sono modi di adattarla ad IG, cercherò di contattare IB.
        Grazie
        AB

Lascia un commento