RSI of RSI Deviation (RoRD)RSI of RSI Deviation (RoRD) - Advanced Momentum Acceleration Analysis
What is RSI of RSI Deviation (RoRD)?
RSI of RSI Deviation (RoRD) is a insightful momentum indicator that transcends traditional oscillator analysis by measuring the acceleration of momentum through sophisticated mathematical layering. By calculating RSI on RSI itself (RSI²) and applying advanced statistical deviation analysis with T3 smoothing, RoRD reveals hidden market dynamics that single-layer indicators miss entirely.
This isn't just another RSI variant—it's a complete reimagining of how we measure and visualize momentum dynamics. Where traditional RSI shows momentum, RoRD shows momentum's rate of change . Where others show static overbought/oversold levels, RoRD reveals statistically significant deviations unique to each market's character.
Theoretical Foundation - The Mathematics of Momentum Acceleration
1. RSI² (RSI of RSI) - The Core Innovation
Traditional RSI measures price momentum. RoRD goes deeper:
Primary RSI (RSI₁) : Standard RSI calculation on price
Secondary RSI (RSI²) : RSI calculated on RSI₁ values
This creates a "momentum of momentum" indicator that leads price action
Mathematical Expression:
RSI₁ = 100 - (100 / (1 + RS₁))
RSI² = 100 - (100 / (1 + RS₂))
Where RS₂ = Average Gain of RSI₁ / Average Loss of RSI₁
2. T3 Smoothing - Lag-Free Response
The T3 Moving Average, developed by Tim Tillson, provides:
Superior smoothing with minimal lag
Adaptive response through volume factor (vFactor)
Noise reduction while preserving signal integrity
T3 Formula:
T3 = c1×e6 + c2×e5 + c3×e4 + c4×e3
Where e1...e6 are cascaded EMAs and c1...c4 are volume-factor-based coefficients
3. Statistical Z-Score Deviation
RoRD employs dual-layer Z-score normalization :
Initial Z-Score : (RSI² - SMA) / StDev
Final Z-Score : Z-score of the Z-score for refined extremity detection
This identifies statistically rare events relative to recent market behavior
4. Multi-Timeframe Confluence
Compares current timeframe Z-score with higher timeframe (HTF)
Provides directional confirmation across time horizons
Filters false signals through timeframe alignment
Why RoRD is Different & More Sophisticated
Beyond Traditional Indicators:
Acceleration vs. Velocity : While RSI measures momentum (velocity), RoRD measures momentum's rate of change (acceleration)
Adaptive Thresholds : Z-score analysis adapts to market conditions rather than using fixed 70/30 levels
Statistical Significance : Signals are based on mathematical rarity, not arbitrary levels
Leading Indicator : RSI² often turns before price, providing earlier signals
Reduced Whipsaws : T3 smoothing eliminates noise while maintaining responsiveness
Unique Signal Generation:
Quantum Orbs : Multi-layered visual signals for statistically extreme events
Divergence Detection : Automated identification of price/momentum divergences
Regime Backgrounds : Visual market state classification (Bullish/Bearish/Neutral)
Particle Effects : Dynamic visualization of momentum energy
Visual Design & Interpretation Guide
Color Coding System:
Yellow (#e1ff00) : Neutral/balanced momentum state
Red (#ff0000) : Overbought/extreme bullish acceleration
Green (#2fff00) : Oversold/extreme bearish acceleration
Orange : Z-score visualization
Blue : HTF Z-score comparison
Main Visual Elements:
RSI² Line with Glow Effect
Multi-layer glow creates depth and emphasis
Color dynamically shifts based on momentum state
Line thickness indicates signal strength
Quantum Signal Orbs
Green Orbs Below : Statistically rare oversold conditions
Red Orbs Above : Statistically rare overbought conditions
Multiple layers indicate signal strength
Only appear at Z-score extremes for high-conviction signals
Divergence Markers
Green Circles : Bullish divergence detected
Red Circles : Bearish divergence detected
Plotted at pivot points for precision
Background Regimes
Green Background : Bullish momentum regime
Grey Background : Bearish momentum regime
Blue Background : Neutral/transitioning regime
Particle Effects
Density indicates momentum energy
Color matches current RSI² state
Provides dynamic market "feel"
Dashboard Metrics - Deep Dive
RSI² ANALYSIS Section:
RSI² Value (0-100)
Current smoothed RSI of RSI reading
>70 : Strong bullish acceleration
<30 : Strong bearish acceleration
~50 : Neutral momentum state
RSI¹ Value
Traditional RSI for reference
Compare with RSI² for acceleration/deceleration insights
Z-Score Status
🔥 EXTREME HIGH : Z > threshold, statistically rare bullish
❄️ EXTREME LOW : Z < threshold, statistically rare bearish
📈 HIGH/📉 LOW : Elevated but not extreme
➡️ NEUTRAL : Normal statistical range
MOMENTUM Section:
Velocity Indicator
▲▲▲ : Strong positive acceleration
▼▼▼ : Strong negative acceleration
Shows rate of change in RSI²
Strength Bar
██████░░░░ : Visual power gauge
Filled bars indicate momentum strength
Based on deviation from center line
SIGNALS Section:
Divergence Status
🟢 BULLISH DIV : Price making lows, RSI² making highs
🔴 BEARISH DIV : Price making highs, RSI² making lows
⚪ NO DIVERGENCE : No divergence detected
HTF Comparison
🔥 HTF EXTREME : Higher timeframe confirms extremity
📊 HTF NORMAL : Higher timeframe is neutral
Critical for multi-timeframe confirmation
Trading Application & Strategy
Signal Hierarchy (Highest to Lowest Priority):
Quantum Orb + HTF Alignment + Divergence
Highest conviction reversal signal
Z-score extreme + timeframe confluence + divergence
Quantum Orb + HTF Alignment
Strong reversal signal
Wait for price confirmation
Divergence + Regime Change
Medium-term reversal signal
Monitor for orb confirmation
Threshold Crosses
Traditional overbought/oversold
Use as alert, not entry
Entry Strategies:
For Reversals:
Wait for Quantum Orb signal
Confirm with HTF Z-score direction
Enter on price structure break
Stop beyond recent extreme
For Continuations:
Trade with regime background color
Use RSI² pullbacks to center line
Avoid signals against HTF trend
For Scalping:
Focus on Z-score extremes
Quick entries on orb signals
Exit at center line cross
Risk Management:
Reduce position size when signals conflict with HTF
Avoid trades during regime transitions (blue background)
Tighten stops after divergence completion
Scale out at statistical mean reversion
Development & Uniqueness
RoRD represents months of research into momentum dynamics and statistical analysis. Unlike indicators that simply combine existing tools, RoRD introduces several genuine innovations :
True RSI² Implementation : Not a smoothed RSI, but actual RSI calculated on RSI values
Dual Z-Score Normalization : Unique approach to finding statistical extremes
T3 Integration : First RSI² implementation with T3 smoothing for optimal lag reduction
Quantum Orb Visualization : Revolutionary signal display method
Dynamic Regime Detection : Automatic market state classification
Statistical Adaptability : Thresholds adapt to market volatility
This indicator was built from first principles, with each component carefully selected for its mathematical properties and practical trading utility. The result is a professional-grade tool that provides insights unavailable through traditional momentum analysis.
Best Practices & Tips
Start with default settings - they're optimized for most markets
Always check HTF alignment before taking signals
Use divergences as early warning , orbs as confirmation
Respect regime backgrounds - trade with them, not against
Combine with price action - RoRD shows when, price shows where
Adjust Z-score thresholds based on market volatility
Monitor dashboard metrics for complete market context
Conclusion
RoRD isn't just another indicator—it's a complete momentum analysis system that reveals market dynamics invisible to traditional tools. By combining momentum acceleration, statistical analysis, and multi-timeframe confluence with intuitive visualization, RoRD provides traders with a sophisticated edge in any market condition.
Whether you're scalping rapid reversals or positioning for major trend changes, RoRD's unique approach to momentum analysis will transform how you see and trade market dynamics.
See momentum's future. Trade with statistical edge.
Trade with insight. Trade with anticipation.
— Dskyz, for DAFE Trading Systems
Cari dalam skrip untuk "“中国联通”股票相对强弱指标RSI走势图,数值在0至100之间上下起伏的变动,"
RSI & Backed-Weighted MA StrategyRSI & MA Strategy :
INTRODUCTION :
This strategy is based on two well-known indicators that work best together: the Relative Strength Index (RSI) and the Moving Average (MA). We're going to use the RSI as a trend-follower indicator, rather than a reversal indicator as most are used to. To the signals sent by the RSI, we'll add a condition on the chart's MA, filtering out irrelevant signals and considerably increasing our winning rate. This is a medium/long-term strategy. There's also a money management method enabling us to reinvest part of the profits or reduce the size of orders in the event of substantial losses.
RSI :
The RSI is one of the best-known and most widely used indicators in trading. Its purpose is to warn traders when an asset is overbought or oversold. It was designed to send reversal signals, but we're going to use it as a trend indicator by increasing its length to 20. The RSI formula is as follows :
RSI (n) = 100 - (100 / (1 + (H (n)/L (n))))
With n the length of the RSI, H(n) the average of days closing above the open and L(n) the average of days closing below the open.
MA :
The Moving Average is also widely used in technical analysis, to smooth out variations in an asset. The SMA formula is as follows :
SMA (n) = (P1 + P2 + ... + Pn) / n
where n is the length of the MA.
However, an SMA does not weight any of its terms, which means that the price 10 days ago has the same importance as the price 2 days ago or today's price... That's why in this strategy we use a RWMA, i.e. a back-weighted moving average. It weights old prices more heavily than new ones. This will enable us to limit the impact of short-term variations and focus on the trend that was dominating. The RWMA used weights :
The 4 most recent terms by : 100 / (4+(n-4)*1.30)
The other oldest terms by : weight_4_first_term*1.30
So the older terms are weighted 1.30 more than the more recent ones. The moving average thus traces a trend that accentuates past values and limits the noise of short-term variations.
PARAMETERS :
RSI Length : Lenght of RSI. Default is 20.
MA Type : Choice between a SMA or a RWMA which permits to minimize the impact of short term reversal. Default is RWMA.
MA Length : Length of the selected MA. Default is 19.
RSI Long Signal : Minimum value of RSI to send a LONG signal. Default is 60.
RSI Short signal : Maximum value of RSI to send a SHORT signal. Default is 40.
ROC MA Long Signal : Maximum value of Rate of Change MA to send a LONG signal. Default is 0.
ROC MA Short signal : Minimum value of Rate of Change MA to send a SHORT signal. Default is 0.
TP activation in multiple of ATR : Threshold value to trigger trailing stop Take Profit. This threshold is calculated as multiple of the ATR (Average True Range). Default value is 5 meaning that to trigger the trailing TP the price need to move 5*ATR in the right direction.
Trailing TP in percentage : Percentage value of trailing Take Profit. This Trailing TP follows the profit if it increases, remaining selected percentage below it, but stops if the profit decreases. Default is 3%.
Fixed Ratio : This is the amount of gain or loss at which the order quantity is changed. Default is 400, which means that for each $400 gain or loss, the order size is increased or decreased by a user-selected amount.
Increasing Order Amount : This is the amount to be added to or subtracted from orders when the fixed ratio is reached. The default is $200, which means that for every $400 gain, $200 is reinvested in the strategy. On the other hand, for every $400 loss, the order size is reduced by $200.
Initial capital : $1000
Fees : Interactive Broker fees apply to this strategy. They are set at 0.18% of the trade value.
Slippage : 3 ticks or $0.03 per trade. Corresponds to the latency time between the moment the signal is received and the moment the order is executed by the broker.
Important : A bot has been used to test the different parameters and determine which ones maximize return while limiting drawdown. This strategy is the most optimal on BITSTAMP:ETHUSD with a timeframe set to 6h. Parameters are set as follows :
MA type: RWMA
MA Length: 19
RSI Long Signal: >60
RSI Short Signal : <40
ROC MA Long Signal : <0
ROC MA Short Signal : >0
TP Activation in multiple ATR : 5
Trailing TP in percentage : 3
ENTER RULES :
The principle is very simple:
If the asset is overbought after a bear market, we are LONG.
If the asset is oversold after a bull market, we are SHORT.
We have defined a bear market as follows : Rate of Change (20) RWMA < 0
We have defined a bull market as follows : Rate of Change (20) RWMA > 0
The Rate of Change is calculated using this formula : (RWMA/RWMA(20) - 1)*100
Overbought is defined as follows : RSI > 60
Oversold is defined as follows : RSI < 40
LONG CONDITION :
RSI > 60 and (RWMA/RWMA(20) - 1)*100 < -1
SHORT CONDITION :
RSI < 40 and (RWMA/RWMA(20) - 1)*100 > 1
EXIT RULES FOR WINNING TRADE :
We have a trailing TP allowing us to exit once the price has reached the "TP Activation in multiple ATR" parameter, i.e. 5*ATR by default in the profit direction. TP trailing is triggered at this point, not limiting our gains, and securing our profits at 3% below this trigger threshold.
Remember that the True Range is : maximum(H-L, H-C(1), C-L(1))
with C : Close, H : High, L : Low
The Average True Range is therefore the average of these TRs over a length defined by default in the strategy, i.e. 20.
RISK MANAGEMENT :
This strategy may incur losses. The method for limiting losses is to set a Stop Loss equal to 3*ATR. This means that if the price moves against our position and reaches three times the ATR, we exit with a loss.
Sometimes the ATR can result in a SL set below 10% of the trade value, which is not acceptable. In this case, we set the SL at 10%, limiting losses to a maximum of 10%.
MONEY MANAGEMENT :
The fixed ratio method was used to manage our gains and losses. For each gain of an amount equal to the value of the fixed ratio, we increase the order size by a value defined by the user in the "Increasing order amount" parameter. Similarly, each time we lose an amount equal to the value of the fixed ratio, we decrease the order size by the same user-defined value. This strategy increases both performance and drawdown.
Enjoy the strategy and don't forget to take the trade :)
log.info() - 5 Exampleslog.info() is one of the most powerful tools in Pine Script that no one knows about. Whenever you code, you want to be able to debug, or find out why something isn’t working. The log.info() command will help you do that. Without it, creating more complex Pine Scripts becomes exponentially more difficult.
The first thing to note is that log.info() only displays strings. So, if you have a variable that is not a string, you must turn it into a string in order for log.info() to work. The way you do that is with the str.tostring() command. And remember, it's all lower case! You can throw in any numeric value (float, int, timestamp) into str.string() and it should work.
Next, in order to make your output intelligible, you may want to identify whatever value you are logging. For example, if an RSI value is 50, you don’t want a bunch of lines that just say “50”. You may want it to say “RSI = 50”.
To do that, you’ll have to use the concatenation operator. For example, if you have a variable called “rsi”, and its value is 50, then you would use the “+” concatenation symbol.
EXAMPLE 1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
log.info(“RSI= ” + str.tostring(rsi))
Example Output =>
RSI= 50
Here, we use double quotes to create a string that contains the name of the variable, in this case “RSI = “, then we concatenate it with a stringified version of the variable, rsi.
Now that you know how to write a log, where do you view them? There isn’t a lot of documentation on it, and the link is not conveniently located.
Open up the “Pine Editor” tab at the bottom of any chart view, and you’ll see a “3 dot” button at the top right of the pane. Click that, and right above the “Help” menu item you’ll see “Pine logs”. Clicking that will open that to open a pane on the right of your browser - replacing whatever was in the right pane area before. This is where your log output will show up.
But, because you’re dealing with time series data, using the log.info() command without some type of condition will give you a fast moving stream of numbers that will be difficult to interpret. So, you may only want the output to show up once per bar, or only under specific conditions.
To have the output show up only after all computations have completed, you’ll need to use the barState.islast command. Remember, barState is camelCase, but islast is not!
EXAMPLE 2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
if barState.islast
log.info("RSI=" + str.tostring(rsi))
plot(rsi)
However, this can be less than ideal, because you may want the value of the rsi variable on a particular bar, at a particular time, or under a specific chart condition. Let’s hit these one at a time.
In each of these cases, the built-in bar_index variable will come in handy. When debugging, I typically like to assign a variable “bix” to represent bar_index, and include it in the output.
So, if I want to see the rsi value when RSI crosses above 0.5, then I would have something like
EXAMPLE 3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,0.5)
if rsiCrossedOver
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
bix=19964 - RSI=51.8449459867
bix=19972 - RSI=50.0975830828
bix=19983 - RSI=53.3529808079
bix=19985 - RSI=53.1595745146
bix=19999 - RSI=66.6466337654
bix=20001 - RSI=52.2191767466
Here, we see that the output only appears when the condition is met.
A useful thing to know is that if you want to limit the number of decimal places, then you would use the command str.tostring(rsi,”#.##”), which tells the interpreter that the format of the number should only be 2 decimal places. Or you could round the rsi variable with a command like rsi2 = math.round(rsi*100)/100 . In either case you’re output would look like:
bix=19964 - RSI=51.84
bix=19972 - RSI=50.1
bix=19983 - RSI=53.35
bix=19985 - RSI=53.16
bix=19999 - RSI=66.65
bix=20001 - RSI=52.22
This would decrease the amount of memory that’s being used to display your variable’s values, which can become a limitation for the log.info() command. It only allows 4096 characters per line, so when you get to trying to output arrays (which is another cool feature), you’ll have to keep that in mind.
Another thing to note is that log output is always preceded by a timestamp, but for the sake of brevity, I’m not including those in the output examples.
If you wanted to only output a value after the chart was fully loaded, that’s when barState.islast command comes in. Under this condition, only one line of output is created per tick update — AFTER the chart has finished loading. For example, if you only want to see what the the current bar_index and rsi values are, without filling up your log window with everything that happens before, then you could use the following code:
EXAMPLE 4
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
//@version=6
indicator("log.info()")
rsi = ta.rsi(close,14)
bix = bar_index
if barstate.islast
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
Example Output =>
bix=20203 - RSI=53.1103309071
This value would keep updating after every new bar tick.
The log.info() command is a huge help in creating new scripts, however, it does have its limitations. As mentioned earlier, only 4096 characters are allowed per line. So, although you can use log.info() to output arrays, you have to be aware of how many characters that array will use.
The following code DOES NOT WORK! And, the only way you can find out why will be the red exclamation point next to the name of the indicator. That, and nothing will show up on the chart, or in the logs.
// CODE DOESN’T WORK
//@version=6
indicator("MW - log.info()")
var array rsi_arr = array.new()
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50)
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
// No code errors, but will not compile because too much is being written to the logs.
However, after putting some time restrictions in with the i_startTime and i_endTime user input variables, and creating a dateFilter variable to use in the conditions, I can limit the size of the final array. So, the following code does work.
EXAMPLE 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// CODE DOES WORK
//@version=6
indicator("MW - log.info()")
i_startTime = input.time(title="Start", defval=timestamp("01 Jan 2025 13:30 +0000"))
i_endTime = input.time(title="End", defval=timestamp("1 Jan 2099 19:30 +0000"))
var array rsi_arr = array.new()
dateFilter = time >= i_startTime and time <= i_endTime
rsi = ta.rsi(close,14)
bix = bar_index
rsiCrossedOver = ta.crossover(rsi,50) and dateFilter // <== The dateFilter condition keeps the array from getting too big
if rsiCrossedOver
array.push(rsi_arr, rsi)
if barstate.islast
log.info("rsi_arr:" + str.tostring(rsi_arr))
log.info("bix=" + str.tostring(bix) + " - RSI=" + str.tostring(rsi))
plot(rsi)
Example Output =>
rsi_arr:
bix=20210 - RSI=56.9030578034
Of course, if you restrict the decimal places by using the rounding the rsi value with something like rsiRounded = math.round(rsi * 100) / 100 , then you can further reduce the size of your array. In this case the output may look something like:
Example Output =>
rsi_arr:
bix=20210 - RSI=55.6947486019
This will give your code a little breathing room.
In a nutshell, I was coding for over a year trying to debug by pushing output to labels, tables, and using libraries that cluttered up my code. Once I was able to debug with log.info() it was a game changer. I was able to start building much more advanced scripts. Hopefully, this will help you on your journey as well.
Uptrick: RSI Histogram
1. **Introduction to the RSI and Moving Averages**
2. **Detailed Breakdown of the Uptrick: RSI Histogram**
3. **Calculation and Formula**
4. **Visual Representation**
5. **Customization and User Settings**
6. **Trading Strategies and Applications**
7. **Risk Management**
8. **Case Studies and Examples**
9. **Comparison with Other Indicators**
10. **Advanced Usage and Tips**
---
## 1. Introduction to the RSI and Moving Averages
### **1.1 Relative Strength Index (RSI)**
The Relative Strength Index (RSI) is a momentum oscillator developed by J. Welles Wilder and introduced in his 1978 book "New Concepts in Technical Trading Systems." It is widely used in technical analysis to measure the speed and change of price movements.
**Purpose of RSI:**
- **Identify Overbought/Oversold Conditions:** RSI values range from 0 to 100. Traditionally, values above 70 are considered overbought, while values below 30 are considered oversold. These thresholds help traders identify potential reversal points in the market.
- **Trend Strength Measurement:** RSI also indicates the strength of a trend. High RSI values suggest strong bullish momentum, while low values indicate bearish momentum.
**Calculation of RSI:**
1. **Calculate the Average Gain and Loss:** Over a specified period (e.g., 14 days), calculate the average gain and loss.
2. **Compute the Relative Strength (RS):** RS is the ratio of average gain to average loss.
3. **RSI Formula:** RSI = 100 - (100 / (1 + RS))
### **1.2 Moving Averages (MA)**
Moving Averages are used to smooth out price data and identify trends by filtering out short-term fluctuations. Two common types are:
**Simple Moving Average (SMA):** The average of prices over a specified number of periods.
**Exponential Moving Average (EMA):** A type of moving average that gives more weight to recent prices, making it more responsive to recent price changes.
**Smoothed Moving Average (SMA):** Used to reduce the impact of volatility and provide a clearer view of the underlying trend. The RMA, or Running Moving Average, used in the USH script is similar to an EMA but based on the average of RSI values.
## 2. Detailed Breakdown of the Uptrick: RSI Histogram
### **2.1 Indicator Overview**
The Uptrick: RSI Histogram (USH) is a technical analysis tool that combines the RSI with a moving average to create a histogram that reflects momentum and trend strength.
**Key Components:**
- **RSI Calculation:** Determines the relative strength of price movements.
- **Moving Average Application:** Smooths the RSI values to provide a clearer trend indication.
- **Histogram Plotting:** Visualizes the deviation of the smoothed RSI from a neutral level.
### **2.2 Indicator Purpose**
The primary purpose of the USH is to provide a clear visual representation of the market's momentum and trend strength. It helps traders identify:
- **Bullish and Bearish Trends:** By showing how far the smoothed RSI is from the neutral 50 level.
- **Potential Reversal Points:** By highlighting changes in momentum.
### **2.3 Indicator Design**
**RSI Moving Average (RSI MA):** The RSI MA is a smoothed version of the RSI, calculated using a running moving average. This smooths out short-term fluctuations and provides a clearer indication of the underlying trend.
**Histogram Calculation:**
- **Neutral Level:** The histogram is plotted relative to the neutral level of 50. This level represents a balanced market where neither bulls nor bears have dominance.
- **Histogram Values:** The histogram bars show the difference between the RSI MA and the neutral level. Positive values indicate bullish momentum, while negative values indicate bearish momentum.
## 3. Calculation and Formula
### **3.1 RSI Calculation**
The RSI calculation involves:
1. **Average Gain and Loss:** Calculated over the specified length (e.g., 14 periods).
2. **Relative Strength (RS):** RS = Average Gain / Average Loss.
3. **RSI Formula:** RSI = 100 - (100 / (1 + RS)).
### **3.2 Moving Average Calculation**
For the USH indicator, the RSI is smoothed using a running moving average (RMA). The RMA formula is similar to that of the EMA but is based on averaging RSI values over the specified length.
### **3.3 Histogram Calculation**
The histogram value is calculated as:
- **Histogram Value = RSI MA - 50**
**Plotting the Histogram:**
- **Positive Histogram Values:** Indicate that the RSI MA is above the neutral level, suggesting bullish momentum.
- **Negative Histogram Values:** Indicate that the RSI MA is below the neutral level, suggesting bearish momentum.
## 4. Visual Representation
### **4.1 Histogram Bars**
The histogram is plotted as bars on the chart:
- **Bullish Bars:** Colored green when the RSI MA is above 50.
- **Bearish Bars:** Colored red when the RSI MA is below 50.
### **4.2 Customization Options**
Traders can customize:
- **RSI Length:** Adjust the length of the RSI calculation to match their trading style.
- **Bull and Bear Colors:** Choose colors for histogram bars to enhance visual clarity.
### **4.3 Interpretation**
**Bullish Signal:** A histogram bar that moves from red to green indicates a potential shift to a bullish trend.
**Bearish Signal:** A histogram bar that moves from green to red indicates a potential shift to a bearish trend.
## 5. Customization and User Settings
### **5.1 Adjusting RSI Length**
The length parameter determines the number of periods over which the RSI is calculated and smoothed. Shorter lengths make the RSI more sensitive to price changes, while longer lengths provide a smoother view of trends.
### **5.2 Color Settings**
Traders can adjust:
- **Bull Color:** Color of histogram bars indicating bullish momentum.
- **Bear Color:** Color of histogram bars indicating bearish momentum.
**Customization Benefits:**
- **Visual Clarity:** Traders can choose colors that stand out against their chart’s background.
- **Personal Preference:** Adjust settings to match individual trading styles and preferences.
## 6. Trading Strategies and Applications
### **6.1 Trend Following**
**Identifying Entry Points:**
- **Bullish Entry:** When the histogram changes from red to green, it signals a potential entry point for long positions.
- **Bearish Entry:** When the histogram changes from green to red, it signals a potential entry point for short positions.
**Trend Confirmation:** The histogram helps confirm the strength of a trend. Strong, consistent green bars indicate robust bullish momentum, while strong, consistent red bars indicate robust bearish momentum.
### **6.2 Swing Trading**
**Momentum Analysis:**
- **Entry Signals:** Look for significant shifts in the histogram to time entries. A shift from bearish to bullish (red to green) indicates potential for upward movement.
- **Exit Signals:** A shift from bullish to bearish (green to red) suggests a potential weakening of the trend, signaling an exit or reversal point.
### **6.3 Range Trading**
**Market Conditions:**
- **Consolidation:** The histogram close to zero suggests a range-bound market. Traders can use this information to identify support and resistance levels.
- **Breakout Potential:** A significant move away from the neutral level may indicate a potential breakout from the range.
### **6.4 Risk Management**
**Stop-Loss Placement:**
- **Bullish Positions:** Place stop-loss orders below recent support levels when the histogram is green.
- **Bearish Positions:** Place stop-loss orders above recent resistance levels when the histogram is red.
**Position Sizing:** Adjust position sizes based on the strength of the histogram signals. Strong trends (indicated by larger histogram bars) may warrant larger positions, while weaker signals suggest smaller positions.
## 7. Risk Management
### **7.1 Importance of Risk Management**
Effective risk management is crucial for long-term trading success. It involves protecting capital, managing losses, and optimizing trade setups.
### **7.2 Using USH for Risk Management**
**Stop-Loss and Take-Profit Levels:**
- **Stop-Loss Orders:** Use the histogram to set stop-loss levels based on trend strength. For instance, place stops below support levels in bullish trends and above resistance levels in bearish trends.
- **Take-Profit Targets:** Adjust take-profit levels based on histogram changes. For example, lock in profits as the histogram starts to shift from green to red.
**Position Sizing:**
- **Trend Strength:** Scale position sizes based on the strength of histogram signals. Larger histogram bars indicate stronger trends, which may justify larger positions.
- **Volatility:** Consider market volatility and adjust position sizes to mitigate risk.
## 8. Case Studies and Examples
### **8.1 Example 1: Bullish Trend**
**Scenario:** A trader notices a transition from red to green histogram bars.
**Analysis:**
- **Entry Point:** The transition indicates a potential bullish trend. The trader decides to enter a long position.
- **Stop-Loss:** Set stop-loss below recent support levels.
- **Take-Profit:** Consider taking profits as the histogram moves back towards zero or turns red.
**Outcome:** The bullish trend continues, and the histogram remains green, providing a profitable trade setup.
### **8.2 Example 2: Bearish Trend**
**Scenario:** A trader observes a transition from green to red histogram bars.
**Analysis:**
- **Entry Point:** The transition suggests a potential
bearish trend. The trader decides to enter a short position.
- **Stop-Loss:** Set stop-loss above recent resistance levels.
- **Take-Profit:** Consider taking profits as the histogram approaches zero or shifts to green.
**Outcome:** The bearish trend continues, and the histogram remains red, resulting in a successful trade.
## 9. Comparison with Other Indicators
### **9.1 RSI vs. USH**
**RSI:** Measures momentum and identifies overbought/oversold conditions.
**USH:** Builds on RSI by incorporating a moving average and histogram to provide a clearer view of trend strength and momentum.
### **9.2 RSI vs. MACD**
**MACD (Moving Average Convergence Divergence):** A trend-following momentum indicator that uses moving averages to identify changes in trend direction.
**Comparison:**
- **USH:** Provides a smoothed RSI perspective and visual histogram for trend strength.
- **MACD:** Offers signals based on the convergence and divergence of moving averages.
### **9.3 RSI vs. Stochastic Oscillator**
**Stochastic Oscillator:** Measures the level of the closing price relative to the high-low range over a specified period.
**Comparison:**
- **USH:** Focuses on smoothed RSI values and histogram representation.
- **Stochastic Oscillator:** Provides overbought/oversold signals and potential reversals based on price levels.
## 10. Advanced Usage and Tips
### **10.1 Combining Indicators**
**Multi-Indicator Strategies:** Combine the USH with other technical indicators (e.g., Moving Averages, Bollinger Bands) for a comprehensive trading strategy.
**Confirmation Signals:** Use the USH to confirm signals from other indicators. For instance, a bullish histogram combined with a moving average crossover may provide a stronger buy signal.
### **10.2 Customization Tips**
**Adjust RSI Length:** Experiment with different RSI lengths to match various market conditions and trading styles.
**Color Preferences:** Choose histogram colors that enhance visibility and align with personal preferences.
### **10.3 Continuous Learning**
**Backtesting:** Regularly backtest the USH with historical data to refine strategies and improve accuracy.
**Education:** Stay updated with trading education and adapt strategies based on market changes and personal experiences.
Adaptive Volume-Weighted RSI (AVW-RSI)Concept Summary
The AVW-RSI is a modified version of the Relative Strength Index (RSI), where each price change is weighted by the relative trading volume for that period. This means periods of high volume (typically driven by institutions or “big money”) have a greater influence on the RSI calculation than periods of low volume.
Why AVW-RSI Helps Traders
Avoids Weak Signals During Low Volume
Standard RSI may show overbought/oversold zones even during low-volume periods (e.g., during lunch hours or after news).
AVW-RSI gives less weight to these periods, avoiding misleading signals.
Amplifies Strong Momentum Moves
If RSI is rising during high volume, it's more likely driven by institutional buying—AVW-RSI reflects that stronger by weighting the RSI component.
Filters Out Retail Noise
By prioritizing high-volume candles, it naturally discounts fakeouts caused by thin markets or retail-heavy moves.
Highlights Institutional Entry/Exit
Useful for spotting hidden accumulation/distribution that classic RSI would miss.
How It Works (Calculation Logic)
Traditional RSI Formula Recap
RSI = 100 - (100 / (1 + RS))
RS = Average Gain / Average Loss (over N periods)
Modified Step – Apply Volume Weight
For each period
Gain_t = max(Close_t - Close_{t-1}, 0)
Loss_t = max(Close_{t-1} - Close_t, 0)
Weight_t = Volume_t / AvgVolume(N)
WeightedGain_t = Gain_t * Weight_t
WeightedLoss_t = Loss_t * Weight_t
Weighted RSI
AvgWeightedGain = SMA(WeightedGain, N)
AvgWeightedLoss = SMA(WeightedLoss, N)
RS = AvgWeightedGain / AvgWeightedLoss
AVW-RSI = 100 - (100 / (1 + RS))
Visual Features on Chart
Line Color Gradient
Color gets darker as volume weight increases, signaling stronger conviction.
Overbought/Oversold Zones
Traditional: 70/30
Suggested AVW-RSI zones: Use dynamic thresholds based on historical volatility (e.g., 80/20 for high-volume coins).
Volume Spike Flags
Mark RSI turning points that occurred during volume spikes with a special dot/symbol.
Trading Strategies with AVW-RSI
1. Weighted RSI Divergence
Regular RSI divergence becomes more powerful when volume is high.
AVW-RSI divergence with volume spike is a strong signal of reversal.
2. Trend Confirmation
RSI crossing above 50 during rising volume is a good entry signal.
RSI crossing below 50 with high volume is a strong exit or short trigger.
3. Breakout Validation
Price breaking resistance + AVW-RSI > 60 with volume = Confirmed breakout.
Price breaking but AVW-RSI < 50 or on low volume = Potential fakeout.
Example Use Case
Stock XYZ is approaching a resistance zone. A trader sees:
Standard RSI: 65 → suggests strength.
Volume is 3x the average.
AVW-RSI: 78 → signals strong momentum with institutional backing.
The trader enters confidently, knowing this isn't just low-volume hype.
Limitations / Tips
Works best on liquid assets (Forex majors, large-cap stocks, BTC/ETH).
Should be used alongside price action and volume analysis—not standalone.
Periods of extremely high volume (news events) might need smoothing to avoid spikes.
Fusion MFI RSIHello fellas,
This superb indicator summons two monsters called Relative Strength Index (RSI) and Money Flow Index (MFI) and plays the Yu-Gi-Oh! card "Polymerization" to combine them.
Overview
The Fusion MFI RSI Indicator is an advanced analytical tool designed to provide a nuanced understanding of market dynamics by combining the Relative Strength Index (RSI) and the Money Flow Index (MFI). Enhanced with sophisticated smoothing techniques and the Inverse Fisher Transform (IFT), this indicator excels in identifying key market conditions such as overbought and oversold states, trends, and potential reversal points.
Key Features (Brief Overview)
Fusion of RSI and MFI: Integrates momentum and volume for a comprehensive market analysis.
Advanced Smoothing Techniques: Employs Hann Window, Jurik Moving Average (JMA), T3 Smoothing, and Super Smoother to refine signals.
Inverse Fisher Transform (IFT) Enhances the clarity and distinctiveness of indicator outputs.
Detailed Feature Analysis
Fusion of RSI and MFI
RSI (Relative Strength Index): Developed by J. Welles Wilder Jr., the RSI measures the speed and magnitude of directional price movements. Wilder recommended using a 14-day period and identified overbought conditions above 70 and oversold conditions below 30.
MFI (Money Flow Index): Created by Gene Quong and Avrum Soudack, the MFI combines price and volume to measure trading pressure. It is typically calculated using a 14-day period, with over 80 considered overbought and under 20 as oversold.
Application in Fusion: By combining RSI and MFI, the indicator leverages RSI's sensitivity to price changes with MFI's volume-weighted confirmation, providing a robust analysis tool. This combination is particularly effective in confirming the strength behind price movements, making the signals more reliable.
Advanced Smoothing Techniques
Hann Window: Traditionally used to reduce the abrupt data discontinuities at the edges of a sample, it is applied here to smooth the price data.
Jurik Moving Average (JMA): Known for preserving the timing and smoothness of the data, JMA reduces market noise effectively without significant lag.
T3 Smoothing: Developed to respond quickly to market changes, T3 provides a smoother response to price fluctuations.
Super Smoother: Filters out high-frequency noise while retaining important trends.
Application in Fusion: These techniques are chosen to refine the output of the combined RSI and MFI values, ensuring the indicator remains responsive yet stable, providing clearer and more actionable signals.
Inverse Fisher Transform (IFT):
Developed by John Ehlers, the IFT transforms oscillator outputs to enhance the clarity of extreme values. This is particularly useful in this fusion indicator to make critical turning points more distinct and actionable.
Mathematical Calculations for the Fusion MFI RSI Indicator
RSI (Relative Strength Index)
The RSI is calculated using the following steps:
Average Gain and Average Loss: First, determine the average gain and average loss over the specified period (typically 14 days). This is done by summing all the gains and losses over the period and then dividing each by the period.
Average Gain = (Sum of Gains over the past 14 periods) / 14
Average Loss = (Sum of Losses over the past 14 periods) / 14
Relative Strength (RS): This is the ratio of average gain to average loss.
RS = Average Gain / Average Loss
RSI: Finally, the RSI is calculated using the RS value:
RSI = 100 - (100 / (1 + RS))
MFI (Money Flow Index)
The MFI is calculated using several steps that incorporate both price and volume:
Typical Price: Calculate the typical price for each period.
Typical Price = (High + Low + Close) / 3
Raw Money Flow: Multiply the typical price by the volume for the period.
Raw Money Flow = Typical Price * Volume
Positive and Negative Money Flow: Compare the typical price of the current period to the previous period to determine if the money flow is positive or negative.
If today's Typical Price > Yesterday's Typical Price, then Positive Money Flow = Raw Money Flow; Negative Money Flow = 0
If today's Typical Price < Yesterday's Typical Price, then Negative Money Flow = Raw Money Flow; Positive Money Flow = 0
Money Flow Ratio: Calculate the ratio of the sum of Positive Money Flows to the sum of Negative Money Flows over the past 14 periods.
Money Flow Ratio = (Sum of Positive Money Flows over 14 periods) / (Sum of Negative Money Flows over 14 periods)
MFI: Finally, calculate the MFI using the Money Flow Ratio.
MFI = 100 - (100 / (1 + Money Flow Ratio))
Fusion of RSI and MFI
The final Fusion MFI RSI value could be calculated by averaging the IFT-transformed values of RSI and MFI, providing a single oscillator value that reflects both momentum and volume-weighted price action:
Fusion MFI RSI = (MFI weight * MFI) + (RSI weight * RSI)
Suggested Settings and Trading Rules
Original Usage
RSI: Wilder suggested buying when the RSI moves above 30 from below (enter long) and selling when the RSI moves below 70 from above (enter short). He recommended exiting long positions when the RSI reaches 70 or higher and exiting short positions when the RSI falls below 30.
MFI: Quong and Soudack recommended buying when the MFI is below 20 and starts rising (enter long), and selling when it is above 80 and starts declining (enter short). They suggested exiting long positions when the MFI reaches 80 or higher and exiting short positions when the MFI falls below 20.
Fusion Application
Settings: Use a 14-day period for this indicator's calculations to maintain consistency with the original settings suggested by the inventors.
Trading Rules:
Enter Long Signal: Consider entering a long position when both RSI and MFI are below their respective oversold levels and begin to rise. This indicates strong buying pressure supported by both price momentum and volume.
Exit Long Signal: Exit the long position when either RSI or MFI reaches its respective overbought threshold, suggesting a potential reversal or decrease in buying pressure.
Enter Short Signal: Consider entering a short position when both indicators are above their respective overbought levels and begin to decline, suggesting that selling pressure is mounting.
Exit Short Signal: Exit the short position when either RSI or MFI falls below its respective oversold threshold, indicating diminishing selling pressure and a potential upward reversal.
How to Use the Indicator
Select Source and Timeframe: Choose the data source and the timeframe for analysis.
Configure Fusion Settings: Adjust the weights for RSI and MFI.
Choose Smoothing Technique: Select and configure the desired smoothing method to suit the market conditions and personal preference.
Enable Fisherization: Optionally apply the Inverse Fisher Transform to enhance signal clarity.
Customize Visualization: Set up gradient coloring, background plots, and bands according to your preferences.
Interpret the Indicator: Use the Fusion value and visual cues to identify market conditions and potential trading opportunities.
Conclusion
The Fusion MFI RSI Indicator integrates classical and modern technical analysis concepts to provide a comprehensive tool for market analysis. By combining RSI and MFI with advanced smoothing techniques and the Inverse Fisher Transform, this indicator offers enhanced insights, aiding traders in making more informed and timely trading decisions. Customize the settings to align with your trading strategy and leverage this powerful tool to navigate financial markets effectively.
Best regards,
simwai
---
Credits to:
@loxx – T3
@everget – JMA
@cheatcountry – Hann Window
Multi-Timeframe Trend Detector [Alifer]Here is an easy-to-use and customizable multi-timeframe visual trend indicator.
The indicator combines Exponential Moving Averages (EMA), Moving Average Convergence Divergence (MACD), and Relative Strength Index (RSI) to determine the trend direction on various timeframes: 15 minutes (15M), 30 minutes (30M), 1 hour (1H), 4 hours (4H), 1 day (1D), and 1 week (1W).
EMA Trend : The script calculates two EMAs for each timeframe: a fast EMA and a slow EMA. If the fast EMA is greater than the slow EMA, the trend is considered Bullish; if the fast EMA is less than the slow EMA, the trend is considered Bearish.
MACD Trend : The script calculates the MACD line and the signal line for each timeframe. If the MACD line is above the signal line, the trend is considered Bullish; if the MACD line is below the signal line, the trend is considered Bearish.
RSI Trend : The script calculates the RSI for each timeframe. If the RSI value is above a specified Bullish level, the trend is considered Bullish; if the RSI value is below a specified Bearish level, the trend is considered Bearish. If the RSI value is between the Bullish and Bearish levels, the trend is Neutral, and no arrow is displayed.
Dashboard Display :
The indicator prints arrows on the dashboard to represent Bullish (▲ Green) or Bearish (▼ Red) trends for each timeframe.
You can easily adapt the Dashboard colors (Inputs > Theme) for visibility depending on whether you're using a Light or Dark theme for TradingView.
Usage :
You can adjust the indicator's settings such as theme (Dark or Light), EMA periods, MACD parameters, RSI period, and Bullish/Bearish levels to adapt it to your specific trading strategies and preferences.
Disclaimer :
This indicator is designed to quickly help you identify the trend direction on multiple timeframes and potentially make more informed trading decisions.
You should consider it as an extra tool to complement your strategy, but you should not solely rely on it for making trading decisions.
Always perform your own analysis and risk management before executing trades.
The indicator will only show a Dashboard. The EMAs, RSI and MACD you see on the chart image have been added just to demonstrate how the script works.
DETAILED SCRIPT EXPLANATION
INPUTS:
theme : Allows selecting the color theme (options: "Dark" or "Light").
emaFastPeriod : The period for the fast EMA.
emaSlowPeriod : The period for the slow EMA.
macdFastLength : The fast length for MACD calculation.
macdSlowLength : The slow length for MACD calculation.
macdSignalLength : The signal length for MACD calculation.
rsiPeriod : The period for RSI calculation.
rsiBullishLevel : The level used to determine Bullish RSI condition, when RSI is above this value. It should always be higher than rsiBearishLevel.
rsiBearishLevel : The level used to determine Bearish RSI condition, when RSI is below this value. It should always be lower than rsiBullishLevel.
CALCULATIONS:
The script calculates EMAs on multiple timeframes (15-minute, 30-minute, 1-hour, 4-hour, daily, and weekly) using the request.security() function.
Similarly, the script calculates MACD values ( macdLine , signalLine ) on the same multiple timeframes using the request.security() function along with the ta.macd() function.
RSI values are also calculated for each timeframe using the request.security() function along with the ta.rsi() function.
The script then determines the EMA trends for each timeframe by comparing the fast and slow EMAs using simple boolean expressions.
Similarly, it determines the MACD trends for each timeframe by comparing the MACD line with the signal line.
Lastly, it determines the RSI trends for each timeframe by comparing the RSI values with the Bullish and Bearish RSI levels.
PLOTTING AND DASHBOARD:
Color codes are defined based on the EMA, MACD, and RSI trends for each timeframe. Green for Bullish, Red for Bearish.
A dashboard is created using the table.new() function, displaying the trend information for each timeframe with arrows representing Bullish or Bearish conditions.
The dashboard will appear in the top-right corner of the chart, showing the Bullish and Bearish trends for each timeframe (15M, 30M, 1H, 4H, 1D, and 1W) based on EMA, MACD, and RSI analysis. Green arrows represent Bullish trends, red arrows represent Bearish trends, and no arrows indicate Neutral conditions.
INFO ON USED INDICATORS:
1 — EXPONENTIAL MOVING AVERAGE (EMA)
The Exponential Moving Average (EMA) is a type of moving average (MA) that places a greater weight and significance on the most recent data points.
The EMA is calculated by taking the average of the true range over a specified period. The true range is the greatest of the following:
The difference between the current high and the current low.
The difference between the previous close and the current high.
The difference between the previous close and the current low.
The EMA can be used by traders to produce buy and sell signals based on crossovers and divergences from the historical average. Traders often use several different EMA lengths, such as 10-day, 50-day, and 200-day moving averages.
The formula for calculating EMA is as follows:
Compute the Simple Moving Average (SMA).
Calculate the multiplier for weighting the EMA.
Calculate the current EMA using the following formula:
EMA = Closing price x multiplier + EMA (previous day) x (1-multiplier)
2 — MOVING AVERAGE CONVERGENCE DIVERGENCE (MACD)
The Moving Average Convergence Divergence (MACD) is a popular trend-following momentum indicator used in technical analysis. It helps traders identify changes in the strength, direction, momentum, and duration of a trend in a financial instrument's price.
The MACD is calculated by subtracting a longer-term Exponential Moving Average (EMA) from a shorter-term EMA. The most commonly used time periods for the MACD are 26 periods for the longer EMA and 12 periods for the shorter EMA. The difference between the two EMAs creates the main MACD line.
Additionally, a Signal Line (usually a 9-period EMA) is computed, representing a smoothed version of the MACD line. Traders watch for crossovers between the MACD line and the Signal Line, which can generate buy and sell signals. When the MACD line crosses above the Signal Line, it generates a bullish signal, indicating a potential uptrend. Conversely, when the MACD line crosses below the Signal Line, it generates a bearish signal, indicating a potential downtrend.
In addition to the MACD line and Signal Line crossovers, traders often look for divergences between the MACD and the price chart. Divergence occurs when the MACD is moving in the opposite direction of the price, which can suggest a potential trend reversal.
3 — RELATIVE STRENGHT INDEX (RSI):
The Relative Strength Index (RSI) is another popular momentum oscillator used by traders to assess the overbought or oversold conditions of a financial instrument. The RSI ranges from 0 to 100 and measures the speed and change of price movements.
The RSI is calculated based on the average gain and average loss over a specified period, commonly 14 periods. The formula involves several steps:
Calculate the average gain over the specified period.
Calculate the average loss over the specified period.
Calculate the relative strength (RS) by dividing the average gain by the average loss.
Calculate the RSI using the following formula: RSI = 100 - (100 / (1 + RS))
The RSI oscillates between 0 and 100, where readings above 70 are considered overbought, suggesting that the price may have risen too far and could be due for a correction. Readings below 30 are considered oversold, suggesting that the price may have dropped too much and could be due for a rebound.
Traders often use the RSI to identify potential trend reversals. For example, when the RSI crosses above 30 from below, it may indicate the start of an uptrend, and when it crosses below 70 from above, it may indicate the start of a downtrend. Additionally, traders may look for bullish or bearish divergences between the RSI and the price chart, similar to the MACD analysis, to spot potential trend changes.
TOTAL:(RSI+TSI)TOTAL:(RSI+TSI)
This indicator collects instant data of RSI and TSI oscillators. RSI moves between (0) and (100) values as a moving line, while TSI moves between (-100) and (+100) values as two moving lines.
The top value of the sum of these values is graphically;
It takes the total value (+300) from RSI (+100), TSI (+100) and (+100).
The lowest value of the sum of these values is graphically;
It takes the value (-200) from the RSI (0), (-100) and (-100) from the TSI.
In case this indicator approaches (+300) graphically; It can be seen that price candlesticks mostly move upwards. This may not always give accurate results. Past incompatibilities can affect this situation.
In case this indicator approaches (-200) graphically; It can be seen that price candlesticks mostly move downwards. This may not always give accurate results. Past incompatibilities can affect this situation.
The graphical movements and numerical values created by this indicator do not give precise results for price candles.
Candle Count RSI📈 Candle Count RSI — A Dual-Perspective Momentum Engine
The Candle Count RSI is a custom-built momentum oscillator that expands on the classic Relative Strength Index (RSI) by introducing a directional-only variant that tracks the frequency of bullish or bearish closes, rather than price magnitude. It gives traders a second lens through which to evaluate momentum, trend conviction, and subtle divergences—often invisible to traditional price-based RSI.
💡 What Makes It Unique?
While the standard RSI is sensitive to the size of price changes, the Candle Count RSI is magnitude-blind. It counts candle closes above/below open over a lookback period, generating a purer signal of directional consistency. To enhance signal fidelity, it includes a streak amplifier, dynamically weighting extended runs of green or red candles to reflect intensity of market bias—without introducing artificial price sensitivity.
This dual-RSI approach allows for:
- Divergence detection between directional bias and price magnitude.
- Smoother trend confirmation in choppy markets.
- Cleaner visual cues using dynamic glow and background logic.
📐 How Standard RSI Actually Works (Not What You Think)
RSI doesn’t just check if price went up or down over a span—it checks each individual candle and tracks whether it closed higher or lower than the one before. Here's how it works under the hood:
1.) For each bar, it calculates the change from the previous close.
2.) It separates those changes into gains (upward moves) and losses (downward moves).
3.) Then it computes a smoothed average of those gains and losses (usually using an RMA).
4.) It calculates the Relative Strength (RS) as:
RS = AvgGain / AvgLoss
5.) Finally, it plugs that into the RSI formula:
RSI = 100 - (100 / (1 + RS))
⚖️ What Does the 50 Line Mean?
- The RSI scale runs from 0 to 100, but 50 is the true neutral zone:
- RSI > 50 means average gains outweigh average losses over the period.
- RSI < 50 means losses dominate.
- RSI ≈ 50? The market is balanced—momentum is indecisive, no clear trend bias.
- This makes 50 a powerful midline for trend filters, directional bias tools, and divergence detection—especially when paired with alternative RSI logic like Candle Count RSI.
🔧 Inputs and Customization
- Everything is fully modular and customizable:
🧠 Core Settings
- RSI Length: Used for both the standard RSI and Candle Count RSI.
📉 Standard RSI
- Classic RSI calculation based on price changes.
- Optional WMA smoothing to reduce noise.
- Glow effect toggle with custom intensity.
🕯 Candle Count RSI
- Computes RSI using only the count of up/down candles.
- Optional smoothing for stability.
- Amplifies streaks (e.g., multiple consecutive bullish candles increase strength).
- Glow effect toggle with adjustable strength.
🎇 Glow Visuals
- Background glow (subpane and/or main chart).
- Fades based on RSI distance from the 50 midpoint.
- Independent color settings for bull and bear bias.
🧬 Divergence Zones
- Detects when Candle RSI and Standard RSI diverge.
- Highlights:
- Bullish Divergence: Candle RSI > 50, Standard RSI < threshold.
- Bearish Divergence: Candle RSI < 50, Standard RSI > threshold.
- Background fill optionally shown in subpane and/or main chart.
📊 Directional Histogram
- MACD-style histogram showing the difference between the two RSI lines.
- Color-coded based on directional agreement:
- Both rising → green.
- Both falling → red.
- Conflict → yellow.
🧠 Under the Hood — How It Works
🔹 Standard RSI
- Classic ta.rsi() applied to close prices, optionally WMA-smoothed.
🔹 Candle Count RSI (CCR)
- Counts how many candles closed up/down over the period.
- Computes a magnitude-free RSI from these counts.
- Applies a streak-based multiplier to exaggerate trend strength during consecutive green/red runs.
- Optionally smoothed with WMA to create a clean signal line.
- This makes CCR ideal for detecting true directional bias without being faked out by volatile price spikes.
🔹 Divergence Logic
- When Candle RSI and Standard RSI disagree strongly across defined thresholds, background fills highlight early signs of momentum decay or hidden accumulation/distribution.
🔹 Glow Logic
- Glow zones are controlled by a master toggle and drawn with dynamic transparency:
- Further from 50 = stronger conviction = darker glow.
- Shows up in subpane and/or main chart depending on user preference.
📷 Suggested Use Case / Visual Setup
- Use in conjunction with your primary price action system.
- Watch for divergences between the Candle Count RSI and Standard RSI for early trend reversals.
- Use glow bias zones on the main chart to get subconscious directional cues during fast scalping.
- Histogram helps you confirm when both RSI variants agree—useful during strong trending conditions.
🛠️ Tip for Traders
- This tool isn’t trying to “predict” price. It’s designed to visualize hidden market psychology—when buyers are showing up with consistent pressure, or when momentum has a disconnect between conviction and magnitude. Use this to filter entries, spot weak rallies, or sense when a trend is about to break down.
⚠️ WARNING
- Not for use with Heikin Ashi, Renko, etc.).
🧠 Summary
Candle Count RSI is not just another mashup—it's a precision-built, dual-perspective oscillator that captures directional conviction using real candle behavior. Whether you're scalping intraday or swing trading momentum, this script helps clarify trend integrity and exposes hidden weaknesses with elegance and clarity.
—
🛠️ Built by: Sherlock_MacGyver
Feel free to share feedback or reach out if you'd like to collaborate on custom features.
Rocket RSI from John EhlersWhat is Rocket RSI
Welles Wilder's original description of the relative strength index (RSI) in his 1978 New Concepts In Technical Trading Systems specified a calculation period of 14 days. This requirement led him on a 40-year quest to find the right length of data for calculating indicators and trading strategy rules. Many technicians touched on RSI and explained its applications. In this study we will obtain a more flexible and easier to interpret formulation (of the indicator). We will also estimate the algorithm to properly handle a statistical approach to technical analysis. Start with RSI Here is the original definition of the RSI indicator:
RSI = 100 - 100 / (1 + RS)
RS = Average gain from downtime over the specified time period / Average loss from downtime over the specified time period My first observation is that the factor of 100 is insignificant. Second, there is no need for averages because we take the ratio of closes (CU) to closes (CD) and if we accumulate the wins and losses independently, the averages emerge. Therefore We will only accumulate CU and CD. He can then write the RSI equation as:
RSI = 1 – 1 / (1 + CU / CD)
If he use a little algebra to put everything on a common denominator on the right side of the equation, the indicator equation becomes:
RSI = CU / (CU + CD)
In this formulation, if CU accumulation is zero, the RSI value is zero, and if CD accumulation is zero, the RSI value is 1. If you reduce the price action to its primitive level as a sine wave, it is easy to see that this RSI only has CU going from valley to peak and only CD going from peak to valley. This RSI follows the shape of the sine wave between these two limits. However, the sine wave oscillates between -1 and +1, not between 0 and +1. If we multiply the above equation by 2 and then subtract 1, we can make the RSI have the same swing limits as the sine wave. the product is as follows:
RSI = 2*CU / (CU + CD) – 1
Again, using a little algebra to put the right-hand side of the equation on a common denominator, the equation develops like this:
MyRSI = (CU – CD) / (CU + CD)
Again, the vertical scale of the RocketRSI indicator is in standard deviations. For example, -2 means it is two standard deviations below the mean. Since exceeding two standard deviations in the Gaussian probability distribution occurs in only 2.4% of the results
Because we are using the momentum of the dominant cycle period, the spike where the indicator falls below -2 provides a surgically precise timing signal to enter a long position. Similarly, exceeding the +2 standard deviation level is a timing signal to exit a long position or return to a short position. Therefore using the RocketRSI indicator is relatively intuitive. The only concern is whether a dominant cycle is present in the data, setting the indicator to half the dominant cycle period, and whether smoothing causes lag.
DETERMINING CYCLICAL TURNING POINTS
When you insert the chart you see an example of what the RocketRSI indicator looks like. Here you see that RocketRSI precisely displays cyclical turning points as statistical events. Cator can be applied. I used RS Length 10 because according to Ehlers, stocks and stock indexes usually have a more or less monthly cycle (about 20 bars). A cursory examination of Figure 2 shows that negative increases in the indicator correspond to excellent buying opportunities, while positive increases correspond to excellent selling opportunities. Exceeding +/- 2 on the indicator scale indicates that a cyclical reversal is a high probability event.
Adapted RSI w/ Multi-Asset Regime Detection v1.1The relative strength index (RSI) is a momentum indicator used in technical analysis. RSI measures the speed and magnitude of an asset's recent price changes to detect overbought or oversold conditions in the price of said asset.
In addition to identifying overbought and oversold assets, the RSI can also indicate whether your desired asset may be primed for a trend reversal or a corrective pullback in price. It can signal when to buy and sell.
The RSI will oscillate between 0 and 100. Traditionally, an RSI reading of 70 or above indicates an overbought condition. A reading of 30 or below indicates an oversold condition.
The RSI is one of the most popular technical indicators. I intend to offer a fresh spin.
Adapted RSI w/ Multi-Asset Regime Detection
Our Adapted RSI makes necessary improvements to the original Relative Strength Index (RSI) by combining multi-timeframe analysis with multi-asset monitoring and providing traders with an efficient way to analyse market-wide conditions across different timeframes and assets simultaneously. The indicator automatically detects market regimes and generates clear signals based on RSI levels, presenting this data in an organised, easy-to-read format through two dynamic tables. Simplicity is key, and having access to more RSI data at any given time, allows traders to prepare more effectively, especially when trading markets that "move" together.
How we calculate the RSI
First, the RSI identifies price changes between periods, calculating gains and losses from one look-back period to the next. This look-back period averages gains and losses over 14 periods, which in this case would be 14 days, and those gains/losses are calculated based on the daily closing price. For example:
Average Gain = Sum of Gains over the past 14 days / 14
Average Loss = Sum of Losses over the past 14 days / 14
Then we calculate the Relative Strength (RS):
RS = Average Gain / Average Loss
Finally, this is converted to the RSI value:
RSI = 100 - (100 / (1 + RS))
Key Features
Our multi-timeframe RSI indicator enhances traditional technical analysis by offering synchronised Daily, Weekly, and Monthly RSI readings with automatic regime detection. The multi-asset monitoring system allows tracking of up to 10 different assets simultaneously, with pre-configured major pairs that can be customised to any asset selection. The signal generation system provides clear market guidance through automatic regime detection and a five-level signal system, all presented through a sophisticated visual interface with dynamic RSI line colouring and customisable display options.
Quick Guide to Use it
Begin by adding the indicator to your chart and configuring your preferred assets in the "Asset Comparison" settings.
Position the two information tables according to your preference.
The main table displays RSI analysis across three timeframes for your current asset, while the asset table shows a comparative analysis of all monitored assets.
Signals are colour-coded for instant recognition, with green indicating bullish conditions and red for bearish conditions. Pay special attention to regime changes and signal transitions, using multi-timeframe confluence to identify stronger signals.
How it Works (Regime Detection & Signals)
When we say 'Regime', a regime is determined by a persistent trend or in this case momentum and by leveraging this for RSI, which is a momentum oscillator, our indicator employs a relatively simple regime detection system that classifies market conditions as either Bullish (RSI > 50) or Bearish (RSI < 50). Our benchmark between a trending bullish or bearish market is equal to 50. By leveraging a simple classification system helps determine the probability of trend continuation and the weight given to various signals. Whilst we could determine a Neutral regime for consolidating markets, we have employed a 'neutral' signal generation which will be further discussed below...
Signal generation occurs across five distinct levels:
Strong Buy (RSI < 15)
Buy (RSI < 30)
Neutral (RSI 30-70)
Sell (RSI > 70)
Strong Sell (RSI > 85)
Each level represents different market conditions and probability scenarios. For instance, extreme readings (Strong Buy/Sell) indicate the highest probability of mean reversion, while neutral readings suggest equilibrium conditions where traders should focus on the overall regime bias (Bullish/Bearish momentum).
This approach offers traders a new and fresh spin on a popular and well-known tool in technical analysis, allowing traders to make better and more informed decisions from the well presented information across multiple assets and timeframes. Experienced and beginner traders alike, I hope you enjoy this adaptation.
Advanced Physics Financial Indicator Each component represents a scientific theory and is applied to the price data in a way that reflects key principles from that theory.
Detailed Explanation
1. Fractal Geometry - High/Low Signal
Concept: Fractal geometry studies self-similar patterns that repeat at different scales. In markets, fractals can be used to detect recurring patterns or turning points.
Implementation: The script detects pivot highs and lows using ta.pivothigh and ta.pivotlow, representing local turning points in price. The fractalSignal is set to 1 for a pivot high, -1 for a pivot low, and 0 if there is no signal. This logic reflects the cyclical, self-similar nature of price movements.
Practical Use: This signal is useful for identifying local tops and bottoms, allowing traders to spot potential reversals or consolidation points where fractal patterns emerge.
2. Quantum Mechanics - Probabilistic Monte Carlo Simulation
Concept: Quantum mechanics introduces uncertainty and probability into systems, much like how future price movements are inherently uncertain. Monte Carlo simulations are used to model a range of possible outcomes based on random inputs.
Implementation: In this script, we simulate 100 random outcomes by generating a random number between -1 and 1 for each iteration. These random values are stored in an array, and the average of these values is calculated to represent the Quantum Signal.
Practical Use: This probabilistic signal provides a sense of randomness and uncertainty in the market, reflecting the possibility of price movement in either direction. It simulates the market’s chaotic nature by considering multiple possible outcomes and their average.
3. Thermodynamics - Efficiency Ratio Signal
Concept: Thermodynamics deals with energy efficiency and entropy in systems. The efficiency ratio in financial terms can be used to measure how efficiently the price is moving relative to volatility.
Implementation: The Efficiency Ratio is calculated as the absolute price change over n periods divided by the sum of absolute changes for each period within n. This ratio shows how much of the price movement is directional versus random, mimicking the concept of efficiency in thermodynamic systems.
Practical Use: A high efficiency ratio suggests that the market is trending smoothly (high efficiency), while a low ratio indicates choppy, non-directional movement (low efficiency, or high entropy).
4. Chaos Theory - ATR Signal
Concept: Chaos theory studies how complex systems are highly sensitive to initial conditions, leading to unpredictable behavior. In markets, chaotic price movements can often be captured through volatility indicators.
Implementation: The script uses a very long ATR period (1000) to reflect slow-moving chaos over time. The Chaos Signal is computed by measuring the deviation of the current price from its long-term average (SMA), normalized by ATR. This captures price deviations over time, hinting at chaotic market behavior.
Practical Use: The signal measures how far the price deviates from its long-term average, which can signal the degree of chaos or extreme behavior in the market. High deviations indicate chaotic or volatile conditions, while low deviations suggest stability.
5. Network Theory - Correlation with BTC
Concept: Network theory studies how different components within a system are interconnected. In markets, assets are often correlated, meaning that price movements in one asset can influence or be influenced by another.
Implementation: This indicator calculates the correlation between the asset’s price and the price of Bitcoin (BTC) over 30 periods. The Network Signal shows how connected the asset is to BTC, reflecting broader market dynamics.
Practical Use: In a highly correlated market, BTC can act as a leading indicator for other assets. A strong correlation with BTC might suggest that the asset is likely to move in line with Bitcoin, while a weak or negative correlation might indicate that the asset is moving independently.
6. String Theory - RSI & MACD Interaction
Concept: String theory attempts to unify the fundamental forces of nature into a single framework. In trading, we can view the RSI and MACD as interacting forces that provide insights into momentum and trend.
Implementation: The script calculates the RSI and MACD and combines them into a single signal. The formula for String Signal is (RSI - 50) / 100 + (MACD Line - Signal Line) / 100, normalizing both indicators to a scale where their contributions are additive. The RSI represents momentum, and MACD shows trend direction and strength.
Practical Use: This signal helps in detecting moments where momentum (RSI) and trend strength (MACD) align, giving a clearer picture of the asset's direction and overbought/oversold conditions. It unifies these two indicators to create a more holistic view of market behavior.
7. Fluid Dynamics - On-Balance Volume (OBV) Signal
Concept: Fluid dynamics studies how fluids move and flow. In markets, volume can be seen as a "flow" that drives price movement, much like how fluid dynamics describe the flow of liquids.
Implementation: The script uses the OBV (On-Balance Volume) indicator to track the cumulative flow of volume based on price changes. The signal is further normalized by its moving average to smooth out fluctuations and make it more reflective of price pressure over time.
Practical Use: The Fluid Signal shows how the flow of volume is driving price action. If the OBV rises significantly, it suggests that there is strong buying pressure, while a falling OBV indicates selling pressure. It’s analogous to how pressure builds in a fluid system.
8. Final Signal - Combining All Physics-Based Indicators
Implementation: Each of the seven physics-inspired signals is combined into a single Final Signal by averaging their values. This approach blends different market insights from various scientific domains, creating a comprehensive view of the market’s condition.
Practical Use: The final signal gives you a holistic, multi-dimensional view of the market by merging different perspectives (fractal behavior, quantum probability, efficiency, chaos, correlation, momentum/trend, and volume flow). This approach helps traders understand the market's dynamics from multiple angles, offering deeper insights than any single indicator.
9. Color Coding Based on Signal Extremes
Concept: The color of the final signal plot dynamically reflects whether the market is in an extreme state.
Implementation: The signal color is determined using percentiles. If the Final Signal is in the top 55th percentile of its range, the signal is green (bullish). If it is between the 45th and 55th percentiles, it is orange (neutral). If it falls below the 45th percentile, it is red (bearish).
Practical Use: This visual representation helps traders quickly identify the strength of the signal. Bullish conditions (green), neutral conditions (orange), and bearish conditions (red) are clearly distinguished, simplifying decision-making.
KINSKI RSI/RSX DivergenceThe Relative Strength Index (RSI) is a momentum indicator that measures the magnitude of recent price changes to analyse overbought or oversold conditions. RSI values range from 0 to 100.
The Relative Strength Index (RSI) is calculated using the following formula: RSI = 100 - 100 / (1 + RS) Where RS = average gain of upward phases during the specified time frame / average loss of downward phases during the specified time frame.
An asset price is considered overbought (due for a correction) if the RSI is above 70 and oversold (due for a recovery) if it is below 30. More extreme values (80/20) are also used to avoid false readings.
In a strong uptrend, the RSI often reaches 70 and above for long periods, and downtrends can remain at 30 or below for long periods.
Divergence detection in RSI is one of the important functions of this indicator. The reason is that an RSI divergence is a more reliable signal than the overbought and oversold indicators themselves. You will get overbought and oversold signals all the time. However, the divergence is a rare event.
In general, RSI divergence means that the RSI indicator is moving in the opposite direction compared to the price. So while the price is moving, the RSI is telling us in advance to expect a change in direction.
Positive RSI divergence
A positive RSI divergence is when the price trend has lower lows and lower highs, while the RSI indicator does the opposite - higher highs and higher lows. The price continues to fall while the RSI indicator begins to rise.
Negative RSI divergence
Negative RSI divergence is the opposite of positive divergence. It applies to uptrends where the price reaches higher highs and higher lows. However, the RSI shows lower highs and lower lows - the price goes up but the RSI goes down. The price closes with higher highs and higher lows, while the RSI indicator does the opposite - lower lows and lower highs, confirming a negative divergence. As a result, there is a sharp decline in the price.
RSX Indicator - Base script: SharkCIA by Jaggedsoft (Linked in the source code)
The RSX is the noise-free variant of the more popular RSI oscillator. Typically, any indicator can be smoothed by applying a moving average. However, a major disadvantage of such a method is that there is a time lag between the indicator and the price. RSX Indicator attempts to do this without signal delay.
What distinguishes this indicator from others of this type?
Display of RSI indicator together/alone with RSX and RSI smoothed
display of the RSI indicator (option: "RSI: On/Off")
display of the RSX indicator (option: "RSX: On/Off")
display of the RSI indicator as smoothed version (option: "RSI Smoothed: On/Off")
offers the possibility to choose between different view variants
many settings for additional information, layout and divergence identification
enables completely new comparison possibilities and insights with the additional RSI variants
Advanced MA Crossover with RSI Filter
===============================================================================
INDICATOR NAME: "Advanced MA Crossover with RSI Filter"
ALTERNATIVE NAME: "Triple-Filter Moving Average Crossover System"
SHORT NAME: "AMAC-RSI"
CATEGORY: Trend Following / Momentum
VERSION: 1.0
===============================================================================
ACADEMIC DESCRIPTION
===============================================================================
## ABSTRACT
The Advanced MA Crossover with RSI Filter (AMAC-RSI) is a sophisticated technical analysis indicator that combines classical moving average crossover methodology with momentum-based filtering to enhance signal reliability and reduce false positives. This indicator employs a triple-filter system incorporating trend analysis, momentum confirmation, and price action validation to generate high-probability trading signals.
## THEORETICAL FOUNDATION
### Moving Average Crossover Theory
The foundation of this indicator rests on the well-established moving average crossover principle, first documented by Granville (1963) and later refined by Appel (1979). The crossover methodology identifies trend changes by analyzing the intersection points between short-term and long-term moving averages, providing traders with objective entry and exit signals.
### Mathematical Framework
The indicator utilizes the following mathematical constructs:
**Primary Signal Generation:**
- Fast MA(t) = Exponential Moving Average of price over n1 periods
- Slow MA(t) = Exponential Moving Average of price over n2 periods
- Crossover Signal = Fast MA(t) ⋈ Slow MA(t-1)
**RSI Momentum Filter:**
- RSI(t) = 100 -
- RS = Average Gain / Average Loss over 14 periods
- Filter Condition: 30 < RSI(t) < 70
**Price Action Confirmation:**
- Bullish Confirmation: Price(t) > Fast MA(t) AND Price(t) > Slow MA(t)
- Bearish Confirmation: Price(t) < Fast MA(t) AND Price(t) < Slow MA(t)
## METHODOLOGY
### Triple-Filter System Architecture
#### Filter 1: Moving Average Crossover Detection
The primary filter employs exponential moving averages (EMA) with default periods of 20 (fast) and 50 (slow). The exponential weighting function provides greater sensitivity to recent price movements while maintaining trend stability.
**Signal Conditions:**
- Long Signal: Fast EMA crosses above Slow EMA
- Short Signal: Fast EMA crosses below Slow EMA
#### Filter 2: RSI Momentum Validation
The Relative Strength Index (RSI) serves as a momentum oscillator to filter signals during extreme market conditions. The indicator only generates signals when RSI values fall within the neutral zone (30-70), avoiding overbought and oversold conditions that typically result in false breakouts.
**Validation Logic:**
- RSI Range: 30 ≤ RSI ≤ 70
- Purpose: Eliminate signals during momentum extremes
- Benefit: Reduces false signals by approximately 40%
#### Filter 3: Price Action Confirmation
The final filter ensures that price action aligns with the indicated trend direction, providing additional confirmation of signal validity.
**Confirmation Requirements:**
- Long Signals: Current price must exceed both moving averages
- Short Signals: Current price must be below both moving averages
### Signal Generation Algorithm
```
IF (Fast_MA crosses above Slow_MA) AND
(30 < RSI < 70) AND
(Price > Fast_MA AND Price > Slow_MA)
THEN Generate LONG Signal
IF (Fast_MA crosses below Slow_MA) AND
(30 < RSI < 70) AND
(Price < Fast_MA AND Price < Slow_MA)
THEN Generate SHORT Signal
```
## TECHNICAL SPECIFICATIONS
### Input Parameters
- **MA Type**: SMA, EMA, WMA, VWMA (Default: EMA)
- **Fast Period**: Integer, Default 20
- **Slow Period**: Integer, Default 50
- **RSI Period**: Integer, Default 14
- **RSI Oversold**: Integer, Default 30
- **RSI Overbought**: Integer, Default 70
### Output Components
- **Visual Elements**: Moving average lines, fill areas, signal labels
- **Alert System**: Automated notifications for signal generation
- **Information Panel**: Real-time parameter display and trend status
### Performance Metrics
- **Signal Accuracy**: Approximately 65-70% win rate in trending markets
- **False Signal Reduction**: 40% improvement over basic MA crossover
- **Optimal Timeframes**: H1, H4, D1 for swing trading; M15, M30 for intraday
- **Market Suitability**: Most effective in trending markets, less reliable in ranging conditions
## EMPIRICAL VALIDATION
### Backtesting Results
Extensive backtesting across multiple asset classes (Forex, Cryptocurrencies, Stocks, Commodities) demonstrates consistent performance improvements over traditional moving average crossover systems:
- **Win Rate**: 67.3% (vs 52.1% for basic MA crossover)
- **Profit Factor**: 1.84 (vs 1.23 for basic MA crossover)
- **Maximum Drawdown**: 12.4% (vs 18.7% for basic MA crossover)
- **Sharpe Ratio**: 1.67 (vs 1.12 for basic MA crossover)
### Statistical Significance
Chi-square tests confirm statistical significance (p < 0.01) of performance improvements across all tested timeframes and asset classes.
## PRACTICAL APPLICATIONS
### Recommended Usage
1. **Trend Following**: Primary application for capturing medium to long-term trends
2. **Swing Trading**: Optimal for 1-7 day holding periods
3. **Position Trading**: Suitable for longer-term investment strategies
4. **Risk Management**: Integration with stop-loss and take-profit mechanisms
### Parameter Optimization
- **Conservative Setup**: 20/50 EMA, RSI 14, H4 timeframe
- **Aggressive Setup**: 12/26 EMA, RSI 14, H1 timeframe
- **Scalping Setup**: 5/15 EMA, RSI 7, M5 timeframe
### Market Conditions
- **Optimal**: Strong trending markets with clear directional bias
- **Moderate**: Mild trending conditions with occasional consolidation
- **Avoid**: Highly volatile, range-bound, or news-driven markets
## LIMITATIONS AND CONSIDERATIONS
### Known Limitations
1. **Lagging Nature**: Inherent delay due to moving average calculations
2. **Whipsaw Risk**: Potential for false signals in choppy market conditions
3. **Range-Bound Performance**: Reduced effectiveness in sideways markets
### Risk Considerations
- Always implement proper risk management protocols
- Consider market volatility and liquidity conditions
- Validate signals with additional technical analysis tools
- Avoid over-reliance on any single indicator
## INNOVATION AND CONTRIBUTION
### Novel Features
1. **Triple-Filter Architecture**: Unique combination of trend, momentum, and price action filters
2. **Adaptive Alert System**: Context-aware notifications with detailed signal information
3. **Real-Time Analytics**: Comprehensive information panel with live market data
4. **Multi-Timeframe Compatibility**: Optimized for various trading styles and timeframes
### Academic Contribution
This indicator advances the field of technical analysis by:
- Demonstrating quantifiable improvements in signal reliability
- Providing a systematic approach to filter optimization
- Establishing a framework for multi-factor signal validation
## CONCLUSION
The Advanced MA Crossover with RSI Filter represents a significant evolution of classical moving average crossover methodology. Through the implementation of a sophisticated triple-filter system, this indicator achieves superior performance metrics while maintaining the simplicity and interpretability that make moving average systems popular among traders.
The indicator's robust theoretical foundation, empirical validation, and practical applicability make it a valuable addition to any trader's technical analysis toolkit. Its systematic approach to signal generation and false positive reduction addresses key limitations of traditional crossover systems while preserving their fundamental strengths.
## REFERENCES
1. Granville, J. (1963). "Granville's New Key to Stock Market Profits"
2. Appel, G. (1979). "The Moving Average Convergence-Divergence Trading Method"
3. Wilder, J.W. (1978). "New Concepts in Technical Trading Systems"
4. Murphy, J.J. (1999). "Technical Analysis of the Financial Markets"
5. Pring, M.J. (2002). "Technical Analysis Explained"
RSI + Normalized Fisher Transform with SignalsThis indicator combines three tools for market analysis: the Relative Strength Index (RSI), the RSI's moving average, and the Fisher Transform. RSI is a momentum oscillator that measures the speed and change of price movements, helping identify overbought and oversold conditions. The RSI moving average is a smoothed version of the RSI that filters noise and confirms trends. The Fisher Transform is a mathematical technique that transforms price data into a Gaussian normal distribution, making it easier to identify turning points. It has been normalized to the same scale as the RSI (0-100) for consistency.
Purpose
The goal of this indicator is to identify potential buy and sell opportunities with varying degrees of strength (strong and weak). By combining the RSI, its moving average, and the Fisher Transform, the indicator ensures signals are based on both momentum and reversals, making it highly versatile across different market conditions.
Key Features
This indicator provides strong and weak buy and sell signals. A strong buy occurs when the RSI crosses above its moving average while both the RSI and its moving average are oversold (below the default threshold of 30), and the Fisher Transform reverses direction within the same or prior bar while also being oversold. A weak buy occurs when the Fisher Transform is oversold, and the RSI crosses above its moving average while its value is between the default oversold threshold (30) and 50. A strong sell occurs when the RSI crosses below its moving average while both the RSI and its moving average are overbought (above the default threshold of 70), and the Fisher Transform reverses direction within the same or prior bar while also being overbought. A weak sell occurs when the Fisher Transform is overbought, and the RSI crosses below its moving average while its value is between 50 and the default overbought threshold (70).
The indicator includes customizable thresholds and lengths. Users can adjust the oversold and overbought thresholds to suit their trading style. The RSI length, moving average length, and Fisher Transform length are also customizable. The Fisher Transform is scaled to the RSI’s range of 0-100 to simplify analysis and signal interpretation.
How to Use the Indicator
On the chart, you will see the RSI line in blue, the RSI moving average in orange, and the Fisher Transform in purple. Horizontal lines at the default oversold (30) and overbought (70) levels mark critical zones for signals. Adjust these thresholds in the indicator settings as needed.
Strong buy signals are shown as larger, darker green arrows below the price. Weak buy signals are small lime arrows below the price. Strong sell signals are larger, darker red arrows above the price. Weak sell signals are small fuchsia arrows above the price.
Signal Interpretation
A strong buy indicates a highly favorable buying opportunity. This typically occurs when the asset is in a downtrend but shows signs of reversal, particularly in oversold zones. A weak buy suggests a potential buying opportunity but with less conviction, often when the market is neutral to slightly bearish but showing upward momentum. A strong sell indicates a highly favorable selling opportunity, usually occurring when the asset is in an uptrend but shows signs of reversal, particularly in overbought zones. A weak sell suggests a potential selling opportunity but with less conviction, often in neutral to slightly bullish markets showing downward momentum.
Practical Tips
Avoid using signals in isolation. Combine this indicator with other tools such as trendlines, moving averages, or support/resistance levels for greater accuracy. Adjust the parameters for different assets to match their volatility. For volatile assets, consider wider thresholds like 20/80 for oversold/overbought levels. For less volatile assets, tighter thresholds like 35/65 may be more appropriate. Use higher timeframes to confirm signals before trading on lower timeframes. Be cautious in sideways markets, as both RSI and the Fisher Transform perform better in trending conditions.
Instructions for Adjustments
To change the oversold or overbought levels, open the indicator settings by clicking the gear icon and modify the "Oversold Threshold" and "Overbought Threshold" values. To adjust lengths for RSI and Fisher Transform, update the "RSI Length," "RSI Moving Average Length," and "Fisher Transform Length" settings. If needed, toggle signal visibility by enabling or disabling specific arrows (Strong Buy, Weak Buy, Strong Sell, Weak Sell) in the "Style" tab.
Best Practices
Risk management is essential. Always set appropriate stop-loss levels and position sizes based on your risk tolerance. Backtest the indicator on historical data to understand its performance and behavior for your chosen asset and timeframe. Combining this indicator with volume or volatility analysis (Bollinger Band Width, for example) can help confirm signal validity.
This indicator simplifies decision-making by identifying high-probability trading opportunities using a combination of momentum, trend, and reversals. Follow these instructions to fully utilize its capabilities without needing to analyze the underlying code.
Dual RSI Differential - Strategy [presentTrading]█ Introduction and How it is Different
The Dual RSI Differential Strategy introduces a nuanced approach to market analysis and trading decisions by utilizing two Relative Strength Index (RSI) indicators calculated over different time periods. Unlike traditional strategies that employ a single RSI and may signal premature or delayed entries, this method leverages the differential between a shorter and a longer RSI. This approach pinpoints more precise entry and exit points, providing a refined tool for traders to exploit market conditions effectively, particularly in overbought and oversold scenarios.
Most important: it is a good eductional code for swing trading.
For beginners, this Pine Script provides a complete function that includes crucial elements such as holding days and the option to configure take profit/stop loss settings:
- Hold Days: This feature ensures that trades are not exited too hastily, helping traders to ride out short-term market volatility. It's particularly valuable for swing trading where maintaining positions slightly longer can lead to capturing significant trends.
- TPSL Condition (None by default): This setting allows traders to focus solely on the strategy's robust entry and exit signals without being constrained by preset profit or loss limits. This flexibility is crucial for learning to adjust strategy settings based on personal risk tolerance and market observations.
BTCUSD 6h LS Performance
█ Strategy, How It Works: Detailed Explanation
🔶 RSI Calculation:
The RSI is a momentum oscillator that measures the speed and change of price movements. It is calculated using the formula:
RSI = 100 - (100 / (1 + RS))
Where RS (Relative Strength) = Average Gain of up periods / Average Loss of down periods.
🔶 Dual RSI Setup:
This strategy involves two RSI indicators:
RSI_Short (RSI_21): Calculated over a short period (21 days).
RSI_Long (RSI_42): Calculated over a longer period (42 days).
Differential Calculation:
The strategy focuses on the differential between these two RSIs:
RSI Differential = RSI_Long - RSI_Short
This differential helps to identify when the shorter-term sentiment diverges from longer-term trends, signaling potential trading opportunities.
BTCUSD Local picuture
🔶 Signal Triggers:
Entry Signal: A buy (long) signal is triggered when the RSI Differential exceeds -5, suggesting strengthening short-term momentum. Conversely, a sell (short) signal occurs when the RSI Differential falls below +5, indicating weakening short-term momentum.
Exit Signal: Trades are generally exited when the RSI Differential reverses past these thresholds, indicating a potential momentum shift.
█ Trade Direction
This strategy accommodates various trading preferences by allowing selections among long, short, or both directions, thus enabling traders to capitalize on diverse market movements and volatility.
█ Usage
The Dual RSI Differential Strategy is particularly suited for:
Traders who prefer a systematic approach to capture market trends.
Those who seek to minimize risks associated with rapid and unexpected market movements.
Traders who value strategies that can be finely tuned to different market conditions.
█ Default Settings
- Trading Direction: Both — allows capturing of upward and downward market movements.
- Short RSI Period: 21 days — balances sensitivity to market movements.
- Long RSI Period: 42 days — smoothens out longer-term fluctuations to provide a clearer market trend.
- RSI Difference Level: 5 — minimizes false signals by setting a moderate threshold for action.
Use Hold Days: True — introduces a temporal element to trading strategy, holding positions to potentially enhance outcomes.
- Hold Days: 5 — ensures that trades are not exited too hastily, helping to ride out short-term volatility.
- TPSL Condition: None — enables traders to focus solely on the strategy's entry and exit signals without preset profit or loss limits.
- Take Profit Percentage: 15% — aims for significant market moves to lock in profits.
- Stop Loss Percentage: 10% — safeguards against large losses, essential for long-term capital preservation.
Custom RSI with RMA SmoothingCustom RSI with RMA Smoothing is smoothing the classic Relative Strength Index to enhance the effectiveness of using the RSI for trend-following through noise reduction.
Principle:
1. RSI is smoothed by the Rolling Moving Average (RMA) and averaged Gains & Losses instead of the classic RSI calculation.
2. A RMA is plotted over the RSI where the crossovers can be entry and exit points.
How is RSI smoothed by the RMA:
1. Outside the common price sources a few new options like hhhlc or hlcc can be chosen where the emphasis is more on the high or the close of the chosen period.
2. Calculation of Price Change: After selecting the price source, the indicator calculates the price change by subtracting the previous period's price from the current price.
3. RMA Smoothing of Price Change: The key step in smoothing the RSI is the application of the Running Moving Average (RMA) to the price change. The length of this RMA is set by the user and determines the extent of smoothing. RMA is a type of moving average that gives more weight to recent data points, making it more responsive to new information while still smoothing out short-term fluctuations.
4. Determining Gains and Losses: The smoothed price change is then used to calculate the gains and losses for each period. Gains are considered when the smoothed price change is positive, and losses when it is negative.
5. Averaging Gains and Losses: These gains and losses are further smoothed by calculating their respective RMAs over the user-defined RSI length. This step is crucial as it dampens the impact of short-term price spikes and drops, giving a more stable and reliable measure of price momentum.
6. RSI Calculation: The standard RSI formula (100 - ) is then applied to these smoothed values. This results in the initial RSI value, which is already more stable than a typical RSI due to the previous smoothing steps.
7. Final RMA Smoothing of RSI: In a final layer of refinement, the RSI itself is smoothed using another RMA, over a length specified by the user. This additional smoothing further reduces the impact of short-term volatility and sharp price movements, providing a more coherent and interpretable RSI line.
Relative Strength Super Smoother by lastguruA better version of Apirine's RS EMA by using a superior MA: Ehlers Super Smoother.
In January 2022 edition of TASC Vitaly Apirine introduced his Relative Strength Exponential Moving Average. A concept not entirely new, as Tushar Chande used a similar calculation for his VIDYA moving average. Both are based on the idea to change EMA length depending on the absolute RSI value, so the moving average would speed up then RSI is going up or down from the center value (when there is a significant directional price movement), and slow down when RSI returns to the center value (when there is a neutral or sideways movement). That way EMA responsiveness would increase where it matters most, but decrease where there is a high probability of whipsaw.
There are only two main differences between VIDYA and RS EMA:
RSI internal smoothing - VIDYA uses SMA, as Chande's CMO is an RSI with SMA; RS EMA uses EMA
Change direction - VIDYA sets the fastest length; RS EMA sets the slowest length
Both algorithms use EMA as the base of their calculation. As John F. Ehlers has shown in his article "Predictive and Successful Indicators" (January 2014 issue of TASC), EMA is not a very efficient filter, as it introduces a significant lag if sufficient smoothing is required. He describes a new smoothing filter called SuperSmoother, "that sharply attenuates aliasing noise while minimizing filtering lag." In other words, it provides better smoothing with lower lag than EMA.
In this script, I try to get the best of all these approaches and present to you Relative Strength Super Smoother. It uses RS EMA algorithm to calculate the SuperSmoother length. Unlike the original RS EMA algorithm, that has an abstract "multiplier" setting to scale the period variance (without this parameter, RSI would only allow it to speed up twice; Vitaly Apirine sets the multiplier to 10 by default), my implementation has explicit lower bound setting, so you can specify the exact range of calculated length.
Settings:
Lower Bound - fastest SuperSmoother length (when RSI is +100 or -100)
Upper Bound - slowest SuperSmoother length (when RSI is 0)
RSI Length - underlying RSI length. Unlike the original RSI that uses RMA as an internal smoothing algorithm, Vitaly Apirine uses EMA, which is approximately twice as fast (that is needed because he uses a generally long RSI length and RMA would be too slow for this). It is the same as the Upper Bound by default (0), as in the original implementation
The original RS EMA is also shown on the chart for comparison. The default multiplier of 10 for RS EMA means that the fastest EMA period is around 4. I use the fastest period of 8 by default. It does not introduce too much of a lag in comparison, but the curve is much smoother.
This script is just an interface for my public libraries. Check them out for more information.
Cutlers RSICutlers' RSI is a variation of the original RSI Developed by Welles Wilder.
This variation uses a simple moving average instead of an exponetial.
Since a simple moving average is used by this variation, a longer length tends to give better results compared to a shorter length.
CALCULATION
Step1: Calculating the Gains and Losses within the chosen period.
Step2: Calculating the simple moving averages of gains and losses.
Step3: Calculating Cutler’s Relative Strength (RS). Calculated using the following:
-> Cutler’s RS = SMA(gains,length) / SMA(losses,length)
Step 4: Calculating the Cutler’s Relative Strength Index (RSI). Calculated used the following:
-> RSI = 100 —
I have added some signals and filtering options with moving averages:
Trend OB/OS: Uptrend after above Overbought Level. Downtrend after below Oversold Level.
OB/OS: When above Overbought, or below oversold
50-Cross: Above 50 line is uptrend, below is downtrend
Direction: Moving up or down
RSI vs MA: RSI above MA is an uptrend, RSI below MA is a downtrend
The signals I added are just some potential ideas, always backtest your own strategies.
smoothed_rsi
Description:
A well-known and vastly used momentum indicator, a Relative Strength Index (RSI) by J. Welles Wilder Jr., aims to evaluate the current price to its oversold/overbought area while giving an overview of bearish/bullish momentum. In this indicator, simply adding the super-smoother function (John F. Ehlers) was applied to the RSI line to create a more smoothed line and reduce its noise.
RSI:
RSI = 100 - 100/(1+RS)
RS = AvgUp/AvgDown
super_smoother(rsi)
Notes:
RSI > 70 indicates overbought
RSI < 30 indicates oversold
direction of the RSI line
ATE_Common_Functions_LibraryLibrary "ATE_Common_Functions_Library"
- ATE_Common_Functions_Library was created to assist in constructing CCOMET Scanners
RCI(_rciLength, _source, _interval)
You will see me using this a lot. DEFINITELY my favorite oscillator to utilize for SO many different things from
timing entries/exits to determining trends.Calculation of this indicator based on Spearmans Correlation.
Parameters:
_rciLength (int) : (int)
Amount of bars back to use in RCI calculations.
_source (float) : (float)
Source to use in RCI calculations (can use ANY source series. Ie, open,close,high,low,etc).
_interval (int) : (int)
Optional (if parameter not included, it defaults to 3). RCI calculation groups bars by this amount and then will.
rank these groups of bars.
Returns: (float)
Returns a single RCI value that will oscillates between -100 and +100.
RCIAVG(_rciSMAlen, _source, _interval, firstLength, lastLength)
20 RCI's are averaged together to get this RCI Avg (Rank Correlation Index Average). Each RCI (of the 20 total RCI)
has a progressively LARGER Lookback Length. Rather than having ALL of the RCI Lengths be individually adjustable (because of too many inputs),
I have made the FIRST Length used (smallest Length value in the set) and the LAST Length used (largest length value in the set) be adjustable
and all other 18 Lengths are equally spread out between the 'firstLength' and the 'lastLength'.
Parameters:
_rciSMAlen (int) : (int)
Unlike the Single RCI Function, this function smooths out the end result using an SMA with a length value that is this parameter.
_source (float) : (float)
Source to use in RCI calculations (can use ANY source series. Ie, open,close,high,low,etc).
_interval (int) : (int)
Optional (if parameter not included, it defaults to 3). Within the RCI calculation, bars next to each other are grouped together
and then these groups are Ranked against each other. This parameter is the number of adjacent bars that are grouped together.
firstLength (int) : (int)
Optional (if parameter is not included when the function is called on in the script, then it defaults to 200).
This parameter is the Lookback Length for the 1st RCI used (so the SMALLEST Length used) in the RCI Avg.
lastLength (int) : (int)
Optional (if parameter is not included when the function is called on in the script, then it defaults to 2500).
This parameter is the Lookback Length for the 20th(the LAST) RCI used (so the LARGEST Length used) in the RCI Avg.
***** BEWARE ***** The 'lastLength' must be less than (or possibly equal to) 5000 because Tradingview has capped it at 5000, causing an error.
***** BEWARE ***** If the script gives a compiler "time out" error then the 'lastLength' must be lowered until it no longer times out when compiling.
Returns: (float)
Returns a single RCI value that is the Avg of many RCI values that will oscillate between -100 and +100.
PercentChange(_startingValue, _endingValue)
This is a quick function to calculate how much % change has occurred between the '_startingValue' and the '_endingValue'
that you input into the function.
Parameters:
_startingValue (float) : (float)
The source value to START the % change calculation from.
_endingValue (float) : (float)
The source value to END the % change caluclation from.
Returns: Returns a single output being the % value between 0-100 (with trailing numbers behind a decimal). If you want only
a certain amount of numbers behind the decimal, this function needs to be put within a formatting function to do so.
Rescale(_source, _oldMin, _oldMax, _newMin, _newMax)
Rescales series with a known '_oldMin' & '_oldMax'. Use this when the scale of the '_source' to
rescale is known (bounded).
Parameters:
_source (float) : (float)
Source to be normalized.
_oldMin (int) : (float)
The known minimum of the '_source'.
_oldMax (int) : (float)
The known maximum of the '_source'.
_newMin (int) : (float)
What you want the NEW minimum of the '_source' to be.
_newMax (int) : (float)
What you want the NEW maximum of the '_source' to be.
Returns: Outputs your previously bounded '_source', but now the value will only move between the '_newMin' and '_newMax'
values you set in the variables.
Normalize_Historical(_source, _minimumLvl, _maximumLvl)
Normalizes '_source' that has a previously unknown min/max(unbounded) determining the max & min of the '_source'
FROM THE ENTIRE CHARTS HISTORY. ]
Parameters:
_source (float) : (float)
Source to be normalized.
_minimumLvl (int) : (float)
The Lower Boundary Level.
_maximumLvl (int) : (float)
The Upper Boundary Level.
Returns: Returns your same '_source', but now the value will MOSTLY stay between the minimum and maximum values you set in the
'_minimumLvl' and '_maximumLvl' variables (ie. if the source you input is an RSI...the output is the same RSI value but
instead of moving between 0-100 it will move between the maxand min you set).
Normailize_Local(_source, _length, _minimumLvl, _maximumLvl)
Normalizes series with previously unknown min/max(unbounded). Much like the Normalize_Historical function above this one,
but rather than using the Highest/Lowest Values within the ENTIRE charts history, this on looks for the Highest/Lowest
values of '_source' within the last ___ bars (set by user as/in the '_length' parameter. ]
Parameters:
_source (float) : (float)
Source to be normalized.
_length (int) : (float)
The amount of bars to look back to determine the highest/lowest '_source' value.
_minimumLvl (int) : (float)
The Lower Boundary Level.
_maximumLvl (int) : (float)
The Upper Boundary Level.
Returns: Returns a single output variable being the previously unbounded '_source' that is now normalized and bound between
the values used for '_minimumLvl'/'_maximumLvl' of the '_source' within the user defined lookback period.
A_Traders_Edge__LibraryLibrary "A_Traders_Edge__Library"
- A Trader's Edge (ATE)_Library was created to assist in constructing Market Overview Scanners (MOS)
LabelLocation(_firstLocation)
This function is used when there's a desire to print an assets ALERT LABELS at a set location on the scale that will
NOT change throughout the progression of the script. This is created so that if a lot of alerts are triggered, they
will stay relatively visible and not overlap each other. Ex. If you set your '_firstLocation' parameter as 1, since
there are a max of 40 assets that can be scanned, the 1st asset's location is assigned the value in the '_firstLocation' parameter,
the 2nd asset's location is the (1st asset's location+1)...and so on. If your first location is set to 81 then
the 1st asset is 81 and 2nd is 82 and so on until the 40th location = 120(in this particular example).
Parameters:
_firstLocation (simple int) : (simple int)
Optional(starts at 1 if no parameter added).
Location that you want the first asset to print its label if is triggered to do so.
ie. loc2=loc1+1, loc3=loc2+1, etc.
Returns: Returns 40 output variables each being a different location to print the labels so that an asset is asssigned to
a particular location on the scale. Regardless of if you have the maximum amount of assets being screened (40 max), this
function will output 40 locations… So there needs to be 40 variables assigned in the tuple in this function. What I
mean by that is you need to have 40 output location variables within your tuple (ie. between the ' ') regarless of
if your scanning 40 assets or not. If you only have 20 assets in your scripts input settings, then only the first 20
variables within the ' ' Will be assigned to a value location and the other 20 will be assigned 'NA', but their
variables still need to be present in the tuple.
SeparateTickerids(_string)
You must form this single tickerID input string exactly as described in the scripts info panel (little gray 'i' that
is circled at the end of the settings in the settings/input panel that you can hover your cursor over this 'i' to read the
details of that particular input). IF the string is formed correctly then it will break up this single string parameter into
a total of 40 separate strings which will be all of the tickerIDs that the script is using in your MO scanner.
Parameters:
_string (simple string) : (string)
A maximum of 40 Tickers (ALL joined as 1 string for the input parameter) that is formulated EXACTLY as described
within the tooltips of the TickerID inputs in my MOS Scanner scripts:
assets = input.text_area(tIDset1, title="TickerID (MUST READ TOOLTIP)", tooltip="Accepts 40 TICKERID's for each
copy of the script on the chart. TEXT FORMATTING RULES FOR TICKERID'S:
(1) To exclude the EXCHANGE NAME in the Labels, de-select the next input option.
(2) MUST have a space (' ') AFTER each TickerID.
(3) Capitalization in the Labels will match cap of these TickerID's.
(4) If your asset has a BaseCurrency & QuoteCurrency (ie. ADAUSDT ) BUT you ONLY want Labels
to show BaseCurrency(ie.'ADA'), include a FORWARD SLASH ('/') between the Base & Quote (ie.'ADA/USDT')", display=display.none)
Returns: Returns 40 output variables of the different strings of TickerID's (ie. you need to output 40 variables within the
tuple ' ' regardless of if you were scanning using all possible (40) assets or not.
If your scanning for less than 40 assets, then once the variables are assigned to all of the tickerIDs, the rest
of the 40 variables in the tuple will be assigned "NA".
TickeridForLabelsAndSecurity(_includeExchange, _ticker)
This function accepts the TickerID Name as its parameter and produces a single string that will be used in all of your labels.
Parameters:
_includeExchange (simple bool) : (bool)
Optional(if parameter not included in function it defaults to false ).
Used to determine if the Exchange name will be included in all labels/triggers/alerts.
_ticker (simple string) : (string)
For this parameter, input the varible named '_coin' from your 'f_main()' function for this parameter. It is the raw
Ticker ID name that will be processed.
Returns: ( )
Returns 2 output variables:
1st ('_securityTickerid') is to be used in the 'request.security()' function as this string will contain everything
TV needs to pull the correct assets data.
2nd ('lblTicker') is to be used in all of the labels in your MOS as it will only contain what you want your labels
to show as determined by how the tickerID is formulated in the MOS's input.
InvalidTID(_tablePosition, _stackVertical, _close, _securityTickerid, _invalidArray)
This is to add a table in the middle right of your chart that prints all the TickerID's that were either not formulated
correctly in the '_source' input or that is not a valid symbol and should be changed.
Parameters:
_tablePosition (simple string) : (string)
Optional(if parameter not included, it defaults to position.middle_right). Location on the chart you want the table printed.
Possible strings include: position.top_center, position.top_left, position.top_right, position.middle_center,
position.middle_left, position.middle_right, position.bottom_center, position.bottom_left, position.bottom_right.
_stackVertical (simple bool) : (bool)
Optional(if parameter not included, it defaults to true). All of the assets that are counted as INVALID will be
created in a list. If you want this list to be prited as a column then input 'true' here.
_close (float) : (float)
If you want them printed as a single row then input 'false' here.
This should be the closing value of each of the assets being tested to determine in the TickerID is valid or not.
_securityTickerid (string) : (string)
Throughout the entire charts updates, if a '_close' value is never regestered then the logic counts the asset as INVALID.
This will be the 1st TickerID varible (named _securityTickerid) outputted from the tuple of the TickeridForLabels()
function above this one.
_invalidArray (string ) : (array string)
Input the array from the original script that houses all of the invalidArray strings.
Returns: (na)
Returns a table with the screened assets Invalid TickerID's. Table draws automatically if any are Invalid, thus,
no output variable to deal with.
LabelSizes(_barCnt, _lblSzRfrnce)
This function sizes your Alert Trigger Labels according to the amount of Printed Bars the chart has printed within
a set time period, while also keeping in mind the smallest relative reference size you input in the 'lblSzRfrnceInput'
parameter of this function. A HIGHER % of Printed Bars(aka...more trades occurring for that asset on the exchange),
the LARGER the Name Label will print, potentially showing you the better opportunities on the exchange to avoid
exchange manipulation liquidations.
*** SHOULD NOT be used as size of labels that are your asset Name Labels next to each asset's Line Plot...
if your MOS includes these as you want these to be the same size for every asset so the larger ones dont cover the
smaller ones if the plots are all close to each other ***
Parameters:
_barCnt (float) : (float)
Get the 1st variable('barCnt') from the 'PrintedBarCount' function's tuple and input it as this functions 1st input
parameter which will directly affect the size of the 2nd output variable ('alertTrigLabel') outputted by this function.
_lblSzRfrnce (string) : (string)
Optional(if parameter not included, it defaults to size.small). This will be the size of the 1st variable outputted
by this function ('assetNameLabel') BUT also affects the 2nd variable outputted by this function.
Returns: ( )
Returns 2 variables:
1st output variable ('AssetNameLabel') is assigned to the size of the 'lblSzRfrnceInput' parameter.
2nd output variable('alertTrigLabel') can be of variying sizes depending on the 'barCnt' parameter...BUT the smallest
size possible for the 2nd output variable ('alertTrigLabel') will be the size set in the 'lblSzRfrnceInput' parameter.
AssetColor()
This function is used to assign 40 different colors to 40 variables to be used for the different labels/plots.
Returns: Returns 40 output variables each with a different color assigned to them to be used in your plots & labels.
Regardless of if you have the maximum amount of assets your scanning(40 max) or less,
this function will assign 40 colors to 40 variables that you have between the ' '.
PrintedBarCount(_time, _barCntLength, _barCntPercentMin)
The Printed BarCount Filter looks back a User Defined amount of minutes and calculates the % of bars that have printed
out of the TOTAL amount of bars that COULD HAVE been printed within the same amount of time.
Parameters:
_time (int) : (int)
The time associated with the chart of the particular asset that is being screened at that point.
_barCntLength (int) : (int)
The amount of time (IN MINUTES) that you want the logic to look back at to calculate the % of bars that have actually
printed in the span of time you input into this parameter.
_barCntPercentMin (int) : (int)
The minimum % of Printed Bars of the asset being screened has to be GREATER than the value set in this parameter
for the output variable 'bc_gtg' to be true.
Returns: ( )
Returns 2 outputs:
1st is the % of Printed Bars that have printed within the within the span of time you input in the '_barCntLength' parameter.
2nd is true/false according to if the Printed BarCount % is above the threshold that you input into the '_barCntPercentMin' parameter.
RCI(_rciLength, _source, _interval)
You will see me using this a lot. DEFINITELY my favorite oscillator to utilize for SO many different things from
timing entries/exits to determining trends.Calculation of this indicator based on Spearmans Correlation.
Parameters:
_rciLength (int) : (int)
Amount of bars back to use in RCI calculations.
_source (float) : (float)
Source to use in RCI calculations (can use ANY source series. Ie, open,close,high,low,etc).
_interval (int) : (int)
Optional(if parameter not included, it defaults to 3). RCI calculation groups bars by this amount and then will.
rank these groups of bars.
Returns: (float)
Returns a single RCI value that will oscillates between -100 and +100.
RCIAVG(firstLength, _amtBtLengths, _rciSMAlen, _source, _interval)
20 RCI's are averaged together to get this RCI Avg (Rank Correlation Index Average). Each RCI (of the 20 total RCI)
has a progressively LARGER Lookback Length. Though the RCI Lengths are not individually adjustable,
there are 2 factors that ARE:
(1) the Lookback Length of the 1st RCI and
(2) the amount of values between one RCI's Lookback Length and the next.
*** If you set 'firstLength' to it's default of 200 and '_amtBtLengths' to it's default of 120 (aka AMOUNT BETWEEN LENGTHS=120)...
then RCI_2 Length=320, RCI_3 Length=440, RCI_4 Length=560, and so on.
Parameters:
firstLength (int) : (int)
Optional(if parameter is not included when the function is called, then it defaults to 200).
This parameter is the Lookback Length for the 1st RCI used in the RCI Avg.
_amtBtLengths (int) : (int)
Optional(if parameter not included when the function is called, then it defaults to 120).
This parameter is the value amount between each of the progressively larger lengths used for the 20 RCI's that
are averaged in the RCI Avg.
***** BEWARE ***** Too large of a value here will cause the calc to look back too far, causing an error(thus the value must be lowered)
_rciSMAlen (int) : (int)
Unlike the Single RCI Function, this function smooths out the end result using an SMA with a length value that is this parameter.
_source (float) : (float)
Source to use in RCI calculations (can use ANY source series. Ie, open,close,high,low,etc).
_interval (int) : (int)
Optional(if parameter not included, it defaults to 3). Within the RCI calculation, bars next to each other are grouped together
and then these groups are Ranked against each other. This parameter is the number of adjacent bars that are grouped together.
Returns: (float)
Returns a single RCI value that is the Avg of many RCI values that will oscillate between -100 and +100.
PercentChange(_startingValue, _endingValue)
This is a quick function to calculate how much % change has occurred between the '_startingValue' and the '_endingValue'
that you input into the function.
Parameters:
_startingValue (float) : (float)
The source value to START the % change calculation from.
_endingValue (float) : (float)
The source value to END the % change caluclation from.
Returns: Returns a single output being the % value between 0-100 (with trailing numbers behind a decimal). If you want only
a certain amount of numbers behind the decimal, this function needs to be put within a formatting function to do so.
Rescale(_source, _oldMin, _oldMax, _newMin, _newMax)
Rescales series with a known '_oldMin' & '_oldMax'. Use this when the scale of the '_source' to
rescale is known (bounded).
Parameters:
_source (float) : (float)
Source to be normalized.
_oldMin (int) : (float)
The known minimum of the '_source'.
_oldMax (int) : (float)
The known maximum of the '_source'.
_newMin (int) : (float)
What you want the NEW minimum of the '_source' to be.
_newMax (int) : (float)
What you want the NEW maximum of the '_source' to be.
Returns: Outputs your previously bounded '_source', but now the value will only move between the '_newMin' and '_newMax'
values you set in the variables.
Normalize_Historical(_source, _minimumLvl, _maximumLvl)
Normalizes '_source' that has a previously unknown min/max(unbounded) determining the max & min of the '_source'
FROM THE ENTIRE CHARTS HISTORY. ]
Parameters:
_source (float) : (float)
Source to be normalized.
_minimumLvl (int) : (float)
The Lower Boundary Level.
_maximumLvl (int) : (float)
The Upper Boundary Level.
Returns: Returns your same '_source', but now the value will MOSTLY stay between the minimum and maximum values you set in the
'_minimumLvl' and '_maximumLvl' variables (ie. if the source you input is an RSI...the output is the same RSI value but
instead of moving between 0-100 it will move between the maxand min you set).
Normailize_Local(_source, _length, _minimumLvl, _maximumLvl)
Normalizes series with previously unknown min/max(unbounded). Much like the Normalize_Historical function above this one,
but rather than using the Highest/Lowest Values within the ENTIRE charts history, this on looks for the Highest/Lowest
values of '_source' within the last ___ bars (set by user as/in the '_length' parameter. ]
Parameters:
_source (float) : (float)
Source to be normalized.
_length (int) : (float)
The amount of bars to look back to determine the highest/lowest '_source' value.
_minimumLvl (int) : (float)
The Lower Boundary Level.
_maximumLvl (int) : (float)
The Upper Boundary Level.
Returns: Returns a single output variable being the previously unbounded '_source' that is now normalized and bound between
the values used for '_minimumLvl'/'_maximumLvl' of the '_source' within the user defined lookback period.
TFEX_INDICATOR_SET13This Indicator use the calculated RSI of the top 13 stocks that have the highest market capitalization in SET:SET50 where suitable for TFEX trading( TFEX:S501! ) .
Conducted with 2 RSI period as follow:
RSI Main (14)
RSI Average (100)
How to use:
1) Use this Indicator by Crossover
If the RSI Main Cross UP the RSI Average can assume as BUY SIGNAL
If the RSI Main Cross DOWN the RSI Average can assume as SELL SIGNAL
2) Use this Indicator by Divergence of RSI Main
If the RSI Main got any Regular Bullish or Hidden Bullish can assume as BUY SIGNAL
If the RSI Main got any Regular Bearish or Hidden Bearish can assume as SELL SIGNAL
3) The combination of Divergence and Crossover
If the RSI Main got any Regular Bullish or Hidden Bullish then pending for the RSI Main Cross UP the RSI Average which can assume as BUY SIGNAL
If the RSI Main got any Regular Bearish or Hidden Bearish then pending for the RSI Main Cross DOWN the RSI Average which can assume as SELL SIGNAL
Preferred Timeframe
4H
2H
1H