Ivan_Long_Term_Cloud_BandThis is a combination of the 200 300 400 and 500 long terms weighted moving average.
The color code reflected the current uptrend or downtrend that the market is in by showing light green when 200 WMA is above the 300 WMA as well as showing darker green when 400 WMA is above the 500 WMA. On the other hand, when the 200 WMA is below the 300 WMA and the 400 beneath the 500, the band would be color-coded as light and deep red respectively to reflect the current level of support and resistance level.
Pesquisar nos scripts por "200亿美元是多少人民币"
BTC and ETH Long strategy - version 1I will start with a small introduction about myself. I'm now trading cryto currencies manually for almost 2 years. I decided to start after watching a documentary on the TV showing people who made big money during the Bitcoin pump which happened at the end of 2017.
The next day, I asked myself "Why should I not give it a try and learn how to trade".
This was in February 2018 and the price of Bitcoin was around 11500USD.
I didn't know how to trade. In fact, I didn't know the trading industry at all.
So, my first step into trading was to open an account with a broken. Then I directly bought 200$ worst of BTC . At that time, I saw the graph and thought "This can only go back in the upward direction!" :)
I didn't know anything about Stop loss, Take profit and Risk management.
Today, almost 2 years after, I think that I know how to trade and can also confirm that I still hold this bag of 200$ of bitcoin from 2018 :)
I did spend the 2 last years to learn technical analysis , risk management and leverage trading.
Today (14/05/2020), I know what I'm doing and I'm happy to see that the 2 last years have been positive in terms of gains. Of course, I did not make crazy money with my saving but at least I made more than if I would have kept it in my bank account.
Even if I like trading, I have a full time job which requires my full energy and lots of focus, so, the biggest problem I had is that I didn't have enough time to look at the charts.
Also, I realized that sometimes, neither technical analysis , nor fundamentals worked with crypto currency (at least for short time trading). So, as I have a developer background I decided to try to have a look at algo trading.
The goal for me was neither to make complex algos nor to beat the market but just to automate my trading with simple bot catching the big waves.
I then started to take a look at TV pine script and played with it.
I did my first LONG script in February 2020 to Long the BTC Market. It has some limitations but works well enough for me for the time being. Even if the real trades will bring me half of what the back testing shows, this will still be a lot more than what I was used to win during the last 2 years with my manual trading.
So, here we are! Below you will find some details about my first LONG script. I'm happy to share it with you.
Feel free to play with it, give your comments and bring improvements to it.
But please note that it only works fine with the candle size and crypto pair that I have mentioned below. If you use other settings this algo might loose money!
- Crypto pairs : XBTUSD and ETHXBT
- Candle size: 2 Hours
- Indicator used: Volatility , MACD (12, 26, 7), SMA (100), SMA (200), EMA (20)
- Default StopLoss: -1.5%
- Entry in position if: Volatility < 2%
AND MACD moving up
AND AME (20) moving up
AND SMA (100) moving up
AND SMA (200) moving up
AND EMA (20) > SAM (100)
AND SMA (100) > SMA (200)
- Exit the postion if: Stoploss is reached
OR EMA (20) crossUnder SMA (100)
Here is a summary of the results for this script:
XBTUSD : 01/01/2019 --> 14/05/2020 = +107%
ETHXBT : 01/01/2019 --> 14/05/2020 = +39%
ETHUSD : 01/01/2019 --> 14/05/2020 = +112%
It is far away from being perfect. There are still plenty of things which can be done to improve it but I just wanted to share it :) .
Enjoy playing with it....
Quad CCI ContainmentThe Quad CCI is a trend identification indicator described by Mark Whistler in his book 'Volatility Illuminated'. The reason for using four separate CCI channels is so that we can:
Prevent ourselves from taking positions against momentum.
Time our trades with short-term 'wrist-rocket' thrust from the larger market momentum.
Clearly determine whether the trend is up, down, or sideways.
In his book, Whistler refers to four CCI channels as 'The Four Horsemen'. The 100 and 200 are like big burly swordsmen, which are hard to budge without significant force. The 50-period CCI is more like the guy who's fast on his feet, but still tough enough to take on the big dudes. And the 14-period is similar to the scout of the party. The fastest of the bunch, but also the first to turn-tail at any sign of danger.
Basically, this means that when we see the 100 and 200-CCI stay above the 0 line, we can infer there really isn't any reason for them to move out of their range. The 50-period CCI will sometimes venture over the 0-line, before the hefty battlers. However, the 14-period will often venture (quickly) way out into the yonder, and he will always return to tell his pals what he's found. Crossing back over the 100-line, traders can take 'rocket trend reentry' positions (usually on the median); however, we still want to keep an eye on the flighty 14-period CCI character. If he crosses back over the +100 or -100 level he was just scouting, it means the larger weighted CCI lines could soon to follow too, as the whole bunch runs from larger momentum on the way.
Traders seeking to take a position 'with the trend' can attempt to purchase pullbacks on the mean if:
Longer-term CCI (at least the 200 and 100) are above zero.
The 50-period CCI is not below -100.
The 14-period travels back up from underneath the -100 area.
RVC-Buy-rulesTrend Template for short/medium/long term trading. Kindly use this along with other indicators.
Concept is simple "Buy the strength i.e. winners, sell the weakness i.e. losers"
//1. Current Price is above 150 and 200 day avg
//2. 150 day moving avg is more than 200 day avg
//3. 50-day moving avg is above 150-day and 200-day moving average
//4. current price is above 50 day moving average
//5. Current stock price is at-least 30% above 52-week low.
//6. Current stock price is with in 25% of 52-week high
//7. RSI is >60
Kindly modify and use it according to your need.
Incase if this script is found useful, please click on follow/like :)
McGinley Dynamic VWAP/MVWAP [Dayasagar]Mcginley Dynamics and Volume weighted moving average
Timeframe: 1 hour
Use 200 MA
Buy: If the price is above 200 MA, take only the buy signal.
Sell: If the price is below 200 MA, take only the sell signal.
7EMA_5MA (G/D + Bias + 12/26 Signal)This script alow you to survey multiple crossing signals as Golden/Death cross (MA50/200), Institutional Bias (EMA9/18), or EMA 12/26 crossing. You can show/hide all EMAs/MAs and show/hide all signals. Default config displays EMA 50/100/200 and MA 20. Full script includes display of EMA 9/18/12/26/50/100/200 and MA 20/21/50/100/200.
Sequentially Filtered Moving AverageThe previously proposed sequential filter aimed to filter variations lower than a certain period, this allowed to remove noisy variations and retain only the closing price values that occurred after a consecutive up/down, however because of the noisy nature of the closing price large filtering was impossible, in order to tackle to this problem the same indicator using a simple moving average as input is proposed, this allow for smoother results.
We will see that the proposed indicator can provide an alternative moving average that could be used as slow moving average in crossover systems.
The Indicator
The length parameter as the same function as the one described in the sequential filter post, however here length also control the period of the moving average used input, in short larger values of length will return a smoother but less reactive output.
In blue the moving average with length = 200, and in red the moving average with length = 50.
It is interesting to see how the moving average remain flat during ranging/flat market periods
Unfortunately like the sequential filter the sequentially filtered moving average (SFMA) is not affected by large short term variations such as gaps or short term volatile events. This is because of the nature of the sequential filter to ignore movements amplitude and only focus on the variation period.
Moving Average Crossover System
The SFMA is equal to a simple moving average of period length when a consecutive up/down sequence of size length has occurred, else the SFMA is equal to its precedent value, therefore we could expect less crosses between a fast moving average and the SFMA as slow moving average.
We can see on the figure above that the fast moving average of period 50 (in green) cross more with the slow moving average of period 200 (in red) than with the SFMA of period 200 (in blue).
Crosses can occur at the same time as with the classical slow moving average (in red) or a bit later.
Conclusion
A new moving average based on the recently proposed sequential filter has been proposed, it can be seen that under a moving average crossover system the proposed moving average seems to be more effective at producing less crosses without necessarily doing it with an excessive lag, in fact the moving average has either lag (length-1)/2 or lag length .
In the future it could be interesting to provide an hybrid alternative that take into account volatility as well as variations period.
Thanks for reading !
Multicolor Bollinger Bands - Market PhasesHi everyone
Hope you're all doing well 😘
Today I feel gracious and decided to give to the community. And giving not only an indicator but also a trading method
This trading method shows how a convergence based on moving averages is tremendous
Multicolour Bollinger Bands indicator that indicates market phases.
It plots on the price chart, thanks to different color zones between the bands, a breakdown of the different phases that the price operates during a trend.
The different zones are identified as follows:
- red color zone: trend is bearish, price is below the 200 periods moving average
- orange color zone: price operate a technical rebound below the 200 periods moving average
- yellow color zone: (phase 1 which indicate a new bearish cycle)
- light green zone: (phase 2 which indicate a new bullish cycle)
- dark green zone: trend is bullish, price is above the 200 periods moving average
- grey color zone: calm phase of price
- dark blue color zone: price is consolidating in either bullish or bearish trend
- light blue zones: price will revert to a new opposite trend (either long or short new trend)
By identifying clearly the different market phases with the multicolor Bollinger bands, the market entries by either a the beginning of a new trend or just after a rebound or a consolidating phase is easier to spot on.
Trade well and trade safe
Dave
EMA - Baby WhaleThis script will show you the 8, 13, 21, 55, 100 and 200 EMA .
You can change the colors yourself if you want.
You can use the EMA to define the trend.
A good strategy that traders use is a 55 EMA crossover.
This means that when the 8, 13 and 21 all cross the 55 EMA you place a buy or sell order.
You close your position when the same thing happens on the other side.
Another great way that traders use these EMA's is to spot a Golden or Death cross.
When the 55 and 200 EMA cross and the 200 becomes support it means we're in a uptrend and vice versa.
If you want access, just send a message please.
Much love from Baby Whale!!
🙏❤️🐳
BTC 1D Alerts V1This script contains a variety of key indicator for bitcoin all-in-one and they can be activated individually in the menu. These are meant to be used on the 1D chart for Bitcoin.
1457 Day Moving Average: the bottom of the bitcoin price and arguably the rock bottom price target.
Ichimoku Cloud: a common useful indicator for bitcoin support and resistance.
350ma fibs (21 8 5 3 2 and 1.6) : Signify the tops of each logarthmic rise in bitcoin price. They are generally curving higher over the long term. For halvening #3, the predicted market crash would be after hitting the 350ma x3 fib. Also the 350 ma / 111 ma cross signifies bull market top within about 3 days as well. Using the combination of the 350ma fibs and the 350/111 crosses, reasonably identify when market top is about to occur.
50,120,200 ma: Common moving averages that bitcoin retests during bull market runs. Also, the 50/200 golden and death crosses.
1D EMA Superguppy Ribbons: green = bull market, gray is indeterminate, red = bear market. Very high specificity indicator of bull runs, especially for bitcoin. You can change to 3D candle for even more specificity for a bull market start. Use the 1W for even more specificity. 1D Superguppy is recommended for decisionmaking.
1W EMA21: a very good moving average programmed to be shown on both the daily and weekly candle time. Bitcoin commonly corrects to this repeatedly during past bull runs. Acts as support during bull run and resistance during a bear market.
Steps to identifying a bull market:
1. 50/200 golden cross
2. 1D EMA superguppy green
3. 3D EMA superguppy green (if you prefer more certainty than step 2).
4. Hitting the 1W EMA21 and bouncing off during the bull run signifies corrections.
Once a bull market is identified,
Additional recommended buying and selling techniques:
Indicators:
- Fiblines - to determine retracements from peaks (such as all time high or recent highs)
- Stochastic RSI - 1d, 3d, and 1W SRSI are great time to buy, especially the 1W SRSI which comes much less frequently.
- volumen consolidado - for multi exchange volumes compiled into a single line. I prefer buying on the lowest volume days which generally coincide with dips.
- MACD - somewhat dubious utility but many algorithms are programmed to buy or sell based on this.
Check out the Alerts for golden crosses and 350ma Fib crosses which are invaluable for long term buying planning.
I left this open source so that all the formulas can be understood and verified. Much of it hacked together from other sources but all indicators that are fundamental to bitcoin. I apologize in advance for not attributing all the articles and references... but then again I am making no money off of this anyway.
Ultimate Moving Average Package (17 MA's)Included is the:
VWAP
Current time frame 10 EMA
Current time frame 20 EMA
Current time frame 50 EMA
Current time frame 10 SMA
Current time frame 20 SMA
Current time frame 50 SMA
Daily 10 EMA
Daily 20 EMA
Daily 50 EMA
Daily 50 SMA
Daily 100 SMA
Daily 200 SMA
Weekly 100 SMA
Weekly 200 SMA
Monthly 100 SMA
Monthly 200 SMA
All Daily/Weekly/Monthly MA's can be seen on intraday charts. Current time frame MA's change depending on your time frame. Obviously you dont need all 17 on your chart but you can pick the ones you like and disable the rest.
Fischy Bands (multiple periods)Just a quick way to have multiple periods. Coded at (14,50,100,200,400,600,800). Feel free to tweak it. Default is all on, obviously not as usable! Try just using 14, and 50.
This was generated with javascript for easy templating.
Source:
```
const periods = ;
const generate = (period) => {
const template = `
= bandFor(${period})
plot(b${period}, color=colorFor(${period}, b${period}), linewidth=${periods.indexOf(period)+1}, title="BB ${period} Basis", transp=show${period}TransparencyLine)
pb${period}Upper = plot(b${period}Upper, color=colorFor(${period}, b${period}), linewidth=${periods.indexOf(period)+1}, title="BB ${period} Upper", transp=show${period}TransparencyLine)
pb${period}Lower = plot(b${period}Lower, color=colorFor(${period}, b${period}), linewidth=${periods.indexOf(period)+1}, title="BB ${period} Lower", transp=show${period}TransparencyLine)
fill(pb${period}Upper, pb${period}Lower, color=colorFor(${period}, b${period}), transp=show${period}TransparencyFill)`
console.log(template);
}
console.log(`//@version=4
study(shorttitle="Fischy BB", title="Fischy Bands", overlay=true)
stdm = input(1.25, title="stdev")
bandFor(length) =>
src = hlc3
mult = stdm
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
`);
periods.forEach(e => console.log(`show${e} = input(title="Show ${e}?", type=input.bool, defval=true)`));
periods.forEach(e => console.log(`show${e}TransparencyLine = show${e} ? 20 : 100`));
periods.forEach(e => console.log(`show${e}TransparencyFill = show${e} ? 80 : 100`));
console.log('\n');
console.log(`colorFor(period, series) =>
c = period == 14 ? color.white :
period == 50 ? color.aqua :
period == 100 ? color.orange :
period == 200 ? color.purple :
period == 400 ? color.lime :
period == 600 ? color.yellow :
period == 800 ? color.orange :
color.black
c
`);
periods.forEach(e => generate(e))
```
MACD/EMA Long StrategyThis incredibly simple strategy uses a combination of the 20 EMA and bullish/bearish MACD crosses as a low risk method of getting in and out of markets.
Depending on whether the market is above or below the 200 SMA, the script determines if the market is in bullish or bearish territory. Above the 200 SMA, the script will ignore the 20 EMA as a buy condition and buy solely on the confirmation of a bullish MACD cross upon the close of a candle. In this bullish market, the script will only enable the sell condition if both the MACD is bearish AND a close below the 20 EMA occurs. This is to reduce the chances of the script selling prematurely in the event of a bearish MACD cross, if the market is still in overall bullish territory.
When the market is below the 200 SMA, the confirmation occurs in the opposite direction. The buy condition will only be met if both the MACD is bullish AND a close above the 20 EMA occurs. However, the sell condition ignores the 20 EMA and will sell solely on the confirmation of a bearish MACD cross upon the close of the candle.
This strategy can be used in both bullish and bearish markets. This conservative strategy will slightly underperform in a bull market, with the sell condition occasionally being met and then potentially buying back higher. However, it will successfully get you out of a turning market and automatically switch into a more 'risk-off' mentality during a bear market. This strategy is not recommended for sideways markets, as trading around the 20 EMA coupled with a relatively flat MACD profile can cause the strategy to buy the peaks and sell troughs easily.
market phases - JDThis indicator shows the relation of price against different period ma's.
When put in daily Timeframe it gives the 1400 Day (= 200 Weekly) and the 200 ,100 an 50 Daily.
The lines show the 200,100 and 50 ma in relation to the 1400 ma.
JD.
#NotTradingAdvice #DYOR
Trend Lines and MoreMulti-Indicator consisting of several useful indicators in a single package.
TREND LINES
-By default the 20 SMA and 50 SMA are shown.
-Use "MOVING AVERAGE TYPE" to select SMA, EMA, Double-EMA, Triple-EMA, or Hull.
-Use "50 MA TREND COLOR" to have the 50 turn green/red for uptrend/downtrend.
-Use "DAILY SOURCE ONLY" to always show daily averages regardless of timeframe.
-Use "SHOW LONG MA" to also include 100, 150, and 200 moving averages.
-Use "SHOW MARKERS" to show a small colored marker identifying which line is which.
OTHER INDICATORS
-You can show Bollinger Bands and Parabolic SAR.
-You can highlight key reversal times (9:50-10:10 and 14:40-15:00).
-You can show price offset markers, where was the price "n" periods ago.
That last one is useful to show the level of prices which are about to "fall off" the moving average
and be replaced with current price. So for example, if current price is significantly below the
200-days-ago price, you can gauge the difficulty for the 200 MA to start climbing again.
Falling Knives Jagged SpikesThe purpose of this script is to trade with the trend, trade trend continuation, and counter-trend trades.
Uptrend is price above 200 ema: Background is green and the bar colors are normal
Downtrend is price below 200 ema: Background is red and the bar colors are normal
Counter-trend to uptrend--Bar colors are white and the background is purple
counter-trend to downtrend--Bar colors are black and the background is aqua.
How to use:
Uptrend (green background): Only go long
Downtrend (red background): only go short
Counter-trend to uptrend/downtrend (white bars/black bars): Take counter-trend trade when price is a substantial distance from the 200 EMA. Best if there was a divergence with an oscillator. A lot of times these are just deep pullbacks or rallies.
trend continuation: In uptrend, after falling knives, and trend continues up (background turns to green) look to buy, you are getting a great price on the asset. Same for downtrend.
Keep in mind that nothing is perfect, and to of-course test everything.
Best of luck in all you do. Get money.
3 EMAS strategy to define trendsBasic script that allows you to have 3 scripts all in one EMA (exponential moving averages). They are useful to know the general trends of your chart: current long-term trend, short-term (or immediately) and general.
1 ° EMA 36 serves to define or mark action of the market trend price.
At the moment of crossing EMA 36 with EMA 200 upwards it indicates continuation to level 2 ...
2 ° EMA 200 serves as support or resistance according to the case, confirms continuation of trend in medium or long term when crossing with EMA 500, upward trend probability level 3 confirmed. As the case may be, cross up or down.
3 ° EMA 500 serves as support or resistance of the price action.
EMAS 200 and 500 give you a probability of Starting Area ...
Confirming with support or resistance.
Complementation with Stochastics ..
MACD
Note: Remember that "exponential" means that these indicators give more weight to the most recent data, making them more reactive to price changes (react faster to changes in recent prices than simple moving averages)
GROWINGS CRYPTOTRADERS
Mayer Multiple @ Current PriceThough this script is by me, the original idea comes from a podcast I heard where Trace Mayer talks about how he does crypto valuation. It is based on current price against the 200 day moving average. This indicator script will simply plot that value as a label overlayed on your trading view chart. Best long term results occur when acquiring BTC when the multiple is 2.4 or less. For more info, google "mayer multiple" This script/indicator is strictly for educational purposes. It is not exclusive to bitcoin.
To get the best look out of your charts I make the following changes.
1.Apply the indicator to your chart.
2. In the tools palette of trading view, when looking at a chart, click "Show Objects Tree" the icon displayed above the trash can.
In the objects tree panel, click the preferences icon for "Mayer Multiple @ Current Price"
Switch "scale" to "scale Left"
3. Then for your chart preferences (right click on chart background and select "Properties", and be sure the following are checked on the "Scales" tab
Left Axis
Right Axis
Indicator Last Value
Indicator Labels
Screenshots are not allowed in this view, so I can't post screenshots, but the view above is what it should look like when you are done.
For anyone who wants to see the code, here is the code of the script:
Use at will, and at your own risk.
//@version=3
// Created By Timothy Luce, inspired by Trace Mayer's 200 Day SMA cryptocurrency valuation method
study("Mayer Multiple @ Current Price", overlay=true)
currentPrice = close
currentDay = security(tickerid, "D", sma(close, 200))
mayerMultiple = currentPrice/currentDay
plot(mayerMultiple, color=#00ffaa, transp=100)
If you want to change the color, change this line: #00ffaa
Multiple Moving AveragesThis is really simple. But useful for me as I don't have a paid account. No-pro users can only use 3 indicators at once and because I rely heavily on simple moving averages it can be a real pain.
This one indicator features:
20 MA
50 MA
100 MA
200 MA
which I find are the most useful overall. The 20 and 50 over all time frame but in particular < 1 day, the 100 and 200 at > 4 hr time frames. In general I don't use the 100 MA that much. The daily 200 MA is a critical support for many assets like stocks and cryptos. I'm by no means a pro and if you are learning I recommend becoming familiar with moving averages right at the beginning.
If you want to deactivate some of the lines, you can do it via the indicator's settings icon.
Yuthavithi Kana with S/R StrategyI have got the idea from this page iwongsakorn.com and wrote my own kana scalper. This strategy draws 3 200 ATR level along side with the sma. It uses 200 ema as trend. Once the price approaches the 20 ema. it will place orders according to trend and take profit and stop loss quickly using the 200 ATR lines.
This is a quick scalper strategy with winrate over 50%
Ultimate RSI [captainua]Ultimate RSI
Overview
This indicator combines multiple RSI calculations with volume analysis, divergence detection, and trend filtering to provide a comprehensive RSI-based trading system. The script calculates RSI using three different periods (6, 14, 24) and applies various smoothing methods to reduce noise while maintaining responsiveness. The combination of these features creates a multi-layered confirmation system that reduces false signals by requiring alignment across multiple indicators and timeframes.
The script includes optimized configuration presets for instant setup: Scalping, Day Trading, Swing Trading, and Position Trading. Simply select a preset to instantly configure all settings for your trading style, or use Custom mode for full manual control. All settings include automatic input validation to prevent configuration errors and ensure optimal performance.
Configuration Presets
The script includes preset configurations optimized for different trading styles, allowing you to instantly configure the indicator for your preferred trading approach. Simply select a preset from the "Configuration Preset" dropdown menu:
- Scalping: Optimized for fast-paced trading with shorter RSI periods (4, 7, 9) and minimal smoothing. Noise reduction is automatically disabled, and momentum confirmation is disabled to allow faster signal generation. Designed for quick entries and exits in volatile markets.
- Day Trading: Balanced configuration for intraday trading with moderate RSI periods (6, 9, 14) and light smoothing. Momentum confirmation is enabled for better signal quality. Ideal for day trading strategies requiring timely but accurate signals.
- Swing Trading: Configured for medium-term positions with standard RSI periods (14, 14, 21) and moderate smoothing. Provides smoother signals suitable for swing trading timeframes. All noise reduction features remain active.
- Position Trading: Optimized for longer-term trades with extended RSI periods (24, 21, 28) and heavier smoothing. Filters are configured for highest-quality signals. Best for position traders holding trades over multiple days or weeks.
- Custom: Full manual control over all settings. All input parameters are available for complete customization. This is the default mode and maintains full backward compatibility with previous versions.
When a preset is selected, it automatically adjusts RSI periods, smoothing lengths, and filter settings to match the trading style. The preset configurations ensure optimal settings are applied instantly, eliminating the need for manual configuration. All settings can still be manually overridden if needed, providing flexibility while maintaining ease of use.
Input Validation and Error Prevention
The script includes comprehensive input validation to prevent configuration errors:
- Cross-Input Validation: Smoothing lengths are automatically validated to ensure they are always less than their corresponding RSI period length. If you set a smoothing length greater than or equal to the RSI length, the script automatically adjusts it to (RSI Length - 1). This prevents logical errors and ensures valid configurations.
- Input Range Validation: All numeric inputs have minimum and maximum value constraints enforced by TradingView's input system, preventing invalid parameter values.
- Smart Defaults: Preset configurations use validated default values that are tested and optimized for each trading style. When switching between presets, all related settings are automatically updated to maintain consistency.
Core Calculations
Multi-Period RSI:
The script calculates RSI using the standard Wilder's RSI formula: RSI = 100 - (100 / (1 + RS)), where RS = Average Gain / Average Loss over the specified period. Three separate RSI calculations run simultaneously:
- RSI(6): Uses 6-period lookback for high sensitivity to recent price changes, useful for scalping and early signal detection
- RSI(14): Standard 14-period RSI for balanced analysis, the most commonly used RSI period
- RSI(24): Longer 24-period RSI for trend confirmation, provides smoother signals with less noise
Each RSI can be smoothed using EMA, SMA, RMA (Wilder's smoothing), WMA, or Zero-Lag smoothing. Zero-Lag smoothing uses the formula: ZL-RSI = RSI + (RSI - RSI ) to reduce lag while maintaining signal quality. You can apply individual smoothing lengths to each RSI period, or use global smoothing where all three RSIs share the same smoothing length.
Dynamic Overbought/Oversold Thresholds:
Static thresholds (default 70/30) are adjusted based on market volatility using ATR. The formula: Dynamic OB = Base OB + (ATR × Volatility Multiplier × Base Percentage / 100), Dynamic OS = Base OS - (ATR × Volatility Multiplier × Base Percentage / 100). This adapts to volatile markets where traditional 70/30 levels may be too restrictive. During high volatility, the dynamic thresholds widen, and during low volatility, they narrow. The thresholds are clamped between 0-100 to remain within RSI bounds. The ATR is cached for performance optimization, updating on confirmed bars and real-time bars.
Adaptive RSI Calculation:
An adaptive RSI adjusts the standard RSI(14) based on current volatility relative to average volatility. The calculation: Adaptive Factor = (Current ATR / SMA of ATR over 20 periods) × Volatility Multiplier. If SMA of ATR is zero (edge case), the adaptive factor defaults to 0. The adaptive RSI = Base RSI × (1 + Adaptive Factor), clamped to 0-100. This makes the indicator more responsive during high volatility periods when traditional RSI may lag. The adaptive RSI is used for signal generation (buy/sell signals) but is not plotted on the chart.
Overbought/Oversold Fill Zones:
The script provides visual fill zones between the RSI line and the threshold lines when RSI is in overbought or oversold territory. The fill logic uses inclusive conditions: fills are shown when RSI is currently in the zone OR was in the zone on the previous bar. This ensures complete coverage of entry and exit boundaries. A minimum gap of 0.1 RSI points is maintained between the RSI plot and threshold line to ensure reliable polygon rendering in TradingView. The fill uses invisible plots at the threshold levels and the RSI value, with the fill color applied between them. You can select which RSI (6, 14, or 24) to use for the fill zones.
Divergence Detection
Regular Divergence:
Bullish divergence: Price makes a lower low (current low < lowest low from previous lookback period) while RSI makes a higher low (current RSI > lowest RSI from previous lookback period). Bearish divergence: Price makes a higher high (current high > highest high from previous lookback period) while RSI makes a lower high (current RSI < highest RSI from previous lookback period). The script compares current price/RSI values to the lowest/highest values from the previous lookback period using ta.lowest() and ta.highest() functions with index to reference the previous period's extreme.
Pivot-Based Divergence:
An enhanced divergence detection method that uses actual pivot points instead of simple lowest/highest comparisons. This provides more accurate divergence detection by identifying significant pivot lows/highs in both price and RSI. The pivot-based method uses a tolerance-based approach with configurable constants: 1% tolerance for price comparisons (priceTolerancePercent = 0.01) and 1.0 RSI point absolute tolerance for RSI comparisons (pivotTolerance = 1.0). Minimum divergence threshold is 1.0 RSI point (minDivergenceThreshold = 1.0). It looks for two recent pivot points and compares them: for bullish divergence, price makes a lower low (at least 1% lower) while RSI makes a higher low (at least 1.0 point higher). This method reduces false divergences by requiring actual pivot points rather than just any low/high within a period. When enabled, pivot-based divergence replaces the traditional method for more accurate signal generation.
Strong Divergence:
Regular divergence is confirmed by an engulfing candle pattern. Bullish engulfing requires: (1) Previous candle is bearish (close < open ), (2) Current candle is bullish (close > open), (3) Current close > previous open, (4) Current open < previous close. Bearish engulfing is the inverse: previous bullish, current bearish, current close < previous open, current open > previous close. Strong divergence signals are marked with visual indicators (🐂 for bullish, 🐻 for bearish) and have separate alert conditions.
Hidden Divergence:
Continuation patterns that signal trend continuation rather than reversal. Bullish hidden divergence: Price makes a higher low (current low > lowest low from previous period) but RSI makes a lower low (current RSI < lowest RSI from previous period). Bearish hidden divergence: Price makes a lower high (current high < highest high from previous period) but RSI makes a higher high (current RSI > highest RSI from previous period). These patterns indicate the trend is likely to continue in the current direction.
Volume Confirmation System
Volume threshold filtering requires current volume to exceed the volume SMA multiplied by the threshold factor. The formula: Volume Confirmed = Volume > (Volume SMA × Threshold). If the threshold is set to 0.1 or lower, volume confirmation is effectively disabled (always returns true). This allows you to use the indicator without volume filtering if desired.
Volume Climax is detected when volume exceeds: Volume SMA + (Volume StdDev × Multiplier). This indicates potential capitulation moments where extreme volume accompanies price movements. Volume Dry-Up is detected when volume falls below: Volume SMA - (Volume StdDev × Multiplier), indicating low participation periods that may produce unreliable signals. The volume SMA is cached for performance, updating on confirmed and real-time bars.
Multi-RSI Synergy
The script generates signals when multiple RSI periods align in overbought or oversold zones. This creates a confirmation system that reduces false signals. In "ALL" mode, all three RSIs (6, 14, 24) must be simultaneously above the overbought threshold OR all three must be below the oversold threshold. In "2-of-3" mode, any two of the three RSIs must align in the same direction. The script counts how many RSIs are in each zone: twoOfThreeOB = ((rsi6OB ? 1 : 0) + (rsi14OB ? 1 : 0) + (rsi24OB ? 1 : 0)) >= 2.
Synergy signals require: (1) Multi-RSI alignment (ALL or 2-of-3), (2) Volume confirmation, (3) Reset condition satisfied (enough bars since last synergy signal), (4) Additional filters passed (RSI50, Trend, ADX, Volume Dry-Up avoidance). Separate reset conditions track buy and sell signals independently. The reset condition uses ta.barssince() to count bars since the last trigger, returning true if the condition never occurred (allowing first signal) or if enough bars have passed.
Regression Forecasting
The script uses historical RSI values to forecast future RSI direction using four methods. The forecast horizon is configurable (1-50 bars ahead). Historical data is collected into an array, and regression coefficients are calculated based on the selected method.
Linear Regression: Calculates the least-squares fit line (y = mx + b) through the last N RSI values. The calculation: meanX = sumX / horizon, meanY = sumY / horizon, denominator = sumX² - horizon × meanX², m = (sumXY - horizon × meanX × meanY) / denominator, b = meanY - m × meanX. The forecast projects this line forward: forecast = b + m × i for i = 1 to horizon.
Polynomial Regression: Fits a quadratic curve (y = ax² + bx + c) to capture non-linear trends. The system of equations is solved using Cramer's rule with a 3×3 determinant. If the determinant is too small (< 0.0001), the system falls back to linear regression. Coefficients are calculated by solving: n×c + sumX×b + sumX²×a = sumY, sumX×c + sumX²×b + sumX³×a = sumXY, sumX²×c + sumX³×b + sumX⁴×a = sumX²Y. Note: Due to the O(n³) computational complexity of polynomial regression, the forecast horizon is automatically limited to a maximum of 20 bars when using polynomial regression to maintain optimal performance. If you set a horizon greater than 20 bars with polynomial regression, it will be automatically capped at 20 bars.
Exponential Smoothing: Applies exponential smoothing with adaptive alpha = 2/(horizon+1). The smoothing iterates from oldest to newest value: smoothed = alpha × series + (1 - alpha) × smoothed. Trend is calculated by comparing current smoothed value to an earlier smoothed value (at 60% of horizon): trend = (smoothed - earlierSmoothed) / (horizon - earlierIdx). Forecast: forecast = base + trend × i.
Moving Average: Uses the difference between short MA (horizon/2) and long MA (horizon) to estimate trend direction. Trend = (maShort - maLong) / (longLen - shortLen). Forecast: forecast = maShort + trend × i.
Confidence bands are calculated using RMSE (Root Mean Squared Error) of historical forecast accuracy. The error calculation compares historical values with forecast values: RMSE = sqrt(sumSquaredError / count). If insufficient data exists, it falls back to calculating standard deviation of recent RSI values. Confidence bands = forecast ± (RMSE × confidenceLevel). All forecast values and confidence bands are clamped to 0-100 to remain within RSI bounds. The regression functions include comprehensive safety checks: horizon validation (must not exceed array size), empty array handling, edge case handling for horizon=1 scenarios, division-by-zero protection, and bounds checking for all array access operations to prevent runtime errors.
Strong Top/Bottom Detection
Strong buy signals require three conditions: (1) RSI is at its lowest point within the bottom period: rsiVal <= ta.lowest(rsiVal, bottomPeriod), (2) RSI is below the oversold threshold minus a buffer: rsiVal < (oversoldThreshold - rsiTopBottomBuffer), where rsiTopBottomBuffer = 2.0 RSI points, (3) The absolute difference between current RSI and the lowest RSI exceeds the threshold value: abs(rsiVal - ta.lowest(rsiVal, bottomPeriod)) > threshold. This indicates a bounce from extreme levels with sufficient distance from the absolute low.
Strong sell signals use the inverse logic: RSI at highest point, above overbought threshold + rsiTopBottomBuffer (2.0 RSI points), and difference from highest exceeds threshold. Both signals also require: volume confirmation, reset condition satisfied (separate reset for buy vs sell), and all additional filters passed (RSI50, Trend, ADX, Volume Dry-Up avoidance).
The reset condition uses separate logic for buy and sell: resetCondBuy checks bars since isRSIAtBottom, resetCondSell checks bars since isRSIAtTop. This ensures buy signals reset based on bottom conditions and sell signals reset based on top conditions, preventing incorrect signal blocking.
Filtering System
RSI(50) Filter: Only allows buy signals when RSI(14) > 50 (bullish momentum) and sell signals when RSI(14) < 50 (bearish momentum). This filter ensures you're buying in uptrends and selling in downtrends from a momentum perspective. The filter is optional and can be disabled. Recommended to enable for noise reduction.
Trend Filter: Uses a long-term EMA (default 200) to determine trend direction. Buy signals require price above EMA, sell signals require price below EMA. The EMA slope is calculated as: emaSlope = ema - ema . Optional EMA slope filter additionally requires the EMA to be rising (slope > 0) for buy signals or falling (slope < 0) for sell signals. This provides stronger trend confirmation by requiring both price position and EMA direction.
ADX Filter: Uses the Directional Movement Index (calculated via ta.dmi()) to measure trend strength. Signals only fire when ADX exceeds the threshold (default 20), indicating a strong trend rather than choppy markets. The ADX calculation uses separate length and smoothing parameters. This filter helps avoid signals during sideways/consolidation periods.
Volume Dry-Up Avoidance: Prevents signals during periods of extremely low volume relative to average. If volume dry-up is detected and the filter is enabled, signals are blocked. This helps avoid unreliable signals that occur during low participation periods.
RSI Momentum Confirmation: Requires RSI to be accelerating in the signal direction before confirming signals. For buy signals, RSI must be consistently rising (recovering from oversold) over the lookback period. For sell signals, RSI must be consistently falling (declining from overbought) over the lookback period. The momentum check verifies that all consecutive changes are in the correct direction AND the cumulative change is significant. This filter ensures signals only fire when RSI momentum aligns with the signal direction, reducing false signals from weak momentum.
Multi-Timeframe Confirmation: Requires higher timeframe RSI to align with the signal direction. For buy signals, current RSI must be below the higher timeframe RSI by at least the confirmation threshold. For sell signals, current RSI must be above the higher timeframe RSI by at least the confirmation threshold. This ensures signals align with the larger trend context, reducing counter-trend trades. The higher timeframe RSI is fetched using request.security() from the selected timeframe.
All filters use the pattern: filterResult = not filterEnabled OR conditionMet. This means if a filter is disabled, it always passes (returns true). Filters can be combined, and all must pass for a signal to fire.
RSI Centerline and Period Crossovers
RSI(50) Centerline Crossovers: Detects when the selected RSI source crosses above or below the 50 centerline. Bullish crossover: ta.crossover(rsiSource, 50), bearish crossover: ta.crossunder(rsiSource, 50). You can select which RSI (6, 14, or 24) to use for these crossovers. These signals indicate momentum shifts from bearish to bullish (above 50) or bullish to bearish (below 50).
RSI Period Crossovers: Detects when different RSI periods cross each other. Available pairs: RSI(6) × RSI(14), RSI(14) × RSI(24), or RSI(6) × RSI(24). Bullish crossover: fast RSI crosses above slow RSI (ta.crossover(rsiFast, rsiSlow)), indicating momentum acceleration. Bearish crossover: fast RSI crosses below slow RSI (ta.crossunder(rsiFast, rsiSlow)), indicating momentum deceleration. These crossovers can signal shifts in momentum before price moves.
StochRSI Calculation
Stochastic RSI applies the Stochastic oscillator formula to RSI values instead of price. The calculation: %K = ((RSI - Lowest RSI) / (Highest RSI - Lowest RSI)) × 100, where the lookback is the StochRSI length. If the range is zero, %K defaults to 50.0. %K is then smoothed using SMA with the %K smoothing length. %D is calculated as SMA of smoothed %K with the %D smoothing length. All values are clamped to 0-100. You can select which RSI (6, 14, or 24) to use as the source for StochRSI calculation.
RSI Bollinger Bands
Bollinger Bands are applied to RSI(14) instead of price. The calculation: Basis = SMA(RSI(14), BB Period), StdDev = stdev(RSI(14), BB Period), Upper = Basis + (StdDev × Deviation Multiplier), Lower = Basis - (StdDev × Deviation Multiplier). This creates dynamic zones around RSI that adapt to RSI volatility. When RSI touches or exceeds the bands, it indicates extreme conditions relative to recent RSI behavior.
Noise Reduction System
The script includes a comprehensive noise reduction system to filter false signals and improve accuracy. When enabled, signals must pass multiple quality checks:
Signal Strength Requirement: RSI must be at least X points away from the centerline (50). For buy signals, RSI must be at least X points below 50. For sell signals, RSI must be at least X points above 50. This ensures signals only trigger when RSI is significantly in oversold/overbought territory, not just near neutral.
Extreme Zone Requirement: RSI must be deep in the OB/OS zone. For buy signals, RSI must be at least X points below the oversold threshold. For sell signals, RSI must be at least X points above the overbought threshold. This ensures signals only fire in extreme conditions where reversals are more likely.
Consecutive Bar Confirmation: The signal condition must persist for N consecutive bars before triggering. This reduces false signals from single-bar spikes or noise. The confirmation checks that the signal condition was true for all bars in the lookback period.
Zone Persistence (Optional): Requires RSI to remain in the OB/OS zone for N consecutive bars, not just touch it. This ensures RSI is truly in an extreme state rather than just briefly touching the threshold. When enabled, this provides stricter filtering for higher-quality signals.
RSI Slope Confirmation (Optional): Requires RSI to be moving in the expected signal direction. For buy signals, RSI should be rising (recovering from oversold). For sell signals, RSI should be falling (declining from overbought). This ensures momentum is aligned with the signal direction. The slope is calculated by comparing current RSI to RSI N bars ago.
All noise reduction filters can be enabled/disabled independently, allowing you to customize the balance between signal frequency and accuracy. The default settings provide a good balance, but you can adjust them based on your trading style and market conditions.
Alert System
The script includes separate alert conditions for each signal type: buy/sell (adaptive RSI crossovers), divergence (regular, strong, hidden), crossovers (RSI50 centerline, RSI period crossovers), synergy signals, and trend breaks. Each alert type has its own alertcondition() declaration with a unique title and message.
An optional cooldown system prevents alert spam by requiring a minimum number of bars between alerts of the same type. The cooldown check: canAlert = na(lastAlertBar) OR (bar_index - lastAlertBar >= cooldownBars). If the last alert bar is na (first alert), it always allows the alert. Each alert type maintains its own lastAlertBar variable, so cooldowns are independent per signal type. The default cooldown is 10 bars, which is recommended for noise reduction.
Higher Timeframe RSI
The script can display RSI from a higher timeframe using request.security(). This allows you to see the RSI context from a larger timeframe (e.g., daily RSI on an hourly chart). The higher timeframe RSI uses RSI(14) calculation from the selected timeframe. This provides context for the current timeframe's RSI position relative to the larger trend.
RSI Pivot Trendlines
The script can draw trendlines connecting pivot highs and lows on RSI(6). This feature helps visualize RSI trends and identify potential trend breaks.
Pivot Detection: Pivots are detected using a configurable period. The script can require pivots to have minimum strength (RSI points difference from surrounding bars) to filter out weak pivots. Lower minPivotStrength values detect more pivots (more trendlines), while higher values detect only stronger pivots (fewer but more significant trendlines). Pivot confirmation is optional: when enabled, the script waits N bars to confirm the pivot remains the extreme, reducing repainting. Pivot confirmation functions (f_confirmPivotLow and f_confirmPivotHigh) are always called on every bar for consistency, as recommended by TradingView. When pivot bars are not available (na), safe default values are used, and the results are then used conditionally based on confirmation settings. This ensures consistent calculations and prevents calculation inconsistencies.
Trendline Drawing: Uptrend lines connect confirmed pivot lows (green), and downtrend lines connect confirmed pivot highs (red). By default, only the most recent trendline is shown (old trendlines are deleted when new pivots are confirmed). This keeps the chart clean and uncluttered. If "Keep Historical Trendlines" is enabled, the script preserves up to N historical trendlines (configurable via "Max Trendlines to Keep", default 5). When historical trendlines are enabled, old trendlines are saved to arrays instead of being deleted, allowing you to see multiple trendlines simultaneously for better trend analysis. The arrays are automatically limited to prevent memory accumulation.
Trend Break Detection: Signals are generated when RSI breaks above or below trendlines. Uptrend breaks (RSI crosses below uptrend line) generate buy signals. Downtrend breaks (RSI crosses above downtrend line) generate sell signals. Optional trend break confirmation requires the break to persist for N bars and optionally include volume confirmation. Trendline angle filtering can exclude flat/weak trendlines from generating signals (minTrendlineAngle > 0 filters out weak/flat trendlines).
How Components Work Together
The combination of multiple RSI periods provides confirmation across different timeframes, reducing false signals. RSI(6) catches early moves, RSI(14) provides balanced signals, and RSI(24) confirms longer-term trends. When all three align (synergy), it indicates strong consensus across timeframes.
Volume confirmation ensures signals occur with sufficient market participation, filtering out low-volume false breakouts. Volume climax detection identifies potential reversal points, while volume dry-up avoidance prevents signals during unreliable low-volume periods.
Trend filters align signals with the overall market direction. The EMA filter ensures you're trading with the trend, and the EMA slope filter adds an additional layer by requiring the trend to be strengthening (rising EMA for buys, falling EMA for sells).
ADX filter ensures signals only fire during strong trends, avoiding choppy/consolidation periods. RSI(50) filter ensures momentum alignment with the trade direction.
Momentum confirmation requires RSI to be accelerating in the signal direction, ensuring signals only fire when momentum is aligned. Multi-timeframe confirmation ensures signals align with higher timeframe trends, reducing counter-trend trades.
Divergence detection identifies potential reversals before they occur, providing early warning signals. Pivot-based divergence provides more accurate detection by using actual pivot points. Hidden divergence identifies continuation patterns, useful for trend-following strategies.
The noise reduction system combines multiple filters (signal strength, extreme zone, consecutive bars, zone persistence, RSI slope) to significantly reduce false signals. These filters work together to ensure only high-quality signals are generated.
The synergy system requires alignment across all RSI periods for highest-quality signals, significantly reducing false positives. Regression forecasting provides forward-looking context, helping anticipate potential RSI direction changes.
Pivot trendlines provide visual trend analysis and can generate signals when RSI breaks trendlines, indicating potential reversals or continuations.
Reset conditions prevent signal spam by requiring a minimum number of bars between signals. Separate reset conditions for buy and sell signals ensure proper signal management.
Usage Instructions
Configuration Presets (Recommended): The script includes optimized preset configurations for instant setup. Simply select your trading style from the "Configuration Preset" dropdown:
- Scalping Preset: RSI(4, 7, 9) with minimal smoothing. Noise reduction disabled, momentum confirmation disabled for fastest signals.
- Day Trading Preset: RSI(6, 9, 14) with light smoothing. Momentum confirmation enabled for better signal quality.
- Swing Trading Preset: RSI(14, 14, 21) with moderate smoothing. Balanced configuration for medium-term trades.
- Position Trading Preset: RSI(24, 21, 28) with heavier smoothing. Optimized for longer-term positions with all filters active.
- Custom Mode: Full manual control over all settings. Default behavior matches previous script versions.
Presets automatically configure RSI periods, smoothing lengths, and filter settings. You can still manually adjust any setting after selecting a preset if needed.
Getting Started: The easiest way to get started is to select a configuration preset matching your trading style (Scalping, Day Trading, Swing Trading, or Position Trading) from the "Configuration Preset" dropdown. This instantly configures all settings for optimal performance. Alternatively, use "Custom" mode for full manual control. The default configuration (Custom mode) shows RSI(6), RSI(14), and RSI(24) with their default smoothing. Overbought/oversold fill zones are enabled by default.
Customizing RSI Periods: Adjust the RSI lengths (6, 14, 24) based on your trading timeframe. Shorter periods (6) for scalping, standard (14) for day trading, longer (24) for swing trading. You can disable any RSI period you don't need.
Smoothing Selection: Choose smoothing method based on your needs. EMA provides balanced smoothing, RMA (Wilder's) is traditional, Zero-Lag reduces lag but may increase noise. Adjust smoothing lengths individually or use global smoothing for consistency. Note: Smoothing lengths are automatically validated to ensure they are always less than the corresponding RSI period length. If you set smoothing >= RSI length, it will be auto-adjusted to prevent invalid configurations.
Dynamic OB/OS: The dynamic thresholds automatically adapt to volatility. Adjust the volatility multiplier and base percentage to fine-tune sensitivity. Higher values create wider thresholds in volatile markets.
Volume Confirmation: Set volume threshold to 1.2 (default) for standard confirmation, higher for stricter filtering, or 0.1 to disable volume filtering entirely.
Multi-RSI Synergy: Use "ALL" mode for highest-quality signals (all 3 RSIs must align), or "2-of-3" mode for more frequent signals. Adjust the reset period to control signal frequency.
Filters: Enable filters gradually to find your preferred balance. Start with volume confirmation, then add trend filter, then ADX for strongest confirmation. RSI(50) filter is useful for momentum-based strategies and is recommended for noise reduction. Momentum confirmation and multi-timeframe confirmation add additional layers of accuracy but may reduce signal frequency.
Noise Reduction: The noise reduction system is enabled by default with balanced settings. Adjust minSignalStrength (default 3.0) to control how far RSI must be from centerline. Increase requireConsecutiveBars (default 1) to require signals to persist longer. Enable requireZonePersistence and requireRsiSlope for stricter filtering (higher quality but fewer signals). Start with defaults and adjust based on your needs.
Divergence: Enable divergence detection and adjust lookback periods. Strong divergence (with engulfing confirmation) provides higher-quality signals. Hidden divergence is useful for trend-following strategies. Enable pivot-based divergence for more accurate detection using actual pivot points instead of simple lowest/highest comparisons. Pivot-based divergence uses tolerance-based matching (1% for price, 1.0 RSI point for RSI) for better accuracy.
Forecasting: Enable regression forecasting to see potential RSI direction. Linear regression is simplest, polynomial captures curves, exponential smoothing adapts to trends. Adjust horizon based on your trading timeframe. Confidence bands show forecast uncertainty - wider bands indicate less reliable forecasts.
Pivot Trendlines: Enable pivot trendlines to visualize RSI trends and identify trend breaks. Adjust pivot detection period (default 5) - higher values detect fewer but stronger pivots. Enable pivot confirmation (default ON) to reduce repainting. Set minPivotStrength (default 1.0) to filter weak pivots - lower values detect more pivots (more trendlines), higher values detect only stronger pivots (fewer trendlines). Enable "Keep Historical Trendlines" to preserve multiple trendlines instead of just the most recent one. Set "Max Trendlines to Keep" (default 5) to control how many historical trendlines are preserved. Enable trend break confirmation for more reliable break signals. Adjust minTrendlineAngle (default 0.0) to filter flat trendlines - set to 0.1-0.5 to exclude weak trendlines.
Alerts: Set up alerts for your preferred signal types. Enable cooldown to prevent alert spam. Each signal type has its own alert condition, so you can be selective about which signals trigger alerts.
Visual Elements and Signal Markers
The script uses various visual markers to indicate signals and conditions:
- "sBottom" label (green): Strong bottom signal - RSI at extreme low with strong buy conditions
- "sTop" label (red): Strong top signal - RSI at extreme high with strong sell conditions
- "SyBuy" label (lime): Multi-RSI synergy buy signal - all RSIs aligned oversold
- "SySell" label (red): Multi-RSI synergy sell signal - all RSIs aligned overbought
- 🐂 emoji (green): Strong bullish divergence detected
- 🐻 emoji (red): Strong bearish divergence detected
- 🔆 emoji: Weak divergence signals (if enabled)
- "H-Bull" label: Hidden bullish divergence
- "H-Bear" label: Hidden bearish divergence
- ⚡ marker (top of pane): Volume climax detected (extreme volume) - positioned at top for visibility
- 💧 marker (top of pane): Volume dry-up detected (very low volume) - positioned at top for visibility
- ↑ triangle (lime): Uptrend break signal - RSI breaks below uptrend line
- ↓ triangle (red): Downtrend break signal - RSI breaks above downtrend line
- Triangle up (lime): RSI(50) bullish crossover
- Triangle down (red): RSI(50) bearish crossover
- Circle markers: RSI period crossovers
All markers are positioned at the RSI value where the signal occurs, using location.absolute for precise placement.
Signal Priority and Interpretation
Signals are generated independently and can occur simultaneously. Higher-priority signals generally indicate stronger setups:
1. Multi-RSI Synergy signals (SyBuy/SySell) - Highest priority: Requires alignment across all RSI periods plus volume and filter confirmation. These are the most reliable signals.
2. Strong Top/Bottom signals (sTop/sBottom) - High priority: Indicates extreme RSI levels with strong bounce conditions. Requires volume confirmation and all filters.
3. Divergence signals - Medium-High priority: Strong divergence (with engulfing) is more reliable than regular divergence. Hidden divergence indicates continuation rather than reversal.
4. Adaptive RSI crossovers - Medium priority: Buy when adaptive RSI crosses below dynamic oversold, sell when it crosses above dynamic overbought. These use volatility-adjusted RSI for more accurate signals.
5. RSI(50) centerline crossovers - Medium priority: Momentum shift signals. Less reliable alone but useful when combined with other confirmations.
6. RSI period crossovers - Lower priority: Early momentum shift indicators. Can provide early warning but may produce false signals in choppy markets.
Best practice: Wait for multiple confirmations. For example, a synergy signal combined with divergence and volume climax provides the strongest setup.
Chart Requirements
For proper script functionality and compliance with TradingView requirements, ensure your chart displays:
- Symbol name: The trading pair or instrument name should be visible
- Timeframe: The chart timeframe should be clearly displayed
- Script name: "Ultimate RSI " should be visible in the indicator title
These elements help traders understand what they're viewing and ensure proper script identification. The script automatically includes this information in the indicator title and chart labels.
Performance Considerations
The script is optimized for performance:
- ATR and Volume SMA are cached using var variables, updating only on confirmed and real-time bars to reduce redundant calculations
- Forecast line arrays are dynamically managed: lines are reused when possible, and unused lines are deleted to prevent memory accumulation
- Calculations use efficient Pine Script functions (ta.rsi, ta.ema, etc.) which are optimized by TradingView
- Array operations are minimized where possible, with direct calculations preferred
- Polynomial regression automatically caps the forecast horizon at 20 bars (POLYNOMIAL_MAX_HORIZON constant) to prevent performance degradation, as polynomial regression has O(n³) complexity. This safeguard ensures optimal performance even with large horizon settings
- Pivot detection includes edge case handling to ensure reliable calculations even on early bars with limited historical data. Regression forecasting functions include comprehensive safety checks: horizon validation (must not exceed array size), empty array handling, edge case handling for horizon=1 scenarios, and division-by-zero protection in all mathematical operations
The script should perform well on all timeframes. On very long historical data, forecast lines may accumulate if the horizon is large; consider reducing the forecast horizon if you experience performance issues. The polynomial regression performance safeguard automatically prevents performance issues for that specific regression type.
Known Limitations and Considerations
- Forecast lines are forward-looking projections and should not be used as definitive predictions. They provide context but are not guaranteed to be accurate.
- Dynamic OB/OS thresholds can exceed 100 or go below 0 in extreme volatility scenarios, but are clamped to 0-100 range. This means in very volatile markets, the dynamic thresholds may not widen as much as the raw calculation suggests.
- Volume confirmation requires sufficient historical volume data. On new instruments or very short timeframes, volume calculations may be less reliable.
- Higher timeframe RSI uses request.security() which may have slight delays on some data feeds.
- Regression forecasting requires at least N bars of history (where N = forecast horizon) before it can generate forecasts. Early bars will not show forecast lines.
- StochRSI calculation requires the selected RSI source to have sufficient history. Very short RSI periods on new charts may produce less reliable StochRSI values initially.
Practical Use Cases
The indicator can be configured for different trading styles and timeframes:
Swing Trading: Select the "Swing Trading" preset for instant optimal configuration. This preset uses RSI periods (14, 14, 21) with moderate smoothing. Alternatively, manually configure: Use RSI(24) with Multi-RSI Synergy in "ALL" mode, combined with trend filter (EMA 200) and ADX filter. This configuration provides high-probability setups with strong confirmation across multiple RSI periods.
Day Trading: Select the "Day Trading" preset for instant optimal configuration. This preset uses RSI periods (6, 9, 14) with light smoothing and momentum confirmation enabled. Alternatively, manually configure: Use RSI(6) with Zero-Lag smoothing for fast signal detection. Enable volume confirmation with threshold 1.2-1.5 for reliable entries. Combine with RSI(50) filter to ensure momentum alignment. Strong top/bottom signals work well for day trading reversals.
Trend Following: Enable trend filter (EMA) and EMA slope filter for strong trend confirmation. Use RSI(14) or RSI(24) with ADX filter to avoid choppy markets. Hidden divergence signals are useful for trend continuation entries.
Reversal Trading: Focus on divergence detection (regular and strong) combined with strong top/bottom signals. Enable volume climax detection to identify capitulation moments. Use RSI(6) for early reversal signals, confirmed by RSI(14) and RSI(24).
Forecasting and Planning: Enable regression forecasting with polynomial or exponential smoothing methods. Use forecast horizon of 10-20 bars for swing trading, 5-10 bars for day trading. Confidence bands help assess forecast reliability.
Multi-Timeframe Analysis: Enable higher timeframe RSI to see context from larger timeframes. For example, use daily RSI on hourly charts to understand the larger trend context. This helps avoid counter-trend trades.
Scalping: Select the "Scalping" preset for instant optimal configuration. This preset uses RSI periods (4, 7, 9) with minimal smoothing, disables noise reduction, and disables momentum confirmation for faster signals. Alternatively, manually configure: Use RSI(6) with minimal smoothing (or Zero-Lag) for ultra-fast signals. Disable most filters except volume confirmation. Use RSI period crossovers (RSI(6) × RSI(14)) for early momentum shifts. Set volume threshold to 1.0-1.2 for less restrictive filtering.
Position Trading: Select the "Position Trading" preset for instant optimal configuration. This preset uses extended RSI periods (24, 21, 28) with heavier smoothing, optimized for longer-term trades. Alternatively, manually configure: Use RSI(24) with all filters enabled (Trend, ADX, RSI(50), Volume Dry-Up avoidance). Multi-RSI Synergy in "ALL" mode provides highest-quality signals.
Practical Tips and Best Practices
Getting Started: The fastest way to get started is to select a configuration preset that matches your trading style. Simply choose "Scalping", "Day Trading", "Swing Trading", or "Position Trading" from the "Configuration Preset" dropdown to instantly configure all settings optimally. For advanced users, use "Custom" mode for full manual control. The default configuration (Custom mode) is balanced and works well across different markets. After observing behavior, customize settings to match your trading style.
Reducing Repainting: All signals are based on confirmed bars, minimizing repainting. The script uses confirmed bar data for all calculations to ensure backtesting accuracy.
Signal Quality: Multi-RSI Synergy signals in "ALL" mode provide the highest-quality signals because they require alignment across all three RSI periods. These signals have lower frequency but higher reliability. For more frequent signals, use "2-of-3" mode. The noise reduction system further improves signal quality by requiring multiple confirmations (signal strength, extreme zone, consecutive bars, optional zone persistence and RSI slope). Adjust noise reduction settings to balance signal frequency vs. accuracy.
Filter Combinations: Start with volume confirmation, then add trend filter for trend alignment, then ADX filter for trend strength. Combining all three filters significantly reduces false signals but also reduces signal frequency. Find your balance based on your risk tolerance.
Volume Filtering: Set volume threshold to 0.1 or lower to effectively disable volume filtering if you trade instruments with unreliable volume data or want to test without volume confirmation. Standard confirmation uses 1.2-1.5 threshold.
RSI Period Selection: RSI(6) is most sensitive and best for scalping or early signal detection. RSI(14) provides balanced signals suitable for day trading. RSI(24) is smoother and better for swing trading and trend confirmation. You can disable any RSI period you don't need to reduce visual clutter.
Smoothing Methods: EMA provides balanced smoothing with moderate lag. RMA (Wilder's smoothing) is traditional and works well for RSI. Zero-Lag reduces lag but may increase noise. WMA gives more weight to recent values. Choose based on your preference for responsiveness vs. smoothness.
Forecasting: Linear regression is simplest and works well for trending markets. Polynomial regression captures curves and works better in ranging markets. Exponential smoothing adapts to trends. Moving average method is most conservative. Use confidence bands to assess forecast reliability.
Divergence: Strong divergence (with engulfing confirmation) is more reliable than regular divergence. Hidden divergence indicates continuation rather than reversal, useful for trend-following strategies. Pivot-based divergence provides more accurate detection by using actual pivot points instead of simple lowest/highest comparisons. Adjust lookback periods based on your timeframe: shorter for day trading, longer for swing trading. Pivot divergence period (default 5) controls the sensitivity of pivot detection.
Dynamic Thresholds: Dynamic OB/OS thresholds automatically adapt to volatility. In volatile markets, thresholds widen; in calm markets, they narrow. Adjust the volatility multiplier and base percentage to fine-tune sensitivity. Higher values create wider thresholds in volatile markets.
Alert Management: Enable alert cooldown (default 10 bars, recommended) to prevent alert spam. Each alert type has its own cooldown, so you can set different cooldowns for different signal types. For example, use shorter cooldown for synergy signals (high quality) and longer cooldown for crossovers (more frequent). The cooldown system works independently for each signal type, preventing spam while allowing different signal types to fire when appropriate.
Technical Specifications
- Pine Script Version: v6
- Indicator Type: Non-overlay (displays in separate panel below price chart)
- Repainting Behavior: Minimal - all signals are based on confirmed bars, ensuring accurate backtesting results
- Performance: Optimized with caching for ATR and volume calculations. Forecast arrays are dynamically managed to prevent memory accumulation.
- Compatibility: Works on all timeframes (1 minute to 1 month) and all instruments (stocks, forex, crypto, futures, etc.)
- Edge Case Handling: All calculations include safety checks for division by zero, NA values, and boundary conditions. Reset conditions and alert cooldowns handle edge cases where conditions never occurred or values are NA.
- Reset Logic: Separate reset conditions for buy signals (based on bottom conditions) and sell signals (based on top conditions) ensure logical correctness.
- Input Parameters: 60+ customizable parameters organized into logical groups for easy configuration. Configuration presets available for instant setup (Scalping, Day Trading, Swing Trading, Position Trading, Custom).
- Noise Reduction: Comprehensive noise reduction system with multiple filters (signal strength, extreme zone, consecutive bars, zone persistence, RSI slope) to reduce false signals.
- Pivot-Based Divergence: Enhanced divergence detection using actual pivot points for improved accuracy.
- Momentum Confirmation: RSI momentum filter ensures signals only fire when RSI is accelerating in the signal direction.
- Multi-Timeframe Confirmation: Optional higher timeframe RSI alignment for trend confirmation.
- Enhanced Pivot Trendlines: Trendline drawing with strength requirements, confirmation, and trend break detection.
Technical Notes
- All RSI values are clamped to 0-100 range to ensure valid oscillator values
- ATR and Volume SMA are cached for performance, updating on confirmed and real-time bars
- Reset conditions handle edge cases: if a condition never occurred, reset returns true (allows first signal)
- Alert cooldown handles na values: if no previous alert, cooldown allows the alert
- Forecast arrays are dynamically sized based on horizon, with unused lines cleaned up
- Fill logic uses a minimum gap (0.1) to ensure reliable polygon rendering in TradingView
- All calculations include safety checks for division by zero and boundary conditions. Regression functions validate that horizon doesn't exceed array size, and all array access operations include bounds checking to prevent out-of-bounds errors
- The script uses separate reset conditions for buy signals (based on bottom conditions) and sell signals (based on top conditions) for logical correctness
- Background coloring uses a fallback system: dynamic color takes priority, then RSI(6) heatmap, then monotone if both are disabled
- Noise reduction filters are applied after accuracy filters, providing multiple layers of signal quality control
- Pivot trendlines use strength requirements to filter weak pivots, reducing noise in trendline drawing. Historical trendlines are stored in arrays and automatically limited to prevent memory accumulation when "Keep Historical Trendlines" is enabled
- Volume climax and dry-up markers are positioned at the top of the pane for better visibility
- All calculations are optimized with conditional execution - features only calculate when enabled (performance optimization)
- Input Validation: Automatic cross-input validation ensures smoothing lengths are always less than RSI period lengths, preventing configuration errors
- Configuration Presets: Four optimized preset configurations (Scalping, Day Trading, Swing Trading, Position Trading) for instant setup, plus Custom mode for full manual control
- Constants Management: Magic numbers extracted to documented constants for improved maintainability and easier tuning (pivot tolerance, divergence thresholds, fill gap, etc.)
- TradingView Function Consistency: All TradingView functions (ta.crossover, ta.crossunder, ta.atr, ta.lowest, ta.highest, ta.lowestbars, ta.highestbars, etc.) and custom functions that depend on historical results (f_consecutiveBarConfirmation, f_rsiSlopeConfirmation, f_rsiZonePersistence, f_applyAllFilters, f_rsiMomentum, f_forecast, f_confirmPivotLow, f_confirmPivotHigh) are called on every bar for consistency, as recommended by TradingView. Results are then used conditionally when needed. This ensures consistent calculations and prevents calculation inconsistencies.
TQQQ Vibha Strategy – Auto Ranges + Rally Days1. Buy only after an intermediate bottom
A 20-day lowest low becomes the potential bottom.
2. Wait 3–4 days of higher highs & higher lows
higherSeq logic enforces that.
3. Avoid buying when too extended from the 200-day
Enforced with:
close <= ma200 * (1 + maxExtension) (default 10%)
4. Must close back above 200-day
Needed for “change of character”
5. Sell immediately if price breaks the Day-1 rally low (“line in the sand”)
Script sets lineInSand = bottom low
If price undercuts → close position immediately
6. Range-top rejection
Track touches of range top (highest high since bottom)
Three failures = sell (“3 strikes rule”)
Price Volume Heatmap [MHA Finverse]Price Volume Heatmap - Advanced Volume Profile Analysis
Unlock the power of institutional-level volume analysis with the Price Volume Heatmap indicator. This sophisticated tool visualizes market structure through volume distribution across price levels, helping you identify key support/resistance zones, high-probability reversal areas, and optimal entry/exit points.
🎯 What Makes This Indicator Unique?
Unlike traditional volume indicators that only show volume over time, this heatmap displays volume distribution across price levels , revealing where the most significant trading activity occurred. The gradient coloring system instantly highlights high-volume nodes (areas of strong interest) and low-volume nodes (potential breakout zones).
📊 Core Features
1. Dynamic Volume Heatmap
- Visualizes volume concentration across 250 customizable price levels
- Gradient color scheme from high volume (white) to low volume (teal/green)
- Adjustable brightness multiplier for enhanced contrast and clarity
- Real-time updates as market conditions evolve
2. Point of Control (POC)
- Automatically identifies the price level with the highest traded volume
- Acts as a magnetic price level where markets often return
- Critical for identifying fair value areas and potential reversal zones
- Customizable line style, width, and color
3. Flexible Lookback Settings
- Lookback Bars: Set any value from 1-5000 bars to control analysis depth
- Visible Range Mode: Analyze only what's currently visible on your chart
- Timeframe-Specific Settings: Different lookback periods for 1m, 5m, 15m, 30m, 1h, Daily, and Weekly charts
- Adapts to your trading style - scalping to position trading
4. Session Separation Analysis
- Tokyo Session: 00:00-09:00 UTC
- London Session: 07:00-16:00 UTC
- New York Session: 13:00-22:00 UTC
- Sydney Session: 21:00-06:00 UTC
- Daily Reset: Analyze each trading day independently
Session separation allows you to understand volume distribution specific to each major trading session, revealing institutional order flow patterns and session-specific support/resistance levels.
5. Profile Width Options
- Dynamic: Profile width adjusts based on lookback period
- Fixed Bars: Set a specific bar count for consistent profile width
- Extend Forward: Project the profile into future bars for planning trades
6. Smart Alerts
- POC crossover/crossunder alerts
- New session start notifications
- Never miss critical price action at high-volume nodes
📈 How to Use This Indicator Professionally
Understanding Market Structure:
High Volume Nodes (HVN):
- Appear as bright/white areas in the heatmap
- Represent price levels where significant trading occurred
- Act as strong support/resistance zones
- Markets often consolidate or bounce from these levels
- Trading Strategy: Look for entries when price tests HVN areas with confluence from other indicators
Low Volume Nodes (LVN):
- Appear as darker/teal areas in the heatmap
- Represent price levels with minimal trading activity
- Price tends to move quickly through these areas
- Often form "gaps" in the volume profile
- Trading Strategy: Expect rapid price movement through LVN zones; avoid placing stop losses here
Point of Control (POC):
- The single most important price level in your analysis window
- Represents the fairest price where maximum volume traded
- Price gravitates toward POC like a magnet
- Trading Strategy:
* When price is above POC: bullish bias, POC acts as support
* When price is below POC: bearish bias, POC acts as resistance
* POC breaks often lead to significant trend changes
Session-Based Analysis:
Use session separation to understand how different market participants trade:
Asian Session (Tokyo/Sydney):
- Typically lower volatility and range-bound
- Volume profiles often show tight, balanced distribution
- Use for identifying overnight ranges and gap fill zones
London Session:
- Highest volume session for forex pairs
- Often shows strong directional bias
- Look for breakouts from Asian ranges during London open
New York Session:
- Maximum participation when overlapping with London
- Institutional order flow most visible
- POC during NY session often becomes key level for following sessions
🎯 Practical Trading Applications
1. Identifying Support & Resistance:
High volume nodes from the heatmap are far more reliable than traditional swing highs/lows. When price approaches an HVN, expect reaction - either a bounce or a significant breakout if breached.
2. Trend Confirmation:
- Healthy uptrend: POC rising over time, HVN forming at higher levels
- Healthy downtrend: POC falling over time, HVN forming at lower levels
- Consolidation: POC relatively flat, volume balanced across range
3. Breakout Trading:
When price breaks through a Low Volume Node with momentum, it often continues to the next High Volume Node. Use LVN areas as measured move targets.
4. Reversal Zones:
Multiple HVN stacking on top of each other creates a "volume shelf" - an extremely strong support/resistance zone where reversals are highly probable.
5. Risk Management:
- Place stops beyond HVN areas (not within LVN zones)
- Size positions based on distance to nearest HVN
- Use POC as trailing stop level in trending markets
⚙️ Recommended Settings
For Day Trading (Scalping/Intraday):
- Lookback: 200-500 bars
- Rows: 200-250
- Enable session separation for your primary trading session
- Profile Width: Dynamic or Fixed Bars (30-50)
For Swing Trading:
- Lookback: 500-1000 bars
- Rows: 250
- Session separation: Daily Reset
- Profile Width: Dynamic
For Position Trading:
- Lookback: 1000-3000 bars
- Rows: 250
- Use timeframe-specific settings
- Profile Width: Extend Forward (20-50 bars)
💡 Pro Tips
1. Combine this indicator with price action analysis - volume confirms what price is telling you
2. Watch for POC convergence with other technical levels (fibonacci, pivot points, moving averages)
3. Volume at extremes (tops/bottoms of heatmap) often indicates exhaustion
4. Session POC from previous sessions often acts as magnet for current session
5. Increase brightness multiplier (1.5-2.5) for clearer visualization on busy charts
6. Use "Number of Sessions to Display" to analyze consistency of volume levels across multiple sessions
🎨 Customization
Fully customizable visual appearance:
- Gradient colors for volume visualization
- POC line thickness, color, and style
- Session line colors and visibility
- All settings organized in intuitive groups
⚠️ Disclaimer
This indicator is a technical analysis tool and should not be used as the sole basis for trading decisions. Always combine volume analysis with proper risk management, fundamental analysis, and other technical indicators. Past performance does not guarantee future results.
---
Support & Updates
Regular updates and improvements are made to enhance functionality. For questions, suggestions, or bug reports, please use the comments section below.
Happy Trading! 📊💹






















