Keltner Hull Suite [QuantAlgo]🟢 Overview
The Keltner Hull Suite combines Hull Moving Average positioning with double-smoothed True Range banding to identify trend regimes and filter market noise. The indicator establishes upper and lower volatility bounds around the Hull MA, with the trend line conditionally updating only when price violates these boundaries. This mechanism distinguishes between genuine directional shifts and temporary price fluctuations, providing traders and investors with a systematic framework for trend identification that adapts to changing volatility conditions across multiple timeframes and asset classes.
🟢 How It Works
The calculation foundation begins with the Hull Moving Average, a weighted moving average designed to minimize lag while maintaining smoothness:
hullMA = ta.hma(priceSource, hullPeriod)
The indicator then calculates true range and applies dual exponential smoothing to create a volatility measure that responds more quickly to volatility changes than traditional ATR implementations while maintaining stability through the double-smoothing process:
tr = ta.tr(true)
smoothTR = ta.ema(tr, keltnerPeriod)
doubleSmooth = ta.ema(smoothTR, keltnerPeriod)
deviation = doubleSmooth * keltnerMultiplier
Dynamic support and resistance boundaries are constructed by applying the multiplier-scaled volatility deviation to the Hull MA, creating upper and lower bounds that expand during volatile periods and contract during consolidation:
upperBound = hullMA + deviation
lowerBound = hullMA - deviation
The trend line employs a conditional update mechanism that prevents premature trend reversals. The system maintains the current trend line until price action violates the respective boundary, at which point the trend line snaps to the violated bound:
if upperBound < trendLine
trendLine := upperBound
if lowerBound > trendLine
trendLine := lowerBound
Directional bias determination compares the current trend line value against its previous value, establishing bullish conditions when rising and bearish conditions when falling. Signal generation occurs on state transitions, triggering alerts when the trend state shifts from neutral or opposite direction:
trendUp = trendLine > trendLine
trendDown = trendLine < trendLine
longSignal = trendState == 1 and trendState != 1
shortSignal = trendState == -1 and trendState != -1
The visualization layer creates a trend band by plotting both the current trend line and a two-bar shifted version, with the area between them filled to create a visual channel that reinforces directional conviction.
🟢 How to Use This Indicator
▶ Long and Short Signals: The indicator generates long/buy signals when the trend state transitions to bullish (trend line begins rising) and short/sell signals when transitioning to bearish (trend line begins falling). These state changes represent structural shifts in momentum where price has broken through the adaptive volatility bands, confirming directional commitment.
▶ Trend Band Dynamics: The spacing between the main trend line and its shifted counterpart creates a visual band whose width reflects trend strength and momentum consistency. Expanding bands indicate accelerating directional movement and strong trend persistence, while contracting or flattening bands suggest decelerating momentum, potential trend exhaustion, or impending consolidation. Monitoring band width provides early warning of regime transitions from trending to range-bound conditions.
▶ Preconfigured Presets: Three optimized parameter sets accommodate different trading styles and timeframes. Default (14, 20, 2.0) provides balanced trend identification suitable for daily charts and swing trading, Fast Response (10, 14, 1.5) delivers aggressive signal generation optimized for intraday scalping and momentum trading on 1-15 minute timeframes, while Smooth Trend (18, 30, 2.5) offers conservative trend confirmation ideal for position trading on 4-hour to daily charts with enhanced noise filtration.
▶ Built-in Alerts: Three alert conditions enable automated monitoring - Bullish Trend Signal triggers on long setup confirmation, Bearish Trend Signal activates on short setup confirmation, and Trend Change alerts on any directional transition. These notifications allow you to respond to regime shifts without continuous chart monitoring.
▶ Color Customization: Five visual themes (Classic, Aqua, Cosmic, Ember, Neon, plus Custom) accommodate different chart backgrounds and display preferences, ensuring optimal contrast and visual clarity across trading environments.
Indicadores de amplitud
Fat Tony's Volume TrackerCreates a small blue box in the lower left hand portion of a chart to show recent volume on the current candle, and last two candles before that.
Vinz Win BTC – STRATEGY AUTO 1m🚀 VinzWin BTC Strategy – BTC Scalping AUTO 1 min
The VinzWin strategy is based on a simple and highly effective price action pattern:
✅ 2 red candles followed by 1 green candle
✅ Doji filter set to 0
✅ Trading exclusively on BTC
✅ Session from 12:00 to 12:00 (24/7)
✅ Fixed Risk/Reward at 1:2
✅ Stop Loss set in fixed € amount
✅ Automatic risk management based on the Stop Loss
On every trade:
The Stop Loss is defined in fixed euros,
The Take Profit is always set at twice the risk,
The lot size is automatically adjusted to market conditions,
ensuring clean, stable, and fully controlled risk management.
📊 Multi-year backtests are available and show truly outstanding results, with strong consistency and an excellent profit/loss ratio.
👉 A simple, mechanical strategy with no over-optimization, perfectly suited for BTC scalping with fully controlled capital management in euros.
Relative Strength Heatmap [BackQuant]Relative Strength Heatmap
A multi-horizon RSI matrix that compresses 20 different lookbacks into a single panel, turning raw momentum into a visual “pressure gauge” for overbought and oversold clustering, trend exhaustion, and breadth of participation across time horizons.
What this is
This indicator builds a strip-style heatmap of 20 RSIs, each with a different length, and stacks them vertically as colored tiles in a single pane. Every tile is colored by its RSI value using your chosen palette, so you can see at a glance:
How many “fast” versus “slow” RSIs are overbought or oversold.
Whether momentum is concentrated in the short lookbacks or spread across the whole curve.
When momentum extremes cluster, signalling strong market pressure or exhaustion.
On top of the tiles, the script plots two simple breadth lines:
A white line that counts how many RSIs are above 70 (overbought cluster).
A black line that counts how many RSIs are below 30 (oversold cluster).
This turns a single symbol’s RSI ladder into a compact “market pressure gauge” that shows not only whether RSI is overbought or oversold, but how many different horizons agree at the same time.
Core idea
A single RSI looks at one length and one timescale. Markets, however, are driven by flows that operate on multiple horizons at once. By computing RSI over a ladder of lengths, you approximate a “term structure” of strength:
Short lengths react to immediate swings and very recent impulses.
Medium lengths reflect swing behaviour and local trends.
Long lengths reflect structural bias and higher timeframe regime.
When many lengths agree, for example 10 or more RSIs all above 70, it suggests broad participation and strong directional pressure. When only a few fast lengths stretch to extremes while longer ones stay neutral, the move is more fragile and more likely to mean-revert.
This script makes that structure visible as a heatmap instead of forcing you to run many separate RSI panes.
How it works
1) Generating RSI lengths
You control three parameters in the calculation settings:
RS Period – the base RSI length used for the shortest strip.
RSI Step – the amount added to each successive RSI length.
RSI Multiplier – a global scaling factor applied after the step.
Each of the 20 RSIs uses:
RSI length = round((base_length + step × index) × multiplier) , where the index goes from 0 to 19.
That means:
RSI 1 uses (len + step × 0) × mult.
RSI 2 uses (len + step × 1) × mult.
…
RSI 20 uses (len + step × 19) × mult.
You can keep the ladder dense (small step and multiplier) or stretch it across much longer horizons.
2) Heatmap layout and grouping
Each RSI is plotted as an “area” strip at a fixed vertical level using histbase to stack them:
RSI 1–5 form Group 1.
RSI 6–10 form Group 2.
RSI 11–15 form Group 3.
RSI 16–20 form Group 4.
Each group has a toggle:
Show only Group 1 and 2 if you care mainly about fast and medium horizons.
Show all groups for a full spectrum from very short to very long.
Hide any group that feels redundant for your workflow.
The actual numeric RSI values are not plotted as lines. Instead, each strip is drawn as a horizontal band whose fill color represents the current RSI regime.
3) Palette-based coloring
Each tile’s color is driven by the RSI value and your chosen palette. The script includes several palettes:
Viridis – smooth green to yellow, good for subtle reading.
Jet – strong blue to red sequence with high contrast.
Plasma – purple through orange to yellow.
Custom Heat – cool blues to neutral grey to hot reds.
Gray – grayscale from white to black for minimalistic layouts.
Cividis, Inferno, Magma, Turbo, Rainbow – additional scientific and rainbow-style maps.
Internally, RSI values are bucketed into ranges (for example, below 10, 10–20, …, 90–100). Each bucket maps to a unique colour for that palette. In all schemes, low RSI values are mapped to the “cold” or darker side and high RSI values to the “hot” or brighter side.
The result is a true momentum heatmap:
Cold or dark tiles show low RSI and oversold or compressed conditions.
Mid tones show neutral or mid-range RSI.
Warm or bright tiles show high RSI and overbought or stretched conditions.
4) Bull and bear breadth counts
All 20 RSI values are collected into an array each bar. Two counters are then calculated:
Bull count – how many RSIs are above 70.
Bear count – how many RSIs are below 30.
These are plotted as:
A white line (“RSI > 70 Count”) for the overbought cluster.
A black line (“RSI < 30 Count”) for the oversold cluster.
If you enable the “Show Bull and Bear Count” option, you get an immediate reading of how many of the 20 horizons are stretched at any moment.
5) Cluster alerts and background tagging
Two alert conditions monitor “strong cluster” regimes:
RSI Heatmap Strong Bull – triggers when at least 10 RSIs are above 70.
RSI Heatmap Strong Bear – triggers when at least 10 RSIs are below 30.
When one of these conditions is true, the indicator can tint the background of the chart using a soft version of the current palette. This visually marks stretches where momentum is extreme across many lengths at once, not just on a single RSI.
What it plots
In one oscillator window, the indicator provides:
Up to 20 horizontal RSI strips, each representing a different RSI length.
Color-coded tiles reflecting the current RSI value for each length.
Group toggles to show or hide each block of five RSIs.
An optional white line that counts how many RSIs are above 70.
An optional black line that counts how many RSIs are below 30.
Optional background highlights when the number of overbought or oversold RSIs passes the strong-cluster threshold.
How it measures breadth and pressure
Single-symbol breadth
Breadth is usually defined across a basket of symbols, such as how many stocks advance versus decline. This indicator uses the same concept across time horizons for a single symbol. The question becomes:
“How many different RSI lengths are stretched in the same direction at once?”
Examples:
If only 2 or 3 of the shortest RSIs are above 70, bull count stays low. The move is fast and local, but not yet broadly supported.
If 12 or more RSIs across short, medium and long lengths are above 70, the bull count spikes. The move has broad momentum and strong upside pressure.
If 10 or more RSIs are below 30, bear count spikes and you are in a broad oversold regime.
This is breadth of momentum within one market.
Market pressure gauge
The combination of heatmap tiles and breadth lines acts as a pressure gauge:
High bull count with warm colors across most strips indicates strong upside pressure and crowded long positioning.
High bear count with cold colors across most strips indicates strong downside pressure and capitulation or forced selling.
Low counts with a mixed heatmap indicate neutral pressure, fragmented flows, or range-bound conditions.
You can treat the strong-cluster alerts as “extreme pressure” signals. When they fire, the market is heavily skewed in one direction across many horizons.
How to read the heatmap
Horizontal patterns (through time)
Look along the time axis and watch how the colors evolve:
Persistent hot tiles across many strips show sustained bullish pressure and trend strength.
Persistent cold tiles across many strips show sustained bearish pressure and weak demand.
Frequent flipping between hot and cold colours indicates a choppy or mean-reverting environment.
Vertical structure (across lengths at one bar)
Focus on a single bar and read the column of tiles from top to bottom:
Short RSIs hot, long RSIs neutral or cool: early trend or short-term fomo. Price has moved fast, longer horizons have not caught up.
Short and long RSIs all hot: mature, entrenched uptrend. Broad participation, high pressure, greater risk of blow-off or late-entry vulnerability.
Short RSIs cold but long RSIs mid to high: pullback in a higher timeframe uptrend. Dip-buy and continuation setups are often found here.
Short RSIs high but long RSIs low: countertrend rallies within a broader downtrend. Good hunting ground for fades and short entries after a bounce.
Bull and bear breadth lines
Use the two lines as simple, numeric breadth indicators:
A rising white line shows more RSIs pushing above 70, so bullish pressure is expanding in breadth.
A rising black line shows more RSIs pushing below 30, so bearish pressure is expanding in breadth.
When both lines are low and flat, few horizons are extreme and the market is in mid-range territory.
Cluster zones
When either count crosses the strong threshold (for example 10 out of 20 RSIs in extreme territory):
A strong bull cluster marks a broadly overbought regime. Trend followers may see this as confirmation. Mean-reversion traders may see it as a late-stage or blow-off context.
A strong bear cluster marks a broadly oversold regime. Downtrend traders see strong pressure, but the risk of sharp short-covering bounces also increases.
Trading applications
Trend confirmation
Use the heatmap and breadth lines as a trend filter:
Prefer long setups when the heatmap shows mostly mid to high RSIs and the bull count is rising.
Avoid fresh shorts when there is a strong bull cluster, unless you are specifically trading exhaustion.
Prefer short setups when the heatmap is mostly low RSIs and the bear count is rising.
Avoid aggressive longs when a strong bear cluster is active, unless you are trading reflexive bounces.
Mean-reversion timing
Treat cluster extremes as exhaustion zones:
Look for reversal patterns, failed breakouts, or order flow shifts when bull count is very high and price starts to stall or diverge.
Look for reflexive bounce potential when bear count is very high and price stops making new lows or shows absorption at the lows.
Use the palette and counts together: hot tiles plus a peaking white line can mark blow-off conditions, cold tiles plus a peaking black line can mark capitulation.
Regime detection and risk toggling
Use the overall shape of the ladder over time:
If upper strips stay warm and lower strips stay neutral or warm for extended periods, the market is in an uptrend regime. You can justify higher risk for long-biased strategies.
If upper strips stay cold and lower strips stay neutral or cold, the market is in a downtrend regime. You can justify higher risk for short-biased strategies or defensive positioning.
If colours and counts flip frequently, you are likely in a range or choppy regime. Consider reducing size or using more tactical, short-term strategies.
Multi-horizon synchronization
You can think of each RSI length as a proxy for a different “speed” of the same market:
When only fast RSIs are stretched, the move is local and less robust.
When fast, medium and slow RSIs align, the move has multi-horizon confirmation.
You can require a minimum bull or bear count before allowing your main strategy to engage.
Spotting hidden shifts
Sometimes price appears flat or drifting, but the heatmap quietly cools or warms:
If price is sideways while many hot tiles fade toward neutral, momentum is decaying under the surface and trend risk is increasing.
If price is sideways while many cold tiles climb back toward neutral, selling pressure is decaying and the tape is repairing itself.
Settings overview
Calculation Settings
RS Period – base RSI length for the shortest strip.
RSI Step – the increment added to each successive RSI length.
RSI Multiplier – scales all generated RSI lengths.
Calculation Source – the input series, such as close, hlc3 or others.
Plotting and Coloring Settings
Heatmap Color Palette – choose between Viridis, Jet, Plasma, Custom Heat, Gray, Cividis, Inferno, Magma, Turbo or Rainbow.
Show Group 1 – toggles RSI 1–5.
Show Group 2 – toggles RSI 6–10.
Show Group 3 – toggles RSI 11–15.
Show Group 4 – toggles RSI 16–20.
Show Bull and Bear Count – enables or disables the two breadth lines.
Alerts
RSI Heatmap Strong Bull – fires when the number of RSIs above 70 reaches or exceeds the configured threshold (default 10).
RSI Heatmap Strong Bear – fires when the number of RSIs below 30 reaches or exceeds the configured threshold (default 10).
Tuning guidance
Fast, tactical configurations
Use a small base RS Period, for example 2 to 5.
Use a small RSI Step, for tight clustering around the fast horizon.
Keep the multiplier near 1.0 to avoid extreme long lengths.
Focus on Group 1 and Group 2 for intraday and short-term trading.
Swing and position configurations
Use a mid-range RS Period, for example 7 to 14.
Use a moderate RSI Step to fan out into slower horizons.
Optionally use a multiplier slightly above 1.0.
Keep all four groups enabled for a full view from fast to slow.
Macro or higher timeframe configurations
Use a larger base RS Period.
Use a larger RSI Step so the top of the ladder reaches very slow lengths.
Focus on Group 3 and Group 4 to see structural momentum.
Treat clusters as regime markers rather than frequent trading signals.
Notes
This indicator is a contextual tool, not a standalone trading system. It does not model execution, spreads, slippage or fundamental drivers. Use it to:
Understand whether momentum is narrow or broad across horizons.
Confirm or filter existing signals from your primary strategy.
Identify environments where the market is crowded into one side.
Distinguish between isolated spikes and truly broad pressure moves.
The Relative Strength Heatmap is designed to answer a simple but powerful question:
“How many versions of RSI agree with what I am seeing on the chart?”
By compressing those answers into a single panel with clear colour coding and breadth lines, it becomes a practical, visual gauge of momentum breadth and market pressure that you can overlay on any trading framework.
NEXFEL - Adaptive MACD Flow✨ NEXFEL – Adaptive MACD Flow
NEXFEL – Adaptive MACD Flow is an advanced momentum and trend-strength indicator designed for traders who need fast, clean and highly accurate confirmations.
It enhances the traditional MACD by integrating an adaptive R²-based engine that adjusts sensitivity in real time—becoming more responsive during strong trends and smoother during noisy or choppy conditions.
Candle colors display momentum strength instantly (strong/weak bullish or bearish flow), while the zero-line cross signals (BUY/SELL) provide precise entry confirmations without cluttering the chart.
An optional “Impulse Mode” highlights high-energy moves, making it ideal for scalping, day trading and directional setups.
Perfect for:
Scalpers, day traders, market structure traders, and anyone who uses OB, liquidity, PA and trend analysis as part of their decision-making.
Key Features:
• Adaptive MACD core powered by R²
• Momentum-colored candles
• Clean BUY/SELL signals
• Optional impulse background
• Minimal, non-intrusive design
• Works with any strategy or timeframe
NEXFEL – Adaptive MACD Flow delivers a clear, modern and intelligent way to read trend strength, flow, and momentum with precision.
Easy Crypto Signal FREE🆓 FREE Bitcoin & Crypto Trading Indicator
Easy Crypto Signal FREE helps you make better trading decisions with real-time BUY/SELL signals based on multiple technical indicators.
✅ What you get in FREE version:
• Real-time BUY/SELL signals (green/red arrows)
• Trading SCORE (0-100%) - market strength indicator
• Works on BTC, ETH, and all major altcoins
• Optimized for 4h timeframe (works on all timeframes)
• Simple visual interface
• Basic alert system
📊 How it works:
The indicator combines RSI, MACD, EMA trends, and volume analysis to generate a composite SCORE (0-100%).
• SCORE > 65% = BUY signal 🟢
• SCORE < 35% = SELL signal 🔴
• SCORE 35-65% = WAIT (neutral zone) 🟡
⚠️ FREE Version Limitations:
• No detailed RSI values
• No MACD trend details
• No trend strength indicators
• Fixed sensitivity (65%)
• Limited customization
💎 Want the FULL PRO version?
🚀 PRO includes:
• Full RSI + MACD + Trend analysis displayed
• Customizable sensitivity (40-80%)
• Advanced alert customization
• Professional clean interface
• Volume strength indicator
• NO watermarks
• Premium support
📊 Proven Backtest Results:
• 57.1% Win Rate
• 3.36 Profit Factor (Excellent)
• +9.55% return in 3 months
• Only -2.69% Max Drawdown (Low Risk)
🔗 Get PRO version:
📈 Best practices:
1. Use on 4h timeframe for best results
2. Combine with your own analysis
3. Always set Stop Loss (5-10%)
4. Test on demo account first
5. Don't trade based on signals alone
⚠️ Risk Disclaimer:
Cryptocurrency trading involves substantial risk. This indicator is for educational purposes only and does not guarantee profits. Past performance does not indicate future results. Always do your own research and never invest more than you can afford to lose.
📧 Questions or Feedback?
Comment below or message me directly!
🌟 If you find this helpful, please give it a like and share!
v1.0 - Initial FREE release
• Basic BUY/SELL signal system
• Score indicator 0-100%
• Optimized for 4h timeframe
• Works on all crypto pairs
📊 Volume Tension & Net Imbalance📊 Volume Tension & Net Imbalance (With Table + MultiLang + Alerts)
//
This indicator measures bullish vs. bearish pressure using volume-based tension and net imbalance.
It identifies accumulation zones, displays real-time market strength, trend direction, and triggers alerts on buildup entries.
Fully customizable table size, colors, and bilingual support (English/Russian).
Volume detection trigger📌 Indicator Overview ** Capture a Moment of Market Attention **
This indicator combines abnormal volume (volume explosion) and price reversal patterns to capture a “signal-flare moment.”
In other words, it is designed to detect moments when strong activity enters the market and a trend reversal or the start of a major uptrend/downtrend becomes likely.
✅ Strengths (Short Summary)
Detects meaningful volume spikes rather than random volume increases
Includes bottoming patterns such as long lower wicks & liquidity sweep lows
Filters with EMA alignment / RSI / Stochastic to avoid overheated signals → catches early entries rather than tops
4H/Daily timing filter to detect signals only during high-liquidity market windows
Designed as a rare-signal model for high reliability, not a noisy alert tool
➡ Summary: “The indicator fires only when volume, price structure, momentum, and timing align perfectly at the same moment.”
🎯 How to Use
A signal does not mean you should instantly buy or sell.
Treat it as a sign that “the market’s attention is now concentrated here.”
After a signal appears, check:
Whether price stays above EMA21
Whether there is room to the previous high (upside space)
Whether a minor pullback or retest finds support
🔍 Practical Applications
Use Case Description
Swing Trading Detecting early-stage trend reversals
Day Trading Spotting volume-driven shift points
🧠 Core Summary
📌 “A signal-flare indicator that automatically detects the exact moment when real volume hits the market.”
→ Not a tool to predict direction
→ A tool to recognize timing and concentration zones where major movement is likely to form
⚠ Important Note
A surge in volume or a positive delta does NOT necessarily mean institutions are buying.
The “institution/whale inflow” in the indicator is a model-based estimation, and it cannot identify buyers and sellers with 100% certainty.
Volume, delta, cumulative flow, and VWAP breakout may all imply “strong participation,”
but in some cases, the dominant side may still be sellers, such as:
High volume at a peak (distribution)
Heavy selling into strength
Long upper wick after high delta
Price failing to advance despite massive orders
EMA Crossover + Angle + Candle Pattern + Breakout (Clean) finalmayank raj 9 15 ema strategy which will give me 1 crore
Volume Profile S/R + OB/OS + BreaksAs a support resistance trader I have created this indicator that shows SR lines. RSI over bought and over sold. I also added momentum candle.
It's easy to use. The arrows show over bought and over sold, that's where I start to be interested. Confirmation is if we are near a support/resistance area. shown as a red/green line.
Don't just trade the RSI, Be patient and only take the perfekt setups.
I't clean, it's simple it works.
ES-SPX Premium PlotThis Pine Script indicator calculates and plots the premium (basis) between the E-mini S&P 500 futures (ES) and the S&P 500 cash index (SPX). It displays the difference as a line chart in a separate pane, helping traders identify fair value discrepancies, arbitrage opportunities, or market sentiment shifts driven by interest rates, dividends, and time to expiry. Apply to ES1! charts for real-time analysis.
NIFTY Weekly Option Seller DirectionalHere’s a straight description you can paste into the TradingView “Description” box and tweak if needed:
---
### NIFTY Weekly Option Seller – Regime + Score + Management (Single TF)
This indicator is built for **weekly option sellers** (primarily NIFTY) who want a **structured regime + scoring framework** to decide:
* Whether to trade **Iron Condor (IC)**, **Put Credit Spread (PCS)** or **Call Credit Spread (CCS)**
* How strong that regime is on the current timeframe (score 0–5)
* When to **DEFEND** existing positions and when to **HARVEST** profits
> **Note:** This is a **single timeframe** tool. The original system uses it on **4H and 1D separately**, then combines scores manually (e.g., using `min(4H, 1D)` for conviction and lot sizing).
---
## Core logic
The script classifies the market into 3 regimes:
* **IC (Iron Condor)** – range/mean-reversion conditions
* **PCS (Put Credit Spread)** – bullish/trend-up conditions
* **CCS (Call Credit Spread)** – bearish/trend-down conditions
For each regime, it builds a **0–5 score** using:
* **EMA stack (8/13/34)** – trend structure
* **ADX (custom DMI-based)** – trend strength vs range
* **Previous-day CPR** – in CPR vs break above/below
* **VWAP (session)** – near/far value
* **Camarilla H3/L3** – for IC context
* **RSI (14)** – used as a **brake**, not a primary signal
* **Daily trend / Daily ADX** – used as **hard gates**, not double-counted as extra points
Then:
* Scores for PCS / CCS / IC are **cross-penalised** (they pull each other down if conflicting)
* Final scores are **smoothed** (current + previous bar) to avoid jumpy signals
The **background colour** shows the current regime and conviction:
* Blue = IC
* Green = PCS
* Red = CCS
* Stronger tint = higher regime score
---
## Scoring details (per timeframe)
**PCS (uptrend, bullish credit spreads)**
* +2 if EMA(8) > EMA(13) > EMA(34)
* +1 if ADX > ADX_TREND
* +1 if close > CPR High
* +1 if close > VWAP
* RSI brake:
* If RSI < 50 → PCS capped at 2
* If RSI > 75 → PCS capped at 3
* Daily gating:
* If daily EMA stack is **not** uptrend → PCS capped at 2
**CCS (downtrend, bearish credit spreads)**
* +2 if EMA(8) < EMA(13) < EMA(34)
* +1 if ADX > ADX_TREND
* +1 if close < CPR Low
* +1 if close < VWAP
* RSI brake:
* If RSI > 50 → CCS capped at 2
* If RSI < 25 → CCS capped at 3
* Daily gating:
* If daily EMA stack is **not** downtrend → CCS capped at 2
**IC (range / mean-reversion)**
* +2 if ADX < ADX_RANGE (low trend)
* +1 if close inside CPR
* +1 if near VWAP
* +0.5 if inside Camarilla H3–L3
* +1 if daily ADX < ADX_RANGE (daily also range-like)
* +0.5 if RSI between 45 and 55 (classic balance zone)
* Daily gating:
* If daily ADX ≥ ADX_TREND → IC capped at 2 (no “strong IC” in strong trends)
**Cross-penalty & smoothing**
* Each regime’s raw score is reduced by **0.5 × max(other two scores)**
* Final IC / PCS / CCS scores are then **smoothed** with previous bar
* Scores are always clipped to ** **
---
## Regime selection
* If one regime has the highest score → that regime is selected.
* If there is a tie or close scores:
* When ADX is high, trend regimes (PCS/CCS) are preferred in the direction of the EMA stack.
* When ADX is low, IC is preferred.
The selected regime’s score is used for:
* Background colour intensity
* Minimum score gate for alerts
* Display in the info panel
---
## DEFEND / HARVEST / REGIME alerts
The script also defines **management signals** using ATR-based buffers and Camarilla breaks:
* **DEFEND**
* Price moving too close to short strikes (PCS/CCS/IC) relative to ATR, or
* Trend breaks through Camarilla with ADX strong
→ Suggests rolling away / widening / converting to reduce risk.
* **HARVEST**
* Price has moved far enough from your short strikes (in ATR multiples) and market is still range-compatible
→ Suggests booking profits / rolling closer / reducing risk.
* **REGIME CHANGED**
* Regime flips (IC ↔ PCS/CCS) with cooldown and minimum score gate
→ Suggests switching playbook (range vs trend) for new entries.
Each of these has a plotshape label plus an `alertcondition()` for TradingView alerts.
---
## UI / Panel
The **top-right panel** (optional) shows:
* Strategy + final regime score (IC / PCS / CCS, x/5)
* ADX / RSI values
* CPR status (Narrow / Normal / Wide + %)
* EMA Stack (Up / Down / Mixed) and EMA tightness
* VWAP proximity (Near / Away)
* Final **IC / PCS / CCS** scores (for this timeframe)
* H3/L3, H4/L4, CPR Low/High and VWAP levels (rounded)
These values are meant to be **read quickly at the decision time** (e.g. near the close of the 4H bar or daily bar).
---
## Intended workflow
1. Run the script on **4H** and **1D** charts separately.
2. For each timeframe, read the panel’s **IC / PCS / CCS scores** and regime.
3. Decide:
* Final regime (IC vs PCS vs CCS)
* Combined score (e.g. `AlignScore = min(Score_4H, Score_1D)`)
4. Map that combined score to **your own lot-size buckets** and trade rules.
5. During the life of the position, use **DEFEND / HARVEST / REGIME** alerts to adjust.
The script does **not** auto-calculate lot size or P&L. It focuses on giving a structured, consistent **market regime + strength + levels + management** layer for weekly option selling.
---
## Disclaimer
This is a discretionary **decision-support tool**, not a guarantee of profit or a replacement for risk management.
No performance is implied or promised. Always size positions and manage risk according to your own capital, rules, and regulations.
IBIT premium(vs NAV)This Pine Script calculates and plots the real-time trading premium or discount of the IBIT ETF relative to its official Net Asset Value (NAV).
It shows whether IBIT is trading above NAV (premium) or below NAV (discount) in percentage terms.
This version is accurate because it uses TradingView’s built-in ETF NAV financial data, rather than estimating BTC per share.
⸻
Key Data Sources Used
• Market Price:
The script pulls the live IBIT market price from NASDAQ:IBIT.
• Official NAV:
It retrieves the daily Net Asset Value (NAV) using TradingView’s financial data function and expands it across all intraday timeframes so it can be compared with real-time prices.
• Platform used: TradingView
⸻
How the Premium Is Calculated
The script uses the standard ETF premium formula:
\text{Premium (\%)} = \frac{\text{Market Price} - \text{NAV}}{\text{NAV}} \times 100
• Positive value → IBIT is trading at a premium
• Negative value → IBIT is trading at a discount
• Zero → IBIT is trading exactly at NAV
⸻
What the Chart Displays
• A real-time premium (%) line in a separate indicator panel
• A 0% reference line showing fair value
• ±1% and ±2% guide lines for abnormal deviation detection
• A live value label on the latest bar showing the exact current premium
⸻
Why This Script Is Accurate
• Uses official ETF NAV, not a BTC-per-share estimate
• NAV updates once per day, exactly as reported by the issuer
• Works on all timeframes (1-minute to daily)
• Shows true market mispricing, not synthetic BTC tracking error
⸻
How Traders Typically Use It
• Detect temporary dislocations between IBIT price and NAV
• Monitor liquidity stress during high volatility
• Validate whether IBIT is trading efficiently versus BTC
• Support ETF–BTC–Futures arbitrage analysis
⸻
Important Limitation
• NAV is only updated once per trading day
• During fast BTC moves, the premium may widen temporarily and normalize later via authorized participant (AP) arbitrage
Harami Reversal Alerts BB Touch (Strict First Candle)Harami Reversal Alerts BB Touch (Strict First Candle)
Harami Reversal Alerts BB Touch (Strict First Candle)Harami Reversal Alerts BB Touch (Strict First Candle)Harami Reversal Alerts BB Touch (Strict First Candle)Harami Reversal Alerts BB Touch (Strict First Candle)Harami Reversal Alerts BB Touch (Strict First Candle)
MA200 Deviation Percentile200-Day MA Deviation with Dynamic Thresholds
OVERVIEW
This indicator measures price deviation from the 200-day moving average as a percentage, with dynamically calculated overbought/oversold thresholds based on historical percentiles.
Best suited for broad market indices (SPY, QQQ, IWM, etc.) where the 200-day MA serves as a reliable long-term trend indicator. Individual stocks may exhibit more erratic behavior around this level.
CALCULATION
Deviation (%) = (Close - 200MA) / 200MA x 100
Dynamic thresholds are derived from actual historical distribution rather than assuming normal distribution:
- Overbought threshold = 97.5th percentile of historical deviations
- Oversold threshold = 2.5th percentile of historical deviations
SETTINGS
MA Length (default: 200)
Moving average period.
Lookback Period (default: 1260)
Historical window for threshold calculation. 1260 bars approximates 5 years of daily data.
Threshold Percentile (default: 5%)
Two-tailed threshold. 5% places overbought/oversold boundaries at the 97.5th and 2.5th percentiles respectively.
INTERPRETATION
Deviation Value
- Positive: Price trading above 200MA
- Negative: Price trading below 200MA
- Magnitude indicates extent of deviation
Percentile Ranking (0-100%)
- Shows where current deviation ranks historically
- Above 90%: Historically elevated
- Below 10%: Historically depressed
Dynamic Threshold Lines
- Red line: Upper boundary based on historical distribution
- Green line: Lower boundary based on historical distribution
- These adapt automatically to each asset's volatility characteristics
APPLICATION
Mean Reversion
Extreme deviations tend to normalize over time. When deviation exceeds dynamic thresholds, probability of mean reversion increases.
Trend Assessment
Sustained positive/negative deviation confirms trend direction. Zero-line crossovers may signal trend changes.
NOTES
- Optimized for daily timeframe on market indices
- Requires sufficient historical data (minimum equal to lookback period)
- Extreme readings do not guarantee immediate reversals
- Use in conjunction with other analysis methods
V Stop MTF → STRATEGY Why this strategy works so well (your backtest proves it):
FeatureBenefitMulti-timeframe Volatility StopSmarter trend detection than single TFRepainting controlYou can choose safe non-repainting modeLimbo/breach detectionAvoids whipsaws during HTF conflictsReversing systemAlways in the market → captures all trendsCandle coloring on reversalInstant visual confirmation
Recommended settings that match your +17.33% result:
Symbol: SP:SPX or ES1!
Timeframe: 9min or 15min Heikin-Ashi
HTF: "Multiple Of Current TF" × 3 → gives ~45min on 15min chart
ATR Length: 20
ATR Factor: **2.0
ADX Breakout Enhanced Signal🥋 Trading Dojo – ADX Breakout Enhanced Signal
This indicator combines the trend-strength power of the ADX with dynamic breakout-based signals, designed for traders who want more frequent and higher-probability entries on timeframes like 1 hour.
The core logic focuses on:
📌 1. Trend Strength Detection with ADX
The indicator evaluates whether the market is showing a strong directional trend using an optimized ADX.
When ADX rises above the configured threshold, the system interprets that price has enough momentum to validate an entry.
📌 2. Breakout Entry Logic
It identifies points where price breaks recent highs or lows, confirming the start or continuation of movement.
This breakout-based approach produces more entries than traditional ADX strategies alone.
📌 3. Clear and Simple Signals
🟩 Long when price breaks a recent high with strong trend confirmation.
🟥 Short when price breaks a recent low with strong trend confirmation.
📌 4. Built-In Automated Alerts
The indicator automatically generates JSON alerts ready for use with automation tools such as trading bots, webhooks, BingX, 3Commas, Discord bots, and more.
🎯 Purpose of the Indicator
To provide more frequent, well-distributed, and momentum-validated entries, while maintaining simplicity and speed — perfect for real-time decision-making.
Perfect For:
Intraday trading
1h, 30m, and 15m timeframes
Breakout-based strategies
Automated trading systems
EMA/SMA 350 & 111 (Day Settings) by JayEMA/SMA 350 & 111 (Day Settings) by J
Übergeordneter Trendwechsel erkennen auf High Time Frames
BAY_PIVOT S/R(4 Full Lines + ALL Labels)//@version=5
indicator("BAY_PIVOT S/R(4 Full Lines + ALL Labels)", overlay=true, max_labels_count=500, max_lines_count=500)
// ────────────────────── TOGGLES ──────────────────────
showPivot = input.bool(true, "Show Pivot (Full Line + Label)")
showTarget = input.bool(true, "Show Target (Full Line + Label)")
showLast = input.bool(true, "Show Last Close (Full Line + Label)")
showPrevClose = input.bool(true, "Show Previous Close (Full Line + Label)")
useBarchartLast = input.bool(true, "Use Barchart 'Last' (Settlement Price)")
showR1R2R3 = input.bool(true, "Show R1 • R2 • R3")
showS1S2S3 = input.bool(true, "Show S1 • S2 • S3")
showStdDev = input.bool(true, "Show ±1σ ±2σ ±3σ")
showFib4W = input.bool(true, "Show 4-Week Fibs")
showFib13W = input.bool(true, "Show 13-Week Fibs")
showMonthHL = input.bool(true, "Show 1M High / Low")
showEntry1 = input.bool(false, "Show Manual Entry 1")
showEntry2 = input.bool(false, "Show Manual Entry 2")
entry1 = input.float(0.0, "Manual Entry 1", step=0.25)
entry2 = input.float(0.0, "Manual Entry 2", step=0.25)
stdLen = input.int(20, "StdDev Length", minval=1)
fib4wBars = input.int(20, "4W Fib Lookback")
fib13wBars = input.int(65, "13W Fib Lookback")
// ────────────────────── DAILY CALCULATIONS ──────────────────────
high_y = request.security(syminfo.tickerid, "D", high , lookahead=barmerge.lookahead_on)
low_y = request.security(syminfo.tickerid, "D", low , lookahead=barmerge.lookahead_on)
close_y = request.security(syminfo.tickerid, "D", close , lookahead=barmerge.lookahead_on)
pivot = (high_y + low_y + close_y) / 3
r1 = pivot + 0.382 * (high_y - low_y)
r2 = pivot + 0.618 * (high_y - low_y)
r3 = pivot + (high_y - low_y)
s1 = pivot - 0.382 * (high_y - low_y)
s2 = pivot - 0.618 * (high_y - low_y)
s3 = pivot - (high_y - low_y)
prevClose = close_y
last = useBarchartLast ? request.security(syminfo.tickerid, "D", close , lookahead=barmerge.lookahead_off) : close
target = pivot + (pivot - prevClose)
// StdDev + Fibs + Monthly (unchanged)
basis = ta.sma(close, stdLen)
dev = ta.stdev(close, stdLen)
stdRes1 = basis + dev
stdRes2 = basis + dev*2
stdRes3 = basis + dev*3
stdSup1 = basis - dev
stdSup2 = basis - dev*2
stdSup3 = basis - dev*3
high4w = ta.highest(high, fib4wBars)
low4w = ta.lowest(low, fib4wBars)
fib382_4w = high4w - (high4w - low4w) * 0.382
fib50_4w = high4w - (high4w - low4w) * 0.500
high13w = ta.highest(high, fib13wBars)
low13w = ta.lowest(low, fib13wBars)
fib382_13w_high = high13w - (high13w - low13w) * 0.382
fib50_13w = high13w - (high13w - low13w) * 0.500
fib382_13w_low = low13w + (high13w - low13w) * 0.382
monthHigh = ta.highest(high, 30)
monthLow = ta.lowest(low, 30)
// ────────────────────── COLORS ──────────────────────
colRed = color.rgb(255,0,0)
colLime = color.rgb(0,255,0)
colYellow = color.rgb(255,255,0)
colOrange = color.rgb(255,165,0)
colWhite = color.rgb(255,255,255)
colGray = color.rgb(128,128,128)
colMagenta = color.rgb(255,0,255)
colPink = color.rgb(233,30,99)
colCyan = color.rgb(0,188,212)
colBlue = color.rgb(0,122,255)
colPurple = color.rgb(128,0,128)
colRed50 = color.new(colRed,50)
colGreen50 = color.new(colLime,50)
// ────────────────────── 4 KEY FULL LINES ──────────────────────
plot(showPivot ? pivot : na, title="PIVOT", color=colYellow, linewidth=3, style=plot.style_linebr)
plot(showTarget ? target : na, title="TARGET", color=colOrange, linewidth=2, style=plot.style_linebr)
plot(showLast ? last : na, title="LAST", color=colWhite, linewidth=2, style=plot.style_linebr)
plot(showPrevClose ? prevClose : na, title="PREV CLOSE",color=colGray, linewidth=1, style=plot.style_linebr)
// ────────────────────── LABELS FOR ALL 4 KEY LEVELS (SAME STYLE AS OTHERS) ──────────────────────
f_label(price, txt, bgColor, txtColor) =>
if barstate.islast and not na(price)
label.new(bar_index, price, txt, style=label.style_label_left, color=bgColor, textcolor=txtColor, size=size.small)
if barstate.islast
showPivot ? f_label(pivot, "PIVOT " + str.tostring(pivot, "#.##"), colYellow, color.black) : na
showTarget ? f_label(target, "TARGET " + str.tostring(target, "#.##"), colOrange, color.white) : na
showLast ? f_label(last, "LAST " + str.tostring(last, "#.##"), colWhite, color.black) : na
showPrevClose ? f_label(prevClose, "PREV CLOSE "+ str.tostring(prevClose, "#.##"), colGray, color.white) : na
// ────────────────────── OTHER LEVELS – line stops at label ──────────────────────
f_level(p, txt, tc, lc, w=1) =>
if barstate.islast and not na(p)
lbl = label.new(bar_index, p, txt, style=label.style_label_left, color=lc, textcolor=tc, size=size.small)
line.new(bar_index-400, p, label.get_x(lbl), p, extend=extend.none, color=lc, width=w)
if barstate.islast
if showR1R2R3
f_level(r1, "R1 " + str.tostring(r1, "#.##"), color.white, colRed)
f_level(r2, "R2 " + str.tostring(r2, "#.##"), color.white, colRed)
f_level(r3, "R3 " + str.tostring(r3, "#.##"), color.white, colRed, 2)
if showS1S2S3
f_level(s1, "S1 " + str.tostring(s1, "#.##"), color.black, colLime)
f_level(s2, "S2 " + str.tostring(s2, "#.##"), color.black, colLime)
f_level(s3, "S3 " + str.tostring(s3, "#.##"), color.black, colLime, 2)
if showStdDev
f_level(stdRes1, "+1σ " + str.tostring(stdRes1, "#.##"), color.white, colPink)
f_level(stdRes2, "+2σ " + str.tostring(stdRes2, "#.##"), color.white, colPink)
f_level(stdRes3, "+3σ " + str.tostring(stdRes3, "#.##"), color.white, colPink, 2)
f_level(stdSup1, "-1σ " + str.tostring(stdSup1, "#.##"), color.white, colCyan)
f_level(stdSup2, "-2σ " + str.tostring(stdSup2, "#.##"), color.white, colCyan)
f_level(stdSup3, "-3σ " + str.tostring(stdSup3, "#.##"), color.white, colCyan, 2)
if showFib4W
f_level(fib382_4w, "38.2% 4W " + str.tostring(fib382_4w, "#.##"), color.white, colMagenta)
f_level(fib50_4w, "50% 4W " + str.tostring(fib50_4w, "#.##"), color.white, colMagenta)
if showFib13W
f_level(fib382_13w_high, "38.2% 13W High " + str.tostring(fib382_13w_high, "#.##"), color.white, colMagenta)
f_level(fib50_13w, "50% 13W " + str.tostring(fib50_13w, "#.##"), color.white, colMagenta)
f_level(fib382_13w_low, "38.2% 13W Low " + str.tostring(fib382_13w_low, "#.##"), color.white, colMagenta)
if showMonthHL
f_level(monthHigh, "1M HIGH " + str.tostring(monthHigh, "#.##"), color.white, colRed50, 2)
f_level(monthLow, "1M LOW " + str.tostring(monthLow, "#.##"), color.white, colGreen50, 2)
// Manual entries
plot(showEntry1 and entry1 > 0 ? entry1 : na, "Entry 1", color=colBlue, linewidth=2, style=plot.style_linebr)
plot(showEntry2 and entry2 > 0 ? entry2 : na, "Entry 2", color=colPurple, linewidth=2, style=plot.style_linebr)
// Background
bgcolor(close > pivot ? color.new(color.blue, 95) : color.new(color.red, 95))
Volume Momentum Strategy [MA/VWAP Cross]Deconstructing the Volume Momentum Strategy: An Analysis of MA-VWAP Cross Mechanics
Introduction
The "Volume Momentum Strategy " is a technical trading algorithm programmed in Pine Script v6 for the TradingView platform. At its core, the strategy is a trend-following system that utilizes the interaction between a specific Moving Average (MA) and the Volume Weighted Average Price (VWAP) to generate trade signals. While the primary execution logic relies on price crossovers, the strategy incorporates a sophisticated secondary layer of analysis using the Commodity Channel Index (CCI) and Stochastic Oscillator. Uniquely, these secondary indicators are applied to volume data rather than price, serving as a gauge for market participation and momentum intensity.
The Core Engine: MA and VWAP Crossover
The primary engine driving the strategy's buy and sell decisions is the crossover relationship between a user-defined Moving Average and the VWAP.
1. The Anchor (VWAP): The strategy calculates the Volume Weighted Average Price based on the HLC3 (High, Low, Close divided by 3) source. VWAP serves as the dynamic benchmark for "fair value" throughout the trading session.
2. The Trigger (Moving Average): The script allows for flexibility in defining the "fast" line, offering options such as Simple (SMA), Exponential (EMA), or Hull Moving Averages.
3. The Signal:
o A Long (Buy) signal is generated when the chosen MA crosses over the VWAP. This suggests that short-term price momentum is exceeding the average volume-weighted price of the session, indicating bullish sentiment.
o A Short (Sell) signal is generated when the MA crosses under the VWAP, indicating bearish pressure where price is being pushed below the session's volume-weighted average.
The Role of CCI and Stochastic: Analyzing Volume Momentum
The prompt specifically inquires about how the CCI and Stochastic indicators fit into this process. In standard technical analysis, these oscillators are used to identify overbought or oversold price conditions. However, this strategy repurposes them to analyze Volume Momentum.
1. The Calculation
Instead of using close prices as the input source, the script passes volume data into both indicator functions:
• Volume CCI: Calculated as ta.cci(volume, cciLength). This measures the deviation of current volume from its statistical average.
• Volume Stochastic: Calculated as ta.stoch(volume, volume, volume, stochLength). This gauges the current volume relative to its recent range.
2. The "Volume Spike" Condition
The strategy combines these two indicators to define a specific market condition labeled isVolumeSpike. A volume spike is confirmed only when both conditions are met simultaneously:
• The Volume CCI must be greater than a defined threshold (default: 100).
• The Volume Stochastic must be greater than a defined threshold (default: 80).
3. Integration into the Process
It is critical to note how this script currently applies this "Volume Spike" logic:
• Visual Confirmation: In the current version of the code, the isVolumeSpike boolean is used strictly for visual feedback. When a spike is detected, the script paints the specific price bar yellow and plots a small triangle marker below the bar.
• Strategic Implication: While the code calculates these metrics, the variables long_condition and short_condition currently rely solely on the MA/VWAP crossover. The developer has left the volume logic as a visual overlay, noting in the comments that it serves as a "visual/alert" or a potential filter.
• Potential Alpha: Conceptually, this setup implies that a trader should look for the MA/VWAP crossover to occur coincidentally with—or shortly after—a "Volume Spike" (yellow bar). This would confirm that the price move is backed by significant institutional participation (volume) rather than just retail noise.
Risk Management and Time Constraints
The strategy wraps these technical signals in a robust risk management framework. It includes hard-coded time windows (start/stop trading times) and a "Close All" function to prevent holding positions overnight. Furthermore, it employs both percentage-based and dollar-based Stop Loss and Take Profit mechanisms, ensuring that every entry—whether generated by a high-momentum crossover or a standard trend move—has a predefined exit plan.
Conclusion
The "Volume Momentum Strategy" is a hybrid system. It executes trades based on the reliable trend signal of MA crossing VWAP but informs the trader with advanced volume analytics. By processing volume through the CCI and Stochastic calculations, it provides a "heads-up" display regarding the intensity of market participation, allowing the trader to distinguish between low-volume drifts and high-volume breakout moves.






















