Official TradingView Link
Code:
Code: Select all
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © fikira
// ≠ ≈ ◊ ~ ∞ ‡ ∂ ƒ ¬ π º † • ∏ ª Ω ∑ ∆ · | \ ı ∫ √
//@version=4
study(title="[fikira] RDSI", shorttitle="RDSI", overlay=false)
// Relative Double Strength Index
lnW = input(3 , title="RDSI Length W" )
lnD = input(8 , title="RDSI Length D" )
ln12 = input(17 , title="RDSI Length 12h" )
ln4 = input(36 , title="RDSI Length 4h" )
ln1 = input(313 , title="RDSI Length 1h" )
choice = input("WMA", title="XMA", options=["SMA", "EMA", "WMA", "VWMA", "RMA", "HullMA"])
xma(source, len) =>
choice == "SMA" ? sma(source,len) :
choice == "EMA" ? ema(source,len) :
choice == "WMA" ? wma(source,len) :
choice == "VWMA" ? vwma(source,len) :
choice == "RMA" ? rma(source,len) :
wma(2 * wma(source, floor(len / 2)) - wma(source, len), round(sqrt(len)))
rs =
timeframe.period == "60" ? rsi(close, ln1 ) :
timeframe.period == "240" ? rsi(close, ln4 ) :
timeframe.period == "720" ? rsi(close, ln12) :
timeframe.period == "D" ? rsi(close, lnD ) :
timeframe.period == "W" ? rsi(close, lnW ) :
rsi(close, ln12)
Rup = 0.0
Rdn = 0.0
rsiDiff = rs - rs[1]
Rup := rsiDiff < 0 ? 0 : rsiDiff
Rdn := rsiDiff > 0 ? 0 : rsiDiff
//plot(Rup, color=color.lime, title="Rup")
//plot(Rdn, color=color.red , title="Rdn")
sUp =
timeframe.period == "240" ? xma(Rup, ln4 ) :
timeframe.period == "720" ? xma(Rup, ln12) : xma(Rup, lnD)
sDn =
timeframe.period == "240" ? -xma(Rdn, ln4 ) :
timeframe.period == "720" ? -xma(Rdn, ln12) : -xma(Rdn, lnD)
up = plot(sUp, color=sUp > sDn ? #00fff9 : color.new(#00fff9, 50), title="RDSI up" ) // #00fff9 #004d40
dn = plot(sDn, color=sUp > sDn ? color.new(#e40505, 50) : #e40505, title="RDSI down") // #880e4f #e40505
fill(up, dn, color=sUp > sDn ? #00fff9 : #e40505)
// up = change(rs)
// down = -change(rs)
Pictures:
VWMA
WMA
Hull
Creator's Description:
Splits the RSI in 2 components, the rising and the falling part
- Rising: when RSI is higher than its previous value, this value is stored, otherwise 0.
- Falling: when RSI is lower than its previous value, this value is stored, otherwise 0.
A mean average (multiple settings possible) is calculated for both values, giving this indicator
Things to look for:
Rising > falling line = bullish
Rising < falling line = bearish
Spikes could possibly be a turning point.
Sign for strength, for example, when the falling line is falling and the rising is rising -> bullish
My Comments:
kvak, mrtools, I was wondering if you would be able to convert this indicator from TradingView into MT4 format. I wasn't sure if it would have been better to place this in the thread for RSI indicators or the thread for MT4 indicator requests.
Either way, the RDSI caught my attention at first glance because it looks surprisingly similar to the Buy Sell Pressure (BSP) indicator I mentioned a few months ago.
I'd be curious to see if RDSI is better or worse than BSP when it comes to entering trades earlier, staying in trends longer, and/or exiting trades at a more optimal time. Especially on Renko charts as I haven't found anything better than BSP for milking all the movement out of a strongly trending market.
If I was able to make a list of additional features to add to this indicator, it would be the ones below:
- Adding all averages via the eAverages pack
- I want to ask for AHTF/MTF capabilities, but based on the code it doesn't appear as if that would be viable unless there's an inefficiency in the code I'm not seeing despite being less than 60 short lines total. On TradingView it was possible for me to plot this indicator on a timeframe lower than M1 despite nothing in the input menu of this indicator allowing me to input a length setting for anything lower than the H1 timeframe. I hope this can be fixed so we can adjust length regardless of timeframe we are on.
- Arrows for buy/sell entries
- Coloring the candles to reflect when the indicator reflects buying/selling pressure
- Alerts to help us know when to look for a trade, especially on the higher timeframes
- A button so we can turn the indicator appearance on and off when we want
Many thanks to any programmer who is able to take this small project on!