Chaikin MF% (CMFP) w. Alerts, Bells & Whistles [LucF]This is Chaikin’s Money Flow indicator on a 0-100 scale with buy/sell signals, alerts and other bells & whistles.
It includes:
- a fast EMA (16 periods by default),
- a slow MA (64 periods by default),
- histograms,
- 3 different sorts of crosses,
- big swings identification,
- buy/sell signals on CMFP crossing back from outside user-defined levels,
- buy/sell signals on the slow MA pivots above/below user-defined levels,
- alerts on big swings and buy/sells.
This indicator started with @LazyBear code (VAPI) at:
@cI8DH then changed the scale to 0-100, which I find very useful:
I then added the rest.
The chart above shows both clean and busy versions of the indicator.
Note that the default length is 10 rather than the commonly used 20. I use CMFP in conjunction with VFI and like the fact that it is faster than VFI. The default inputs show the way I normally use this indicator, with the slow MA shown in histogram mode. I find it gives good context to the signal line. Crosses between the two are often useful.
The buy/sell signals aren’t the main attraction of this indicator, and nothing to write home about. Like the big swing markers, I think it’s more realistic to view them as pointers to potentially interesting areas on charts. Their nature makes them more suited to identifying reversals. They certainly aren’t reliable enough to turn this study into a strategy and I normally don’t use them. The levels pre-defined for the buy/sell signals on CMFP are most useful on short intervals. The buy/sell signals on the slow MA pivots work on a more complete range of intervals. Optimization for your specific instruments and intervals will improve their reliability.
As usual when defining alerts, be sure you already have defined proper inputs and that you are on the intended interval, as they will be used when triggering alerts.
스크립트에서 "美元指数跌破100大关"에 대해 찾기
3 of SlowStochastics
스토캐스틱 3개를 한번에 볼수 있습니다. 천장과 바닥은 각 100의 위치마다 존재합니다
You can see three slow stochastics at once. The ceiling and floor are located at each 100 (0 - 100 - 200- 300)
Percentage Price Oscillator (PPO)The Percentage Price Oscillator (PPO) is a momentum oscillator that measures the difference between two moving averages as a percentage of the larger moving average. As with its cousin, MACD, the Percentage Price Oscillator is shown with a signal line, a histogram and a centerline. Signals are generated with signal line crossovers, centerline crossovers, and divergences. First, PPO readings are not subject to the price level of the security. Second, PPO readings for different securities can be compared, even when there are large differences in the price.
Calculations
PPO: {(12-day EMA - 26-day EMA)/26-day EMA} x 100
Signal Line: 9-day EMA of PPO
PPO Histogram: PPO - Signal Line
While MACD measures the absolute difference between two moving averages, PPO makes this a relative value by dividing the difference by the slower moving average (26-day EMA). PPO is simply the MACD value divided by the longer moving average. The result is multiplied by 100 to move the decimal place two spots.
Interpretation
As with MACD, the PPO reflects the convergence and divergence of two moving averages. PPO is positive when the shorter moving average is above the longer moving average. The indicator moves further into positive territory as the shorter moving average distances itself from the longer moving average. This reflects strong upside momentum. The PPO is negative when the shorter moving average is below the longer moving average. Negative readings grow when the shorter moving average distances itself from the longer moving average (goes further negative). This reflects strong downside momentum. The histogram represents the difference between PPO and its 9-day EMA, the signal line. The histogram is positive when PPO is above its 9-day EMA and negative when PPO is below its 9-day EMA. The PPO-Histogram can be used to anticipate signal line crossovers in the PPO.
MACD, PPO and Price
MACD levels are affected by the price of a security. A high-priced security will have higher or lower MACD values than a low-priced security, even if volatility is basically equal. This is because MACD is based on the absolute difference in the two moving averages. Because MACD is based on absolute levels, large price changes can affect MACD levels over an extended period of time. If a stock advances from 20 to 100, its MACD levels will be considerably smaller around 20 than around 100. The PPO solves this problem by showing MACD values in percentage terms.
Conclusions
The Percentage Price Oscillator (PPO) generates the same signals as the MACD, but provides an added dimension as a percentage version of MACD. The PPO levels of the Dow Industrials (price > 20K) can be compared against the PPO levels of IBM (price < 200) because the PPO “levels” the playing field. In addition, PPO levels in one security can be compared over extended periods of time, even if the price has doubled or tripled. This is not the case for the MACD.
Limitations
Despite its advantages, the PPO is still not the best oscillator to identify overbought or oversold conditions because movements are unlimited (in theory). Levels for RSI and the Stochastic Oscillator are limited and this makes them better suited to identify overbought and oversold levels.
Source: Stockcharts
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.
Exponential Moving Average (Set of 3) [Krypt] + 13/34 EMAsI took Krypt's script and essentially added on to it.
the 20/50/100/200 EMAs should be used together as support and resistance as normal.
Wait for price to break 200 EMA
Wait for 50 EMA to cross 200 EMA
Wait for pullback to 50 EMA to open position
20 and 100 EMAs are for extra information about moving support and resistance
and 13/34 EMAs should be used in conjunction
When 13 EMA crosses 34 EMA, open position
When price gets far from 13/34, close position (because price will attempt to revert back to mean)
This is better for scalping and swing trades than the 20/50/100/200 setup.
Twitter: @AzorAhai06
Ichimoku Cloud Score v1.0This script calculates a simple Ichimoku Score based on the signals documented here , with a few additions. Each of the score components can be individually weighted via the script inputs . The output is a plot of the normalized Ichimoku score, in the range of -100 to 100.
This script has been heavily modified from 'Ichimoku Cloud Signal Score v2.0.0 '. Credit to user 'dashed' for the initial implementation.
This has been modified with several refinements:
Clean/Organized Code
Simplified Inputs
Improved Style
Scores normalized to a range (-100, 100)
Bugfixes and Improvements
Script Inputs: i.imgur.com
Volume RatioDefinition:
Volume ratio can be obtained in a similar way to RSI.
Volume Ratio (%) = 100 - 100/(1+vr)
The parameter "vr" is defined as
vr=(A+U/2)/(D+U/2)
A=Total volume of the periods when the price advanced
D=Total volume of the periods when the price declined
U=Total volume of the periods when the price unchanged
After substitution, following expression can be derived and the denominator represents total volume of all periods.
Volume Ratio (%) = 100 x (A+U/2)/(A+D+U)
Notes:
A similar method to interpret RSI can be employed.
1) Overbought level over 70% and oversold level under 30%. These levels need to be adjusted according to the periods, time frames and issues.
2) Bullish picture over 50% line and bearish picture under 50% line.
3) Crossing oversold level to the upside can be taken as a confirmation of bullish reversal. - and vice versa for a bearish reversal.
4) After a long-term bearish market, the increase of volume can happen in the early stage of a bullish market.
5) Buying opportunity can be suggested when the volume ratio is declining and the price is either advancing or leveling off.
CCI with Volume Weighted EMA Here is an attempt to improve on the CCI using a volume weighted ema which is then plugged into the CCI formula.
Use:
The CCI with VW EMA is an oscillator that gives readings between -100 and +100. The usual use is to 'go long' with values over +100 and short on values less than -100.
Another use of this oscillator is a countertrend indicator where one sells at crosses under +100 and buys on crosses over -100.
Multi-Functional Fisher Transform MTF with MACDL TRIGGERWhat this indicator gives you is a true signal when price is exhausted and ready for a fast turnaround. Fisher Transform is set for multi-time frame and also allows the user to change the length. This way a user can compare two or more time spans and lengths to look for these MACDL divergent triggers after a Fisher exhaustion. With so many indicators, it's probably best to merge these indicators and change the Fisher and Trigger colors so you can still have a look at price action (remember to scale right after merger). I've noticed from time to time when you have Fisher 34 100 and 300 up and running on two different time frames such as 5 and 15 min charts, with MACDL triggers on the 100/300 or 34/100 you get a high probability trade trigger. However, there are rare exceptions such as when price moves in a parabolic state up or down for a long period where this indication does not work. Ideally this indicator works best in a sideways market or slow rising/descending moving market.
This indicator was worked on by Glaz, nmike and myself
LazyBear also introduced the MACDL indicator
CCI Crossover AlertThis very simple indicator will give you a blue background where the CCI crossed from below -100 to above -100, and a red background where it crossed from above 100 to below 100.
ZS Game Changer Pump & Dump DetectorZS GAME CHANGER PUMP AND DUMP DETECTOR - TOP 2 MOMENTUM TRACKER
Created by Zakaria Safri
An intelligent indicator specifically designed to identify and highlight the two most significant pump and dump candles within your selected lookback period. Perfect for traders who want to focus on the game-changing moves that truly matter in volatile markets like cryptocurrency, stocks, and forex.
CORE FEATURES
AUTOMATIC GAME CHANGER DETECTION
The indicator continuously scans your specified lookback period and automatically identifies the top 2 strongest pump candles and top 2 strongest dump candles. These game-changing candles are highlighted with distinctive gold labels and horizontal reference lines, making them instantly visible on your chart. Unlike other indicators that show every small move, this focuses exclusively on the market-moving moments that define trends and create opportunities.
INTELLIGENT PUMP AND DUMP CLASSIFICATION
Uses advanced percentage-based calculations to classify candles as pumps when price surges significantly upward and dumps when price plunges sharply downward. The detection system accounts for candle body size, wick proportions, and volume confirmation to ensure only legitimate momentum moves trigger signals. Customizable thresholds allow adaptation to any market volatility profile from calm stocks to wild altcoins.
ADVANCED WICK EXCLUSION FILTER
Eliminates false signals caused by candles with large wicks and small bodies. This filter focuses analysis exclusively on candles with substantial body sizes that indicate genuine directional conviction rather than temporary spikes followed by rejection. The body to candle ratio is fully adjustable to match your preferred signal quality standards.
VOLUME CONFIRMATION SYSTEM
Optional volume filter ensures detected pumps and dumps are backed by real market participation. The indicator compares current volume against a moving average and only triggers signals when volume exceeds your specified multiplier threshold. This eliminates low-volume noise and focuses on moves supported by institutional or crowd participation.
RALLY SEQUENCE DETECTION
Identifies and highlights consecutive sequences of pump or dump candles with colored background overlays. Green background indicates sustained buying pressure across multiple candles while red background shows sustained selling pressure. The rally detection system includes an optional one-miss allowance that prevents the sequence from breaking due to a single neutral candle.
HORIZONTAL REFERENCE LINES
Draws dashed lines from each game changer candle extending to the current bar, providing constant visual reference to the most significant support and resistance levels created by extreme momentum. The top game changer gets a thick dashed line while the second gets a dotted line for easy differentiation. Labels on the right side display the exact percentage move.
COMPREHENSIVE STATISTICS DASHBOARD
Real-time information panel showing current market status as pumping, dumping, or neutral along with the current candle percentage change. Displays the exact percentage values for top pump number 1, top pump number 2, top dump number 1, and top dump number 2. Shows running totals of all pumps and dumps detected since chart load. Tracks consecutive candle counts during active rally sequences.
TESTING AND VERIFICATION MODE
Built-in debug mode displays percentage change directly on each qualifying pump and dump candle, allowing instant verification that calculations are accurate. Shows which filters are currently active with a simple code in the dashboard. Helps traders understand exactly why certain candles qualified as game changers.
HOW THE GAME CHANGER DETECTION WORKS
SCANNING ALGORITHM
Every bar close, the indicator scans backward through your specified lookback period examining every candle's percentage change from its previous close. For bullish moves, it identifies the two candles with the largest positive percentage change that meet your threshold requirements. For bearish moves, it identifies the two candles with the largest negative percentage change meeting threshold requirements.
RANKING SYSTEM
Candles are ranked purely by their percentage move magnitude. The number 1 game changer is always the single strongest move in the lookback period. The number 2 game changer is the second strongest move. Rankings update dynamically as new candles form and old candles exit the lookback window.
VISUAL IDENTIFICATION
Game changer number 1 for both pumps and dumps receives a large gold label reading GAME CHANGER NUMBER 1 with zero transparency for maximum visibility. Game changer number 2 receives a slightly smaller gold label with partial transparency. The candle bars themselves are colored in gold instead of the standard green or red. Horizontal lines extend from the game changer price level to current bar.
FILTER APPLICATION
Only candles that pass your configured filters qualify for game changer consideration. If wick exclusion is enabled, candles with large wicks and small bodies are ignored. If volume confirmation is enabled, only candles with above-average volume qualify. This ensures game changers represent legitimate market moves rather than aberrations.
PRACTICAL APPLICATIONS
FOR CRYPTOCURRENCY TRADERS
Crypto markets experience extreme volatility with occasional massive pump and dump candles that define entire trends. This indicator instantly identifies which candles represent true market structure shifts versus normal noise. Use the game changer levels as key support and resistance for entries, exits, and stop placement. The top pump often marks the local high to watch for breakouts while the top dump marks the local low for reversal trades.
FOR DAY TRADERS
Intraday charts contain hundreds of candles but only a few truly matter for the session outcome. Game changer detection filters out 98 percent of candles to show you the 2 percent that drove the actual price movement. Enter trades on the side of the strongest recent game changer. Use game changer levels as magnet prices where algorithmic trading often returns.
FOR SWING TRADERS
On daily and four-hour timeframes, game changers represent major institutional activity or news-driven moves. The top dump often marks capitulation selling that creates reversal opportunities. The top pump often marks FOMO buying that creates resistance levels. Swing traders can build positions knowing these levels will be defended or tested multiple times.
FOR VOLATILITY ANALYSIS
Understanding which candles created the most volatility helps assess market risk. Multiple game changers clustered together indicate unstable choppy conditions. Game changers separated by many neutral candles indicate trending stable conditions. Use this context to adjust position sizing and stop distances appropriately.
FOR SUPPORT AND RESISTANCE TRADING
Game changer candles create the strongest support and resistance levels because they represent prices where massive volume transacted in short time periods. These levels have higher probability of holding on retest compared to arbitrary moving averages or pivot points. Trade bounces off game changer levels or breakouts through them.
RECOMMENDED SETTINGS BY MARKET
CRYPTOCURRENCY 15-MINUTE TO 1-HOUR CHARTS
Candle Size Threshold: 2.0 percent
Body to Candle Ratio: 0.5
Volume Multiplier: 1.5 times average
Game Changer Lookback: 100 bars
Extreme Threshold: 3.5 percent
Enable Wick Filter: Yes
Enable Volume Confirmation: Yes
Minimum Rally Candles: 3
STOCKS DAILY CHARTS
Candle Size Threshold: 1.0 percent
Body to Candle Ratio: 0.6
Volume Multiplier: 2.0 times average
Game Changer Lookback: 50 bars
Extreme Threshold: 2.5 percent
Enable Wick Filter: Yes
Enable Volume Confirmation: Yes
Minimum Rally Candles: 2
FOREX 1-HOUR TO 4-HOUR CHARTS
Candle Size Threshold: 0.5 percent
Body to Candle Ratio: 0.5
Volume Multiplier: Not applicable
Game Changer Lookback: 80 bars
Extreme Threshold: 1.0 percent
Enable Wick Filter: Yes
Enable Volume Confirmation: No
Minimum Rally Candles: 3
SCALPING 1-MINUTE TO 5-MINUTE CHARTS
Candle Size Threshold: 0.8 percent
Body to Candle Ratio: 0.4
Volume Multiplier: 1.2 times average
Game Changer Lookback: 50 bars
Extreme Threshold: 1.5 percent
Enable Wick Filter: No
Enable Volume Confirmation: Yes
Minimum Rally Candles: 2
WHAT IS INCLUDED
Automatic identification of top 2 pump candles
Automatic identification of top 2 dump candles
Gold colored game changer labels with size differentiation
Gold colored candle bars for game changers
Horizontal reference lines from game changers to current price
Regular pump and dump detection with green and red candles
Rally sequence detection with background highlighting
Extreme move detection and labeling system
Real-time statistics dashboard with all key metrics
Percentage change debug mode for verification
Volume confirmation filter with adjustable multiplier
Wick exclusion filter with adjustable body ratio
Customizable lookback period from 20 to 500 bars
Consecutive candle counter for rally tracking
Alert system for game changers, pumps, dumps, and rallies
Works on all timeframes from 1 minute to monthly
Compatible with stocks, forex, cryptocurrency, and futures
UNDERSTANDING GAME CHANGERS
WHAT MAKES A CANDLE A GAME CHANGER
A game changer is not just a large move but the largest move within context. In a volatile crypto market, a 5 percent pump might not rank in the top 2. In a stable stock, a 2 percent pump could be the number 1 game changer. The indicator adapts to your specific instrument and timeframe to find what truly matters in that context.
WHY FOCUS ON TOP 2 ONLY
Markets are driven by a small number of significant moves rather than the average of all moves. By focusing exclusively on the top 2 in each direction, traders can ignore noise and concentrate on the price levels that actually matter for support, resistance, and momentum. This creates clarity in decision making.
GAME CHANGERS AS MARKET STRUCTURE
The top pump often marks the recent high that bulls must break to continue uptrend. The top dump often marks the recent low that bears must break to continue downtrend. These become the key levels around which all other price action rotates. Understanding this structure is essential for profitable trading.
GAME CHANGERS AS SENTIMENT INDICATORS
Consecutive pump game changers signal strong bullish sentiment and FOMO conditions. Consecutive dump game changers signal fear and capitulation. Alternating pump and dump game changers signal indecision and range conditions. Read the pattern of game changers to gauge market psychology.
VERIFICATION AND TESTING
HOW TO VERIFY ACCURACY
Enable Show Debug Info on Chart in the Testing and Debug settings group. This displays the percentage change calculation directly on every qualifying pump and dump candle. Manually verify by calculating open minus close divided by close multiplied by 100. The debug percentage should match your manual calculation exactly.
HOW TO TEST FILTERS
Toggle wick exclusion filter on and off while watching how many candles qualify. With filter on, candles with long wicks and small bodies should disappear. Toggle volume confirmation on and off to see how low-volume candles get excluded. Adjust the thresholds and watch the real-time impact on signal count.
HOW TO VERIFY GAME CHANGERS
Look at your chart and visually identify which candle had the biggest green body in the lookback period. The game changer number 1 pump label should be on that exact candle. Repeat for the biggest red candle to verify game changer number 1 dump. The rankings should match your visual assessment.
LOOKBACK PERIOD EFFECTS
Decrease the lookback period to 20 bars and watch game changers update to only recent moves. Increase to 500 bars and watch game changers potentially change to older historic moves. The optimal lookback balances recency with significance. Too short misses important levels, too long includes irrelevant history.
DASHBOARD INFORMATION GUIDE
STATUS ROW
Shows PUMPING when current candle qualifies as a pump, DUMPING when current candle qualifies as a dump, or NEUTRAL when current candle does not meet threshold requirements. This updates in real-time on every bar close.
CURRENT CHANGE ROW
Displays the percentage change of the current candle from its previous close. Positive percentages indicate bullish candle, negative indicate bearish candle. This number may or may not meet your threshold to qualify as pump or dump.
TOP PUMP NUMBER 1
The highest positive percentage change found in your lookback period. This candle is marked with the large gold GAME CHANGER NUMBER 1 label below it. Shows N/A if no pumps exist in the lookback period.
TOP PUMP NUMBER 2
The second highest positive percentage change found in your lookback period. Marked with smaller gold GAME CHANGER NUMBER 2 label. Shows N/A if only one or zero pumps exist.
TOP DUMP NUMBER 1
The highest negative percentage change magnitude found in your lookback period. This candle is marked with the large gold GAME CHANGER NUMBER 1 label above it. Shows N/A if no dumps exist.
TOP DUMP NUMBER 2
The second highest negative percentage change magnitude found in your lookback period. Marked with smaller gold GAME CHANGER NUMBER 2 label. Shows N/A if only one or zero dumps exist.
TOTAL PUMPS
Running count of all pump candles detected since you loaded the indicator on this chart. This number continuously increases as new qualifying pumps form. Resets when you reload the chart.
TOTAL DUMPS
Running count of all dump candles detected since chart load. Increases as new qualifying dumps form and resets on chart reload.
CONSECUTIVE
Shows the current count of consecutive pump or dump candles during an active rally. Displays 3 UP during a 3-candle pump rally or 5 DN during a 5-candle dump rally. Shows 0 when no rally is active.
ALERT SYSTEM
GAME CHANGER DETECTED ALERT
Triggers whenever the current candle becomes one of the top 2 pumps or top 2 dumps. This is the highest priority alert indicating a market-moving event just occurred. Use this alert for immediate notification of significant opportunities.
PUMP DETECTED ALERT
Triggers on every candle that qualifies as a pump according to your threshold and filter settings. This includes regular pumps and extreme pumps but excludes game changers which have their separate alert. Use for general upward momentum monitoring.
DUMP DETECTED ALERT
Triggers on every candle that qualifies as a dump according to your settings. Includes regular and extreme dumps but excludes game changers. Use for general downward momentum monitoring.
PUMP RALLY STARTED ALERT
Triggers when consecutive pump candles reach your minimum rally threshold. Indicates the beginning of a sustained upward movement sequence. Use to catch trends early.
DUMP RALLY STARTED ALERT
Triggers when consecutive dump candles reach your minimum rally threshold. Indicates the beginning of a sustained downward movement sequence. Use for trend following or reversal timing.
ALERT MESSAGE FORMAT
All alerts include the ticker symbol and current price using TradingView placeholders. Messages are descriptive and specify which type of signal triggered. Alerts work with TradingView notification system including email, SMS, webhook, and app notifications.
TECHNICAL SPECIFICATIONS
CALCULATION METHODOLOGY
Percentage change calculated as current close minus previous close divided by previous close multiplied by 100. Body ratio calculated as absolute value of close minus open divided by high minus low. Volume elevation calculated as current volume divided by 20-period simple moving average of volume. Game changer ranking uses absolute value comparison across entire lookback array.
PERFORMANCE CHARACTERISTICS
Lightweight calculations optimized for speed on all timeframes. No repainting of signals ensuring all triggers are final on bar close. Variables properly scoped with var keyword for memory efficiency. Maximum bars back set to 500 to prevent excessive historical loading. Updates in real-time on every bar close without lag.
COMPATIBILITY
Works on all TradingView plans including free, pro, and premium. Compatible with stocks, forex, cryptocurrency, futures, indices, and commodities. Functions correctly on all timeframes from 1 second to monthly. No external data requests ensuring fast loading. Overlay true setting places directly on price chart.
RISK DISCLAIMER
This indicator is a technical analysis tool for identifying momentum and should not be used as the sole basis for trading decisions. Game changer levels can be broken during strong trends and are not guaranteed support or resistance. Pump and dump detection does not predict future price direction. Always use proper risk management with stop losses on every trade. Combine this indicator with other forms of analysis including fundamentals, market context, and risk assessment. Practice on demo accounts before live trading. Past performance of game changer signals does not guarantee future results. Trading carries substantial risk of loss and is not suitable for all investors. The creator is not responsible for trading losses incurred while using this tool.
SUPPORT AND UPDATES
Regular updates based on user feedback and market evolution. Built following PineCoders industry standards and best practices for code quality. Clean well-documented code structure for transparency and auditability. Optimized performance across all timeframes and instruments. Active development with continuous improvements and feature additions.
WHY CHOOSE ZS GAME CHANGER PUMP AND DUMP DETECTOR
Focuses on what matters by highlighting only the top 2 moves in each direction instead of cluttering your chart with every small fluctuation. Saves time by automatically identifying the most significant candles rather than requiring manual scanning. Provides clarity through visual gold labels and reference lines that make game changers unmistakable. Adapts to any market with customizable thresholds for volatility and volume. Eliminates noise with advanced wick and volume filters ensuring signal quality. Offers verification through debug mode proving calculations are accurate and trustworthy. Includes comprehensive statistics showing exact percentages and counts. Works everywhere across all markets, timeframes, and instruments without modification.
Transform your chart analysis by focusing exclusively on the game-changing moments that define trends and create opportunities.
Version 1.1 | Created by Zakaria Safri | Pine Script Version 5 | PineCoders Compliant
Order Flow RSI - Price / CVD / OIOrder Flow RSI blends three powerful market perspectives — Price , Cumulative Volume Delta (CVD) , and Open Interest (OI) — into one unified RSI-style oscillator.
It reveals momentum and imbalance across these data streams and highlights situations where participation, liquidity, and positioning disagree — moments that often precede reversals.
What it does
The indicator converts:
Price → RSI (classic momentum),
CVD → RSI (buy/sell pressure balance),
OI → RSI (position expansion/contraction)
…then plots all three RSIs together on the same 0–100 scale.
A fourth Consensus RSI (average of any two or all three) can optionally be shown to simplify the view.
Core logic
CVD engine – based on TradingView’s native volume-delta request.
Modes: Continuous (default, smooth line), Anchored (resets each session), Rolling window.
Open Interest – pulled automatically from the symbol’s “_OI” feed; aligns to chart timeframe for real-time flow.
RSI calculation – standard RSI applied to each data stream, optionally smoothed (SMA / EMA / RMA / WMA / VWMA).
Signals – optional background highlights when:
All three RSIs are overbought (red) or oversold (green), or
Any pair show opposite extremes (e.g., price overbought + OI oversold).
Consensus RSI – arithmetic mean of the selected RSIs, summarizing overall market tone.
Inputs overview
CVD settings: anchor period, lower-TF delta, mode, rolling length
RSI lengths: separate for price, CVD, OI
Smoothing: type + period applied to all RSIs at once
Consensus: choose which RSIs to average
Signals: enable/disable each combination; optional alerts
Levels: adjustable OB/MID/OS (default 70 / 50 / 30)
Visuals: fill between active RSIs, background highlights, level lines, colors in Style tab
How to read it
All 3 overbought (red): broad exhaustion → possible correction
All 3 oversold (green): broad depletion → possible bounce
Opposite pairs: divergence between price and participation
Price↑ but OI↓ (red) → weak rally, fading participation
Price↓ but CVD↑ (green) → hidden accumulation
Combine with structure and volume profile for confirmation.
Notes
Works best on assets with full CVD + OI data (futures, BTC, etc.).
Use Continuous CVD for smooth RSI, Anchored for session analysis.
Smoothing 2–5 EMA is a good starting point to reduce noise.
All styling (colors, line types, thickness) is adjustable in the Style tab.
Limitations & caveats
CVD requires accurate tick/volume/delta data from your data feed. Performance may differ across instruments.
OI availability varies by exchange / symbol. Where OI is absent, pairwise OI signals are not evaluated.
This indicator is a tool — it generates signals of interest, not guaranteed profitable trades. Backtest and combine with your risk rules.
Smoothing introduces lag; longer smoothing reduces noise but delays signals.
Order Flow RSI bridges traditional momentum analysis and order-flow context — giving a multi-dimensional view of when markets are truly stretched or quietly reloading.
Sometimes it works, sometimes it doesn't.
ATR-Normalized MACD w/ Visual BackgroundChatGPT said:
Absolutely! Let’s break down the YON MACD indicator in detail so you understand what it does, how it works, and how to use it.
1. Purpose
The YON MACD is a volatility-adjusted version of the classic MACD. Instead of just using EMA differences, it normalizes the MACD by the Average True Range (ATR), which means:
High-volatility markets → the MACD signal is scaled down.
Low-volatility markets → the MACD signal is scaled up.
This gives a more consistent momentum signal across different market conditions, avoiding false spikes during high volatility.
2. Components
a. Fast and Slow EMAs
fastEMA → Typically 12-period EMA of price.
slowEMA → Typically 26-period EMA of price.
The difference between them measures short-term momentum.
b. ATR Normalization
atr → Average True Range over a specified period (default 26).
Formula:
YON MACD=fastEMA - slowEMAATR×100
YON MACD=
ATR
fastEMA - slowEMA
×100
This adjusts the MACD for market volatility.
c. Signal Line
EMA of the YON MACD (default 9 periods).
Acts like a trigger line for crossovers.
d. Histogram
hist = YON MACD - Signal Line
Visualizes divergence: how far the MACD is from the signal line.
Positive histogram → bullish momentum, negative → bearish momentum.
3. Visual Features
Plot Lines
YON MACD → colored green (rising), red (falling), gray (unchanged).
Signal line → always blue.
Histogram → columns: green (positive), red (negative).
Background Coloring
Green → MACD rising + histogram positive (bullish momentum).
Red → MACD falling + histogram negative (bearish momentum).
Yellow/Orange → histogram flips (early momentum change).
This makes trend and momentum immediately visible without having to study the panel in detail.
4. Alerts
MACD Cross Alerts
YON MACD crosses above the signal → potential buy.
YON MACD crosses below the signal → potential sell.
Histogram Flip Alerts
Histogram flips from negative → positive → early bullish signal.
Histogram flips from positive → negative → early bearish signal.
This allows automation or notifications for momentum changes.
5. How to Use
Trend Confirmation
Green background + MACD above signal → trend is bullish.
Red background + MACD below signal → trend is bearish.
Entry/Exit Signals
Buy: MACD crosses above signal or histogram flips positive.
Sell: MACD crosses below signal or histogram flips negative.
Volatility Adjustment
Since the MACD is ATR-normalized, it avoids overreacting in volatile conditions and highlights true momentum shifts.
Summary
The YON MACD is a trend-following and momentum indicator with:
Volatility normalization (ATR)
MACD cross signals
Histogram divergence visualization
Background colors for instant momentum reading
Alerts for crossovers and early momentum flips
It’s a powerful all-in-one momentum tool that can work for day trading, swing trading, or even longer-term analysis.
2 Bandas de Bollinguer (10-20) + 4 EMA + 2 SMA 2 BB (10-20) + 4 EMA (35-50-100-200) + 2 SMA (75-100) configurable
Ripster: DTR/ATR + SMA Div + RVOL🧭 Overview
The indicator combines three major analytical tools into one TradingView Pine v6 script — designed for clean, at-a-glance insight into range, divergence, and volume activity.
It shows:
DTR vs ATR Table – current Daily True Range compared to Average True Range.
SMA Price Divergence + EMA Signal – a histogram with color-coded momentum bands.
RVOL Table + Candle Coloring + Change Labels – relative-volume analysis with visual cues on the chart.
Short title: ripcombo
Runs on chart overlay (no separate pane).
📊 1. DTR vs ATR Table
Compares today’s price range (High-Low) to the average true range over a selectable length.
Supports multiple smoothing methods: EMA, RMA, SMA, WMA.
Table position and text size are configurable.
Color logic:
🟢 ≤ 70 % of ATR → low volatility
🟡 70–90 % → average
🔴 ≥ 90 % → expanded range
📈 2. SMA Divergence + EMA Signal
Computes fast (14 SMA) and slow (30 SMA) divergences of price.
Plots two histograms plus an EMA signal line of the slow divergence.
Visuals:
Columns shaded by transparency for clarity.
Rising EMA → lime line (up momentum).
Falling EMA → red line (down momentum).
Optional upper/lower bands and zero line provide quick overbought/oversold zones.
🔥 3. RVOL (Relative Volume)
Adds powerful volume-based context:
a. Table Display
Shows:
Candle Volume
RVOL (Now)
RVOL (Prev)
Δ RVOL (change Now − Prev)
Colors:
🔴 > 200 % (very high volume)
🟠 100–200 % (high volume)
🟡 < 100 % (normal/low volume)
Δ column is green ▲ for increase, red ▼ for decrease.
b. Candle Coloring (optional)
Colors price candles themselves by current RVOL threshold so high-volume candles visually stand out.
c. Last-Bar Label (optional)
Prints a compact label on the latest candle showing:
RVOL: ### % Δ: ▲/▼## %
so you can instantly see the current volume strength and how it changed from the previous bar.
⚙️ User Settings
All major elements are toggle-controlled:
Enable/disable ATR, Divergence, or RVOL sections.
Choose table positions (top/middle/bottom × left/center/right).
Select text sizes, smoothing types, color modes, and visual transparency.
Candle coloring + label visibility are optional.
🧠 At a Glance
Component Purpose Key Visuals
DTR vs ATR Measures volatility expansion One-cell colored table
SMA Divergence Detects price momentum shifts Columns + EMA line + bands
RVOL Analysis Highlights unusual trading volume Colored table + Δ column + candle colors + label
✅ Result
You get a single on-chart tool that:
Quantifies volatility, momentum, and volume context together.
Highlights strong activity days (ATR & RVOL) in color.
Shows whether current candle’s volume is rising or falling vs the previous.
Perfect for spotting breakouts, reversals, or exhaustion moves without switching indicators.
Ripster Labels + Air Gaps (v6)What it shows (on one chart)
EMA Clouds (current timeframe)
Plots EMA 8/12/21/34/50/200 with three cloud fills:
12–21 = “fast” cloud
34–50 = “mid” cloud
50–200 = “base” cloud
Cloud color: green when the faster EMA is above the slower (bullish), red/maroon/orange when below (bearish).
Toggle lines vs. clouds via A) EMA Clouds settings.
MTF Rails (higher-TF EMAs)
For three higher timeframes (defaults 30m / 60m / 240m), draws two EMAs each (defaults 34 & 50).
These are stepline-like rails you can visually use as higher-TF supports/resistances.
Configure in B) MTF Rails (turn on/off, change TFs/lengths/colors).
Relative Volume Box (RVol)
Small table (top-center) showing:
Candle Vol (formatted K/M/B if enabled)
RVol = current bar volume / SMA 20 of volume (as a %)
Color scale: blue (<100%), yellow (100–150%), red (>150%).
Settings in C) RVol Box.
DTR vs ATR Box
Daily True Range (DTR = day high − day low) vs ATR(14) on the daily timeframe, with DTR as % of ATR.
Placed at top-right; toggle in D) DTR/ATR Box.
Ripster Trend Label (10m 12/50)
Looks at a separate timeframe (default 10m): EMA 12 vs EMA 50.
Bottom-right table cell shows “10m Trend ↑/↓/Sideways” (green/red/gray).
Configure in E) Ripster Trend Labels (TF and lengths).
Air Gaps (single EMA per TF)
Three horizontal, auto-extending lines showing an EMA from 30m / 60m / 240m (default length 12).
“Air gaps” are the price spaces between these lines—often lighter-resistance zones for price.
Start point logic:
All Bars = draw from the chart’s left
Start of Day = draw from today’s first bar
Bars Offset = draw from N bars back (default 100)
Settings in F) Air Gaps (TFs, length, draw-from, bars-back).
Inputs & where to tweak
A) EMA Clouds
Show EMA Clouds: master toggle
Source: close (default)
Lengths: 8/12/21/34/50/200
Show EMA lines: toggle plotted lines (clouds remain)
B) MTF Rails
Show MTF Rails
TF1/TF2/TF3 (defaults 30/60/240)
EMA A/B (defaults 34/50)
C) RVol Box
Show box
Format as K/M/B: K=1e3, M=1e6, B=1e9
D) DTR/ATR Box
Show DTR/ATR
ATR len: default 14 (daily)
E) Ripster Trend Labels
Show labels
Trend TF: default 10 (10-minute)
Trend EMA Fast/Slow: default 12/50
F) Air Gaps
Show Air Gap lines
TF1/TF2/TF3 (30/60/240)
EMA length: default 12
Draw from: All Bars | Start of Day | Bars Offset
Bars back: used if Draw from = Bars Offset
How it makes decisions
Cloud bias = sign of (faster EMA − slower EMA) for each cloud pair.
Example: 12>21 → fast cloud is bullish (green); 34>50 → mid cloud bullish (teal).
10m trend label = sign of (EMA12−EMA50) on the Trend TF (default 10m).
RVol = volume / sma(volume, 20); formatted as a percent and color-coded.
Practical read of the screen
Fast cloud flips (12/21) often mark short-term momentum changes; mid cloud flips (34/50) reflect swing bias.
Air Gap lines from higher TFs frequently act as support/resistance. Larger spaces between lines = “air gaps” where price can move with less friction.
RVol color tells you how “real” a move is: red/yellow often confirms momentum; blue warns of thin/liquidy bars.
DTR vs ATR shows if today’s range is stretched vs recent norm.
Design choices (why your prior errors are gone)
Removed multiline ?: chains → replaced by if/else (Pine v6 is picky about line continuations).
Moved fill() calls outside of local if blocks (Pine limitation).
ta.change(time("D")) != 0 makes the if condition boolean.
Declared G_drawFrom / G_barsBack before startX() so identifiers exist.
RSI// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © xdecow
//@version=5
indicator("RSI", overlay=true)
g_panel = 'Panel Options'
i_orientation = input.string('Vertical', 'Orientation', options = , group = g_panel)
i_position = input.string('Bottom Right', 'Position', options = , group = g_panel)
i_border_width = input.int(1, 'Border Width', minval = 0, maxval = 10, group = g_panel, inline = 'border')
i_color_border = input.color(#000000, '', group = g_panel, inline = 'border')
i_showHeaders = input.bool(true, 'Show Headers', group = g_panel)
i_color_header_bg = input.color(#5d606b, 'Headers Background', group = g_panel, inline = 'header')
i_color_header_text = input.color(color.white, 'Text', group = g_panel, inline = 'header')
i_color_tf_bg = input.color(#2a2e39, 'Timeframe Background', group = g_panel, inline = 'tf')
i_color_tf_text = input.color(color.white, 'Text', group = g_panel, inline = 'tf')
i_debug = input.bool(false, 'Display colors palette (debug)', group = g_panel)
// rsi bg colors
g_rsi = 'RSI Colors'
i_threshold_ob = input.int(70, 'Overbought Threshold', minval=51, maxval=100, group = g_rsi)
i_color_ob = input.color(#128416, 'Overbought Background', inline = 'ob', group = g_rsi)
i_tcolor_ob = input.color(color.white, 'Text', inline = 'ob', group = g_rsi)
i_threshold_uptrend = input.int(60, 'Uptrend Threshold', minval=51, maxval=100, group = g_rsi)
i_color_uptrend = input.color(#2d472e, 'Uptrend Background', inline = 'up', group = g_rsi)
i_tcolor_uptrend = input.color(color.white, 'Text', inline = 'up', group = g_rsi)
i_color_mid = input.color(#131722, 'No Trend Background', group = g_rsi, inline = 'mid')
i_tcolor_mid = input.color(#b2b5be, 'Text', group = g_rsi, inline = 'mid')
i_threshold_downtrend = input.int(40, 'Downtrend Threshold', group = g_rsi, minval=0, maxval=49)
i_color_downtrend = input.color(#5b2e2e, 'Downtrend Background', group = g_rsi, inline = 'down')
i_tcolor_downtrend = input.color(color.white, 'Text', group = g_rsi, inline = 'down')
i_threshold_os = input.int(30, 'Oversold Threshold', minval=0, maxval=49, group = g_rsi)
i_color_os = input.color(#db3240, 'Oversold Background', group = g_rsi, inline = 'os')
i_tcolor_os = input.color(color.white, 'Text', group = g_rsi, inline = 'os')
g_rsi1 = 'RSI #1'
i_rsi1_enabled = input.bool(true, title = 'Enabled', group = g_rsi1)
i_rsi1_tf = input.timeframe('5', 'Timeframe', group = g_rsi1)
i_rsi1_len = input.int(14, 'Length', minval = 1, group = g_rsi1)
i_rsi1_src = input.source(close, 'Source', group = g_rsi1) * 10000
v_rsi1 = i_rsi1_enabled ? request.security(syminfo.tickerid, i_rsi1_tf, ta.rsi(i_rsi1_src, i_rsi1_len)) : na
g_rsi2 = 'RSI #2'
i_rsi2_enabled = input.bool(true, title = 'Enabled', group = g_rsi2)
i_rsi2_tf = input.timeframe('15', 'Timeframe', group = g_rsi2)
i_rsi2_len = input.int(14, 'Length', minval = 1, group = g_rsi2)
i_rsi2_src = input.source(close, 'Source', group = g_rsi2) * 10000
v_rsi2 = i_rsi2_enabled ? request.security(syminfo.tickerid, i_rsi2_tf, ta.rsi(i_rsi2_src, i_rsi2_len)) : na
g_rsi3 = 'RSI #3'
i_rsi3_enabled = input.bool(true, title = 'Enabled', group = g_rsi3)
i_rsi3_tf = input.timeframe('60', 'Timeframe', group = g_rsi3)
i_rsi3_len = input.int(14, 'Length', minval = 1, group = g_rsi3)
i_rsi3_src = input.source(close, 'Source', group = g_rsi3) * 10000
v_rsi3 = i_rsi3_enabled ? request.security(syminfo.tickerid, i_rsi3_tf, ta.rsi(i_rsi3_src, i_rsi3_len)) : na
g_rsi4 = 'RSI #4'
i_rsi4_enabled = input.bool(true, title = 'Enabled', group = g_rsi4)
i_rsi4_tf = input.timeframe('240', 'Timeframe', group = g_rsi4)
i_rsi4_len = input.int(14, 'Length', minval = 1, group = g_rsi4)
i_rsi4_src = input.source(close, 'Source', group = g_rsi4) * 10000
v_rsi4 = i_rsi4_enabled ? request.security(syminfo.tickerid, i_rsi4_tf, ta.rsi(i_rsi4_src, i_rsi4_len)) : na
g_rsi5 = 'RSI #5'
i_rsi5_enabled = input.bool(true, title = 'Enabled', group = g_rsi5)
i_rsi5_tf = input.timeframe('D', 'Timeframe', group = g_rsi5)
i_rsi5_len = input.int(14, 'Length', minval = 1, group = g_rsi5)
i_rsi5_src = input.source(close, 'Source', group = g_rsi5) * 10000
v_rsi5 = i_rsi5_enabled ? request.security(syminfo.tickerid, i_rsi5_tf, ta.rsi(i_rsi5_src, i_rsi5_len)) : na
g_rsi6 = 'RSI #6'
i_rsi6_enabled = input.bool(true, title = 'Enabled', group = g_rsi6)
i_rsi6_tf = input.timeframe('W', 'Timeframe', group = g_rsi6)
i_rsi6_len = input.int(14, 'Length', minval = 1, group = g_rsi6)
i_rsi6_src = input.source(close, 'Source', group = g_rsi6) * 10000
v_rsi6 = i_rsi6_enabled ? request.security(syminfo.tickerid, i_rsi6_tf, ta.rsi(i_rsi6_src, i_rsi6_len)) : na
g_rsi7 = 'RSI #7'
i_rsi7_enabled = input.bool(false, title = 'Enabled', group = g_rsi7)
i_rsi7_tf = input.timeframe('W', 'Timeframe', group = g_rsi7)
i_rsi7_len = input.int(14, 'Length', minval = 1, group = g_rsi7)
i_rsi7_src = input.source(close, 'Source', group = g_rsi7) * 10000
v_rsi7 = i_rsi7_enabled ? request.security(syminfo.tickerid, i_rsi7_tf, ta.rsi(i_rsi7_src, i_rsi7_len)) : na
g_rsi8 = 'RSI #8'
i_rsi8_enabled = input.bool(false, title = 'Enabled', group = g_rsi8)
i_rsi8_tf = input.timeframe('W', 'Timeframe', group = g_rsi8)
i_rsi8_len = input.int(14, 'Length', minval = 1, group = g_rsi8)
i_rsi8_src = input.source(close, 'Source', group = g_rsi8) * 10000
v_rsi8 = i_rsi8_enabled ? request.security(syminfo.tickerid, i_rsi8_tf, ta.rsi(i_rsi8_src, i_rsi8_len)) : na
g_rsi9 = 'RSI #9'
i_rsi9_enabled = input.bool(false, title = 'Enabled', group = g_rsi9)
i_rsi9_tf = input.timeframe('W', 'Timeframe', group = g_rsi9)
i_rsi9_len = input.int(14, 'Length', minval = 1, group = g_rsi9)
i_rsi9_src = input.source(close, 'Source', group = g_rsi9) * 10000
v_rsi9 = i_rsi9_enabled ? request.security(syminfo.tickerid, i_rsi9_tf, ta.rsi(i_rsi9_src, i_rsi9_len)) : na
g_rsi10 = 'RSI #10'
i_rsi10_enabled = input.bool(false, title = 'Enabled', group = g_rsi10)
i_rsi10_tf = input.timeframe('W', 'Timeframe', group = g_rsi10)
i_rsi10_len = input.int(14, 'Length', minval = 1, group = g_rsi10)
i_rsi10_src = input.source(close, 'Source', group = g_rsi10) * 10000
v_rsi10 = i_rsi10_enabled ? request.security(syminfo.tickerid, i_rsi10_tf, ta.rsi(i_rsi10_src, i_rsi10_len)) : na
f_StrPositionToConst(_p) =>
switch _p
'Top Left' => position.top_left
'Top Right' => position.top_right
'Top Center' => position.top_center
'Middle Left' => position.middle_left
'Middle Right' => position.middle_right
'Middle Center' => position.middle_center
'Bottom Left' => position.bottom_left
'Bottom Right' => position.bottom_right
'Bottom Center' => position.bottom_center
=> position.bottom_right
f_timeframeToHuman(_tf) =>
seconds = timeframe.in_seconds(_tf)
if seconds < 60
_tf
else if seconds < 3600
str.tostring(seconds / 60) + 'm'
else if seconds < 86400
str.tostring(seconds / 60 / 60) + 'h'
else
switch _tf
"1D" => "D"
"1W" => "W"
"1M" => "M"
=> str.tostring(_tf)
type TPanel
table src = na
bool vertical_orientation = true
int row = 0
int col = 0
method incCol(TPanel _panel) =>
if _panel.vertical_orientation
_panel.col += 1
else
_panel.row += 1
method incRow(TPanel _panel) =>
if not _panel.vertical_orientation
_panel.col += 1
_panel.row := 0
else
_panel.row += 1
_panel.col := 0
method add(TPanel _panel, string _v1, color _bg1, color _ctext1, string _v2, color _bg2, color _ctext2) =>
table.cell(_panel.src, _panel.col, _panel.row, _v1, text_color = _ctext1, bgcolor = _bg1)
_panel.incCol()
table.cell(_panel.src, _panel.col, _panel.row, _v2, text_color = _ctext2, bgcolor = _bg2)
_panel.incRow()
f_bg(_rsi) =>
c_line = na(_rsi) ? i_color_mid :
_rsi >= i_threshold_ob ? i_color_ob :
_rsi >= i_threshold_uptrend ? i_color_uptrend :
_rsi <= i_threshold_os ? i_color_os :
_rsi <= i_threshold_downtrend ? i_color_downtrend :
i_color_mid
f_rsi_text_color(_rsi) =>
c_line = na(_rsi) ? i_tcolor_mid :
_rsi >= i_threshold_ob ? i_tcolor_ob :
_rsi >= i_threshold_uptrend ? i_tcolor_uptrend :
_rsi <= i_threshold_os ? i_tcolor_os :
_rsi <= i_threshold_downtrend ? i_tcolor_downtrend :
i_tcolor_mid
f_formatRsi(_rsi) => na(_rsi) ? 'N/A' : str.tostring(_rsi, '0.00')
if barstate.islast
v_panel = TPanel.new(vertical_orientation = i_orientation == 'Vertical')
v_max_rows = 20
v_panel.src := table.new(f_StrPositionToConst(i_position), v_max_rows, v_max_rows, border_width = i_border_width, border_color = i_color_border)
if i_showHeaders
v_panel.add('TF', i_color_header_bg, i_color_header_text, 'RSI', i_color_header_bg, i_color_header_text)
if i_rsi1_enabled
v_panel.add(f_timeframeToHuman(i_rsi1_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi1), f_bg(v_rsi1), f_rsi_text_color(v_rsi1))
if i_rsi2_enabled
v_panel.add(f_timeframeToHuman(i_rsi2_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi2), f_bg(v_rsi2), f_rsi_text_color(v_rsi2))
if i_rsi3_enabled
v_panel.add(f_timeframeToHuman(i_rsi3_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi3), f_bg(v_rsi3), f_rsi_text_color(v_rsi3))
if i_rsi4_enabled
v_panel.add(f_timeframeToHuman(i_rsi4_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi4), f_bg(v_rsi4), f_rsi_text_color(v_rsi4))
if i_rsi5_enabled
v_panel.add(f_timeframeToHuman(i_rsi5_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi5), f_bg(v_rsi5), f_rsi_text_color(v_rsi5))
if i_rsi6_enabled
v_panel.add(f_timeframeToHuman(i_rsi6_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi6), f_bg(v_rsi6), f_rsi_text_color(v_rsi6))
if i_rsi7_enabled
v_panel.add(f_timeframeToHuman(i_rsi7_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi7), f_bg(v_rsi7), f_rsi_text_color(v_rsi7))
if i_rsi8_enabled
v_panel.add(f_timeframeToHuman(i_rsi8_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi8), f_bg(v_rsi8), f_rsi_text_color(v_rsi8))
if i_rsi9_enabled
v_panel.add(f_timeframeToHuman(i_rsi9_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi9), f_bg(v_rsi9), f_rsi_text_color(v_rsi9))
if i_rsi10_enabled
v_panel.add(f_timeframeToHuman(i_rsi10_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi10), f_bg(v_rsi10), f_rsi_text_color(v_rsi10))
if i_debug
t = table.new(position.middle_center, 21, 20, border_width = i_border_width, border_color = i_color_border)
v_panel2 = TPanel.new(t, vertical_orientation = i_orientation == 'Vertical')
v_panel2.add('Debug', i_color_header_bg, i_color_header_text, 'Colors', i_color_header_bg, i_color_header_text)
demo = map.new()
map.put(demo, 'Overbought', i_threshold_ob)
map.put(demo, 'Uptrend', i_threshold_uptrend)
map.put(demo, 'No Trend', 50)
map.put(demo, 'Downtrend', i_threshold_downtrend)
map.put(demo, 'Oversold', i_threshold_os)
demoKeys = map.keys(demo)
for key in demoKeys
tf = key
rsi = map.get(demo, key)
v_panel2.add(tf, i_color_tf_bg, i_color_tf_text, f_formatRsi(rsi), f_bg(rsi), f_rsi_text_color(rsi))
ALISH WEEK LABELS THE ALISH WEEK LABELS
Overview
This indicator programmatically delineates each trading week and encapsulates its realized price range in a live-updating, filled rectangle. A week is defined in America/Toronto time from Monday 00:00 to Friday 16:00. Weekly market open to market close, For every week, the script draws:
a vertical start line at the first bar of Monday 00:00,
a vertical end line at the first bar at/after Friday 16:00, and
a white, semi-transparent box whose top tracks the highest price and whose bottom tracks the lowest price observed between those two temporal boundaries.
The drawing is timeframe-agnostic (M1 → 1D): the box expands in real time while the week is open and freezes at the close boundary.
Time Reference and Session Boundaries
All scheduling decisions are computed with time functions called using the fixed timezone string "America/Toronto", ensuring correct behavior across DST transitions without relying on chart timezone. The start condition is met at the first bar where (dayofweek == Monday && hour == 0 && minute == 0); on higher timeframes where an exact 00:00 bar may not exist, a fallback checks for the first Monday bar using ta.change(dayofweek). The close condition is met on the first bar at or after Friday 16:00 (Toronto), which guarantees deterministic closure on intraday and higher timeframes.
State Model
The indicator maintains minimal persistent state using var globals:
week_open (bool): whether the current weekly session is active.
wk_hi / wk_lo (float): rolling extrema for the active week.
wk_box (box): the graphical rectangle spanning × .
wk_start_line and a transient wk_end_line (line): vertical delimiters at the week’s start and end.
Two dynamic arrays (boxes, vlines) store object handles to support bounded history and deterministic garbage collection.
Update Cycle (Per Bar)
On each bar the script executes the following pipeline:
Start Check: If no week is open and the start condition is satisfied, instantiate wk_box anchored at the current bar_index, prime wk_hi/wk_lo with the bar’s high/low, create the start line, and push both handles to their arrays.
Accrual (while week_open): Update wk_hi/wk_lo using math.max/min with current bar extremes. Propagate those values to the active wk_box via box.set_top/bottom and slide box.set_right to the current bar_index to keep the box flush with live price.
Close Check: If at/after Friday 16:00, finalize the week by freezing the right edge (box.set_right), drawing the end line, pushing its handle, and flipping week_open false.
Retention Pruning: Enforce a hard cap on historical elements by deleting the oldest objects when counts exceed configured limits.
Drawing Semantics
The range container is a filled white rectangle (bgcolor = color.new(color.white, 100 − opacity)), with a solid white border for clear contrast on dark or light themes. Start/end boundaries are full-height vertical white lines (y1=+1e10, y2=−1e10) to guarantee visibility across auto-scaled y-axes. This approach avoids reliance on price-dependent anchors for the lines and is robust to large volatility spikes.
Multi-Timeframe Behavior
Because session logic is driven by wall-clock time in the Toronto zone, the indicator remains consistent across chart resolutions. On coarse timeframes where an exact boundary bar might not exist, the script legally approximates by triggering on the first available bar within or immediately after the boundary (e.g., Friday 16:00 occurs between two 4-hour bars). The box therefore represents the true realized high/low of the bars present in that timeframe, which is the correct visual for that resolution.
Inputs and Defaults
Weeks to keep (show_weeks_back): integer, default 40. Controls retention of historical boxes/lines to avoid UI clutter and resource overhead.
Fill opacity (fill_opacity): integer 0–100, default 88. Controls how solid the white fill appears; border color is fixed pure white for crisp edges.
Time zone is intentionally fixed to "America/Toronto" to match the strategy definition and maintain consistent historical backtesting.
Performance and Limits
Objects are reused only within a week; upon closure, handles are stored and later purged when history limits are exceeded. The script sets generous but safe caps (max_boxes_count/max_lines_count) to accommodate 40 weeks while preserving Editor constraints. Per-bar work is O(1), and pruning loops are bounded by the configured history length, keeping runtime predictable on long histories.
Edge Cases and Guarantees
DST Transitions: Using a fixed IANA time zone ensures Friday 16:00 and Monday 00:00 boundaries shift correctly when DST changes in Toronto.
Weekend Gaps/Holidays: If the market lacks bars exactly at boundaries, the nearest subsequent bar triggers the start/close logic; range statistics still reflect observed prices.
Live vs Historical: During live sessions the box edge advances every bar; when replaying history or backtesting, the same rules apply deterministically.
Scope (Intentional Simplicity)
This tool is strictly a visual framing indicator. It does not compute labels, statistics, alerts, or extended S/R projections. Its single responsibility is to clearly present the week’s realized range in the Toronto session window so you can layer your own execution or analytics on top.
Adaptive Vol Gauge [ParadoxAlgo]This is an overlay tool that measures and shows market ups and downs (volatility) based on daily high and low prices. It adjusts automatically to recent price changes and highlights calm or wild market periods. It colors the chart background and bars in shades of blue to cyan, with optional small labels for changes in market mood. Use it for info only—combine with your own analysis and risk controls. It's not a buy/sell signal or promise of results.Key FeaturesSmart Volatility Measure: Tracks price swings with a flexible time window that reacts to market speed.
Market Mood Detection: Spots high-energy (wild) or low-energy (calm) phases to help see shifts.
Visual Style: Uses smooth color fades on the background and bars—cyan for calm, deep blue for wild—to blend nicely on your chart.
Custom Options: Change settings like time periods, sensitivity, colors, and labels.
Chart Fit: Sits right on your main price chart without extra lines, keeping things clean.
How It WorksThe tool figures out volatility like this:Adjustment Factor:Looks at recent price ranges compared to longer ones.
Tweaks the time window (between 10-50 bars) based on how fast prices are moving.
Volatility Calc:Adds up logs of high/low ranges over the adjusted window.
Takes the square root for the final value.
Can scale it to yearly terms for easy comparison across chart timeframes.
Mood Check:Compares current volatility to its recent average and spread.
Flags "high" if above your set level, "low" if below.
Neutral in between.
This setup makes it quicker in busy markets and steadier in quiet ones.Settings You Can ChangeAdjust in the tool's menu:Base Time Window (default: 20): Starting point for calculations. Bigger numbers smooth things out but might miss quick changes.
Adjustment Strength (default: 0.5): How much it reacts to price speed. Low = steady; high = quick changes.
Yearly Scaling (default: on): Makes values comparable across short or long charts. Turn off for raw numbers.
Mood Sensitivity (default: 1.0): How strict for calling high/low moods. Low = more shifts; high = only big ones.
Show Labels (default: on): Adds tiny "High Vol" or "Low Vol" tags when moods change. They point up or down from bars.
Background Fade (default: 80): How see-through the color fill is (0 = invisible, 100 = solid).
Bar Fade (default: 50): How much color blends into your candles or bars (0 = none, 100 = full).
How to Read and Use ItColor Shifts:Background and bars fade based on mood strength:Cyan shades mean calm markets (good for steady, back-and-forth trades).
Deep blue shades mean wild markets (watch for big moves or turns).
Smooth changes show volatility building or easing.
Labels:"High Vol" (deep blue, from below bar): Start of wild phase.
"Low Vol" (cyan, from above bar): Start of calm phase.
Only shows at changes to avoid clutter. Use for timing strategy tweaks.
Trading Ideas:Mood-Based Plays: In wild phases (deep blue), try chase-momentum or breakout trades since swings are bigger. In calm phases (cyan), stick to bounce-back or range trades.
Risk Tips: Cut trade sizes in wild times to handle bigger losses. Use calm times for longer holds with close stops.
Chart Time Tips: Turn on yearly scaling for matching short and long views. Test settings on past data—loosen for quick trades (more alerts), tighten for longer ones (fewer, stronger).
Mix with Others: Add trend lines or averages—buy in calm up-moves, sell in wild down-moves. Check with volume or key levels too.
Special Cases: In big news events, it reacts faster. On slow assets, it might overstate swings—ease the adjustment strength.
Limits and TipsIt looks back at past data, so it trails real-time action and can't predict ahead.
Results differ by stock or timeframe—test on history first.
Colors and tags are just visuals; set your own alerts if needed.
Follows TradingView rules: No win promises, for learning only. Open for sharing; share thoughts in forums.
With this, you can spot market energy and tweak your trades smarter. Start on practice charts.
Tick-Based Delta Volume BubblesTICK-BASED DELTA VOLUME BUBBLES
OVERVIEW
A real-time order flow indicator that displays volume delta at the tick level, helping traders identify buying and selling pressure as it develops during live market hours. Unlike traditional volume delta indicators that rely on bar close data, this indicator captures actual tick-by-tick volume changes and directional bias, providing granular insight into market dynamics.
HOW IT WORKS
The indicator monitors live tick data during real-time trading by tracking volume increases between consecutive price updates. Each time volume increments, the script calculates the volume delta, determines price direction, assigns directional bias to the volume, and accumulates net delta for each bar.
This methodology is identical to the tick detection mechanism used in professional cumulative volume delta tools, ensuring accuracy and reliability.
FEATURES
Real-Time Tick Detection
- Captures genuine tick-by-tick volume flow using varip persistence
- Not estimated from OHLC data
- Processes actual market ticks as they occur
Adaptive Bubble Sizing
- Bubbles scale based on delta strength relative to a customizable moving average (default 20 bars)
- Highlights significant order flow imbalances
- Five size levels from tiny to huge
Dual Display Modes
- Normal Mode: Sized bubbles with optional volume labels positioned at bar midpoint
- Minimal Mode: Clean dots above/below bars for unobtrusive delta visualization
Flow Classification
- Aggressive Buy (bright green): Strong positive delta with greater than 1.2x strength
- Aggressive Sell (bright red): Strong negative delta with greater than 1.2x strength
- Passive Buy (light green): Moderate positive delta
- Passive Sell (light red): Moderate negative delta
Intensity Mode (Optional)
- Gray: Low intensity (less than 0.5x average)
- Blue: Medium intensity (0.5-1.0x average)
- Orange: High intensity (1.0-2.0x average)
- Red: Extreme intensity (greater than 2.0x average)
Smart Filtering
- Percentile-based filters (customizable) ensure only significant delta events are displayed
- Reduces chart clutter while highlighting important order flow
- Separate thresholds for bubble display and numeric labels
Data Collection Status
- Optional progress box in top-right corner
- Shows real-time bar collection progress
- Displays percentage completion and bars remaining
- Automatically hides when sufficient data is collected
Hide Until Ready Option
- Suppresses bubble display until the averaging period is complete
- Prevents misleading signals from incomplete data
- Default requires 20 bars before displaying bubbles
SETTINGS
Delta Average Length (1-200, default 20)
- Lookback period for calculating delta strength baseline
- Higher values = longer-term delta comparison
- Lower values = more sensitive to recent changes
Hide Bubbles Until Enough Data
- Prevents display until averaging period completes
- Ensures reliable delta strength calculations
Show Data Collection Status Box
- Displays progress indicator during initialization
- Can be disabled if you understand the warmup period
Minimal Mode
- Switches to simple dot display above/below bars
- Green dots above bars = positive delta
- Red dots below bars = negative delta
- Maintains color intensity or flow type classification
Show Bubbles
- Master toggle for bubble display
Bubble Volume Percentile (0-100, default 60)
- Minimum percentile rank required to display bubble
- Higher values = fewer, more significant bubbles
- Lower values = more bubbles displayed
Show Numbers in Bubbles
- Toggle delta value labels
- Only appears in normal mode
- Disabled automatically in minimal mode
Label Volume Percentile (0-100, default 90)
- Higher threshold for displaying numeric labels
- Typically set higher than bubble percentile
- Reduces label clutter on chart
Intensity Mode
- Switch from flow-type coloring to magnitude-based coloring
- Useful for identifying volume spikes regardless of direction
IMPORTANT NOTES
Real-Time Only: This indicator processes live tick data and does not provide historical analysis. It begins collecting data when added to a live chart.
Volume Required: Symbol must have volume data available. Will not function on symbols without volume (most forex pairs from retail brokers).
Initialization Period: Requires the specified number of bars (default 20) to calculate accurate delta strength. Use the "Hide Until Ready" option to prevent premature signals.
Market Hours: Only collects data during live market hours. Does not backfill historical data.
CREDITS
Tick detection methodology inspired by the Kioseff Trading Tick CVD indicator. This implementation adapts the same core tick-level volume delta calculation for bubble-style visualization and per-bar delta analysis.
EMAs de JahazielThis indicator displays seven Exponential Moving Averages (EMA 5, 6, 9, 20, 50, 100, and 200) to help identify short-, medium-, and long-term market trends.
When shorter EMAs (5, 6, 9) cross above longer EMAs (50, 100, 200), it suggests increasing bullish momentum and potential uptrend continuation.
Conversely, when shorter EMAs cross below longer EMAs, it indicates potential bearish momentum and a possible downtrend.
📈 The combination of these EMAs helps traders visualize market structure, momentum shifts, and key dynamic support/resistance levels.
🧠 Suitable for scalping, intraday trading, swing trading, or confirming higher time frame trends across any market — Forex, indices, crypto, or commodities.
Forecast PriceTime Oracle [CHE] Forecast PriceTime Oracle — Prioritizes quality over quantity by using Power Pivots via RSI %B metric to forecast future pivot highs/lows in price and time
Summary
This indicator identifies potential pivot highs and lows based on out-of-bounds conditions in a modified RSI %B metric, then projects future occurrences by estimating time intervals and price changes from historical medians. It provides visual forecasts via diagonal and horizontal lines, tracks achievement with color changes and symbols, and displays a dashboard for statistical overview including hit rates. Signals are robust due to median-based aggregation, which reduces outlier influence, and optional tolerance settings for near-misses, making it suitable for anticipating reversals in ranging or trending markets.
Motivation: Why this design?
Standard pivot detection often lags or generates false signals in volatile conditions, missing the timing of true extrema. This design leverages out-of-bounds excursions in RSI %B to capture "Power Pivots" early—focusing on quality over quantity by prioritizing significant extrema rather than every minor swing—then uses historical deltas in time and price to forecast the next ones, addressing the need for proactive rather than reactive analysis. It assumes that pivot spacing follows statistical patterns, allowing users to prepare entries or exits ahead of confirmation.
What’s different vs. standard approaches?
- Reference baseline: Diverges from traditional ta.pivothigh/low, which require fixed left/right lengths and confirm only after bars close, often too late for dynamic markets.
- Architecture differences:
- Detects extrema during OOB runs rather than post-bar symmetry.
- Aggregates deltas via medians (or alternatives) over a user-defined history, capping arrays to manage resources.
- Applies tolerance thresholds for hit detection, with options for percentage, absolute, or volatility-adjusted (ATR) flexibility.
- Freezes achieved forecasts with visual states to avoid clutter.
- Practical effect: Charts show proactive dashed projections instead of retrospective dots; the dashboard reveals evolving hit rates, helping users gauge reliability over time without manual calculation.
How it works (technical)
The indicator first computes a smoothed RSI over a specified length, then applies Bollinger Bands to derive %B, flagging out-of-bounds below zero or above one hundred as potential run starts. During these runs, it tracks the extreme high or low price and bar index. Upon exit from the OOB state, it confirms the Power Pivot at that extreme and records the time delta (bars since prior) and price change percentage to rolling arrays.
For forecasts, it calculates the median (or selected statistic) of recent deltas, subtracts the confirmation delay (bars from apex to exit), and projects ahead by that adjusted amount. Price targets use the median change applied to the origin pivot value. Lines are drawn from the apex to the target bar and price, with a short horizontal at the endpoint. Arrays store up to five active forecasts, pruning oldest on overflow.
Tolerance adjusts hit checks: for highs, if the high reaches or exceeds the target (adjusted by tolerance); for lows, if the low drops to or below. Once hit, the forecast freezes, changing colors and symbols, and extends the horizontal to the hit bar. Persistent variables maintain last pivot states across bars; arrays initialize empty and grow until capped at history length.
Parameter Guide
Source: Specifies the data input for the RSI computation, influencing how price action is captured. Default is close. For conservative signals in noisy environments, switch to high; using low boosts responsiveness but may increase false positives.
RSI Length: Sets the smoothing period for the RSI calculation, with longer values helping to filter out whipsaws. Default is 32. Opt for shorter lengths like 14 to 21 on faster timeframes for quicker reactions, or extend to 50 or more in strong trends to enhance stability at the cost of some lag.
BB Length: Defines the period for the Bollinger Bands applied to %B, directly affecting how often out-of-bounds conditions are triggered. Default is 20. Align it with the RSI length: shorter periods detect more potential runs but risk added noise, while longer ones provide better filtering yet might overlook emerging extrema.
BB StdDev: Controls the multiplier for the standard deviation in the bands, where wider settings reduce false out-of-bounds alerts. Default is 2.0. Narrow it to 1.5 for highly volatile assets to catch more signals, or broaden to 2.5 or higher to emphasize only major movements.
Show Price Forecast: Enables or disables the display of diagonal and target lines along with their updates. Default is true. Turn it off for simpler chart views, or keep it on to aid in trade planning.
History Length: Determines the number of recent pivot samples used for median-based statistics, where more history leads to smoother but potentially less current estimates. Default is 50. Start with a minimum of 5 to build data; limit to 100 to 200 to prevent outdated regimes from skewing results.
Max Lookahead: Limits the number of bars projected forward to avoid overly extended lines. Default is 500. Reduce to 100 to 200 for intraday focus, or increase for longer swing horizons.
Stat Method: Selects the aggregation technique for time and price deltas: Median for robustness against outliers, Trimmed Mean (20%) for a balanced trim of extremes, or 75th Percentile for a conservative upward tilt. Default is Median. Use Median for even distributions; switch to Percentile when emphasizing potential upside in trending conditions.
Tolerance Type: Chooses the approach for flexible hit detection: None for exact matches, Percentage for relative adjustments, Absolute for fixed point offsets, or ATR for scaling with volatility. Default is None. Begin with Percentage at 0.5 percent for currency pairs, or ATR for adapting to cryptocurrency swings.
Tolerance %: Provides the relative buffer when using Percentage mode, forgiving small deviations. Default is 0.5. Set between 0.2 and 1.0 percent; higher values accommodate gaps but can overstate hit counts.
Tolerance Points: Establishes a fixed offset in price units for Absolute mode. Default is 0.0010. Tailor to the asset, such as 0.0001 for forex pairs, and validate against past wick behavior.
ATR Length: Specifies the period for the Average True Range in dynamic tolerance calculations. Default is 14. This is the standard setting; shorten to 10 to reflect more recent volatility.
ATR Multiplier: Adjusts the ATR scale for tolerance width in ATR mode. Default is 0.5. Range from 0.3 for tighter precision to 0.8 for greater leniency.
Dashboard Location: Positions the summary table on the chart. Default is Bottom Right. Consider Top Left for better visibility on mobile devices.
Dashboard Size: Controls the text scaling for dashboard readability. Default is Normal. Choose Tiny for dense overlays or Large for detailed review sessions.
Text/Frame Color: Sets the color scheme for dashboard text and borders. Default is gray. Align with your chart theme, opting for lighter shades on dark backgrounds.
Reading & Interpretation
Forecast lines appear as dashed diagonals from confirmed pivots to projected targets, with solid horizontals at endpoints marking price levels. Open targets show a target symbol (🎯); achieved ones switch to a trophy symbol (🏆) in gray, with lines fading to gray. The dashboard summarizes median time/price deltas, sample counts, and hit rates—rising rates indicate improving forecast alignment. Colors differentiate highs (red) from lows (lime); frozen states signal validated projections.
Practical Workflows & Combinations
- Trend following: Enter long on low forecast hits during uptrends (higher highs/lower lows structure); filter with EMA crossovers to ignore counter-trend signals.
- Reversal setups: Short above high projections in overextended rallies; use volume spikes as confirmation to reduce false breaks.
- Exits/Stops: Trail stops to prior pivot lows; conservative on low hit rates (below 50%), aggressive above 70% with tight tolerance.
- Multi-TF: Apply on 1H for entries, 4H for time projections; combine with Ichimoku clouds for confluence on targets.
- Risk management: Position size inversely to delta uncertainty (wider history = smaller bets); avoid low-liquidity sessions.
Behavior, Constraints & Performance
Confirmation occurs on OOB exit, so live-bar pivots may adjust until close, but projections update only on events to minimize repaint. No security or HTF calls, so no external lookahead issues. Arrays cap at history length with shifts; forecasts limited to five active, pruning FIFO. Loops iterate over small fixed sizes (e.g., up to 50 for stats), efficient on most hardware. Max lines/labels at 500 prevent overflow.
Known limits: Sensitive to OOB parameter tuning—too tight misses runs; assumes stationary pivot stats, which may shift in regime changes like low vol. Gaps or holidays distort time deltas.
Sensible Defaults & Quick Tuning
Defaults suit forex/crypto on 1H–4H: RSI 32/BB 20 for balanced detection, Median stats over 50 samples, None tolerance for exactness.
- Too many false runs: Increase BB StdDev to 2.5 or RSI Length to 50 for filtering.
- Lagging forecasts: Shorten History Length to 20; switch to 75th Percentile for forward bias.
- Missed near-hits: Enable Percentage tolerance at 0.3% to capture wicks without overcounting.
- Cluttered charts: Reduce Max Lookahead to 200; disable dashboard on lower TFs.
What this indicator is—and isn’t
This is a forecasting visualization layer for pivot-based analysis, highlighting statistical projections from historical patterns. It is not a standalone system—pair with price action, volume, and risk rules. Not predictive of all turns; focuses on OOB-derived extrema, ignoring volume or news impacts.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino
Diwali Lights Pro — 7-Diyas Signal Matrix [KedArc Quant]🎯 Overview
“Diwali Lights Pro — 7-Diyas Signal Matrix” is a precision-built trend-sentiment indicator that blends the glow of seven technical “diyas” — each representing a different momentum or strength dimension — into one intuitive signal matrix. It was designed to celebrate light, discipline, and clarity in trading — helping traders filter noise, identify strong trend shifts, and take trades with conviction. Each diya is powered by a proven indicator component: RSI, Stochastic, EMA trend strength, and momentum slopes.Together, they light up your chart with buy/sell signals only when technical confluence aligns — like the diyas of Diwali shining in harmony.
💡 Core Concept
The indicator computes a composite score (–9 to +9) by evaluating seven key parameters:
| # | Diya | Logic | Interpretation |
| 1 | RSI | Overbought / Oversold | Short-term momentum exhaustion |
| 2 | Stochastic | Direction & zones | Confirmation of RSI |
| 3 | Price vs EMA20 | Position of price | Near-term trend bias |
| 4 | EMA20 Slope | Short-term momentum | Strength confirmation |
| 5 | EMA50 Slope | Mid-term trend | Trend stability |
| 6 | EMA100 Slope | Medium-term sentiment | Institutional bias |
| 7 | EMA200 Slope | Long-term sentiment | Market direction baseline |
The total of these 7 diyas creates a signal matrix that dynamically adapts to trend conditions.
⚙️ Inputs & Configuration
| RSI Length | 14 | Standard RSI window |
| Stochastic Length | 14 | Measures momentum oscillation |
| EMA Periods | 20, 50, 100, 200 | Multi-layer trend structure |
| Overbought / Oversold Zones | 70 / 30 | Configurable thresholds |
| Show Buy/Sell Labels | ✅ | Toggle signal markers |
| Show Banner | ✅ | Festive Diwali header with fireworks |
| Twinkle Interval | 10 bars | Animation timing |
| Fireworks Count | 18 | Visual celebration intensity |
| Background Opacity | 100% | Style preference |
🧭 Entry & Exit Logic
# ✅ Buy Signal (🪔)
A Buy triggers when:
* The total diya score crosses above zero,
* And at least four of seven components turn bullish.
This indicates that short-term oscillators, price action, and moving averages are all turning in unison — a strong entry zone after a pullback.
# 🔥 Sell Signal (🔥)
A Sell triggers when:
* The total diya score crosses below zero,
* And multiple slopes or price conditions flip bearish.
This flags weakening momentum and possible trend exhaustion.
# 💬 Suggested Usage
* Works beautifully on 5-min to 1-hour charts.
* Best when used with trend confirmation tools (volume, price structure).
* Avoid entering trades when signals flip rapidly within narrow ranges (sideways zones).
🧪 Mathematical Formulae
1. RSI Bucket (p₁):
p₁ =
2 if RSI < Very Oversold
1 if RSI < Oversold
0 if neutral
-1 if RSI > Overbought
-2 if RSI > Very Overbought
2. Stochastic Bucket (p₂): Similar to RSI bucketing.
3. Price vs EMA20 (p₃):
p₃ = sign(close - EMA20)
4–7. Slope Sign (EMA20, 50, 100, 200):
p₄₋₇ = sign(EMA - EMA )
Total Score = Σ(p₁…p₇)
→ Crossover(total_score, 0) → Buy Signal
→ Crossunder(total_score, 0) → Sell Signal
📊 Why It’s Not Just a Mash-Up
Diwali Lights Pro uses:
* A unified scoring engine with weighted logic rather than conflicting triggers.
* Each component (diya) contributes equally, creating a normalized sentiment index.
* Smart signal filtering prevents repetitive false flips by enforcing trend alignment across multiple time frames.
* A dynamic, responsive structure optimized for clarity and minimal repainting.
🎆 Unique Add-Ons
* Top-Right Diwali Banner: Festive “Happy Diwali” with animated fireworks 🎇 and diyas 🪔.
* Signal Filtering: Reduces noise in volatile ranges.
* EMA Cloud Context: Visual clarity of multi-layer trend zones.
* Optional Light Mode: Change fireworks opacity for a subtle or bright effect.
📘 FAQ
Q1: Does this repaint?
No — it uses confirmed values (RSI, Stochastic, EMA slopes). Signals appear only after the bar closes.
Q2: Which timeframes work best?
Between 5m and 1h, depending on your strategy.
Use higher EMAs for swing setups.
Q3: Can I use it with alerts?
Yes, both Buy and Sell triggers come with built-in `alertcondition()` for instant notifications.
Q4: Can it be combined with other indicators?
Absolutely — it pairs well with volume profiles, volatility bands, or order-flow systems.
🪔 Glossary
| Diya | Candle or light — here, each diya = one technical indicator |
| EMA | Exponential Moving Average — measures smoothed trend bias |
| RSI | Relative Strength Index — momentum overbought/oversold oscillator |
| Stochastic | Momentum oscillator measuring closing levels relative to highs/lows |
| Slope Sign | Direction of EMA movement — rising or falling |
| Signal Matrix | The combined system of all seven diyas generating a unified score |
🧭 Final Note
> *Diwali Lights Pro* is not just a trading tool — it’s a visual celebration of confluence and discipline.
> When the diyas align, trends shine. Use it to trade in harmony with light, not against it. 🌟
⚠️ Disclaimer
This script is provided for educational purposes only.
Past performance does not guarantee future results.
Trading involves risk, and users should exercise caution and use proper risk management when applying this strategy.