Reverse Double Smoothed Relative Strength Index Bands [CC]
"Reverse Double Smoothed Relative Strength Index Bands[CC]" by cheatcountry, MIT. Ported to FloScript by FloSignals; modifications under MPL-2.0. Original: Reverse Double Smoothed Relative Strength Index Bands[CC] (v1.0), read 2026-10-12T15:43:08.399Z; source language v5.
Licence: MIT License (MIT) — full text.
Reverse Double Smoothed Relative Strength Index Bands[CC] by cheatcountry, ported from Pine v5. Overlay indicator with 3 plots, alerts and 10 inputs.
// Copyright (c) 2019-present, Franklin Moormann (cheatcountry)
// Reverse Double Smoothed Relative Strength Index Bands [CC] script may be freely distributed under the MIT license.
// ------------------------------------------------------------------------------------------------
// Original author: cheatcountry
// Original title: Reverse Double Smoothed Relative Strength Index Bands[CC]
// Licence: MIT (the header above is the original notice, kept verbatim)
// Pine version: 5
// Fetched: 2026-10-12
// Ported to FloScript by FloSignals; modifications under MPL-2.0.
// Converter: @flosignals/floscript 0.1.0, strict mode, score 100/100
// ------------------------------------------------------------------------------------------------
//@floscript=1
//@version=5
indicator("Reverse Double Smoothed Relative Strength Index Bands [CC]", overlay=true)
requestSecurity(_symbol, _res, _src, _repaint) =>
_src[_repaint ? 0 : barstate.isrealtime ? 1 : 0][_repaint ? 0 : barstate.isrealtime ? 0 : 1]
float inp = input.source(title="Source", defval=hlcc4)
string res = input.timeframe(title="Resolution", defval="")
bool rep = input.bool(title="Allow Repainting?", defval=false)
bool bar = input.bool(title="Allow Bar Color Change?", defval=false)
float src = requestSecurity(syminfo.ticker, res, inp, rep)
float h = requestSecurity(syminfo.ticker, res, high, rep)
float l = requestSecurity(syminfo.ticker, res, low, rep)
int aLength = input.int(title='ALength', defval=2, minval=1)
int yLength = input.int(title='YLength', defval=5, minval=1)
int zLength = input.int(title='ZLength', defval=25, minval=1)
float obLevel = input.float(title='Overbought Level', defval=70.0, minval=0.0, maxval=100.0)
float osLevel = input.float(title='Oversold Level', defval=30.0, minval=0.0, maxval=100.0)
float midLevel = input.float(title="Mid Level", defval=50.0, minval=0.0, maxval=100.0)
float hc = ta.highest(src, aLength)
float lc = ta.lowest(src, aLength)
float top = ta.ema(ta.ema(src - lc, yLength), zLength)
float bot = ta.ema(ta.ema(hc - src, yLength), zLength)
reverseRSI(int length, float rsiLevel) =>
float x = (length - 1) * (bot * (rsiLevel / (100 - rsiLevel)) - top)
float revRsi = x >= 0 ? src + x : nz(src + x * ((100 - rsiLevel) / rsiLevel))
float obRevRsi = reverseRSI(zLength, obLevel)
float osRevRsi = reverseRSI(zLength, osLevel)
float midRevRsi = reverseRSI(zLength, midLevel)
float slo = src - midRevRsi
int sig = slo > 0 ? (slo > nz(slo[1]) ? 2 : 1) : slo < 0 ? (slo < nz(slo[1]) ? -2 : -1) : 0
alertcondition(ta.crossover(sig, 1), "Strong Buy Signal", "Strong Bullish Change Detected")
alertcondition(ta.crossunder(sig, -1), "Strong Sell Signal", "Strong Bearish Change Detected")
alertcondition(ta.crossover(sig, 0), "Buy Signal", "Bullish Change Detected")
alertcondition(ta.crossunder(sig, 0), "Sell Signal", "Bearish Change Detected")
alertcondition(ta.crossover(sig, 0) or ta.crossover(sig, 1), "All Buy Signals", "Any Bullish Change Detected")
alertcondition(ta.crossunder(sig, 0) or ta.crossunder(sig, -1), "All Sell Signals", "Any Bearish Change Detected")
color rdsrsiColor = sig > 1 ? color.green : sig > 0 ? color.lime : sig < -1 ? color.maroon : sig < 0 ? color.red : color.black
barcolor(bar ? rdsrsiColor : na)
plot(obRevRsi, title="ReverseOverboughtRSI", color=rdsrsiColor, linewidth=2)
plot(osRevRsi, title="ReverseOversoldRSI", color=rdsrsiColor, linewidth=2)
plot(midRevRsi, title="ReverseMidRSI", color=color.black, linewidth=1)
This file is under the MIT License; it is a port of the original by cheatcountry, with the original licence header kept and the changes made for FloScript noted in the file.
- v2
Library refresh 2026-10-14
- v1
Library refresh 2026-10-12
Disclaimer. Scripts are written and published by members, or ported by FloSignals from open-source originals, and are their authors' own work and opinion. FloSignals does not review them for correctness and nothing in a script is financial advice or a recommendation to buy or sell anything — read the Risk Disclaimer. Posting here is under the Community Rules; a script that is not the poster's to post can be reported as the Copyright & Takedowns page says.

Comments (0)
No comments yet. Members can leave one.