xmd79

EREMA

Jan 17th, 2022
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. //@version=5
  2. // Copyright (c) 2018-present, Alex Orekhov (everget)
  3. // Ehlers Reverse Exponential Moving Average script may be freely distributed under the MIT license.
  4. indicator('Ehlers Reverse Exponential Moving Average', shorttitle='EREMA')
  5.  
  6. trendAlpha = input(title='Trend Alpha', defval=0.05)
  7. cycleAlpha = input(title='Cycle Alpha', defval=0.3)
  8. src = input(title='Source', defval=close)
  9.  
  10. erema(src, alpha) =>
  11. delta = 1 - alpha
  12.  
  13. ema = 0.0
  14. ema := alpha * src + delta * nz(ema[1])
  15.  
  16. // Compute Reverse EMA
  17. re1 = delta * ema + nz(ema[1])
  18. re2 = math.pow(delta, 2) * re1 + nz(re1[1])
  19. re3 = math.pow(delta, 4) * re2 + nz(re2[1])
  20. re4 = math.pow(delta, 8) * re3 + nz(re3[1])
  21. re5 = math.pow(delta, 16) * re4 + nz(re4[1])
  22. re6 = math.pow(delta, 32) * re5 + nz(re5[1])
  23. re7 = math.pow(delta, 64) * re6 + nz(re6[1])
  24. re8 = math.pow(delta, 128) * re7 + nz(re7[1])
  25.  
  26. erema = ema - alpha * re8
  27. erema
  28.  
  29. eremaTrend = erema(src, trendAlpha)
  30. eremaTrendColor = #674ea7
  31.  
  32. eremaCycle = erema(src, cycleAlpha)
  33. eremaCycleColor = eremaCycle > 0 ? #0ebb23 : color.red
  34.  
  35. eremaTrendPlot = plot(eremaTrend, title='Trend', linewidth=2, color=color.new(eremaTrendColor, 0))
  36. eremaCyclePlot = plot(eremaCycle, title='Cycle', linewidth=2, color=eremaCycleColor, transp=0)
  37.  
  38. color_1 = color.new(color.white, 100)
  39. fillColor = eremaTrend >= 0 and eremaCycle >= 0 ? #0ebb23 : eremaTrend < 0 and eremaCycle < 0 ? color.red : color_1
  40.  
  41. fill(eremaTrendPlot, eremaCyclePlot, color=fillColor, transp=80)
  42.  
  43. hline(0, title='Zero Level', linestyle=hline.style_dotted, color=#989898)
  44.  
  45.  
Advertisement
Add Comment
Please, Sign In to add comment