Untitled
unknown
plain_text
12 days ago
6.9 kB
5
Indexable
//@version=5 import HeWhoMustNotBeNamed/ta/1 indicator("Cy indicator dupe [@ethan22]", overlay=true) ////////////////////////////// //CLOUD, BANDS AND BAR COLOR// ////////////////////////////// length = input.int(20, minval=1, title="EMA Length") cloud_transparency = 90 float ema_high = ta.ema(high, 10) float ema_low = ta.ema(low, 13) float ema_close = ta.ema(close, 10) isAboveEMA = close > ema_close isBelowEMA = close < ema_close cloudColor = isAboveEMA ? color.new(color.green, 90) : isBelowEMA ? color.new(color.purple, 90) : color.new(color.blue, cloud_transparency) barColor = isAboveEMA ? color.new(color.purple, 0) : isBelowEMA ? color.new(color.green, 0) : na lineColor = isAboveEMA ? color.new(color.green, 0) : isBelowEMA ? color.new(color.purple, 0) : color.new(color.blue, cloud_transparency) fill(plot(ema_high, color=cloudColor), plot(ema_low, color=cloudColor), color=cloudColor, title="Cloud") barcolor(barColor) ////////////////// //FIBONACCI LEVELS// ////////////////// src = close fastperiod = input.int(title="50 MA", defval=50, minval=1) emaperiod = input.int(title="100 MA", defval=100, minval=1) toc = math.max(open, close) boc = math.min(open, close) varip version = "v2.0" effclose = close >= open ? toc : boc midline = ta.ema(effclose, emaperiod) plot(midline, color=color.purple, title="Mid Line", linewidth=1, transp=75) dev = ta.stdev(effclose, emaperiod) plusdevmult = toc > midline ? (toc - midline) / dev : 0 minusdevmult = boc < midline ? (midline - boc) / dev : 0 maxmult = math.max(minusdevmult, plusdevmult) lm = ta.ema(maxmult, emaperiod) lm2 = lm / 2 lm3 = lm2 * 0.38196601 lm4 = lm * 1.38196601 lm5 = lm * 1.61803399 lm6 = (lm + lm2) / 2 plot(midline + (dev * lm5), title="6 up", color=color.purple, transp=75) plot(midline + (dev * lm4), title="5 up", color=color.purple, transp=75) plot(midline + (dev * lm), title="4 up", color=color.purple, transp=75) plot(midline + (dev * lm6), title="3 up", color=color.purple, transp=75) plot(midline + (dev * lm2), title="2 up", color=color.purple, transp=75) plot(midline + (dev * lm3), title="1 up", color=color.purple, transp=75) plot(midline - (dev * lm3), title="1 down", color=color.purple, transp=75) plot(midline - (dev * lm2), title="2 down", color=color.purple, transp=75) plot(midline - (dev * lm6), title="3 down", color=color.purple, transp=75) plot(midline - (dev * lm), title="4 down", color=color.purple, transp=75) plot(midline - (dev * lm4), title="5 down", color=color.purple, transp=75) plot(midline - (dev * lm5), title="6 down", color=color.purple, transp=75) /////////// //SIGNALS// /////////// varip groupSettings = "Settings "+ version varip groupDisplay = "Display" i_version = version var bullcol = color.green var bearcol = color.purple var invisible = color.rgb(0, 0, 0, 100) var bullcol_xlight = color.new(bullcol, 80) var bearcol_xlight = color.new(bearcol, 80) var bullcol_light = color.new(bullcol, 70) var bearcol_light = color.new(bearcol, 70) var bullcol_medium = color.new(bullcol, 60) var bearcol_medium = color.new(bearcol, 60) var shortcol = color.white var longcol = color(#FFF58B) var pivotcol = color.white int bull_signal_loc = -107 int bear_signal_loc = 5 mode1 = "1 Oscillator Mode" mode2 = "2 Overlay Mode (top and bottom no oscillator)" mode3 = "3 Candle Mode" mode = mode3 compact = mode == mode2 formula1 = "Standard (2 Period)" formula2 = "Average" formula = formula1 use_average = formula == formula2 threshold = input.int(30, title="Sensitivity", minval=1, maxval=50, tooltip = "Sensitivity of the signals to price action") smoothType = 'ema' average_ma = 3 plot_shading = false plot_crosses = false plot_expiration = false shortLength = 21 shortSmoothingLength = 3 longLength = 112 longSmoothingLength = 3 _pr(length) => float max = ta.highest(length) float min = ta.lowest(length) 100 * (src - max) / (max - min) float s_percentR = _pr(shortLength) float l_percentR = _pr(longLength) float avg_percentR = math.avg(s_percentR, l_percentR) if shortSmoothingLength > 1 s_percentR := ta.ma(s_percentR, smoothType, shortSmoothingLength) if longSmoothingLength > 1 l_percentR := ta.ma(l_percentR, smoothType, longSmoothingLength) if average_ma > 1 avg_percentR := ta.ma(avg_percentR, smoothType, average_ma) var was_ob = false var was_os = false bool overbought = s_percentR >= -threshold and l_percentR >= -threshold bool oversold = s_percentR <= -100+threshold and l_percentR <= -100+threshold bool ob_reversal = not overbought and overbought[1] bool os_reversal = not oversold and oversold[1] bool ob_trend_start = overbought and not overbought[1] bool os_trend_start = oversold and not oversold[1] bool cross_bear = ta.crossover(l_percentR, s_percentR) bool cross_bull = ta.crossunder(l_percentR, s_percentR) top = hline(mode == mode1 ? 0 : na, 'Top', bearcol_medium, linestyle=hline.style_solid) band1 = hline(mode == mode1 ? -threshold : na, 'Top Threshold', bearcol_medium, linestyle=hline.style_solid) middle = hline(mode == mode1 ? -50 : na, 'Middle Line', color.new(#2F4F4F, 50), linestyle=hline.style_solid) band0 = hline(mode == mode1 ? -100+threshold : na, 'Bottom Threshold', bullcol_medium, linestyle=hline.style_solid) bottom = hline(mode == mode1 ? -100 : na, 'Bottom', bullcol_medium, linestyle=hline.style_solid) plotshape(ob_reversal ? bear_signal_loc : na, title="Overbought Trend Reversal ▼", style=shape.triangledown, location=mode == mode1 ? location.absolute : mode == mode3 ? location.abovebar : location.top, color=bearcol, size=size.tiny) plotshape(os_reversal ? bull_signal_loc : na, title="Oversold Trend Reversal ▲", style=shape.triangleup, location=mode == mode1 ? location.absolute : mode == mode3 ? location.belowbar : location.bottom, color=bullcol, size=size.tiny) // Secondary Signal based on RSI with Different Sensitivity secondary_rsi_length = input.int(14, title="Secondary RSI Length", minval=1) secondary_rsi_threshold = input.int(30, title="Secondary RSI Sensitivity", minval=1, maxval=50) float sec_rsi = ta.rsi(close, secondary_rsi_length) bool sec_overbought = sec_rsi >= 100 - secondary_rsi_threshold bool sec_oversold = sec_rsi <= secondary_rsi_threshold bool sec_ob_reversal = not sec_overbought and sec_overbought[1] bool sec_os_reversal = not sec_oversold and sec_oversold[1] plotshape(sec_ob_reversal ? bear_signal_loc : na, title="Secondary RSI Overbought Reversal ▼", style=shape.labeldown, location=location.abovebar, color=color.purple, size=size.tiny, text = "!", textcolor = color.black) plotshape(sec_os_reversal ? bull_signal_loc : na, title="Secondary RSI Oversold Reversal ▲", style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, text = "!", textcolor = color.black)
Editor is loading...
Leave a Comment