Volatility Channel Oscillator█ OVERVIEW
"Volatility Channel Oscillator" is a technical indicator that analyzes price volatility relative to dynamic price channels, displaying an oscillator, its moving average, and signals based on crossovers and divergences. The indicator offers customizable overbought and oversold levels, gradient visualization, and divergence detection, supported by alerts for key signals.
█ CONCEPTS
The VCO indicator creates dynamic price channels based on a moving average of the price (calculated as the arithmetic mean of the high and low prices: (high + low) / 2) and market volatility (measured as the average candle range and body size). These channels are not displayed on the chart but are used to calculate the oscillator value, which reflects the position of the closing price relative to the channel width, scaled to a range from -100 to +100, with the zero line as the central point. A moving average of the oscillator (SMA) smooths its values, enabling signals based on crossovers with the zero line or overbought/oversold levels. The indicator also detects divergences between price and the oscillator, which may indicate potential trend reversals. VCO is useful for identifying market momentum, reversal points, and trend confirmation, especially when combined with other technical analysis tools.
█ FEATURES
- Volatility Channels: Calculates invisible chart boundaries based on a simple moving average (SMA) of the price (high + low) / 2 and volatility (average candle range and body). The length parameter (default 30) sets the SMA length, and scale (default 200%) adjusts the channel width.
- Oscillator: Determines the oscillator value in the range of -100 to +100, indicating the closing price's position relative to the volatility channel. Displayed with dynamic coloring (green for positive values, red for negative).
- Oscillator Moving Average: A simple moving average (SMA) of the oscillator values, smoothing its movements. The signalLength parameter (default 20) defines the SMA length. Displayed in yellow with an optional gradient.
- Overbought/Oversold Levels: Configurable thresholds for the oscillator (overbought, default 50; oversold, default -50) and its moving average (maOverbought, default 30; maOversold, default -30), shown as horizontal lines with optional gradients. Band colors change dynamically (red for overbought, green for oversold, gray for neutral) based on the moving average's position relative to maOverbought/maOversold, reinforcing other signals.
- Divergences: Detects bullish (price forms a lower low, oscillator a higher low) and bearish (price forms a higher high, oscillator a lower high) divergences using pivots (pivotLength, default 2). Divergences are displayed with a delay equal to the pivot length; larger lengths increase reliability but delay signals. Use as additional confirmation.
Signals:
- Overbought/Oversold Crossovers: Green triangles (buy) when the oscillator crosses above the oversold level, red triangles (sell) when it crosses below the overbought level.
- Zero Line Crossovers: Buy/sell signals when the oscillator crosses the zero line upward (buy) or downward (sell).
- Moving Average Crossovers: Buy/sell signals when the oscillator's moving average crosses the zero line or the maOverbought/maOversold levels. Dynamic band color changes (red/green) at these crossovers reinforce other signals.
- Visualization: Gradient lines for the oscillator, its moving average, overbought/oversold levels, and zero line, with adjustable transparency. Gradient fill between the oscillator and zero line.
Divergence Labels: "Bull" (bullish) and "Bear" (bearish) labels with customizable color and transparency.
- Alerts: Built-in alerts for divergences, overbought/oversold crossovers, and zero line crossovers by the oscillator and its moving average.
█ HOW TO USE
Add to Chart: Apply the indicator via Pine Editor or the Indicators menu on TradingView.
Configure Settings:
- Channel and Oscillator Settings: Adjust the channel SMA length (length, default 30) and channel scaling (scale, default 200%). Increase scale for high-volatility markets.
- Threshold Levels: Set oscillator overbought (overbought, default 50) and oversold (oversold, default -50) levels, and moving average thresholds (maOverbought, default 30; maOversold, default -30).
- Divergence Settings: Enable/disable divergence detection (calculateDivergence) and set pivot length (pivotLength, default 2). Larger values increase reliability but delay signals.
- Signal Settings: Choose signal types (signalType): overbought/oversold, zero line, moving average, or all.
- Styling: Customize colors for the oscillator, moving average, horizontal levels, and divergence labels. Adjust gradient and fill transparency.
Interpreting Signals:
- Buy Signals: Green triangles below the bar when the oscillator or its moving average crosses above the oversold level or zero line.
- Sell Signals: Red triangles above the bar when the oscillator or its moving average crosses below the overbought level or zero line.
- Moving Average Signals: Green/red triangles when the moving average crosses maOverbought/maOversold levels, indicating potential reversals or trend continuation. Dynamic band color changes (red for overbought, green for oversold) at these crossovers reinforce other signals.
- Divergences: "Bull" (bullish) and "Bear" (bearish) labels indicate potential trend reversals with a delay based on pivot length. Use as confirmation.
- Overbought/Oversold Levels: Monitor price reactions in these zones as potential reversal points. Dynamic band color changes based on the moving average reinforce signals.
Signal Confirmation: Use VCO with other tools, such as pivot levels (for key turning points) or Fibonacci levels (for support/resistance zones).
█ APPLICATIONS
- Trend Trading: Zero line crossovers by the oscillator or its moving average identify momentum in uptrends or downtrends.
- Range Trading: Overbought/oversold levels help identify entry/exit points in sideways markets.
- Divergences: Use bullish/bearish divergences as additional confirmation of reversals, especially near key price levels.
- Trend Identification: To analyze trends over a longer perspective, increase the moving average length (signalLength) for more stable signals.
█ NOTES
- Test the indicator across different timeframes and markets to optimize parameters, such as length and scale, for your trading style.
- In strong trends, overbought/oversold levels may persist, requiring additional signal verification.
- Divergences are more reliable on higher timeframes (H4, D1), where market noise is reduced, but their delay requires caution.
- In low-liquidity markets, signals may be less effective, so use on high-liquidity assets is recommended.
מתנדים
Momentum-Based Fair Value Gaps [BackQuant]Momentum-Based Fair Value Gaps
A precision tool that detects Fair Value Gaps and color-codes each zone by momentum, so you can quickly tell which imbalances matter, which are likely to fill, and which may power continuation.
What is a Fair Value Gap
A Fair Value Gap is a 3-candle price imbalance that forms when the middle candle expands fast enough that it leaves a void between candle 1 and candle 3.
Bullish FVG : low > high . This marks a bullish imbalance left beneath price.
Bearish FVG : high < low . This marks a bearish imbalance left above price.
These zones often act as magnets for mean reversion or as fuel for trend continuation when price respects the gap boundary and runs.
Why add momentum
Not all gaps are equal. This script measures momentum with RSI on your chosen source and paints each FVG with a momentum heatmap. Strong-momentum gaps are more likely to hold or propel continuation. Weak-momentum gaps are more likely to fill.
Core Features
Auto FVG Detection with size filters in percent of price.
Momentum Heatmap per gap using RSI with smoothing. Multiple palettes: Gradient, Discrete, Simple, and scientific schemes like Viridis, Plasma, Inferno, Magma, Cividis, Turbo, Jet, plus Red-Green and Blue-White-Red.
Bull and Bear Modes with independent toggles.
Extend Until Filled : keep drawing live to the right until price fully fills the gap.
Auto Remove Filled for a clean chart.
Optional Labels showing the smoothed RSI value stored at the gap’s birth.
RSI-based Filters : only accept bullish gaps when RSI is oversold and bearish gaps when RSI is overbought.
Performance Controls : cap how many FVGs to keep on chart.
Alerts : new bullish or bearish FVG, filled FVG, and extreme RSI FVGs.
How it works
Source for Momentum : choose Returns, Close, or Volume.
Returns computes percent change over a short lookback to focus on impulse quality.
RSI and Smoothing : RSI length and a small SMA smooth the signal to stabilize the color coding.
Gap Scan : each bar checks for a 3-candle bullish or bearish imbalance that also clears your minimum size filter in percent of price.
Heatmap Color : the gap is painted at creation with a color from your palette based on the smoothed RSI value, preserving the momentum signature that formed it.
Lifecycle : if Extend Unfilled is on, the zone projects forward until price fully trades through the far edge. If Auto Remove is on, a filled gap is deleted immediately.
How to use it
Scan for structure : turn on both bullish and bearish FVGs. Start with a moderate Min FVG Size percent to reduce noise. You will see stacked clusters in trends and scattered singletons in chop.
Read the colors : brighter or stronger palette values imply stronger momentum at gap formation. Weakly colored gaps are lower conviction.
Decide bias : bullish FVGs below price suggest demand footprints. Bearish FVGs above price suggest supply footprints. Use the heatmap and RSI value to rank importance.
Choose your playbook :
Mean reversion : target partial or full fills of opposing FVGs that were created on weak momentum or that sit against higher timeframe context.
Trend continuation : look for price to respect the near edge of a strong-momentum FVG, then break away in the direction of the original impulse.
Manage risk : in continuation ideas, invalidation often sits beyond the opposite edge of the active FVG. In reversion ideas, invalidation sits beyond the gap that should attract price.
Two trade playbooks
Continuation - Buy the hold of a bullish FVG
Context uptrend.
A bullish FVG prints with strong RSI color.
Price revisits the top of the gap, holds, and rotates up. Enter on hold or first higher low inside or just above the gap.
Invalidation: below the gap bottom. Targets: prior swing, measured move, or next LV area.
Reversion - Fade a weak bearish FVG toward fill
Context range or fading trend.
A bearish FVG prints with weak RSI color near a completed move.
Price fails to accelerate lower and rotates back into the gap.
Enter toward mid-gap with confirmation.
Invalidation: above gap top. Target: opposite edge for a full fill, or the gap midline for partials.
Key settings
Max FVG Display : memory cap to keep charts fast. Try 30 to 60 on intraday.
Min FVG Size % : sets a quality floor. Start near 0.20 to 0.50 on liquid markets.
RSI Length and Smooth : 14 and 3 are balanced. Increase length for higher timeframe stability.
RSI Source :
Returns : most sensitive to true momentum bursts
Close : traditional.
Volume : uses raw volume impulses to judge footprint strength.
Filter by RSI Extremes : tighten rules so only the most stretched gaps print as signals.
Heatmap Style and Palette : pick a palette with good contrast for your background. Gradient for continuous feel, Discrete for quick zoning, Simple for binary, Palette for scientific schemes.
Extend Unfilled - Auto Remove : choose live projection and cleanup behavior to match your workflow.
Reading the chart
Bullish zones sit beneath price. Respect and hold of the upper boundary suggests demand. Strong green or warm palette tones indicate impulse quality.
Bearish zones sit above price. Respect and hold of the lower boundary suggests supply. Strong red or cool palette tones indicate impulse quality.
Stacking : multiple same-direction gaps stacked in a trend create ladders. Ladders often act as stepping stones for continuation.
Overlapping : opposing gaps overlapping in a small region usually mark a battle zone. Expect chop until one side is absorbed.
Workflow tips
Map higher timeframe trend first. Use lower timeframe FVGs for entries aligned with the higher timeframe bias.
Increase Min FVG Size percent and RSI length for noisy symbols.
Use labels when learning to correlate the RSI numbers with your palette colors.
Combine with VWAP or moving averages for confluence at FVG edges.
If you see repeated fills and refills of the same zone, treat that area as fair value and avoid chasing.
Alerts included
New Bullish FVG
New Bearish FVG
Bullish FVG Filled
Bearish FVG Filled
Extreme Oversold FVG - bullish
Extreme Overbought FVG - bearish
Practical defaults
RSI Length 14, Smooth 3, Source Returns.
Min FVG Size 0.25 percent on liquid majors.
Heatmap Style Gradient, Palette Viridis or Turbo for contrast.
Extend Unfilled on, Auto Remove on for a clean live map.
Notes
This tool does not predict the future. It maps imbalances and momentum so you can frame trades with clearer context, cleaner invalidation, and better ranking of which gaps matter. Use it with risk control and in combination with your broader process.
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.
MACD-V with RSI Gradient## Overview
MACD-V is a volatility-adjusted momentum indicator that normalizes MACD using ATR. This version adds a dynamic RSI-based background gradient to highlight momentum zones visually.
## Features
- **MACD-V Line**: EMA-based momentum normalized by ATR
- **Signal Line**: EMA of MACD-V
- **Histogram**: Color-coded based on slope and polarity
- **RSI Gradient Background**: Shading from bright green (RSI > 75) to bright red (RSI < 30), with intermediate tones for momentum context
## Use Case
Designed for 30-minute oil futures charts, this indicator helps identify:
- Trend strength and reversals
- Momentum zones using RSI shading
- Pullback opportunities and exhaustion zones
## Inputs
- Fast EMA (default: 12)
- Slow EMA (default: 26)
- Signal EMA (default: 9)
- ATR Length (default: 26)
## Notes
- RSI shading is purely visual—no alerts are wired in yet
- Histogram renders behind MACD-V and Signal lines for clarity
- Colors are tuned for dark charts
## Credits
The MACD-v is an indicator created in 2015 by Alex Spiroglou
and presented to the public in 2022
as a paper called: "𝗠𝗔𝗖𝗗-𝘃: 𝗩𝗼𝗹𝗮𝘁𝗶𝗹𝗶𝘁𝘆 𝗡𝗼𝗿𝗺𝗮𝗹𝗶𝘀𝗲𝗱 𝗠𝗼𝗺𝗲𝗻𝘁𝘂𝗺"
It received the following Awards:
1. “𝐅𝐨𝐮𝐧𝐝𝐞𝐫𝐬 𝐀𝐰𝐚𝐫𝐝” (2022),
for advances in Active Investment Management
from the National Association of Active Investment Managers (NAAIM)
2. “𝐂𝐡𝐚𝐫𝐥𝐞𝐬 𝐇. 𝐃𝐨𝐰 𝐀𝐰𝐚𝐫𝐝” (2022)
for outstanding research in Technical Analysis,
from the Chartered Market Technicians Association (CMTA)
The RSI Gradient was my idea, but quite frankly, if I go looking around I suppose I'll find that others had the same idea.
This is the first time I've ever published any code, so if I stepped on anyone's toes. I'm sorry.
MACD-V with RSI Gradient## Overview
MACD-V is a volatility-adjusted momentum indicator that normalizes MACD using ATR. This version adds a dynamic RSI-based background gradient to highlight momentum zones visually.
## Features
- **MACD-V Line**: EMA-based momentum normalized by ATR
- **Signal Line**: EMA of MACD-V
- **Histogram**: Color-coded based on slope and polarity
- **RSI Gradient Background**: Shading from bright green (RSI > 75) to bright red (RSI < 30), with intermediate tones for momentum context
## Use Case
Designed for 30-minute oil futures charts, this indicator helps identify:
- Trend strength and reversals
- Momentum zones using RSI shading
- Pullback opportunities and exhaustion zones
## Inputs
- Fast EMA (default: 12)
- Slow EMA (default: 26)
- Signal EMA (default: 9)
- ATR Length (default: 26)
## Notes
- RSI shading is purely visual—no alerts are wired in yet
- Histogram renders behind MACD-V and Signal lines for clarity
- Colors are tuned for dark charts
## Credits
Developed by Mark (SylvaRocks), optimized for tactical clarity and scalping precision.
Divergences + Alerts (ANY Indicator)📊 Divergences + Alerts (ANY Indicator)
This versatile indicator detects four types of divergences between price action and an oscillator:
Buyer Exhaustion
Buyer Absorption
Seller Exhaustion
Seller Absorption
Each divergence type is automatically identified and visually marked on the chart with colored lines. The indicator also includes built-in alert conditions for all four divergence types, allowing traders to receive real-time notifications when potential reversal signals occur.
By default, the oscillator is a candle-style visualization of the Money Flow Index (MFI), enhanced with volatility filtering via a VWMA-based ATR. However, users can replace the default MFI oscillator with any external source using the “Plug External Source” input, enabling full customization and compatibility with other indicators.
Key features:
🔍 Detects both exhaustion and absorption divergences
🔔 Alerts for each divergence type
🕯️ Candle-style oscillator visualization
🔌 Optional input for external indicator sources
⚙️ ATR-based filtering for precision
Ideal for traders seeking to spot early signs of trend reversals or momentum shifts with customizable flexibility.
AlgoWay GRSIM🧭 What this strategy tries to do
This strategy detects when a market move is losing strength and prepares for a potential reversal, but it waits for fresh momentum confirmation before acting.
It combines:
• RSI-based divergence (to spot exhaustion and potential turning points),
• Impulse MACD (to verify that the new direction actually has force behind it).
________________________________________
⚙️ When it takes trades
Long (Buy):
• A bullish RSI divergence appears (a clue that selling pressure is fading);
• Within a short time window, the Impulse MACD turns strongly positive;
• Optionally, the impulse line itself must be rising (if the Impulse Direction Filter is
enabled).
Short (Sell):
• A bearish RSI divergence appears (buying pressure fading);
• Within a short time window, the Impulse MACD turns strongly negative;
• Optionally, the impulse line must be falling (if the Impulse Direction Filter is enabled).
If momentum confirmation happens too late, the divergence “expires” and the signal is ignored.
________________________________________
🧩 How entries work
1. Reversal clue:
The strategy detects disagreement between price and RSI (price makes a new high/low, RSI doesn’t).
That suggests a shift in underlying strength.
2. Momentum confirmation:
Before entering, the Impulse MACD must agree — showing real push in the same direction.
3. Impulse direction filter (optional):
When enabled, the impulse itself must accelerate (rise for longs, fall for shorts), avoiding fake signals where price diverges but momentum is still fading.
4. No stacking:
It opens only one position at a time.
________________________________________
🚪 How exits work
Two main exit styles:
Conservative (default):
Longs close when impulse crosses below its signal line.
Shorts close when impulse crosses above its signal line.
✅ Keeps trades as long as momentum agrees.
Color-change (fast):
Longs close immediately when impulse flips bearish.
Shorts close immediately when impulse flips bullish.
⚡ Faster and more defensive.
Plus:
Stop Loss (%) and Take Profit (%) act as fixed-distance protective exits (set to 0 to disable either one).
________________________________________
📊 What you’ll see on the chart
A thick Impulse MACD line and thin signal line (oscillator view).
Diamonds — detected bullish/bearish divergence points.
Circles — where impulse crosses its signal (momentum change).
A performance panel (top-right) showing Net Profit, Trades, Win Rate, Profit Factor, Pessimistic PF, and Max Drawdown.
________________________________________
🔧 What you can tune
Signal Lifetime (bars): how long a divergence remains valid.
Impulse Direction Filter: ensure the impulse itself is moving in the trade’s direction.
Stop Loss / Take Profit (%): risk and target in percent.
Exit Style: conservative cross or faster color-change.
RSI / MA / Signal Lengths: adjust responsiveness (defaults are balanced).
________________________________________
💪 Strengths
Confirms reversals using momentum direction, not just divergence.
Avoids “early” signals where momentum is still fading.
Works symmetrically for longs and shorts.
Built-in stop/target protection.
Clear, visual confirmation of all logic components.
________________________________________
⚠️ Things to keep in mind
In sideways markets, the impulse can flip often — prefer conservative exits.
Too small SL/TP → constant stop-outs.
Too wide SL/TP → deep drawdowns.
Always test with different timeframes and markets.
________________________________________
💡 Practical tips
Start with default settings.
Enable “Use Impulse Direction Filter” in trending markets, disable it in very choppy ones.
Focus on Profit Factor, Win Rate, and Max Drawdown after several dozen trades.
Keep SL/TP roughly aligned with typical swing size.
“AlgoWay GRSIM” is a reversal-with-confirmation strategy: it spots likely turns, demands real momentum alignment (optionally verified by impulse direction), and manages exits with clear momentum cues plus built-in protective limits.
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.
CMF, RSI, CCI, MACD, OBV, Fisher, Stoch RSI, ADX (+DI/-DI)Eight normalized indicators are used in conjunction with the CMF, CCI, MACD, and Stoch RSI indicators. You can track buy and sell decisions by tracking swings. The zero line is for reversal tracking at -20, +20, +50, and +80. You can use any of the nine indicators individually or in combination.
Moving Average Convergence-Divergence (MACD)This script implements the Moving Average Convergence-Divergence (MACD), a popular momentum indicator used in technical analysis to identify trend direction, momentum shifts, and potential buy/sell signals.
🔹 Key Features
1. Inputs & Customization
MACD Lines Toggle: Enable/disable the MACD and signal lines.
Source Price: Defaults to close but can be adjusted (e.g., open, high, low, hl2).
Fast Length (12): The period for the faster-moving EMA.
Slow Length (26): The period for the slower-moving EMA.
Signal Length (9): The smoothing period for the signal line.
2. Calculations
Computes the MACD Line (fast EMA - slow EMA).
Computes the Signal Line (EMA of the MACD line).
Computes the Histogram (difference between MACD and Signal lines).
3. Visual Indicators
Zero Line: A white horizontal line at 0 for reference.
MACD Line: Plotted in green when above the signal line, red when below.
Signal Line: Displayed as a yellow line.
Histogram:
Green bars when MACD > Signal (bullish momentum).
Red bars when MACD < Signal (bearish momentum).
Background Highlights:
Light green on bullish crossovers (MACD crosses above Signal).
Light red on bearish crossunders (MACD crosses below Signal).
4. Alerts
Triggers when:
Bullish Crossover (MACD crosses above Signal).
Bearish Crossunder (MACD crosses below Signal).
🔹 How Traders Use This Indicator
Trend Identification:
MACD above zero → bullish trend.
MACD below zero → bearish trend.
Momentum Signals:
Bullish Crossover (Buy Signal): MACD crosses above Signal.
Bearish Crossunder (Sell Signal): MACD crosses below Signal.
Divergence (Not in this script, but useful):
Price makes higher highs, but MACD makes lower highs → Potential reversal.
🔹 Strengths of This Script
✅ Clean and Efficient Code – Uses Pine Script v6 best practices.
✅ Customizable Inputs – Adjust lengths and source price.
✅ Clear Visuals – Color-coded for easy interpretation.
✅ Built-in Alerts – For automated trading strategies.
Jul 1
Release Notes
This script implements the Moving Average Convergence-Divergence (MACD), a popular momentum indicator used in technical analysis to identify trend direction, momentum shifts, and potential buy/sell signals.
🔹 Key Features
1. Inputs & Customization
MACD Lines Toggle: Enable/disable the MACD and signal lines.
Source Price: Defaults to close but can be adjusted (e.g., open, high, low, hl2).
Fast Length (12): The period for the faster-moving EMA.
Slow Length (26): The period for the slower-moving EMA.
Signal Length (9): The smoothing period for the signal line.
2. Calculations
Computes the MACD Line (fast EMA - slow EMA).
Computes the Signal Line (EMA of the MACD line).
Computes the Histogram (difference between MACD and Signal lines).
3. Visual Indicators
Zero Line: A white horizontal line at 0 for reference.
MACD Line: Plotted in green when above the signal line, red when below.
Signal Line: Displayed as a yellow line.
Histogram:
Green bars when MACD > Signal (bullish momentum).
Red bars when MACD < Signal (bearish momentum).
Background Highlights:
Light green on bullish crossovers (MACD crosses above Signal).
Light red on bearish crossunders (MACD crosses below Signal).
4. Alerts
Triggers when:
Bullish Crossover (MACD crosses above Signal).
Bearish Crossunder (MACD crosses below Signal).
🔹 How Traders Use This Indicator
Trend Identification:
MACD above zero → bullish trend.
MACD below zero → bearish trend.
Momentum Signals:
Bullish Crossover (Buy Signal): MACD crosses above Signal.
Bearish Crossunder (Sell Signal): MACD crosses below Signal.
Divergence (Not in this script, but useful):
Price makes higher highs, but MACD makes lower highs → Potential reversal.
🔹 Strengths of This Script
✅ Clean and Efficient Code – Uses Pine Script v6 best practices.
✅ Customizable Inputs – Adjust lengths and source price.
✅ Clear Visuals – Color-coded for easy interpretation.
✅ Built-in Alerts – For automated trading strategies.
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))
REMS Synergy OverlayThis 3rd generation REMS indicator builds upon the foundations assessing the relationships between RSI, EMAs, MACDs, and Stochastic RSI across multiple timeframes. Designed to help traders identify less frequent, but high probability entries across 2 time frames. Uses 3 levels of confluence indicators for both long and short moves.
Confluence Level 1 (Highest Conviction):
Evaluates selected criteria across both timeframes. All selected criteria must be in confluence to trigger signal.
Confluence Level 2 (Moderate Conviction):
Selected criteria can be selected by each timeframe individually. All selected criteria must be in confluence to trigger signal.
Confluence Level 3 (Lower/supportive confluence):
Of the selected criteria, this level can evaluate a set number of conditions that must be met. Number of conditions is user-defined.
Includes VWAP and 4 EMAs as optional visual representations.
Includes 'Enhanced Candles' than can colour code candlesticks for better visual identification. (off by default)
Originally designed with 5 minute and 2 minute timeframes in mind, and pairs well with REMS First Strike and/or REMS Snap Shot indicators.
Values coded below:
RSI
-Primary: Length = 14, Smoothing = 20 (via SMA)
-Secondary: Length = 7, Smoothing = 20 (via SMA)
Stochastic RSI
Primary:
-RSI Length = 14
-Stochastic Length = 8
-%K = 3, %D = 3
Secondary:
-RSI Length = 7
-Stochastic Length = 7
-%K = 3, %D = 2
MACD - applied to both timeframes
-Fast = 12, Slow = 26, Signal = 9
Arbitrage Deviation Histogram-AAZ"Chart around MA-200"
This script plots a line chart around the 200-period moving average.
BH Ergodic (TSI-style) [v5]The BG Ergodic script is a custom momentum and trend-confirmation tool that builds on the classic True Strength Index (TSI) and Ergodic Oscillator concepts. It smooths price momentum over multiple exponential averages to identify underlying trend direction, exhaustion, and potential reversals with reduced noise.
Unlike a standard TSI, the BG Ergodic combines:
Dual-smoothing filters for both momentum and signal lines, giving a cleaner response in choppy markets.
Dynamic color transitions that highlight bullish and bearish phases based on crossovers and slope changes.
Optional histogram plotting to visualize the spread between the Ergodic line and its signal line for early trend-shift detection.
This indicator works best on swing or trend-following timeframes (e.g., 1H–1D) and can be used to:
Confirm trend direction before entries,
Filter false breakouts, or
Spot momentum divergence near key support/resistance zones.
VWAP + Multi-Condition RSI Signals + FibonacciPlatform / System
Platform: TradingView
Language: Pine Script® v6
Purpose: This script is an overlay indicator for technical analysis on charts. It combines multiple tools: VWAP, RSI signals, and Fibonacci levels.
1️⃣ VWAP (Volume Weighted Average Price)
What it does:
Plots the VWAP line on the chart, which is a weighted average price based on volume.
Can be anchored to different periods: Session, Week, Month, Quarter, Year, Decade, Century, or corporate events like Earnings, Dividends, Splits.
Optionally plots bands above and below VWAP based on standard deviation or a percentage.
Supports up to 3 bands with customizable multipliers.
Will not display if the timeframe is daily or higher and the hideonDWM option is enabled.
Visual on chart: A main VWAP line with optional shaded bands.
2️⃣ RSI (Relative Strength Index) Signals
What it does:
Calculates RSI with a configurable period.
Identifies overbought and oversold zones using user-defined levels.
Generates buy/sell signals based on:
RSI crossing above oversold → Buy
RSI crossing below overbought → Sell
Detects strong signals using divergences:
Bullish divergence: Price makes lower low, RSI makes higher low → Strong Buy
Bearish divergence: Price makes higher high, RSI makes lower high → Strong Sell
Optional momentum signals when RSI crosses 50 after recent overbought/oversold conditions.
Visual on chart:
Triangles for buy/sell
Different color triangles/circles for strong and momentum signals
Background shading in RSI overbought/oversold zones
Alerts: The script can trigger alerts when any of these signals occur.
3️⃣ Fibonacci Levels
What it does:
Calculates Fibonacci retracement and extension levels based on the highest high and lowest low over a configurable lookback period.
Plots standard Fibonacci levels: 0.146, 0.236, 0.382, 0.5, 0.618, 0.786, 1.0
Plots extension levels: 1.272, 1.618, 2.0, 2.618
Helps identify potential support/resistance zones.
Visual on chart: Horizontal lines at each Fibonacci level, shaded with different transparencies.
Summary
This script is essentially a multi-tool trading indicator that combines:
VWAP with dynamic bands for trend analysis and price positioning
RSI signals with divergences for entry/exit points
Fibonacci retracement and extension levels for support/resistance
It is interactive and visual, providing both chart overlays and alert functionality for active trading strategies.
This code is provided for training and educational purposes only. It is not financial advice and should not be used for live trading without proper testing and professional guidance.
Z-Score Momentum | MisinkoMasterThe Z-Score Momentum is a new trend analysis indicator designed to catch reversals, and shifts in trends by comparing the "positive" and "negative" momentum by using the Z-Score.
This approach helps traders and investors get unique insight into the market of not just Crypto, but any market.
A deeper dive into the indicator
First, I want to cover the "Why?", as I believe it will ease of the part of the calculation to make it easier to understand, as by then you will understand how it fits the puzzle.
I had an attempt to create a momentum oscillator that would catch reversals and provide high tier accuracy while maintaining the main part => the speed.
I thought back to many concepts, divergences between averages?
- Did not work
Maybe a MACD rework?
- Did not work with what I tried :(
So I thought about statistics, Standard Deviation, Z-Score, Sharpe/Sortino/Omega ratio...
Wait, was that the Z-Score? I only tried the For Loop version of it :O
So on my way back from school I formulated a concept (originaly not like this but to that later) that would attempt to use the Z-Score as an accurate momentum oscillator.
Many ideas were falling out of the blue, but not many worked.
After almost giving up on this, and going to go back to developing my strategies, I tried one last thing:
What if we use divergences in the average, formulated like a Z-score?
Surprise-surprise, it worked!
Now to explain what I have been so passionately yapping about, and to connect the pieces of the puzzle once and for all:
The indicator compares the "strength" of the bullish/bearish factors (could be said differently, but this is my "speach bubble", and I think this describes it the best)
What could we use for the "bullish/bearish" factors?
How about high & low?
I mean, these are by definitions the highest and lowest points in price, which I decided to interpret as: The highest the bull & bear "factors" achieved that bar.
The problem here is comparison, I mean high will ALWAYS > low, unless the asset decided to unplug itself and stop moving, but otherwise that would be unfair.
Now if I use my Z-score, it will get higher while low is going up, which is the opposite of what I want, the bearish "factor" is weaker while we go up!
So I sat on my ret*rded a*s for 25 minutes, completly ignoring the fact the number "-1" exists.
Surprise surprise, multiplying the Z-Score of the low by -1 did what I wanted!
Now it reversed itself (magically). Now while the low keeps going down, the bear factor increases, and while it goes up the bear factor lowers.
This was btw still too noisy, so instead of the classic formula:
a = current value
b = average value
c = standard deviation of a
Z = (a-b)/c
I used:
a = average value over n/2 period
b = average value over n period
c = standard deviation of a
Z = (a-b)/c
And then compared the Z-Score of High to the Z-Score of Low by basic subtraction, which gives us final result and shows us the strength of trend, the direction of the trend, and possibly more, which I may have not found.
As always, this script is open source, so make sure to play around with it, you may uncover the treasure that I did not :)
Enjoy Gs!
RSI + Stochastic Combo (fixed) by howhaber# RSI + Stochastic Indicator
**Summary**
This indicator combines RSI and Stochastic to generate BUY and SELL signals in oversold or overbought market conditions. It merges both indicators for higher accuracy, reducing false signals. Includes visual signals on the chart, alerts, and an info label for quick analysis.
---
## 📈 How the Indicator Works
### RSI Component
- Calculates standard RSI based on the specified period (`rsiLen`).
- Indicates oversold (< 30) or overbought (> 70) conditions.
### Stochastic Component
- Manually calculated to avoid compatibility issues.
- Measures the current price position relative to the price range (highs/lows) over the selected period.
- Smoothed using two SMA filters (%K and %D).
### Signal Logic
**BUY Signal**:
- %K crosses above %D (`ta.crossover(k, d)`).
- %K < 20 (oversold market).
- RSI < specified threshold (default < 40).
**SELL Signal**:
- %K crosses below %D (`ta.crossunder(k, d)`).
- %K > 80 (overbought market).
- RSI > specified threshold (default > 60).
---
## 📍 What's Displayed on the Chart
- 🟢 **Green arrow** below the bar → BUY signal.
- 🔴 **Red arrow** above the bar → SELL signal.
- **In a separate window**:
- RSI line (blue).
- Stochastic %K (orange).
- Stochastic %D (purple).
- Reference levels: 30/70 (RSI), 20/80 (Stochastic).
---
## 🔔 Alerts
- **RSI+Stoch BUY**: Notification on BUY signal.
- **RSI+Stoch SELL**: Notification on SELL signal.
Receive alerts via email, Telegram, or directly on the platform.
---
## 🧩 Additional Feature
- Info label on the last bar, displaying:
- Current RSI value.
- %K and %D values.
- Facilitates quick visual checks of the indicator's current state.
---
## 💡 Interpretation
- **Oversold market** (confirmed by RSI and Stochastic): Likely upward reversal.
- **Overbought market** (confirmed by RSI and Stochastic): Likely downward reversal.
- Combining both reduces false signals and improves accuracy in choppy markets.
---
## ⚠️ Important Note
This indicator is not financial advice. It is designed for technical analysis and educational purposes. Combine it with other tools like trend analysis, volume, and price patterns for better results.
Logit RSI [AdaptiveRSI]The traditional 0–100 RSI scale makes statistical overlays, such as Bollinger Bands or even moving averages, technically invalid. This script solves this issue by placing RSI on an unbounded, continuous scale, enabling these tools to work as intended.
The Logit function takes bounded data, such as RSI values ranging from 0 to 100, and maps them onto an unbounded scale ranging from negative infinity (−∞) to positive infinity (+∞).
An RSI reading of 50 becomes 0 on the Logit scale, indicating a balanced market. Readings above 50 map to positive Logit values (price above Wilder’s EMA / RSI above 50), while readings below 50 map to negative values (price below Wilder’s EMA / RSI below 50).
For the detailed formula, which calculates RSI as a scaled distance from Wilder’s EMA, check the RSI
: alternative derivation script.
The main issue with the 0–100 RSI scale is that different lookback periods produce very different distributions of RSI values. The histograms below illustrate how often RSIs of various lengths spend time within each 5-point range.
On RSI(2), the tallest bars appear at the edges (0–5 and 95–100), meaning short-term RSI spends most of its time at the extremes. For longer lookbacks, the bars cluster around the center and rarely reach 70 or 30.
This behavior makes it difficult to generalize the two most common RSI techniques:
Fixed 70/30 thresholds: These overbought and oversold levels only make sense for short- or mid-range lookbacks (around the low teens). For very short periods, RSI spends most of its time above or below these levels, while for long-term lookbacks, RSI rarely reaches them.
Bollinger Bands (±2 standard deviations): When applied directly to RSI, the bands often extend beyond the 0–100 limits (especially for short-term lookbacks) making them mathematically invalid. While the issue is less visible on longer settings, it remains conceptually incorrect.
To address this, we apply the Logit Transform :
Logit RSI = LN(RSI / (100 − RSI))
The transformed data fits a smooth bell-shaped curve, allowing statistical tools like Bollinger Bands to function properly for the first time.
Why Logit RSI Matters:
Makes RSI statistically consistent across all lookback periods.
Greatly improves the visual clarity of short-term RSIs
Allows proper use of volatility tools (like Bollinger Bands) on RSI.
Replaces arbitrary 70/30 levels with data-driven thresholds.
Simplifies RSI interpretation for both short- and long-term analysis.
INPUTS:
RSI Length — set the RSI lookback period used in calculations.
RSI Type — choose between Regular RSI or Logit RSI .
Plot Bollinger Bands — ON/OFF toggle to overlay statistical envelopes around RSI or Logit RSI.
SMA and Standard Deviation Length — defines the lookback period for both the SMA (Bollinger Bands midline) and Standard Deviation calculations.
Standard Deviation Multiplier — controls the width of the Bollinger Bands (e.g., 2.0 for ±2σ).
While simple, the Logit transformation represents an unexplored yet powerful mathematically grounded improvement to the classic RSI.
It offers traders a structured, intuitive, and statistically consistent way to use RSI across all timeframes.
I welcome your feedback, suggestions, and code improvements—especially regarding performance and efficiency. Your insights are greatly appreciated.
CMF, RSI, CCI, MACD, OBV, Fisher, Stoch RSI, ADX (+DI/-DI)Eight normalized indicators are used in conjunction with the CMF, CCI, MACD, and Stoch RSI indicators. You can track buy and sell decisions by tracking swings. The zero line is for reversal tracking at -20, +20, +50, and +80. You can use any of the nine indicators individually or in combination.
Turtle Strategy - Triple EMA Trend with ADX and ATRDescription
The Triple EMA Trend strategy is a directional momentum system built on the alignment of three exponential moving averages and a strong ADX confirmation filter. It is designed to capture established trends while maintaining disciplined risk management through ATR-based stops and targets.
Core Logic
The system activates only under high-trend conditions, defined by the Average Directional Index (ADX) exceeding a configurable threshold (default: 43).
A bullish setup occurs when the short-term EMA is above the mid-term EMA, which in turn is above the long-term EMA, and price trades above the fastest EMA.
A bearish setup is the mirror condition.
Execution Rules
Entry:
• Long when ADX confirms trend strength and EMA alignment is bullish.
• Short when ADX confirms trend strength and EMA alignment is bearish.
Exit:
• Stop Loss: 1.8 × ATR below (for longs) or above (for shorts) the entry price.
• Take Profit: 3.3 × ATR in the direction of the trade.
Both parameters are configurable.
Additional Features
• Start/end date inputs for controlled backtesting.
• Selective activation of long or short trades.
• Built-in commission and position sizing (percent of equity).
• Full visual representation of EMAs, ADX, stop-loss, and target levels.
This strategy emphasizes clean trend participation, strict entry qualification, and consistent reward-to-risk structure. Ideal for swing or medium-term testing across trending assets.
RSI Divergence Screener [Pineify]RSI Divergence Screener
Key Features
Multi-symbol and multi-timeframe support for advanced market screening.
Real-time detection and visualization of bullish and bearish RSI divergences.
Seamless integration with core technical indicators and custom divergences.
Highly customizable parameters for precise adaptation to personal trading strategies.
Comprehensive screener table for swift asset comparison and analysis.
How It Works
The RSI Divergence Screener leverages the power of Relative Strength Index (RSI) to systematically track momentum shifts across cryptocurrencies and their respective timeframes. By monitoring both fast and slow RSI calculations, the screener isolates divergence signals—key reversal points that often precede major price moves.
The indicator calculates two RSI values for each selected asset: one with a short lookback (Fast RSI) and another with a longer period (Slow RSI).
It runs a comparative algorithm to find divergences—whenever Fast RSI deviates significantly from Slow RSI, it flags the signal as bullish or bearish.
All detected divergences are dynamically presented in a table view, allowing traders to scan symbols and timeframes for optimal trading setups.
Trading Ideas and Insights
Spot early momentum reversals and preempt major price swings via divergence signals.
Combine multiple symbols and timeframes for cross-market trending opportunities.
Identify high-probability scalping and swing trading setups informed by RSI divergence logic.
Quickly compare crypto asset strength and trend exhaustion across short and long-term horizons.
How Multiple Indicators Work Together
This screener’s edge lies in its synergistic use of multi-setting RSI calculations and customizable input groups.
The dual-RSI approach (Fast vs. Slow) isolates subtle trend shifts missed by traditional single-period RSI.
Safe and reliable divergences arise only when the mathematical difference between Fast RSI and Slow RSI meets predefined thresholds, minimizing false positives.
Divergences are contextualized using tailored color codes and backgrounds, rendering insights immediately actionable.
You can expand analysis with additional moving average filters or overlays for further confirmation.
Unique Aspects
First-of-its-kind screener dedicated solely to RSI divergence, designed especially for crypto volatility.
Efficient screening of up to eight assets and multiple timeframes in one compact dashboard.
Intuitive iconography, color logic, and table layouts optimized for rapid decision-making.
Advanced input group design for fine-tuning indicator settings per symbol, timeframe, and source.
How to Use
Select up to eight cryptocurrency symbols to screen for divergence signals.
Assign individual timeframes and source prices for each asset to customize analysis.
Set Fast RSI and Slow RSI lengths according to your preferred strategy (e.g., scalping, swing, or trend following).
Review the screener table: colored cells highlight actionable bullish (green) and bearish (red) divergences.
Confirm trade setups with additional indicators or price action for robust risk management.
Customization
Symbols: Choose any crypto pair or ticker for dynamic divergence tracking.
Timeframes: Scan across 1m, 5m, 10m, 30m, and more for full market coverage.
RSI lengths: Configure Fast and Slow RSI periods based on volatility and trading style.
Visuals: Tailor table colors, fonts, and alert backgrounds per your preference.
Conclusion
The RSI Divergence Screener is a versatile, original TradingView indicator that empowers traders to scan, compare, and act on divergence signals with speed and precision. Its multi-symbol design, robust logic, and extensive customization options set a new standard for market screening tools. Integrate it into your crypto trading process to capture actionable opportunities ahead of the crowd and optimize your technical analysis workflow.
MACD-V (Volatility-Normalized MACD)MACD-V with histogram and strength signals. It normalizes volatility across all assets and time frames.
RSI VWAP v1 [JopAlgo]RSI VWAP v1.1 made stronger by volume-aware!
We know there's nothing new and the original RSI already does an excellent job. We're just working on small, practical improvements – here's our take: The same basic idea, clearer display, and a single, specially developed rolling line: a VWAP of the RSI that incorporates volume (participation) into the calculation.
Do you prefer the pure classic?
You can still use Wilder or Cutler engines –
but the star here is the VW-RSI + rolling line.
This RSI also offers the possibility of illustrating a possible
POC (Point of Control - or the HAL or VAL) level.
However, the indicator does NOT plot any of these levels itself.
We have included an illustration in the chart for this!
We hope this version makes your decision-making easier.
What you’ll see
The RSI line with a 50 midline and optional bands: either static 70/30 or adaptive μ±k·σ of the Rolling Line.
One smoothing concept only: the Rolling Line (light blue) = VWAP of RSI.
Shadow shading between RSI and the Rolling Line (green when RSI > line, red when RSI < line).
A lighter tint only on the parts of that shadow that sit above the upper band or below the lower band (quick overbought/oversold context).
Simple divergence lines drawn from RSI pivots (green for regular bullish, red for regular bearish). No labels, no buy/sell text—kept deliberately clean.
What’s new, and why it helps
VW-RSI engine (default):
RSI can be computed from volume-weighted up/down moves, so momentum reflects how much traded when price moved—not just the direction.
Rolling Line (VWAP of RSI) with pure VWAP adaptation:
Low volume: blends toward a faster VWAP so early, thin starts aren’t missed.
Volume spikes: blends toward a slower VWAP so a single heavy bar doesn’t whip the curve.
You can reveal the Base Rolling (pre-adaptation) line to see exactly how much adaptation is happening.
Adaptive bands (optional):
Instead of fixed 70/30, use mean ± k·stdev of the Rolling Line over a lookback. Levels breathe with the market—useful in strong trends where static bounds stay pinned.
Minimal, readable panel:
One smoothing, one story. The shadow tells you who’s in control; the lighter highlight shows stretch beyond your lines.
How to read it (fast)
Bias: RSI above 50 (and a rising Rolling Line) → bullish bias; below 50 → bearish bias.
Trigger: RSI crossing the Rolling Line with the bias (e.g., above 50 and crossing up).
Stretch: Near/above the upper band, avoid chasing; near/below the lower band, avoid panic—prefer a cross back through the line.
Divergence lines: Use as context, not as standalone signals. They often help you wait for the next cross or avoid late entries into exhaustion.
Settings that actually matter
RSI Engine: VW-RSI (default), Wilder, or Cutler.
Rolling Line Length: the VWAP length on RSI (higher = calmer, lower = earlier).
Adaptive behavior (pure VWAP):
Speed-up on Low Volume → blends toward fast VWAP (factor of your length).
Dampen Spikes (volume z-score) → blends toward slow VWAP.
Fast/Slow Factors → how far those fast/slow variants sit from the base length.
Bands: choose Static 70/30 or Adaptive μ±k·σ (set the lookback and k).
Visuals: show/hide Base Rolling (ref), main shadow, and highlight beyond bands.
Signal gating: optional “ignore first bars” per day/session if you dislike open noise.
Starter presets
Scalp (1–5m): RSI 9–12, Rolling 12–18, FastFactor ~0.5, SlowFactor ~2.0, Adaptive on.
Intraday (15m–1H): RSI 10–14, Rolling 18–26, Bands k = 1.0–1.4.
Swing (4H–1D): RSI 14–20, Rolling 26–40, Bands k = 1.2–1.8, Adaptive on.
Where it shines (and limits)
Best: liquid markets where volume structure matters (majors, indices, large caps).
Works elsewhere: even with imperfect volume, the shadow + bands remain useful.
Limits: very thin/illiquid assets reduce the benefit of volume-weighting—lengthen settings if needed.
Attribution & License
Based on the concept and baseline implementation of the “Relative Strength Index” by TradingView (Pine v6 built-in).
Released as Open-source (MPL-2.0). Please keep the license header and attribution intact.
Disclaimer
For educational purposes only; not financial advice. Markets carry risk. Test first, use clear levels, and manage risk. This project is independent and not affiliated with or endorsed by TradingView.