Advertisement
PineCoders

MACD Normalized 0-1

Sep 25th, 2019
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. //@version=4
  2. study(title="MACD", shorttitle="MACD")
  3.  
  4. // Getting inputs
  5. fast_length = input(title="Fast Length", type=input.integer, defval=12)
  6. slow_length = input(title="Slow Length", type=input.integer, defval=26)
  7. src = input(title="Source", type=input.source, defval=close)
  8. signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
  9. sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
  10. sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
  11.  
  12. // Plot colors
  13. col_grow_above = #26A69A
  14. col_grow_below = #FFCDD2
  15. col_fall_above = #B2DFDB
  16. col_fall_below = #EF5350
  17. col_macd = #0094ff
  18. col_signal = #ff6a00
  19.  
  20. // Min/Max of signal to rescale is determined by its historical low/high.
  21. normalize(_src, _min, _max) =>
  22. // Normalizes series with unknown min/max using historical min/max.
  23. // _src: series to rescale.
  24. // _min: minimum value of rescaled series.
  25. // _max: maximum value of rescaled series.
  26. var _historicMin = 10e10
  27. var _historicMax = -10e10
  28. _historicMin := min(nz(_src, _historicMin), _historicMin)
  29. _historicMax := max(nz(_src, _historicMax), _historicMax)
  30. _min + (_max - _min) * (_src - _historicMin) / max(_historicMax - _historicMin, 10e-10)
  31.  
  32. // Calculating
  33. fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
  34. slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
  35. macd_ = fast_ma - slow_ma
  36. macd = normalize(macd_, 0, 1)
  37. signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
  38. hist = macd - signal
  39.  
  40.  
  41. plot(hist+0.5, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0, histbase=0.5)
  42. plot(macd, title="MACD", color=col_macd, transp=0)
  43. plot(signal, title="Signal", color=col_signal, transp=0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement