Scalping test
Forums › ProRealTime forum Italiano › Supporto ProOrder › Scalping test
- This topic has 17 replies, 3 voices, and was last updated 4 years ago by robertogozzi.
-
-
05/07/2020 at 3:08 PM #130461
Buongiorno Roberto, avevo bisogno di un tuo super aiuto.. ti allego la prima parte si una strategia che avevo in mente solo che non capisco perchè il backtest non mi restituisce alcun risultato. Sapresti dirmi dove sbaglio?
il mio intento è quello di dare un segnale derivato da un timeframe 1h per determinare il trend e dopo lavorare su timeframe di default che sarà 5min.
All’incrocio delle medie vorrei impostare il SL e nelle successive candele, alla prima rossa disponibile, assegnare TP e prezzo di entrata.
Dove sbaglio secondo te?
Grazie mille anticipatamente
Scalping short123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 100000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 203000// Impedisce al sistema di tradare in giorni specifici della settimanadaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0timeframe (1h,updateonclose)N=50indicator1 = ExponentialAverage[N](close)indicator2 = ExponentialAverage[N](close)c1 = (indicator1[1] < indicator2[2]) and (indicator1[2] - indicator2[1]) > 0.00015indicator3 = ExponentialAverage[N](close)indicator4 = ExponentialAverage[N](close)c2 = (indicator3[2] < indicator4[3]) and (indicator3[3] - indicator4[2]) > 0.00015indicator5 = ExponentialAverage[N](close)indicator6 = ExponentialAverage[N](close)c3 = (indicator5[3] < indicator6[4]) and (indicator5[4] - indicator6[3]) > 0.00015timeframe (default)signal=0sl=0price=0Tp=0pip=pipsizesignal2=0if c1 and c2 and c3 thensignal2=1endifindicator7 = ExponentialAverage[3](close)indicator8 = ExponentialAverage[8](close)c4=indicator7[1] crosses under indicator8[1]c5=indicator7 crosses over indicator8if signal2=1 and c4 thensignal=1endifif signal=1 and open>close thensl=high + (2 * pip)endifif sl > 0 thenprice= low - (AverageTrueRange[14](close)/2)TP = price - ((sl - price) * 3)endifif low crosses under price and not daysForbiddenEntry thenbuy 1 contract at marketelseif c5 thensignal=0signal2=0sl=0price=0TP=0endifendifSET STOP $LOSS slSET TARGET $PROFIT Tp05/07/2020 at 4:05 PM #130475Perché alla riga 20 confronti lo stesso indicatore per vedere se < a se stesso!
05/07/2020 at 10:27 PM #130527a dire il vero volevo che la l’indicatore su candela [1] fosse < dell’indicatore stesso ma della candela [2]
sbaglio qualcosa?
05/08/2020 at 4:56 AM #130543Ho semplificato il codice per capirne l’errore ma niente, attiva ordini in modo non voluto. ti allego il codice dove faccio cerco una EMA a 1H che sia inferiore della candela precedente e in Timaframe 5m cerco un incrocio di medie veloci. é come se non tenesse conto della prima condizione
1234567891011121314151617181920212223242526// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.DEFPARAM FLATBEFORE = 110000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"DEFPARAM FLATAFTER = 193000timeframe(1h)i1 = ExponentialAverage[200](close)timeframe(default)c1=i1 < i1[1]i2=ExponentialAverage[3](close)i3=ExponentialAverage[8](close)c2=i2 crosses under i3if c1 and c2 thensellshort 1 contract at marketendifsicuramente sbaglio io qualcosa e per questo mi scuso anticipatamente.
Grazie del supporto come sempre
05/08/2020 at 8:49 AM #130553La riga 17 fa riferimento non alla barra precedente oraria, ma alla barra precedente del 5 minuti.
Spostala tra la riga 24 e 15. Però alla riga 13 aggiungi UpdateOnClose altrimenti non cambia niente.
05/08/2020 at 2:54 PM #130628Roberto sto impazzendo. non capisco dove sbaglio. Non rispetta SL ne TP. non capisco perchè non li aggiorna.
Ti allego il codice se puoi provare a backtestarlo su timeframe 5m vedi quello che vedo io. Non capisco tutte quelle posizioni chiuse per 1 pip e nemmeno tutte quelle posizioni aperte random.. sicuramente c’è qualcosa che sbaglio ma non ci dormo da 2 giorni con questo pensiero.
Help me please! 🙏🏻
12345678910111213141516171819202122232425262728293031323334353637383940414243444546// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivate// Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l’orario “Flat Before” non saranno piazzati nuovi ordini o posizioni.//DEFPARAM FLATBEFORE = 110000// Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario “Flat After”//DEFPARAM FLATAFTER = 193000N=230//periodi Ema 1hN1=5//periodi Ema veloce defaultN2=13//periodi Ema lenta default//n3=100 //periodi Ema extralenta default// Impedisce al sistema di tradare in giorni specifici della settimana//daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0timeframe(1h,updateonclose)indicator=exponentialaverage[n](close)c1 = (indicator[1] – indicator) > 0.0001timeframe(default,updateonclose)//atr=AverageTrueRange[14](close) > 0.0005indicator1 = ExponentialAverage[N1](close)indicator2 = ExponentialAverage[N2](close)//indicator3 = ExponentialAverage[N3](close)c2=indicator1 crosses under indicator2c3=indicator1 crosses over indicator2if (c1 and c2 ) and open > close thensl=highprice=closeendifif indicator1 crosses under price and open > close thensellshort 1 contract at markettp= ((sl-indicator1) * 10000)*3set stop ploss slset target pprofit tpendifif c3 thensl=0tp=0endif05/08/2020 at 3:11 PM #130634dimenticavo.. i miei parametri sono EURUSD a 15.000 unità
05/08/2020 at 5:28 PM #130654pLOSS e pPROFIT vogliono una DIFFERENZA espressa in PIPS (10, 20, 100, o un’espressione ma sempre che restituisca pips).
Ad esempio, nel tuo caso la riga 31 deve essere scritta:
1sl=(high - close) / pipsizecioè devi fare la differenza tra il prezzo d’entrata a mercato e poi devi cinvertirlo in pips (oppure non lo converti in pips, ma allora devi usare LOSS, non pLOSS).
05/12/2020 at 10:22 AM #131265Grazie Roberto, ero convinto di averti risposto.
Scusa il ritardo.
buona giornata
05/13/2020 at 3:51 PM #13151112345678910111213141516171819202122// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivatedefparam PRELOADBARS = 1000// Condizioni per entrare su posizioni longindicator1 = ExponentialAverage[500](close)indicator2 = ExponentialAverage[21](close)c1 = (close CROSSES OVER indicator1)c2 = (indicator1 >= indicator1[3])c3 = (indicator2 >= indicator2[3])Sl=0TP=0if c1 and c2 and c3 thenSl= ((lowest[24](low))-close)/pointsizeTP= SL * 1.75Buy 1 contract at marketendifset stop ploss slset target pprofit tpBuona sera Roberto, ho fatto un passo indietro per testare in semplicità. Non mi calcola lo stop loss come vorrei. Io vorrei calcolare il più basso livello di LOW delle precedenti 24 bar mentre il TP non è altro che la moltiplicazione dello SL per 1.75
cortesemente mi indicheresti dove sbaglio?
Grazie
05/13/2020 at 4:05 PM #131514Alle righe 12 e 13 lo azzera ad ogni barra, per cui SL e TP vengono disattivati.
A entrambi mettici la parola ONCE + spazio, davanti.
05/13/2020 at 4:14 PM #131518Ho fatto ma non esegue lo stop loss… parte con un ordine e non stacca più
05/13/2020 at 5:53 PM #131541Perché il calcolo dello SL è negativo, essendo il LOW inferiore a CLOSE, modifica la riga 16 (in aggiunta alle modifiche già fatte sopra) così:
1Sl= abs((lowest[24](low))-close)/pointsizein pratica metti solo ABS all’inizio, che restituisce il valore assoluto, quindi trasforma i negativi in positivi.
05/13/2020 at 6:32 PM #131552Che stupido che sono. Hai ragione funziona.
Grazie
05/13/2020 at 7:11 PM #131557Buonasera puoi pubblicare il codice corretto che sto testando dalla mia parte?
-
AuthorPosts