RSI classical and hidden Divergences Indicator
Forums › ProRealTime English forum › ProBuilder support › RSI classical and hidden Divergences Indicator
- This topic has 4 replies, 3 voices, and was last updated 6 years ago by Inertia.
-
-
01/17/2018 at 12:28 PM #59707
Hi,
Francesco had done a great job with the strategy indicator. I like it. Thank you Frank.
However, I wanted to convert this as a strategy but it doesn’t work…
I’ve removed line 31 to 35 and 51 to 55 replaced by the “buy 1 contract at market”… error.
Anyone would have a “tuto” or a piece of advice, I’d be happy to learn “how to” tweak it (same for other great indicators from the library…)
Thank you all.
Divergences1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162//RSI Divergences By Frank (Francesco)//Description: the indicator draws arrows on chart as entry points when a direct or an hidden RSI divergence is found.//When a DIRECT divergence is found, "dd" (direct divergence) text is added to chart over (Sell signal) or under (Buy signal) the arrow//When an HIDDEN or INVERSE divergence is found, "hd" (hidden divergence) text is added to chart over (Sell signal) or under (Buy signal) the arrow//Variables://RsiPeriod: number of bars to calculare RSI value//RsiOverSold: Oversold Level//RsiOverBought: OverBought Level//MinBarRange: minimum distance from two consecutive RSI Highs or RSI LowsRge = averagetruerange[10](close)MyRSI = rsi[RsiPeriod](Close)ONCE ShiftText = 3RsiMax = MyRSI < MyRSI[1] and MyRSI[1] > MyRSI[2] and MyRSI[1] > RsiOverBoughtRsiMin = MyRSI > MyRSI[1] and MyRSI[1] < MyRSI[2] and MyRSI[1] < RsiOverSoldif RsiMax thenRSIMax1 = MyRSI[1]High1 = High[1]for I = MinBarRange to 80if RsiMax[I] thenRSIMax2 = MyRSI[I + 1]High2 = High[I + 1]If High1 > High2 and RSIMax1 < RSIMax2 thenDRAWARROWDOWN(barindex, High + Rge / ShiftText)coloured(255,192,203,255)DRAWTEXT("dd", barindex, High + Rge / ShiftText / 0.3,SansSerif,Italic,10)coloured(0,0,255,255)elsif High1 < High2 and RSIMax1 > RSIMax2 thenDRAWARROWDOWN(barindex, High + Rge / ShiftText)coloured(255,192,203,255)DRAWTEXT("hd", barindex, High + Rge / ShiftText / 0.2,SansSerif,Italic,10)coloured(0,0,255,255)endifbreakendifnextendifif RsiMin thenRSIMin1 = MyRSI[1]Low1 = Low[1]for I = MinBarRange to 80if RSIMin[I] thenRSIMin2 = MyRSI[I + 1]Low2 = Low[I + 1]If Low1 < Low2 and RSIMin1 > RSIMin2 thenDRAWARROWUP(barindex, lOW - Rge / ShiftText)coloured(0,0,255,255)DRAWTEXT("dd", barindex, lOW - Rge / ShiftText / 0.3,SansSerif,Italic,10)coloured(0,0,255,255)elsif Low1 > Low2 and RSIMin1 < RSIMin2 thenDRAWARROWUP(barindex, lOW - Rge / ShiftText)coloured(0,0,255,255)DRAWTEXT("hd", barindex, lOW - Rge / ShiftText / 0.2,SansSerif,Italic,10)coloured(0,0,255,255)endifbreakendifnextendifreturn01/17/2018 at 12:41 PM #59710Topic moved to Probuilder support.
1 user thanked author for this post.
01/17/2018 at 2:49 PM #59716Hereafter is my attemp…but doesn’t work… omg, why ? “Endif” is missing somwhere ?
first try...error12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849//RSI Divergences By Frank (Francesco)Rge = averagetruerange[10](close)MyRSI = rsi[RsiPeriod](Close)ONCE ShiftText = 3RsiMax = MyRSI < MyRSI[1] and MyRSI[1] > MyRSI[2] and MyRSI[1] > RsiOverBoughtRsiMin = MyRSI > MyRSI[1] and MyRSI[1] < MyRSI[2] and MyRSI[1] < RsiOverSoldif RsiMax thenRSIMax1 = MyRSI[1]High1 = High[1]for I = MinBarRange to 80if RsiMax[I] thenRSIMax2 = MyRSI[I + 1]High2 = High[I + 1]//Conditions below, no ?!If High1 > High2 and RSIMax1 < RSIMax2 then//instead od drawarrowdown or drawtext, buy...buy 1 contract at marketendif//Conditions below, no ?!elsif High1 < High2 and RSIMax1 > RSIMax2 then//instead od drawarrowdown or drawtext, buy...buy 1 contract at marketendifif RsiMin thenRSIMin1 = MyRSI[1]Low1 = Low[1]for I = MinBarRange to 80if RSIMin[I] thenRSIMin2 = MyRSI[I + 1]Low2 = Low[I + 1]//Conditions below, no ?!If Low1 < Low2 and RSIMin1 > RSIMin2 then//instead od drawarrowdown or drawtext, buy...buy 1 contract at marketendif//Conditions below, no ?!elsif Low1 > Low2 and RSIMin1 < RSIMin2 then//instead od drawarrowdown or drawtext, buy...buy 1 contract at marketendif01/17/2018 at 7:14 PM #59733OK – I try to assist a bit .. I took above source and added some missing statements so that at least the strategy gives A RESULT – but I don’t understand yet! how it should work.
anyway, hope it helps a bit
pure code12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364//RSI Divergences By Frank (Francesco)defparam cumulateorders = falsedefparam flatbefore = 090000defparam flatafter = 180000RsiPeriod = 14RsiOverSold = 20RsiOverBought= 80MinBarRange = 1MyRSI = rsi[RsiPeriod](Close)RsiMax = MyRSI < MyRSI[1] and MyRSI[1] > MyRSI[2] and MyRSI[1] > RsiOverBoughtRsiMin = MyRSI > MyRSI[1] and MyRSI[1] < MyRSI[2] and MyRSI[1] < RsiOverSoldif RsiMax thenRSIMax1 = MyRSI[1]High1 = High[1]for I = MinBarRange to 80 doif RsiMax[I] thenRSIMax2 = MyRSI[I + 1]High2 = High[I + 1]//Conditions below, no ?!If High1 > High2 and RSIMax1 < RSIMax2 then//instead od drawarrowdown or drawtext, buy...buy 1 contract at marketendif//Conditions below, no ?!elsif High1 < High2 and RSIMax1 > RSIMax2 then//instead od drawarrowdown or drawtext, buy...buy 1 contract at marketendifif RsiMin thenRSIMin1 = MyRSI[1]Low1 = Low[1]for I = MinBarRange to 80 doif RSIMin[I] thenRSIMin2 = MyRSI[I + 1]Low2 = Low[I + 1]//Conditions below, no ?!If Low1 < Low2 and RSIMin1 > RSIMin2 then//instead od drawarrowdown or drawtext, buy...buy 1 contract at marketendif//Conditions below, no ?!elsif Low1 > Low2 and RSIMin1 < RSIMin2 then//instead od drawarrowdown or drawtext, buy...buy 1 contract at marketendifnextendifnextendifadapted on the DAX 1E contract …
01/17/2018 at 8:08 PM #59734 -
AuthorPosts
Find exclusive trading pro-tools on