Condizione RSI non rispettata
Forums › ProRealTime forum Italiano › Supporto ProOrder › Condizione RSI non rispettata
- This topic has 2 replies, 2 voices, and was last updated 3 years ago by robertogozzi.
-
-
06/10/2021 at 1:25 AM #171532
Salve a tutti, ho implementato questo sistema HA. Eseguendo il backtest mi sono reso conto che vengono aperte operazioni long anche quando l’RSI non si trova sotto il valore 3o e operazioni short anche quando l’RSI non si trova sopra il valore 70. Non riesco a capire il motivo visto che sono condizioni scritte nel mio sistema.
Allego il codice per chi potrà aiutarmi.
Inoltre volevo sapere se i take profit e gli stoploss scritti così sono corretti.
Codice123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103DEFPARAM PreLoadBars = 300DEFPARAM CumulateOrders = FalseDEFPARAM FLATBEFORE = 070100 // Il TS non apre trade prima di questo orario//DEFPARAM FLATAFTER = 180000 // Il TS non apre trade dopo questo orario e chiude le posizioni ancora aperte// HA - definizione Heikin-Ashionce xOpen = openxClose = (open+close+high+low)/4if barindex > 0 thenxOpen = (xOpen[1]+xClose[1])/2endifxLow = min(low,min(xClose,xOpen))xHigh = max(high,max(xClose,xOpen))xRange = abs(xHigh - xLow)xBody = abs(XClose - xOpen)//IndicatoriEMA20 = ExponentialAverage[20](xClose)EMA100 = ExponentialAverage[100](xClose)EMA200 = ExponentialAverage[200](xClose)MyRSI = RSI[14](xclose)//Trend Rilazista candelea1 = xClose[1] > xClose[2]a2 = xClose[2] > xClose[3]a3 = xClose[3] > xClose[4]a4 = xClose[4] > xClose[5]a5 = xClose[5] > xClose[6]a6 = xClose[6] > xClose[7]//Trend Rilazista EMA//d1 = EMA20 > EMA100//d2 = EMA100 > EMA200//TrendEMAUP = d1 and d2//Trend Ribassista candeleb1 = xClose[1] < xClose[2]b2 = xClose[2] < xClose[3]b3 = xClose[3] < xClose[4]b4 = xClose[4] < xClose[5]b5 = xClose[5] < xClose[6]b6 = xClose[6] < xClose[7]//Trend Ribassista EMA//d3 = EMA20 < EMA100//d4 = EMA100 < EMA200//TrendEMADOWN = d3 and d4TrendUP = a1 and a2 and a3 and a4 // aggiungere o diminuire le condizioni "a" in base alla forza del trend che cerchiamoTrendDOWN = b1 and b2 and b3 and b4 // aggiungere o diminuire le condizioni "b" in base alla forza del trend che cerchiamo// Condizioni corpo candelaRatio1 = 0.25 // il 25%c1 = abs(xBody > xRange*Ratio1) // il corpo della candela che crea il segnale è maggiore del n% del range// Chiusura Posizioni dopo le ore hhmmssTempoScaduto = CurrentTime > 200000// Aggiungo "n" Point/Pips al mio stopLossNpips = 2 * pipsize//Condizione BUYc2 = xRange < xRange[1] // il range della candela che crea il segnale è minore di quello della candela precedentec3 = xClose > xOpen // Candela Rialzistac31= xClose[1] < xOpen[1] //la candela precedente è ribassistac33 = MyRSI[1] < 30 or MyRSI[2] < 30MyStop1 = abs((xClose - Lowest[2](xLow))- Npips) // il minimo tra 2 minimi fa - NpipsMyProfit1 = TradePrice + (abs (MyStop1*2))//Condizione SELLc4 = xRange < xRange[1] // il range della candela che crea il segnale è minore di quello della candela precedentec5 = xClose < xOpen // Candela Ribassistac51 = xClose[1] > xOpen[1] // la candela precedente è rialzistac55 = MyRSI[1] > 70 or MyRSI[2] > 70MyStop2 = abs((xClose + Highest[2](xHigh))+ Npips) // il massimo tra due massimi fa + NpipsMyProfit2 = TradePrice - (abs (MyStop2*2))// Condizioni per entrare su posizioni longIF NOT LongOnMarket AND c1 and c2 and c3 and c31 and C33 THENBUY 1 CONTRACTS AT MARKETSET STOP LOSS MyStop1 //se inserisco MySTop1 devo togliere la "p" prima di LOSSSET TARGET pPROFIT MyProfit1 //se inserisco MyProfit1 devo togliare la "p" prima di PROFITENDIF// Condizioni per uscire da posizioni longIf LongOnMarket AND TempoScaduto THENSELL AT MARKETENDIF// Condizioni per entrare su posizioni shortIF NOT ShortOnMarket AND c1 and c4 and c5 and c51 and c55 THENSELLSHORT 1 CONTRACTS AT MARKETSET STOP LOSS MyStop2 //se inserisco MySTop2 devo togliere la "p" prima di LOSSSET TARGET pPROFIT MyProfit2 //se inserisco MyProfit2 devo togliare la "p" prima di PROFITENDIF// Condizioni per uscire da posizioni shortIF ShortOnMarket AND TempoScaduto THENEXITSHORT AT MARKETENDIF06/10/2021 at 8:53 AM #171545Credo sia perché tu fai il confronto con il normale RSI che lavora sulle candele giapponesi.
Prova con questo RSI per Heikin-Ashi:
123456789N = 14// HA - definizione Heikin-Ashionce xOpen = openxClose = (open+close+high+low)/4if barindex > 0 thenxOpen = (xOpen[1]+xClose[1])/2endifMyRSI = RSI[N](xclose)RETURN MyRSI AS "Rsi HA",70 AS "Ob",30 AS "Os"1 user thanked author for this post.
06/10/2021 at 8:57 AM #171546In effetti se lavora solo sulla chiusura si può anche scrivere:
12345N = 14// HA - definizione Heikin-AshixClose = (open+close+high+low)/4MyRSI = RSI[N](xclose)RETURN MyRSI AS "Rsi HA",70 AS "Ob",30 AS "Os"1 user thanked author for this post.
-
AuthorPosts
Find exclusive trading pro-tools on