Sistema Scalping Trend following 1m
Forums › ProRealTime forum Italiano › Supporto ProOrder › Sistema Scalping Trend following 1m
- This topic has 30 replies, 3 voices, and was last updated 12 months ago by RICOU.
-
-
06/06/2020 at 6:46 PM #134894
Ciao, volevo condividere questo sistema nato per “caso”, dopo averlo scritto e testato i risultati erano talmente pessimi che girando Long e Short sono diventati ottimi!
Il sistema si basa su timeframe a 1 minuto, tende ad essere un pochino pericoloso perchè lo SL è molto alto, però il backtest è incoraggiante.
Purtoppo è molto legato al trend, e non ho trovato un modo per capire in automatico il trend ed impostarlo automaticamente, servirebbe una media dei giorni precedenti, ma non ho capito come fare, aspetterò IG con l’aggiornamento alla v.11.
La configurazione è semplice, nel sistema bisogna indicare l’asset sul quale si vuole lavorare (io ne ho configurati alcuni, tra cui uno generico) e la direzione. Nell’indicatore ci sono le configurazioni per il N di contratti, e lo SL, che vengono poi ripassati al sistema.
Per ora i mercati sono al rialzo, ma ho provato mettendo -1 quindi Short su USD/ZAR che è al ribasso e sembrerebbe dare comunque buoni risultati. Purtoppo con IG a 1 minuto il periodo di backtest è molto breve.
Mi piacerebbe migliorarlo se vi viene in mente qualcosa sarei ben felice di implementarlo.
Indicatore123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149if Open>Close thenCandela=-1elseCandela=1endifMMEP=EndPointAverage[48](close)//ParDirezione=1//ParAsset=1//GENERIC=0//USRUSSELL=1//EURUSD=2//DAX=3//US500=4if ParAsset=0 then//GENERICParSL=100ValContratti=1endifif ParAsset=1 then//USRUSSELLParSL=100ValContratti=0.5endifif ParAsset=2 then//EURUSDParSL=100ValContratti=2endifif ParAsset=3 then//DAXParSL=200ValContratti=0.5endifif ParAsset=4 then//US500ParSL=100ValContratti=1endifStatoPosizione=0ValDirezione=ParDirezione //1=Long, -1=ShortValSL=ParSL*pipsizeif Minute=0 or Minute=5 or Minute=10 or Minute=15 or Minute=20 or Minute=25 or Minute=30 or Minute=35 or Minute=40 or Minute=45 or Minute=50 or Minute=55 thenIf ValDirezione=1 then //Lomgl1=Close[1] < MMEP[1] and Candela[1]=-1l2=Close[1] > Close[intradaybarindex+540]l3=time>100000 and time <143000 or time>163000 and time <193000l4=Close > Close[120]if PositionLong=0 and PositionShort=0 and l1 and l2 and l3 and l4 thenPrezzoApertura=close[1]PrezzoStopLoss=close[1]-ValSLPrezzoTakeProfit=highest[2](high)if PrezzoTakeProfit > PrezzoApertura thenif DayOfWeek=5 and time>150000 thenelsePositionLong=1StatoPosizione=2endifendifendifif PositionLong[1]=1 and Close<PrezzoStopLoss or PositionLong[1]=1 and Close>PrezzoTakeProfit thenif Close>PrezzoApertura thenDRAWARROWUP(barindex,StatoPosizione-0.3)Coloured(0,255,0)elseDRAWARROWUP(barindex,StatoPosizione-0.3)Coloured(255,0,0)endifPositionLong=0StatoPosizione=1endifendifIf ValDirezione=-1 then //Shorts1=Close[1] < MMEP[1] and Candela[1]=1s2=Close[1] < Close[intradaybarindex+540]s3=time>100000 and time <143000 or time>163000 and time <193000s4=Close < Close[120]if PositionShort=0 and PositionLong=0 and s1 and s2 and s3 and s4 thenPrezzoApertura=close[1]PrezzoStopLoss=close[1]+ValSLPrezzoTakeProfit=lowest[2](low)if PrezzoTakeProfit < PrezzoApertura thenif DayOfWeek=5 and time>150000 thenelsePositionShort=1StatoPosizione=-2endifendifendifif PositionShort[1]=1 and Close>PrezzoStopLoss or PositionShort[1]=1 and Close<PrezzoTakeProfit thenif Close<PrezzoApertura thenDRAWARROWDOWN(barindex,StatoPosizione+0.3)Coloured(0,255,0)elseDRAWARROWDOWN(barindex,StatoPosizione+0.3)Coloured(255,0,0)endifPositionShort=0StatoPosizione=-1endifendifendifReturn StatoPosizione COLOURED(255,0,0) as "StatoPosizione",ValContratti as "ValContratti"Sistema123456789101112131415161718192021222324252627282930// Condizioni per entrare su posizioni long//GENERIC=0//USRUSSELL=1//EURUSD=2//DAX=3//US500=4StatoPosizione,ValContratti=call TrendScalping[1,3] //[Direzione 1=LONG:-1=SHORT,Asset]IF NOT LongOnMarket AND StatoPosizione=2 THENBUY ValContratti CONTRACTS AT MARKETENDIF// Condizioni per uscire da posizioni longIf LongOnMarket AND StatoPosizione=1 THENSELL AT MARKETENDIF// Condizioni per entrare su posizioni shortIF NOT ShortOnMarket AND StatoPosizione=-2 THENSELLSHORT ValContratti CONTRACTS AT MARKETENDIF// Condizioni per uscire da posizioni shortIF ShortOnMarket AND StatoPosizione=-1 THENEXITSHORT AT MARKETENDIF// Stop e target: Inserisci qui i tuoi stop di protezione e profit target1 user thanked author for this post.
06/06/2020 at 6:50 PM #13489806/06/2020 at 6:55 PM #134899Grazie mille per il suggerimento,purtoppo testando il sistema con il mercato contrario i risultati sono terribili, quindi per ora andrebbe gestito a “mano”, nel senso se gli ultimi giorni sono al rialzo, farlo girare a rialzo, e viceversa. Se riuscissi ad avere una media mobile su timeframe più alti per capire il trend allora lo farei andare in automatico (basterebbe una piccola modifica)
06/06/2020 at 6:56 PM #13490006/06/2020 at 6:58 PM #134901Il punto non è questo; non inserendo la condizione sopracitata o non dividendo il sistema in due sistemi, il backtest cumulerà le posizioni in apertura falsando i risultati (in quanto cosa non possibile in live).
Per quanto riguarda la valutazione del trend puoi implementarla in decine di modi (doppia esponenziale/semplice ed esponenziale/ichimoku cloud/highs e lows).
Sta a te scegliere e capire qual è la migliore 🙂
06/06/2020 at 7:02 PM #13490206/06/2020 at 7:04 PM #13490706/06/2020 at 7:08 PM #13490806/06/2020 at 7:08 PM #134909Il mio consiglio di splittare o regolare tramite il cumulateorders era per una questione di comodità.
Il dover manualmente andare a cambiare i valori è tranquillamente evitabile tramite le modalità che ti ho sopracitato.1 user thanked author for this post.
06/06/2020 at 7:10 PM #134910Il problema del trend è che mi servirebbe su timeframe superiori, almeno 4 ore, o giornaliero, ma non ho capito come fare con la 10.3, c’è un modo?
Segui il seguente esempio per capire, 4 ore e 1 minuto è modificabile a tuo piacimento
12345timeframe (4 hours, updateonclose)//valutazione trendtimeframe (1 minute)//condizioni di operatività06/06/2020 at 7:11 PM #13491106/06/2020 at 7:15 PM #134914Questo funziona anche sulla 10.3? fantastico!!!
Si.
Comunque ti consiglio di non basare i tuoi backtest solo su 10 giorni, sfrutta sempre il massimo che il timeframe ti permette altrimenti la loro valenza è alquanto scarsa.
EDIT: non capisco perchè ti dia errore, se provi ad avviare il backtest che messaggio ti esce?
06/06/2020 at 7:20 PM #13491506/06/2020 at 7:22 PM #13491606/06/2020 at 7:23 PM #134917 -
AuthorPosts
Find exclusive trading pro-tools on