Creator message:
custom script, RSI Past, attempts to capture this secondary use of RSI as a directional indicator.
RSI Past achieves this by comparing how many bars have passed since RSI's most recent overbought and oversold readings. It then plots a simple difference between those two numbers.
Stocks with “bullish” signals will have positive readings that will increase each time RSI hits an overbought condition.
“Bearish” readings are just the opposite, growing more negative as oversold conditions occur.
check the link for more details
https://www.tradingview.com/script/2tennpoc-RSI-Past-Can-Turn-RSI-Into-a-Directional-Tool/
CODE:
CSS:
#// This source code is subject to the terms of the Mozilla Public License 2.0 at #https://www.tradingview.com/script/2tennpoc-RSI-Past-Can-Turn-RSI-Into-a-Directional-Tool/
#// © TradeStation
#// RSI Past
# Converted by Sam4Cok@Samer800 09/2022
declare lower;
#// RSI input settings
input rsiLength = 14; # "Length"
input rsiSource = close; # "Price"
input rsiOverbought = 70; # "Overbought Threshold"
input rsiOversold = 30; # "Oversold Threshold"
#// RSI input colors
def na = Double.NaN;
def bar = BarNumber();
def lastBullish;
def lastBearish;
def reading;
def rsiValue = rsi(Price = rsiSource, Length = rsiLength);
def bullish = rsiValue < rsiOversold;
def bearish = rsiValue > rsiOverbought;
if bullish {
lastBearish = bar;
lastBullish = lastBullish[1];
} else {
if bearish {
lastBearish = lastBearish[1];
lastBullish = bar;
} else {
lastBearish = lastBearish[1];
lastBullish = lastBullish[1];}}
if lastBullish and lastBearish {
reading = lastBullish - lastBearish;
} else {
reading = reading[1];}
def plotColor = if reading then
if reading > 0 then 1 else
if reading < 0 then -1 else 0 else 0;
plot readingPlot = if isNaN(rsiSource) then na else reading; # "RSI Pass"
readingPlot.SetLineWeight(3);
readingPlot.AssignValueColor( if plotColor > 0 then CreateColor(0,110,98) else
if plotColor < 0 then CreateColor(204,66,66) else Color.GRAY);
AddChart(high = if plotColor > 0 then readingPlot else na,
low = 0,
open = if plotColor > 0 then readingPlot else na,
close = 0,
type = ChartType.CANDLE, growcolor = CreateColor(0,110,98));
AddChart(high = if plotColor < 0 then readingPlot else na,
low = 0,
open = 0,
close = if plotColor < 0 then readingPlot else na,
type = ChartType.CANDLE, growcolor = CreateColor(204,66,66));
#### END
Last edited by a moderator: