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)
// 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.
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?
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.
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