Composite Time ProfileComposite Time Profile Overlay (CTPO) - Market Profile Compositing Tool
Automatically composite multiple time periods to identify key areas of balance and market structure
What is the Composite Time Profile Overlay?
The Composite Time Profile Overlay (CTPO) is a Pine Script indicator that automatically composites multiple time periods to identify key areas of balance and market structure. It's designed for traders who use market profile concepts and need to quickly identify where price is likely to find support or resistance.
The indicator analyzes TPO (Time Price Opportunity) data across different timeframes and merges overlapping profiles to create composite levels that represent the most significant areas of balance. This helps you spot where institutional traders are likely to make decisions based on accumulated price action.
Why Use CTPO for Market Profile Trading?
Eliminate Manual Compositing Work
Instead of manually drawing and compositing profiles across different timeframes, CTPO does this automatically. You get instant access to composite levels without spending time analyzing each individual period.
Spot Areas of Balance Quickly
The indicator highlights the most significant areas of balance by compositing overlapping profiles. These areas often act as support and resistance levels because they represent where the most trading activity occurred across multiple time periods.
Focus on What Matters
Rather than getting lost in individual session profiles, CTPO shows you the composite levels that have been validated across multiple timeframes. This helps you focus on the levels that are most likely to hold.
How CTPO Works for Market Profile Traders
Automatic Profile Compositing
CTPO uses a proprietary algorithm that:
- Identifies period boundaries based on your selected timeframe (sessions, daily, weekly, monthly, or auto-detection)
- Calculates TPO profiles for each period using the C2M (Composite 2 Method) row sizing calculation
- Merges overlapping profiles using configurable overlap thresholds (default 50% overlap required)
- Updates composite levels as new price action develops in real-time
Key Levels for Market Profile Analysis
The indicator displays:
- Value Area High (VAH) and Value Area Low (VAL) levels calculated from composite TPO data
- Point of Control (POC) levels where most trading occurred across all composited periods
- Composite zones representing areas of balance with configurable transparency
- 1.618 Fibonacci extensions for breakout targets based on composite range
Multiple Timeframe Support
- Sessions: For intraday market profile analysis
- Daily: For swing trading with daily profiles
- Weekly: For position trading with weekly structure
- Monthly: For long-term market profile analysis
- Auto: Automatically selects timeframe based on your chart
Trading Applications for Market Profile Users
Support and Resistance Trading
Use composite levels as dynamic support and resistance zones. These levels often hold because they represent areas where significant trading decisions were made across multiple timeframes.
Breakout Trading
When composite levels break, they often lead to significant moves. The indicator calculates 1.618 Fibonacci extensions to give you clear targets for breakout trades.
Mean Reversion Strategies
Value Area levels represent the price range where most trading activity occurred. These levels often act as magnets, drawing price back when it moves too far from the mean.
Institutional Level Analysis
Composite levels represent areas where institutional traders have made significant decisions. These levels often hold more weight than traditional technical analysis levels because they're based on actual trading activity.
Key Features for Market Profile Traders
Smart Compositing Logic
- Automatic overlap detection using price range intersection algorithms
- Configurable overlap thresholds (minimum 50% overlap required for merging)
- Dead composite identification (profiles that become engulfed by newer composites)
- Real-time updates as new price action develops using barstate.islast optimization
Visual Customization
- Customizable colors for active, broken, and dead composites
- Adjustable transparency levels for each composite state
- Premium/Discount zone highlighting based on current price vs composite range
- TPO aggression coloring using TPO distribution analysis to identify buying/selling pressure
- Fibonacci level extensions with 1.618 target calculations based on composite range
Clean Chart Presentation
- Only shows the most relevant composite levels (maximum 10 active composites)
- Eliminates clutter from individual session profiles
- Focuses on areas of balance that matter most to current price action
Real-World Trading Examples
Day Trading with Session Composites
Use session-based composites to identify intraday areas of balance. The VAH and VAL levels often act as natural profit targets and stop-loss levels for scalping strategies.
Swing Trading with Daily Composites
Daily composites provide excellent swing trading levels. Look for price reactions at composite zones and use the 1.618 extensions for profit targets.
Position Trading with Weekly Composites
Weekly composites help identify major trend changes and long-term areas of balance. These levels often hold for months or even years.
Risk Management
Composite levels provide natural stop-loss levels. If a composite level breaks, it often signals a significant shift in market sentiment, making it an ideal place to exit losing positions.
Why Composite Levels Work
Composite levels work because they represent areas where significant trading decisions were made across multiple timeframes. When price returns to these levels, traders often remember the previous price action and make similar decisions, creating self-fulfilling prophecies.
The compositing process uses a proprietary algorithm that ensures only levels validated across multiple time periods are displayed. This means you're looking at levels that have proven their significance through actual market behavior, not just random technical levels.
Technical Foundation
The indicator uses TPO (Time Price Opportunity) data combined with price action analysis to identify areas of balance. The C2M row sizing method ensures accurate profile calculations, while the overlap detection algorithm (minimum 50% price range intersection) ensures only truly significant composites are displayed. The algorithm calculates row size based on ATR (Average True Range) divided by 10, then converts to tick size for precise level calculations.
How the Code Actually Works
1. Period Detection and ATR Calculation
The code first determines the appropriate timeframe based on your chart:
- 1m-5m charts: Session-based profiles
- 15m-2h charts: Daily profiles
- 4h charts: Weekly profiles
- 1D charts: Monthly profiles
For each period type, it calculates the number of bars needed for ATR calculation:
- Sessions: 540 minutes divided by chart timeframe
- Daily: 1440 minutes divided by chart timeframe
- Weekly: 7 days worth of minutes divided by chart timeframe
- Monthly: 30 days worth of minutes divided by chart timeframe
2. C2M Row Size Calculation
The code calculates True Range for each bar in the determined period:
- True Range = max(high-low, |high-prevClose|, |low-prevClose|)
- Averages all True Range values to get ATR
- Row Size = (ATR / 10) converted to tick size
- This ensures each TPO row represents a meaningful price movement
3. TPO Profile Generation
For each period, the code:
- Creates price levels from lowest to highest price in the range
- Each level is separated by the calculated row size
- Counts how many bars touch each price level (TPO count)
- Finds the level with highest count = Point of Control (POC)
- Calculates Value Area by expanding from POC until 68.27% of total TPO blocks are included
4. Overlap Detection Algorithm
When a new profile is created, the code checks if it overlaps with existing composites:
- Calculates overlap range = min(currentVAH, prevVAH) - max(currentVAL, prevVAL)
- Calculates current profile range = currentVAH - currentVAL
- Overlap percentage = (overlap range / current profile range) * 100
- If overlap >= 50%, profiles are merged into a composite
5. Composite Merging Logic
When profiles overlap, the code creates a new composite by:
- Taking the earliest start bar and latest end bar
- Using the wider VAH/VAL range (max of both profiles)
- Keeping the POC from the profile with more TPO blocks
- Marking the composite as "active" until price breaks through
6. Real-Time Updates
The code uses barstate.islast to optimize performance:
- Only recalculates on the last bar of each period
- Updates active composite with live price action if enabled
- Cleans up old composites to prevent memory issues
- Redraws all visual elements from scratch each bar
7. Visual Rendering System
The code uses arrays to manage drawing objects:
- Clears all lines/boxes arrays on every bar
- Iterates through composites array to redraw everything
- Uses different colors for active, broken, and dead composites
- Calculates 1.618 Fibonacci extensions for broken composites
Getting Started with CTPO
Step 1: Choose Your Timeframe
Select the period type that matches your trading style:
- Use "Sessions" for day trading
- Use "Daily" for swing trading
- Use "Weekly" for position trading
- Use "Auto" to let the indicator choose based on your chart timeframe
Step 2: Customize the Display
Adjust colors, transparency, and display options to match your charting preferences. The indicator offers extensive customization options to ensure it fits seamlessly into your existing analysis.
Step 3: Identify Key Levels
Look for:
- Composite zones (blue boxes) - major areas of balance
- VAH/VAL lines - value area boundaries
- POC lines - areas of highest trading activity
- 1.618 extension lines - breakout targets
Step 4: Develop Your Strategy
Use these levels to:
- Set entry points near composite zones
- Place stop losses beyond composite levels
- Take profits at 1.618 extension levels
- Identify trend changes when major composites break
Perfect for Market Profile Traders
If you're already using market profile concepts in your trading, CTPO eliminates the manual work of compositing profiles across different timeframes. Instead of spending time analyzing each individual period, you get instant access to the composite levels that matter most.
The indicator's automated compositing process ensures you're always looking at the most relevant areas of balance, while its real-time updates keep you informed of changes as they happen. Whether you're a day trader looking for intraday levels or a position trader analyzing long-term structure, CTPO provides the market profile intelligence you need to succeed.
Streamline Your Market Profile Analysis
Stop wasting time on manual compositing. Let CTPO do the heavy lifting while you focus on executing profitable trades based on areas of balance that actually matter.
Ready to Streamline Your Market Profile Trading?
Add the Composite Time Profile Overlay to your charts today and experience the difference that automated profile compositing can make in your trading performance.
Göstergeler ve stratejiler
Quantile Regression Bands [BackQuant]Quantile Regression Bands
Tail-aware trend channeling built from quantiles of real errors, not just standard deviations.
What it does
This indicator fits a simple linear trend over a rolling lookback and then measures how price has actually deviated from that trend during the window. It then places two pairs of bands at user-chosen quantiles of those deviations (inner and outer). Because bands are based on empirical quantiles rather than a symmetric standard deviation, they adapt to skewed and fat-tailed behaviour and often hug price better in trending or asymmetric markets.
Why “quantile” bands instead of Bollinger-style bands?
Bollinger Bands assume a (roughly) symmetric spread around the mean; quantiles don’t—upper and lower bands can sit at different distances if the error distribution is skewed.
Quantiles are robust to outliers; a single shock won’t inflate the bands for many bars.
You can choose tails precisely (e.g., 1%/99% or 5%/95%) to match your risk appetite.
How it works (intuitive)
Center line — a rolling linear regression approximates the local trend.
Residuals — for each bar in the lookback, the indicator looks at the gap between actual price and where the line “expected” price to be.
Quantiles — those gaps are sorted; you select which percentiles become your inner/outer offsets.
Bands — the chosen quantile offsets are added to the current end of the regression line to draw parallel support/resistance rails.
Smoothing — a light EMA can be applied to reduce jitter in the line and bands.
What you see
Center (linear regression) line (optional).
Inner quantile bands (e.g., 25th/75th) with optional translucent fill.
Outer quantile bands (e.g., 1st/99th) with a multi-step gradient to visualise “tail zones.”
Optional bar coloring: bars trend-colored by whether price is rising above or falling below the center line.
Alerts when price crosses the outer bands (upper or lower).
How to read it
Trend & drift — the slope of the center line is your local trend. Persistent closes on the same side of the center line indicate directional drift.
Pullbacks — tags of the inner band often mark routine pullbacks within trend. Reaction back to the center line can be used for continuation entries/partials.
Tails & squeezes — outer-band touches highlight statistically rare excursions for the chosen window. Frequent outer-band activity can signal regime change or volatility expansion.
Asymmetry — if the upper band sits much further from the center than the lower (or vice versa), recent behaviour has been skewed. Trade management can be adjusted accordingly (e.g., wider take-profit upslope than downslope).
A simple trend interpretation can be derived from the bar colouring
Good use-cases
Volatility-aware mean reversion — fade moves into outer bands back toward the center when trend is flat.
Trend participation — buy pullbacks to the inner band above a rising center; flip logic for shorts below a falling center.
Risk framing — set dynamic stops/targets at quantile rails so position sizing respects recent tail behaviour rather than fixed ticks.
Inputs (quick guide)
Source — price input used for the fit (default: close).
Lookback Length — bars in the regression window and residual sample. Longer = smoother, slower bands; shorter = tighter, more reactive.
Inner/Outer Quantiles (τ) — choose your “typical” vs “tail” levels (e.g., 0.25/0.75 inner, 0.01/0.99 outer).
Show toggles — independently toggle center line, inner bands, outer bands, and their fills.
Colors & transparency — customize band and fill appearance; gradient shading highlights the tail zone.
Band Smoothing Length — small EMA on lines to reduce stair-step artefacts without meaningfully changing levels.
Bar Coloring — optional trend tint from the center line’s momentum.
Practical settings
Swing trading — Length 75–150; inner τ = 0.25/0.75, outer τ = 0.05/0.95.
Intraday — Length 50–100 for liquid futures/FX; consider 0.20/0.80 inner and 0.02/0.98 outer in high-vol assets.
Crypto — Because of fat tails, try slightly wider outers (0.01/0.99) and keep smoothing at 2–4 to tame weekend jumps.
Signal ideas
Continuation — in an uptrend, look for pullback into the lower inner band with a close back above the center as a timing cue.
Exhaustion probe — in ranges, first touch of an outer band followed by a rejection candle back inside the inner band often precedes mean-reversion swings.
Regime shift — repeated closes beyond an outer band or a sharp re-tilt in the center line can mark a new trend phase; adjust tactics (stop-following along the opposite inner band).
Alerts included
“Price Crosses Upper Outer Band” — potential overextension or breakout risk.
“Price Crosses Lower Outer Band” — potential capitulation or breakdown risk.
Notes
The fit and quantiles are computed on a fixed rolling window and do not repaint; bands update as the window moves forward.
Quantiles are based on the recent distribution; if conditions change abruptly, expect band widths and skew to adapt over the next few bars.
Parameter choices directly shape behaviour: longer windows favour stability, tighter inner quantiles increase touch frequency, and extreme outer quantiles highlight only the rarest moves.
Final thought
Quantile bands answer a simple question: “How unusual is this move given the current trend and the way price has been missing it lately?” By scoring that question with real, distribution-aware limits rather than one-size-fits-all volatility you get cleaner pullback zones in trends, more honest “extreme” tags in ranges, and a framework for risk that matches the market’s recent personality.
TAUtilityLibLibrary "TAUtilityLib"
Technical Analysis Utility Library - Collection of functions for market analysis, smoothing, scaling, and structure detection
log_snapshot(label1, val1, label2, val2, label3, val3, label4, val4, label5, val5)
Creates formatted log snapshot with 5 labeled values
Parameters:
label1 (string)
val1 (float)
label2 (string)
val2 (float)
label3 (string)
val3 (float)
label4 (string)
val4 (float)
label5 (string)
val5 (float)
Returns: void (logs to console)
f_get_next_tf(tf, steps)
Gets next higher timeframe(s) from current
Parameters:
tf (string) : Current timeframe string
steps (string) : "1 TF Higher" for next TF, any other value for 2 TFs higher
Returns: Next timeframe string or na if at maximum
f_get_prev_tf(tf)
Gets previous lower timeframe from current
Parameters:
tf (string) : Current timeframe string
Returns: Previous timeframe string or na if at minimum
supersmoother(_src, _length)
Ehler's SuperSmoother - low-lag smoothing filter
Parameters:
_src (float) : Source series to smooth
_length (simple int) : Smoothing period
Returns: Smoothed series
butter_smooth(src, len)
Butterworth filter for ultra-smooth price filtering
Parameters:
src (float) : Source series
len (simple int) : Filter period
Returns: Butterworth smoothed series
f_dynamic_ema(source, dynamic_length)
Dynamic EMA with variable length
Parameters:
source (float) : Source series
dynamic_length (float) : Dynamic period (can vary bar to bar)
Returns: Dynamically adjusted EMA
dema(source, length)
Double Exponential Moving Average (DEMA)
Parameters:
source (float) : Source series
length (simple int) : Period for DEMA calculation
Returns: DEMA value
f_scale_percentile(primary_line, secondary_line, x)
Scales secondary line to match primary line using percentile ranges
Parameters:
primary_line (float) : Reference series for target scale
secondary_line (float) : Series to be scaled
x (int) : Lookback bars for percentile calculation
Returns: Scaled version of secondary_line
calculate_correlation_scaling(demamom_range, demamom_min, correlation_range, correlation_min)
Calculates scaling factors for correlation alignment
Parameters:
demamom_range (float) : Range of primary series
demamom_min (float) : Minimum of primary series
correlation_range (float) : Range of secondary series
correlation_min (float) : Minimum of secondary series
Returns: tuple for alignment
getBB(src, length, mult, chartlevel)
Calculates Bollinger Bands with chart level offset
Parameters:
src (float) : Source series
length (simple int) : MA period
mult (simple float) : Standard deviation multiplier
chartlevel (simple float) : Vertical offset for plotting
Returns: tuple
get_mrc(source, length, mult, mult2, gradsize)
Mean Reversion Channel with multiple bands and conditions
Parameters:
source (float) : Price source
length (simple int) : Channel period
mult (simple float) : First band multiplier
mult2 (simple float) : Second band multiplier
gradsize (simple float) : Gradient size for zone detection
Returns:
analyzeMarketStructure(highFractalBars, highFractalPrices, lowFractalBars, lowFractalPrices, trendDirection)
Analyzes market structure for ChoCH and BOS patterns
Parameters:
highFractalBars (array) : Array of high fractal bar indices
highFractalPrices (array) : Array of high fractal prices
lowFractalBars (array) : Array of low fractal bar indices
lowFractalPrices (array) : Array of low fractal prices
trendDirection (int) : Current trend (1=up, -1=down, 0=neutral)
Returns: - change signals and new trend direction
Today's 5min HH/LL LinesOverview
This indicator identifies the highest high (HH) and lowest low (LL) formed by the first 5 one-minute candles of the current trading day. Once calculated, it plots continuous horizontal lines at those price levels for the remainder of the day.
How it works
The script internally requests 1-minute data for the current symbol, regardless of your chart’s timeframe.
At the start of each new trading day, it resets counters.
It captures the highest high and lowest low across the first five completed 1-minute candles.
After the 5th one-minute bar closes, it draws:
A green horizontal line at the highest high.
A red horizontal line at the lowest low.
These lines extend to the right, covering the entire trading session, and automatically scale with zoom/pan.
At the next session, the old lines are deleted and recalculated for the new day.
Use cases
Helps spot early intraday support and resistance zones.
Useful for breakout or reversal strategies that monitor when price breaches the first 5-minute range (derived from 5x1m bars).
Can be combined with volume, momentum, or candlestick signals for high-probability entries.
Key features
Works on any timeframe — always uses 1-minute data for precision.
Shows lines only for the current day (no clutter from prior sessions).
Lines are dynamic and adaptive — they remain fixed at the calculated price but extend continuously across the chart.
Auto Slope Extremes ChannelAuto Slope Extremes Channel
Expanding channel that locks onto the highest high and lowest low of the slope between A and B.
This indicator builds a dynamic channel between two anchors, A and B.
Unlike fixed-width channels, it adapts to the slope of the leg between A and B and expands until:
• The upper channel line touches the highest candle in that slope.
• The lower channel line touches the lowest candle in that slope.
This method ensures that the channel edges are defined only by the single most extreme high and the single most extreme low within the selected leg. No other candles in the range touch the edges.
A centerline is drawn midway between the two extremes, and small triangle markers highlight the exact candles that determine the upper and lower boundaries.
Features
• Anchored channel defined by two user-selected points (A and B).
• Expands to fit the highest high and lowest low of the slope between A and B.
• Optional centerline and channel fill.
• Extend lines left, right, or both.
• Customizable line widths and colours.
Tristan's Box: Pre-Market Range Breakout + RetestMarket Context:
This is designed for U.S. stocks, focusing on pre-market price action (4:00–9:30 AM ET) to identify key support/resistance levels before the regular session opens.
Built for 1 min and 5 min timelines, and is intended for day trading / scalping.
Core Idea:
Pre-market range (high/low) often acts as a magnet for price during regular hours.
The first breakout outside this range signals potential strong momentum in that direction.
Retest of the breakout level confirms whether the breakout is valid, avoiding false moves.
Step-by-Step Logic:
Pre-Market Range Identification:
Track high and low from 4:00–9:30 AM ET.
Draw a box spanning this range for visual reference and calculation.
Breakout Detection:
When the first candle closes above the pre-market high → long breakout.
When the first candle closes below the pre-market low → short breakout.
The first breakout candle is highlighted with a “YOLO” label for visual confirmation.
Retest Confirmation:
Identify the first candle whose wick touches the pre-market box (high touches top for short, low touches bottom for long).
Wait for the next candle: if it closes outside the box, it confirms the breakout.
Entry Execution:
Long entry: on the confirming candle after a wick-touch above the pre-market high.
Short entry: on the confirming candle after a wick-touch below the pre-market low.
Only the first valid entry per direction per day is taken.
Visuals & Alerts:
Box represents pre-market high/low.
Top/bottom box border lines show the pre-market high / low levels cleanly.
BUY/SELL markers are pinned to the confirming candle.
Added a "YOLO" marker on breakout candle.
Alert conditions trigger when a breakout is confirmed by the retest.
Strategy Type:
Momentum breakout strategy with confirmation retest.
Combines pre-market structure and risk-managed entries.
Designed to filter false breakouts by requiring confirmation on the candle after the wick-touch.
In short, it’s a pre-market breakout momentum strategy: it uses the pre-market high/low as reference, waits for a breakout, and then enters only after a confirmation retest, reducing the chance of entering on a false spike.
Always use good risk management.
Weekly/Monthly Golden ATR LevelsWeekly/Monthly Golden ATR Levels
This indicator is designed to give traders a clear, rule-based framework for identifying support and resistance zones anchored to prior period ranges and the market’s own volatility. It uses the Average True Range (ATR) as a measure of how far price can realistically stretch, then projects fixed levels from the midpoint of the prior week and prior month.
Rather than “moving targets” that repaint, these levels are frozen at the start of each new week and month and stay fixed until the next period begins. This makes them reliable rails for both intraday and swing trading.
What It Plots
Weekly Midpoint (last week’s High + Low ÷ 2)
From this mid, the script projects:
Weekly +1 / −1 ATR
Weekly +2 / −2 ATR
Monthly Midpoint (last month’s High + Low ÷ 2)
From this mid, the script projects:
Monthly +1 / −1 ATR
Monthly +2 / −2 ATR
Customization
Set ATR length & timeframe (default: 14 ATR on Daily bars).
Adjust multipliers for Level 1 (±1 ATR) and Level 2 (±2 ATR).
Choose line color, style, and width separately for weekly and monthly bands.
Toggle labels on/off.
How to Use
Context at the Open
If price opens above last week’s midpoint, bias favors upside toward +1 / +2.
If price opens below the midpoint, bias favors downside toward −1 / −2.
Weekly Bands = Short-Term Rails
+1 / −1 ATR: Rotation pivots. Expect intraday reaction.
+2 / −2 ATR: Extreme stretch zones. Reversals or breakouts often occur here.
Monthly Bands = Big Picture Rails
Use these for swing positioning, or as “outer guardrails” on intraday charts.
When weekly and monthly bands cluster → high-confluence zone.
Trade Playbook
Trend Day: Hold above +1 → target +2. Break below −1 → target −2.
Range Day: Fade first test of ±2, scalp toward ±1 or midpoint.
Catalyst/News Day: Use with caution—levels provide context, not barriers.
Risk Management
Place stops just outside the band you’re trading against.
Scale profits at the next inner level (e.g., short from +2, cover partial at +1).
Runners can trail to the midpoint or opposite side.
Why It Works
ATR measures volatility—how far price tends to travel in a given period.
Anchoring to prior highs and lows captures where real supply/demand last clashed.
Combining the two gives levels that are statistically relevant, widely observed, and psychologically sticky.
Trading books from Mark Douglas (Trading in the Zone), Jared Tendler (The Mental Game of Trading), and Oliver Kell (Victory in Stock Trading) all stress the importance of having objective, repeatable reference points. These levels deliver that discipline—removing guesswork and reducing emotional trading
Algorithmic Kalman Filter [CRYPTIK1]Price action is chaos. Markets are driven by high-frequency algorithms, emotional reactions, and raw speculation, creating a constant stream of noise that obscures the true underlying trend. A simple moving average is too slow, too primitive to navigate this environment effectively. It lags, it gets chopped up, and it fails when you need it most.
This script implements an Algorithmic Kalman Filter (AKF), a sophisticated signal processing algorithm adapted from aerospace and robotic guidance systems. Its purpose is singular: to strip away market noise and provide a hyper-adaptive, self-correcting estimate of an asset's true trajectory.
The Concept: An Adaptive Intelligence
Unlike a moving average that mindlessly averages past data, the Kalman Filter operates on a two-step principle: Predict and Update.
Predict: On each new bar, the filter makes a prediction of the true price based on its previous state.
Update: It then measures the error between its prediction and the actual closing price. It uses this error to intelligently correct its estimate, learning from its mistakes in real-time.
The result is a flawlessly smooth line that adapts to volatility. It remains stable during chop and reacts swiftly to new trends, giving you a crystal-clear view of the market's real intention.
How to Wield the Filter: The Core Settings
The power of the AKF lies in its two tuning parameters, which allow you to calibrate the filter's "brain" to any asset or timeframe.
Process Noise (Q) - Responsiveness: This controls how much you expect the true trend to change.
A higher Q value makes the filter more sensitive and responsive to recent price action. Use this for highly volatile assets or lower timeframes.
A lower Q value makes the filter smoother and more stable, trusting that the underlying trend is slow-moving. Use this for higher timeframes or ranging markets.
Measurement Noise (R) - Smoothness: This controls how much you trust the incoming price data.
A higher R value tells the filter that the price is extremely noisy and to be more skeptical. This results in a much smoother, slower-moving line.
A lower R value tells the filter to trust the price data more, resulting in a line that tracks price more closely.
The interaction between Q and R is what gives the filter its power. The default settings provide a solid baseline, but a true operator will fine-tune these to perfectly match the rhythm of their chosen market.
Tactical Application
The AKF is not just a line; it's a complete framework for viewing the market.
Trend Identification: The primary signal. The filter's color code provides an unambiguous definition of the trend. Teal for an uptrend, Pink for a downtrend. No more guesswork.
Dynamic Support & Resistance: The filter itself acts as a dynamic level. Watch for price to pull back and find support on a rising (Teal) filter in an uptrend, or to be rejected by a falling (Pink) filter in a downtrend.
A Higher-Order Filter: Use the AKF's trend state to filter signals from your primary strategy. For example, only take long signals when the AKF is Teal. This single rule can dramatically reduce noise and eliminate low-probability trades.
This is a professional-grade tool for traders who are serious about gaining a statistical edge. Ditch the lagging averages. Extract the signal from the noise.
30 Min Pivot Enhanced# 30 Min Pivot Enhanced
The **30 Min Pivot Enhanced** indicator detects pivot reversals and potential buy/sell signals on the 30-minute timeframe. It combines streak-based trend exhaustion with pivot breakouts and optional flush (capitulation) candle detection.
## Core Logic
- Trend streaks: pivots form after consecutive same-color candles (`trendLength`)
- Flush detection: oversized red candles (ATR based) flagged as potential exhaustion
- Pivot candidates:
- Bullish → after a red streak (or flush) followed by a green candle
- Bearish → after a green streak followed by a red candle
- Confirmation: price must break pivot high/low within `maxBarsAfterPivot`
## Inputs
- Consecutive Trend Candles → streak length required for pivot
- Maximum Bars After Pivot → confirmation window
- Show Pivot Lines → toggle pivot levels on chart
- Flush Detection → ATR-based capitulation detection
- Flush Lookback → how many bars to keep flush valid
- Enable Buy/Sell Alerts → toggle trade alerts
## Visuals
- Buy pivots → green "P Buy" labels under price
- Sell pivots → red pivot lines at lows (if enabled)
- Flush markers → optional debug labels showing capitulation bars
## Alerts
- Buy Alert → price breaks above pivot high
- Sell Alert → price breaks below pivot low
---
Best for traders watching **30-minute reversal plays**, especially where exhaustion or flush candles precede a breakout.
Contract Interest Turnover T3 [T69]Overview
--------
Contract Interest Turnover (CIT) estimates how “churny” a crypto derivatives market is by comparing the amount traded in a bar to the base stock of outstanding contracts (open interest). It normalizes both Volume and Open Interest (OI) by Price (Close), then plots a Turnover Rate = (Volume/Close) ÷ (OI/Close) as colored columns. Higher values = faster contract recycling (strong momentum / hype potential).
Features
--------
- Auto-fetch OI: Pulls OI via request.security(_OI, …) when the exchange/symbol exposes an OI stream on TradingView.
- Price-normalized comparison: Converts both Volume and OI into comparable notional terms by dividing each by Close.
- Turnover columns with threshold: Color the columns green once Turnover ≥ your set threshold; gray otherwise.
- Status-line readouts: Displays normalized Volume and OI values for quick sanity checks.
- Crypto-aware timeframe: Uses chart TF for crypto; forces daily OI when not crypto to avoid noisy intraday pulls.
How to Use
----------
1. Add the script on a perpetual/futures symbol that has OI on TradingView (e.g., BTC perps where an _OI feed exists).
2. Watch the Turnover Rate bars: spikes above your threshold flag sessions where contracts are actively flipping.
3. Interpret spikes as a signal of movement or activity — it does not specify price direction, only that the market is engaged and contracts are being traded more intensely than usual.
Configuration
-------------
- Interest Turnover Threshold (default 1.0): colors columns green when Turnover ≥ threshold. Tune per market’s typical churn profile.
Under the Hood (Formulas & Logic)
---------------------------------
- Fetch OI
oiClose ← request.security(ticker.standard(syminfo.tickerid) + "_OI", timeframe, close) with ignore_invalid_symbol = true.
If none is found, the script throws a clear runtime error.
- Normalize to price
vol_norm = volume / close
oi_norm = oiClose / close
This converts both to a common notional basis so their ratio is meaningful even as price changes.
- Turnover Rate
turnover = vol_norm / oi_norm
Interpretation: fraction/multiples of the outstanding contract base traded in the bar. Color = green if turnover ≥ threshold.
Why Open Interest ≈ “Float” Proxy
---------------------------------
In stocks, float ≈ shares the public can trade. In derivatives, there are no “shares,” so Open Interest acts as the live stock of active contracts. It’s the best proxy for “what’s available in play” because it counts open positions that persist across bars. Using Volume ÷ OI mirrors stock float-turnover logic: how fast the tradable base is being recycled each period.
Why Normalize by Price
----------------------
Derivatives volume and OI may be reported in contracts, not notional value. One contract’s economic weight changes with price (especially on inverse contracts). Dividing both Volume and OI by Close:
- Puts them on a comparable notional footing.
- Prevents false spikes purely from price moves.
- Makes Turnover comparable across time even as price trends.
Advanced Tips
-------------
- Calibrate threshold: Start from the 80th–90th percentile of the last 60–90 bars of Turnover; set the threshold a touch below that to surface early heat.
- Add OI-delta: Layer an OI change histogram (current − prior) to separate new positioning from pure churn.
- Linear vs inverse: For linear (USDT-margined) contracts, the normalization still works and keeps visuals consistent; for inverse, it’s essential.
Limitations
-----------
- Data availability: Works only if your symbol exposes an _OI feed on TradingView; otherwise it errors out.
- Exchange conventions: Volume units differ by venue (contracts, coin, notional). Normalization mitigates, but cross-symbol comparisons still need caution.
- Intrabar gaps: OI is typically end-of-bar; rapid intrabar shifts won’t appear until the bar closes.
Notes
-----
- Designed primarily for crypto derivatives. For non-crypto, the script blanks OI to avoid misleading plots and uses a daily TF when needed.
Credit
------
- Concept & data: Built for TradingView data feeds.
- Acknowledgment: Credit to TradingView default indicator as requested.
- Source: This write-up reflects the logic present in your uploaded script.
Disclaimer
----------
Markets move; indicators simplify. Use with position sizing, hard stops, and catalyst awareness. The Turnover Rate flags activity, not direction.
TEWMA Supertrend - [JTCAPITAL]TEWMA Supertrend is a modified way to use Triple Exponential Weighted Moving Average inside Supertrend logic for Trend-Following
The indicator works by calculating in the following steps:
1. Calculate the Triple Exponential Moving Average with Weighted Moving Average as input.
2. Calculate the ATR over the Supertrend Length
3. Use the Triple Exponential Weighted Moving Average, and add the multiplier times the ATR for the upper limit, and subtract the multiplier times the ATR for the lower limit.
4. Define Buy and Sell conditions based on the price closing above or below the upper and lower limits.
--Buy and sell conditions--
- The buy and sell conditions are defined by the price going above/below the upper and lower limits, calculated by (TEWMA +/- multi * ATR).
- When this goes on the opposite direction of the current trend, the trend changes. If this goes in the same direction of the current trend, the line follows the price by moving up.
- When price gets closer to the limits the limits do not change. The upper limit only moves when the upper decreases, and the lower limit only moves when the lower increases.
- The ATR gets subtracted from the lows or added onto the highs to eliminate false signals in choppy markets, while enforcing fast entries and exits.
--Features and Parameters--
- Allows the usage of different sources
- Allows the changing of the length of the ATR
- Allows the changing of the length of the TEWMA
- Allows the changing of the multiplier to increase or decrease ATR usage
--Details--
This script is using TEWMA as input for the modified Supertrend. Using a TEWMA and getting a higher multiplier to the ATR is meant to decrease false signals. Which can be a problem when using a normal Supertrend. Using the TEWMA also ensures fast entries and exits from fast market moves after a calm period. Ensuring you don't stay left behind.
Be aware that lowering the multiplier for the ATR will allow for faster entries and exits but also allow for more false signals. It is recommended to change the parameters to fit your liking and to adjust to the timeframe you are working on.
Enjoy!
Supertrend Channel Histogram OscillatorThis histogram is based on the script "Supertrend Channels "
The idea of the indicator is to visually represent the interaction of price with several different supertrend channels of various lengths in an oscillator in order to make it much more clear to the trader how the longer trends are interacting with shorter trends of the price movement of an asset. I got this idea from the "Kurutoga Cloud" and "Kurutoga Histogram" by D7R which is based on the centerlines of 3 Donchian Channels, however after I started using the Supertrend Channel by LuxAlgo I found that it was a more reliable price range channel than a standard Donchian Channel and I made this indicator to accompany it.
This indicator plots a positive value above 0 when the price is above the centerline of the supertrend channel and a negative value below 0 when the price is below the centerline.
The first supertrend's length and multiple can be adjusted in the settings.
The given supertrend input is then doubled and quadrupled in both length and multiplication so that a supertrend histogram with the values of 3, 3 will be accompanied by 2 additional supertrend histograms with the values of 6, 6 and 12, 12.
The larger price trend histograms are clearly visible behind the short term supertrend channel's histogram, giving traders a balanced view of short and long term trends interacting. The less visible columns of the larger trend remain above or below the 0 line behind the more visible short term channel trend, helping to spot pullbacks within a larger trend.
Additionally, when the 3 separate histograms are all positive or all negative but the histogram columns are separating from each other this can indicate a potential trend exhaustion leading to reversal or pullback about to happen.
The overbought and oversold lines at 50 and -50 are representative primarily of the short term trend with above 50 or below -50 indicating that the price is pushing the boundary and potentially beginning a new short term supertrend in the opposite direction. If values do not noticably exceed these levels, then the current short term trend movement can be viewed as a pullback within a larger trend, with continuation potentially to follow.
I have had troubles converting the original code to v6 so this will be published here in v5 of pinescript to be used in conjunction with the original. I was intending to create a companion indicator for this oscillator that represents 3 supertrends with corresponding 2x and 4x calculations based on LuxAlgo's script, but I can't seem to get it to work correctly in v5.
For best visualization of the trends 3 LuxAlgo Supertrend channels with 2x and 4x values should be used in conjunction with each other to fully visualize the histogram.
Used in conjunction with other indicators this can be a very effective strategy to capture larger trend moves and pullbacks within trends, as well as warn of potential price trend exhaustion.
TURT Donchian Ladder v3.13How to trade TURT+ with the v3.13 script
1) Pick the system & arm the entry
• In the script, choose System = S1 (20D) or S2 (55D).
The HUD always shows both rails for reference, but the ladder (Entry/+Adds) uses the system you pick.
• Your Entry is shown as Pivot + 0.1×N (rounded).
• Place a stop-limit “parent” order at that Entry price. (Classic Turtle uses an entry stop; I suggest a tight limit offset so you don’t chase a blow-through.)
• Initial stop = N2 = Entry − 2×N (rounded). Put that in immediately.
If you like only confirming on a bar close, leave confirmClose = true and place the parent after the close that breaks out. If you want intrabar fills, set confirmClose = false and keep the stop-limit active intraday.
2) Size it the way you planned
• Set acctEquity / riskCapPct / posCapUSD / entryFrac / entryRiskFrac / sizingMode.
• HUD gives Rec Entry Qty (when flat) and, once in, it shows:
• Next Rung (price)
• Suggested AddShares (honors RiskCap & PosCap)
• Proj Stop if Add (ratcheted N2)
• A limiter note (RiskCap or PosCap) if you’re constrained.
3) After entry fills, stage the ADDs (only at fixed +N steps)
• Adds are NOT “every Donchian break.” You add only at:
• Add-1 = Entry + 0.5×N
• Add-2 = Entry + 1.0×N
• Add-3 = Entry + 1.5×N (optional)
• Use the HUD’s Suggested AddShares for each rung (it respects your RiskCap/PosCap).
• Place stop-limit orders for each add (either immediately as a contingent OTO chain that arms only after Entry fills, or you arm each add when price approaches—your choice).
• On each add fill, ratchet the catastrophic stop for the entire position to Last-Add − 2×N (the script and HUD show Proj Stop if Add so you know where it will land). Never move it lower.
Pro tip: If your broker supports OTO/OTOCO:
• OTO parent = Entry stop-limit.
• On fill, fire an OCO with the N2 stop (no target), and also stage child stop-limits for Add-1 / Add-2 / Add-3 with the correct sizes. If your broker can’t chain that deep, just use the script’s alerts (Entry/Add-1/Add-2/Add-3/Exits) to place/adjust orders quickly.
4) Exits (two layers)
• Catastrophic (always on): the N2 stop you’re ratcheting (Last-Add − 2×N).
• Trend exits (runner):
• S1: 10-low close (HUD shows it).
• S2: 20-low close (HUD shows it).
• Profit-taking (optional): sell ~50% at +2.5R to +3R vs current N2; let the runner trail with 10-low/20-low. You can keep N2 as a hard backstop.
5) Should you pre-set everything or buy live?
Both work; pick the style that fits you:
Preset (Turtle-pure, rules-based)
• ✅ You won’t miss the breakout; minimal discretion.
• ✅ Broker handles fills even if you’re away.
• ⚠️ You may get the occasional intraday “poke” (use confirmClose + place after close if you want fewer).
Buy on break manually
• ✅ Lets you check tape/volume or any extra gates before clicking.
• ⚠️ Higher chance of slippage or of simply missing the trigger.
A nice hybrid: place the Entry order, then arm Add-1/2/3 when price is nearing each rung and the HUD shows Suggested AddShares > 0 (green risk read).
⸻
6) Quick checklist per trade
1. System: S1 or S2?
2. Levels: Entry / Add-1 / Add-2 / Add-3 / 10-low / 20-low / N2 (rounded).
3. Sizing: confirm RiskCap/PosCap; HUD shows Suggested AddShares and limiter.
4. Orders:
• Parent Entry stop-limit.
• N2 stop (rounded).
• Stage adds (stop-limits) with sizes from HUD.
5. On fill: ratchet stop to Last-Add − 2×N; adjust remaining adds and sizes.
⸻
7) Example with your MU position (pattern)
• You’re already in: set entryQty and entryPman in the inputs to match your fill.
• HUD now focuses on Next Rung, Suggested AddShares, and Proj Stop if Add.
• If Suggested AddShares = 0 and limiter says RiskCap or PosCap, you’ll still see the next rung price and Proj Stop if Add so you can decide whether to override.
⸻
Bottom line
• Entry: buy the Donchian breakout + 0.1N with a stop-limit (Turtle style).
• Adds: only at +0.5N steps, sized by HUD; not on every future Donchian break.
• Stops: keep (and ratchet) the N2 catastrophic; trail runner on 10-low / 20-low.
If you want, tell me your broker/platform and I’ll map this to exact order ticket types (stop-limit/OTO/OCO) and a tiny checklist you can keep next to your screen.
Penguin Volatility State StrategyThe Penguin Volatility State Strategy is a comprehensive technical analysis framework designed to identify the underlying "state" or "regime" of the market. Instead of just providing simple buy or sell signals, its primary goal is to classify the market into one of four distinct states by combining trend, momentum, and volatility analysis.
The core idea is to trade only when these three elements align, focusing on periods of volatility expansion (a "squeeze breakout") that occur in the direction of a confirmed trend and are supported by strong momentum.
Key Components
The strategy is built upon two main engines
The Volatility Engine (Bollinger Bands vs. Keltner Channels)
This engine detects periods of rapidly increasing volatility. It measures the percentage difference (diff) between the upper bands of Bollinger Bands (which are based on standard deviation) and Keltner Channels (based on Average True Range). During a volatility "squeeze," both bands are close. When price breaks out, the Bollinger Band expands much faster than the Keltner Channel, causing the diff value to become positive. A positive diff signals a volatility breakout, which is the moment the strategy becomes active.
The Trend & Momentum Engine (Multi-EMA System)
This engine determines the market's direction and strength. It uses:
A Fast EMA (e.g., 12-period) and a Slow EMA (e.g., 26-period): The crossover of these two moving averages defines the primary, underlying trend (similar to a MACD).
An Ultra-Fast EMA (e.g., 2-period of ohlc4): This is used to measure the immediate, short-term momentum of the price.
The Four Market States
By combining the Trend and Momentum engines, the strategy categorizes the market into four visually distinct states, represented by the chart's background color. This is the most crucial aspect of the system.
💚 Green State: Strong Bullish
The primary trend is UP (Fast EMA > Slow EMA) AND the immediate momentum is STRONG (Price > Fast EMA).
Interpretation: This represents a healthy, robust uptrend where both the underlying trend and short-term price action are aligned. It is considered the safest condition for taking long positions.
❤️ Red State: Strong Bearish
Condition: The primary trend is DOWN (Fast EMA < Slow EMA) AND the immediate momentum is WEAK (Price < Fast EMA).
Interpretation: This represents a strong, confirmed downtrend. It is considered the safest condition for taking short positions.
💛 Yellow State: Weakening Bullish / Pullback
Condition: The primary trend is UP (Fast EMA > Slow EMA) BUT the immediate momentum is WEAK (Price < Fast EMA).
Interpretation: This is a critical warning signal for bulls. While the larger trend is still up, the short-term price action is showing weakness. This could be a minor pullback, a period of consolidation, or the very beginning of a trend reversal. Caution is advised.
💙 Blue State: Weakening Bearish / Relief Rally
Condition: The primary trend is DOWN (Fast EMA < Slow EMA) BUT the immediate momentum is STRONG (Price > Fast EMA).
Interpretation: This signals that a downtrend is losing steam. It often represents a short-covering rally (a "bear market rally") or the first potential sign of a market bottom. Bears should be cautious and consider taking profits.
How the Strategy Functions
The strategy uses these four states as its foundation for making trading decisions. The entry and exit arrows (Long, Short, Close) are generated based on a set of rules that can be customized by the user. For instance, a trader can configure the strategy to
Only take long trades during the Green State.
Require a confirmed volatility breakout (diff > 0) before entering a trade.
Use the "RSI on Diff" indicator to ensure that the breakout is supported by accelerating momentum.
Summary
In essence, the Penguin Volatility State Strategy provides a powerful "dashboard" for viewing the market. It moves beyond simple indicators to offer a contextual understanding of price action. By waiting for the alignment of Trend (the State), Volatility (the Breakout), and Momentum (the Acceleration), it helps traders to identify higher-probability setups and, just as importantly, to know when it is better to stay out of the market.
License / disclaimer
© waranyu.trkm — MIT License. Educational use only; not financial advice.
Dynamic Swing Anchored VWAP STRAT (Zeiierman/PineIndicators)Dynamic Swing Anchored VWAP STRATEGY — Zeiierman × PineIndicators (Pine Script v6)
A pivot-to-pivot Anchored VWAP strategy that adapts to volatility, enters long on bullish structure, and closes on bearish structure. Built for TradingView in Pine Script v6.
Full credits to zeiierman.
Repainting notice: The original indicator logic is repainting. Swing labels (HH/HL/LH/LL) are finalized after enough bars have printed, so labels do not occur in real time. It is not possible to execute at historical label points. Treat results as educational and validate with Bar Replay and paper trading before considering any discretionary use.
Concept
The script identifies swing highs/lows over a user-defined lookback ( Swing Period ). When structure flips (most recent swing low is newer than the most recent swing high, or vice versa), a new regime begins.
At each confirmed pivot, a fresh Anchored VWAP segment is started and updated bar-by-bar using an EWMA-style decay on price×volume and volume.
Responsiveness is controlled by Adaptive Price Tracking (APT) . Optionally, APT auto-adjusts with an ATR ratio so that high volatility accelerates responsiveness and low volatility smooths it.
Longs are opened/held in bullish regimes and closed when the regime turns bearish. No short positions are taken by design.
How it works (under the hood)
Swing detection: Uses ta.highestbars / ta.lowestbars over prd to update swing highs (ph) and lows (pl), plus their bar indices (phL, plL).
Regime logic: If phL > plL → bullish regime; else → bearish regime. A change in this condition triggers a re-anchor of the VWAP at the newest pivot.
Adaptive VWAP math: APT is converted to an exponential decay factor ( alphaFromAPT ), then applied to running sums of price×volume and volume, producing the current VWAP estimate.
Rendering: Each pivot-anchored VWAP segment is drawn as a polyline and color-coded by regime. Optional structure labels (HH/HL/LH/LL) annotate the swing character.
Orders: On bullish flips, strategy.entry("L") opens/maintains a long; on bearish flips, strategy.close("L") exits.
Inputs & controls
Swing Period (prd) — Higher values identify larger, slower swings; lower values catch more frequent pivots but add noise.
Adaptive Price Tracking (APT) — Governs the VWAP’s “half-life.” Smaller APT → faster/closer to price; larger APT → smoother/stabler.
Adapt APT by ATR ratio — When enabled, APT scales with volatility so the VWAP speeds up in turbulent markets and slows down in quiet markets.
Volatility Bias — Tunes the strength of APT’s response to volatility (above 1 = stronger effect; below 1 = milder).
Style settings — Colors for swing labels and VWAP segments, plus line width for visibility.
Trade logic summary
Entry: Long when the swing structure turns bullish (latest swing low is more recent than the last swing high).
Exit: Close the long when structure turns bearish.
Position size: qty = strategy.equity / close × 5 (dynamic sizing; scales with account equity and instrument price). Consider reducing the multiplier for a more conservative profile.
Recommended workflow
Apply to instruments with reliable volume (equities, futures, crypto; FX tick volume can work but varies by broker).
Start on your preferred timeframe. Intraday often benefits from smaller APT (more reactive); higher timeframes may prefer larger APT (smoother).
Begin with defaults ( prd=50, APT=20 ); then toggle “Adapt by ATR” and vary Volatility Bias to observe how segments tighten/loosen.
Use Bar Replay to watch how pivots confirm and how the strategy re-anchors VWAP at those confirmations.
Layer your own risk rules (stops/targets, max position cap, session filters) before any discretionary use.
Practical tips
Context filter: Consider combining with a higher-timeframe bias (e.g., daily trend) and using this strategy as an entry timing layer.
First pivot preference: Some traders prefer only the first bullish pivot after a bearish regime (and vice versa) to reduce whipsaw in choppy ranges.
Deviations: You can add VWAP deviation bands to pre-plan partial exits or re-entries on mean-reversion pulls.
Sessions: Session-based filters (RTH vs. ETH) can materially change behavior on futures and equities.
Extending the script (ideas)
Add stops/targets (e.g., ATR stop below last swing low; partial profits at k×VWAP deviation).
Introduce mirrored short logic for two-sided testing.
Include alert conditions for regime flips or for price-VWAP interactions.
Incorporate HTF confirmation (e.g., only long when daily VWAP slope ≥ 0).
Throttle entries (e.g., once per regime flip) to avoid over-trading in ranges.
Known limitations
Repainting: Swing labels and pivot confirmations depend on future bars; historical labels can look “perfect.” Treat them as annotations, not executable signals.
Execution realism: Strategy includes commission and slippage fields, yet actual fills differ by venue/liquidity.
No guarantees: Past behavior does not imply future results. This publication is for research/education only and not financial advice.
Defaults (backtest environment)
Initial capital: 10,000
Commission value: 0.01
Slippage: 1
Overlay: true
Max bars back: 5000; Max labels/polylines set for deep swing histories
Quick checklist
Add to chart and verify that the instrument has volume.
Use defaults, then tune APT and Volatility Bias with/without ATR adaptation.
Observe how each pivot re-anchors VWAP and how regime flips drive entries/exits.
Paper trade across several symbols/timeframes before any discretionary decisions.
Attribution & license
Original indicator concept and logic: Zeiierman — please credit the author.
Strategy wrapper and publication: PineIndicators .
License: CC BY-NC-SA 4.0 (Attribution-NonCommercial-ShareAlike). Respect the license when forking or publishing derivatives.
APC – Anti-Analysis-Paralysis Kompass APC – Anti-Analysis-Paralysis Compass (Pine v5).
Research/education indicator that compresses trend from 5 timeframes into one compass with Direction, Score, and Coherence (TF agreement). Non-repainting with a high-contrast breakdown table and in-chart help. No financial advice.
What it is
APC is a research/education tool that condenses trend information from five timeframes into a single compass. It shows Direction (↑/↓/→), a weighted Score, and Coherence (how strongly timeframes agree). The script is non-repainting (security(..., lookahead=off)) and includes a readable breakdown panel and example alerts.
How it works
• For each timeframe APC fits a linear regression to price, measures the slope change over k bars, optionally normalizes by ATR%, then maps it to +1 / 0 / −1 using a Deadzone (small slopes → neutral).
• A (weighted) sum of the five signs forms the Score.
• Coherence = |Score| / maxScore (0–100%), i.e., degree of TF alignment.
Quick start (suggested defaults)
• Timeframes: 15m · 1h · 4h · 1D · 1W • Weights: 1, 1, 1, 1.5, 2
• LinReg length: 100 • Slope Δ window: 10
• ATR normalization: ON • Deadzone: 0.03–0.05
• Coherence lock (for example alerts): 60%
Example research filters (non-advisory)
Many users test: Bullish bias when Score ≥ +3 and Coherence ≥ 60%; bearish bias when Score ≤ −3 and Coherence ≥ 60%. These are illustrative defaults only—configure and test your own thresholds.
Optional: pair with Kagi
Use APC for bias/conviction and Kagi turns for timing. Typical Kagi (swing): base 15m–1h, reversal ATR(14) × 1.5–2.5 or 1–3%.
Notes
Raise Deadzone in choppy markets; lower it for earlier flips. On very illiquid or young symbols, lengthen lenLR.
Disclaimer
APC is a research & educational indicator. It does not provide financial advice or recommendations. Use at your own risk. License: MIT.
VWAP Trend Strategy (Intraday) [KedarArc Quant]Description:
An intraday strategy that anchors to VWAP and only trades when a local EMA trend gate and a volume participation gate are both open. It offers two entry templates—Cross and Cross-and-Retest—with an optional Momentum Exception for impulsive moves. Exits combine a TrendBreak (structure flips) with an ATR emergency stop (risk cap).
Updates will be published under this script.
Why this merits a new script
This is not a simple “VWAP + EMA + ATR” overlay. The components are sequenced as gates and branches that *change the trade set* in ways a visual mashup cannot:
1. Trend Gate first (EMA fast vs. slow on the entry timeframe)
Counter-trend VWAP crosses are suppressed. Many VWAP scripts fire on every cross; here, no entry logic even evaluates unless the trend gate is open.
2. Participation Gate second (Volume SMA × multiplier)
This gate filters thin liquidity moves around VWAP. Without it, the same visuals would produce materially more false triggers.
3. Branching entries with structure awareness
* Cross: Immediate VWAP cross in the trend direction.
* Cross-and-Retest: Requires a revisit to VWAP vicinity within a lookback window (recent low near VWAP for longs; recent high for shorts). This explicitly removes first-touch fakeouts that a plain cross takes.
* Momentum Exception (optional): A quantified body% + volume condition can bypass the retest when flow is impulsive—intentional risk-timing, not “just another indicator.”
4. Dual exits that reference both anchor and structure
* TrendBreak: Close only when price loses VWAP and EMA alignment flips.
* ATR stop: Placed at entry to cap tail risk.
These exits complement the entry structure rather than being generic stop/target add-ons.
What it does
* Trades the session’s fair value anchor (VWAP), but only with local-trend agreement (EMA fast vs. slow) and sufficient participation (volume filter).
* Lets you pick Cross or Cross-and-Retest entries; optionally allow a fast Momentum Exception when candles expand with volume.
* Manages positions with a structure exit (TrendBreak) and an emergency ATR stop from entry.
How it works (concepts & calculations)
* VWAP (session anchor):
Standard VWAP of the active session; entries reference the cross and the retest proximity to VWAP.
* Trend gate:
Long context only if `EMA(fast) > EMA(slow)`; short only if `EMA(fast) < EMA(slow)`.
A *gate*, not a trigger—entries aren’t considered unless this is true.
* Participation (volume) gate:
Require `volume > SMA(volume, volLen) × volMult`.
Screens out low-participation wiggles around VWAP.
Entries:
* Cross: Price crosses VWAP in the trend direction while volume gate is open.
* Cross-and-Retest: After crossing, price revisits VWAP vicinity within `lookback` (recent *low near VWAP* for longs; recent *high near VWAP* for shorts).
* Momentum Exception (optional): If body% (|close−open| / range) and volume exceed thresholds, enter without waiting for the retest.
Exits:
* TrendBreak (structure):
* Longs close when `price < VWAP` and `EMA(fast) < EMA(slow)` (mirror for shorts).
* ATR stop (risk):
* From entry: `stop = entry ± ATR(atrLen) × atrMult`.
How to use it ?
1. Select market & timeframe: Intraday on liquid symbols (equities, futures, crypto).
2. Pick entry mode:
* Start with Cross-and-Retest for fewer, more selective signals.
* Enable Momentum Exception if strong moves leave without retesting.
3. Tune guards:
* Raise `volMult` to ignore thin periods; lower it for more activity.
* Adjust `lookback` if retests come late/early on your symbol.
4. Risk:
* `atrLen` and `atrMult` set the emergency stop distance.
5. Read results per session: Optional panel (if enabled) summarizes Net-R, Win%, and PF for today’s session to evaluate
behavior regime by regime.
⚠️ 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.
Volatility Cone Forecaster Lite [PhenLabs]📊 Volatility Cone Forecaster
Version: PineScript™v6
📌Description
The Volatility Cone Forecaster (VCF) is an advanced indicator designed to provide traders with a forward-looking perspective on market volatility. Instead of merely measuring past price fluctuations, the VCF analyzes historical volatility data to project a statistical “cone” that outlines a probable range for future price movements. Its core purpose is to contextualize the current market environment, helping traders to anticipate potential shifts from low to high volatility periods (and vice versa). By identifying whether volatility is expanding or contracting relative to historical norms, it solves the critical problem of preparing for significant market moves before they happen, offering a clear statistical edge in strategy development.
This indicator moves beyond lagging measures by employing percentile analysis to rank the current volatility state. This allows traders to understand not just what volatility is, but how significant it is compared to the recent past. The VCF is built for discretionary traders, system developers, and options strategists who need a sophisticated understanding of market dynamics to manage risk and identify high-probability opportunities.
🚀Points of Innovation
Forward-Looking Volatility Projection: Unlike standard indicators that only show historical data, the VCF projects a statistical cone of future volatility.
Percentile-Based Regime Analysis: Ranks current volatility against historical data (e.g., 90th, 75th percentiles) to provide objective context.
Automated Regime Detection: Automatically identifies and labels the market as being in a ‘High’, ‘Low’, or ‘Normal’ volatility regime.
Expansion & Contraction Signals: Clearly indicates whether volatility is currently increasing or decreasing, signaling shifts in market energy.
Integrated ATR Comparison: Plots an ATR-equivalent volatility measure to offer a familiar point of reference against the statistical model.
Dynamic Visual Modeling: The cone visualization directly on the price chart provides an intuitive guide for future expected price ranges.
🔧Core Components
Realized Volatility Engine: Calculates historical volatility using log returns over multiple user-defined lookback periods (short, medium, long) for a comprehensive view.
Percentile Analysis Module: A custom function calculates the 10th, 25th, 50th, 75th, and 90th percentiles of volatility over a long-term lookback (e.g., 252 days).
Forward Projection Calculator: Uses the calculated volatility percentiles to mathematically derive and draw the upper and lower bounds of the future volatility cone.
Volatility Regime Classifier: A logic-based system that compares current volatility to the historical percentile bands to classify the market state.
🔥Key Features
Customizable Lookback Periods: Adjust short, medium, and long-term lookbacks to fine-tune the indicator’s sensitivity to different market cycles.
Configurable Forward Projection: Set the number of days for the forward cone projection to align with your specific trading horizon.
Interactive Display Options: Toggle visibility for percentile labels, ATR levels, and regime coloring to customize the chart display.
Data-Rich Information Table: A clean, on-screen table displays all key metrics, including current volatility, percentile rank, regime, and trend.
Built-in Alert Conditions: Set alerts for critical events like volatility crossing the 90th percentile, dropping below the 10th, or switching between expansion and contraction.
🎨Visualization
Volatility Cone: Shaded bands projected onto the future price axis, representing the probable price range at different statistical confidence levels (e.g., 75th-90th percentile).
Color-Coded Volatility Line: The primary volatility plot dynamically changes color (e.g., red for high, green for low) to reflect the current volatility regime, providing instant context.
Historical Percentile Bands: Horizontal lines plotted across the indicator pane mark the key percentile levels, showing how current volatility compares to the past.
On-Chart Labels: Clear labels automatically display the current volatility reading, its percentile rank, the detected regime, and trend (Expanding/Contracting).
📖Usage Guidelines
Setting Categories
Short-term Lookback: Default: 10, Range: 5-50. Controls the most sensitive volatility calculation.
Medium-term Lookback: Default: 21, Range: 10-100. The primary input for the current volatility reading.
Long-term Lookback: Default: 63, Range: 30-252. Provides a baseline for long-term market character.
Percentile Lookback Period: Default: 252, Range: 100-1000. Defines the period for historical ranking; 252 represents one trading year.
Forward Projection Days: Default: 21, Range: 5-63. Determines how many bars into the future the cone is projected.
✅Best Use Cases
Breakout Trading: Identify periods of deep consolidation when volatility falls to low percentile ranks (e.g., below 25th) and begins to expand, signaling a potential breakout.
Mean Reversion Strategies: Target trades when volatility reaches extreme high percentile ranks (e.g., above 90th), as these periods are often unsustainable and lead to contraction.
Options Strategy: Use the cone’s projected upper and lower bounds to help select strike prices for strategies like iron condors or straddles.
Risk Management: Widen stop-losses and reduce position sizes when the indicator signals a transition into a ‘High’ volatility regime.
⚠️Limitations
Probabilistic, Not Predictive: The cone represents a statistical probability, not a guarantee of future price action. Extreme, unpredictable news events can drive prices outside the cone.
Lagging by Nature: All calculations are based on historical price data, meaning the indicator will always react to, not pre-empt, market changes.
Non-Directional: The indicator forecasts the *magnitude* of future moves, not the *direction*. It should be paired with a directional analysis tool.
💡What Makes This Unique
Forward Projection: Its primary distinction is projecting a data-driven, statistical forecast of future volatility, which standard oscillators do not do.
Contextual Analysis: It doesn’t just provide a number; it tells you what that number means through percentile ranking and automated regime classification.
🔬How It Works
1. Data Calculation:
The indicator first calculates the logarithmic returns of the asset’s price. It then computes the annualized standard deviation of these returns over short, medium, and long-term lookback periods to generate realized volatility readings.
2. Percentile Ranking:
Using a 252-day lookback, it analyzes the history of the medium-term volatility and determines the values that correspond to the 10th, 25th, 50th, 75th, and 90th percentiles. This builds a statistical map of the asset’s volatility behavior.
3. Cone Projection:
Finally, it takes these historical percentile values and projects them forward in time, calculating the potential upper and lower price bounds based on what would happen if volatility were to run at those levels over the next 21 days.
💡Note:
The Volatility Cone Forecaster is most effective on daily and weekly charts where statistical volatility models are more reliable. For lower timeframes, consider shortening the lookback periods. Always use this indicator as part of a comprehensive trading plan that includes other forms of analysis.
Normalized Volume Z-Score
The Normalized Volume Z-Score indicator measures how unusual the current trading volume is compared to its recent history.
It calculates the z-score of volume over a user-defined lookback period (default: 50 bars), optionally using log-volume normalization.
A z-score tells you how many standard deviations today’s volume is away from its mean:
Z = 0 → volume is at its average.
Z > 0 → volume is higher than average.
Z < 0 → volume is lower than average.
Threshold lines (±2 by default) highlight extreme deviations, which often signal unusual market activity.
How to Trade with It
High positive Z-score (> +2):
Indicates abnormally high volume. This often happens during breakouts, strong trend continuations, or capitulation events.
→ Traders may look for confirmation from price action (e.g., breakout candle, strong trend bar) before entering a trade.
High negative Z-score (< –2):
Indicates unusually low volume. This may signal lack of interest, consolidation, or exhaustion.
→ Traders may avoid entering new positions during these periods or expect potential reversals once volume returns.
Cross back inside thresholds:
When z-score returns inside ±2 after an extreme spike, it may suggest that the abnormal activity has cooled down.
Tips
Works best when combined with price structure (support/resistance, demand/supply zones).
Can be applied to crypto, stocks, forex, futures – anywhere volume is meaningful.
Log normalization helps reduce distortion when some days have extremely large volumes.
KeyLevel - AOCKeyLevel - AOC
✨ Features📈 Session Levels: Tracks high, low, and open prices for Asian, London, and New York sessions.📅 Multi-Timeframe Levels: Plots previous day, week, month, quarter, and yearly open/high/low levels.⚙️ Preset Modes: Choose Scalp, Intraday, or Swing presets for tailored level displays.🎨 Customizable Visuals: Adjust colors, line styles, and label abbreviations for clarity.🖼️ Legend Table: Displays a color-coded legend for quick reference to session and period levels.🔧 Flexible Settings: Enable/disable specific sessions or levels and customize UTC offsets.
🛠️ How to Use
Add to Chart: Apply the "KeyLevel - AOC" indicator on TradingView.
Configure Inputs:
Preset: Select Scalp, Intraday, or Swing, or use custom settings.
Session Levels: Toggle Asian, London, NY sessions and their open/high/low lines.
Period Levels: Enable/disable previous day, week, month, quarter, or yearly levels.
Visuals: Adjust colors, line widths, and label abbreviations.
Legend: Show/hide the legend table for level identification.
Analyze: Monitor key levels for support/resistance and session-based price action.
Track Trends: Use levels to identify breakouts, reversals, or consolidation zones.
🎯 Why Use It?
Dynamic Levels: Tracks critical price levels across multiple timeframes for comprehensive analysis.
Session Focus: Highlights key session price points for intraday trading strategies.
Customizable: Tailor displayed levels and visuals to match your trading style.
User-Friendly: Clear lines, labels, and legend table simplify price level tracking.
📝 Notes
Ensure timeframe compatibility (e.g., avoid daily charts for session levels).
Use M5 or higher timeframes for accurate session tracking; some levels disabled on M5.
Combine with indicators like RSI or MACD for enhanced trading signals.
Adjust UTC offset if session times misalign with your broker’s timezone.
Rolling Range Bands by tvigRolling Range Bands
Plots two dynamic price envelopes that track the highest and lowest prices over a Short and Long lookback. Use them to see near-term vs. broader market structure, evolving support/resistance, and volatility changes at a glance.
What it shows
• Short Bands: recent trading range (fast, more reactive).
• Long Bands: broader range (slow, structural).
• Optional step-line style and shaded zones for clarity.
• Option to use completed bar values to avoid intrabar jitter (no repaint).
How to read
• Price pressing the short high while the long band rises → short-term momentum in a larger uptrend.
• Price riding the short low inside a falling long band → weakness with trend alignment.
• Band squeeze (narrowing) → compression; watch for breakout.
• Band expansion (widening) → rising volatility; expect larger swings.
• Repeated touches/rejections of long bands → potential areas of support/resistance.
Inputs
• Short Window, Long Window (bars)
• Use Close only (vs. High/Low)
• Use completed bar values (stability)
• Step-line style and Band shading
Tips
• Works on any symbol/timeframe; tune windows to your market.
• For consistent scaling, pin the indicator to the same right price scale as the chart.
Not financial advice; combine with trend/volume/RSI or your system for entries/exits.
CryptoThunder Storm v1.21CryptoThunder Storm v1.21 — Strategy (non-repainting, HTF-aware)
CryptoThunder Storm is a Pine v6 strategy that trades the cross of two moving-average variants computed on an alternate (higher) timeframe derived from your current chart. It’s built to be non-repainting by evaluating signals only at HTF bar boundaries and by avoiding lookahead. The script can trade LONG, SHORT, BOTH, or be disabled, and it includes a one-click invert Long/Short mode.
How it works
Two MA streams (Open/Close series).
You can choose from multiple MA types (SMA/EMA/DEMA/TEMA/WMA/VWMA/SMMA/Hull/LSMA/ALMA/SSMA/TMA). The script computes:
closeSeries – MA of the (possibly delayed) close
openSeries – MA of the (possibly delayed) open
Alternate Resolution (HTF).
The inputs allow you to multiply your current chart’s timeframe (e.g., on 5m with multiplier 3 → HTF = 15m). Both series are requested via request.security() with lookahead_off.
Non-repainting gating.
Signals are evaluated once per HTF bar (htfClosed gate). This ensures entries/alerts are aligned with HTF boundaries and prevents forward-shifting.
Entry logic.
Long when closeSeriesAlt crosses above openSeriesAlt.
Short when closeSeriesAlt crosses below openSeriesAlt.
Invert mode swaps these actions (a former long signal opens a short, and vice versa).
Orders are processed on bar close (process_orders_on_close=true).
Risk management (optional).
Optional initial TP/SL exits via strategy.exit() (ticks/points). Set 0 to disable.
Visuals.
The script colors bars (optional) and plots the two HTF series with a filled band, plus compact UP/DN/CL markers that match the executed side after inversion/filtering.
Inputs & configuration
Use Alternate Resolution?
Turns the HTF logic on/off. When off, the strategy uses the chart timeframe.
Multiplier for Alternate Resolution
Multiplies the current timeframe to form the HTF (e.g., 3×).
MA Type / Period / Offsets
MA Type — choose from 12 variants.
MA Period — core length.
Offset for LSMA / Sigma for ALMA — MA-specific tuning.
Offset for ALMA — center of mass for ALMA.
Delay Open/Close MA — shifts the source back by n bars for a more conservative (non-peek) calculation. Keep at 0 unless you know you want extra delay.
Show coloured Bars to indicate Trend?
Colors bars relative to HTF band.
What trades should be taken: LONG / SHORT / BOTH / NONE
Filters which sides are actually traded.
Invert Long/Short logic?
Swaps long ↔ short everywhere (orders, markers, JSON alerts).
Backtest window (Number of Bars for Back Testing)
Crude limiter to speed up testing. 0 = test full history.
TP/SL (Initial Stop Loss / Target Profit Points)
Values in ticks/points. 0 disables. They apply to both sides via strategy.exit().
Alert options
Turn on alerts (JSON)
Show alert marks (UP/DOWN/CLOSE)
Send CLOSE alerts (toggle)
The strategy fires alert() internally. Create an alert on “Any alert() function call”.
The payload is a simple JSON string:{ "text":"C98USDT.P UP"}
Messages:
UP — a long entry was executed (or, with Invert on: the inverted long signal that opens a long).
DOWN — a short entry executed.
CLOSE — position closed or flipped.
Tip: If you want to route long/short to different webhooks, parse the text field for UP, DOWN, or CLOSE
Plotting & markers
Band: Fills between the two HTF MA lines.
Bar color (optional): Quick visual trend cue.
Markers:
▲ “UP” below bar when a long executes.
▼ “DN” above bar when a short executes.
✖ “CL” on position close/flip.
These reflect the final executed side, after trade filters and after Invert mode
Best practices & notes
Non-repainting design.
request.security(..., lookahead_off) prevents future data leakage.
Signals are gated to HTF bar boundaries, so you won’t get intra-HTF recalculations.
Strategy orders are processed at bar close.
Choosing the multiplier.
A 2×–4× multiplier often balances responsiveness vs stability (e.g., 5m→15m or 20m). Larger multipliers reduce churn and false signals.
TP/SL units.
Values are in ticks/points of the chart symbol. On crypto, check your instrument’s tick size and adjust accordingly.
Trade filters apply after inversion.
With invertLS = true and tradeType = LONG, only final longs (post-inversion) are allowed.
Strategy vs chart counts.
The Tester reports closed trades; your chart shows entries/markers including the latest open trade. This can explain 8 vs 12 discrepancies over short windows.
Performance.
calc_on_every_tick=false and the backtest limiter keep the script responsive on long histories.
Tips: user on mid-volume crypto pair, 1M chart, best MA is: SMMA, Hull, SSMA, DEMA, TEMA.
This strategy is for research and education. Markets carry risk; past performance doesn’t guarantee future results. Always forward-test on paper and validate your exchange execution, tick size, and fees before deploying live.
Confluence Engine Confluence Engine is a practical, non-repainting decision aid that scores market conditions from −100…+100 by combining six proven modules: Trend, Momentum, Volatility, Volume, Structure, and an HTF confirmation. It’s designed for crypto, forex, indices, and stocks, and it fires entries only on confirmed bar closes.
What’s inside
Trend: EMA 20/50/200 alignment plus a Supertrend/KAMA toggle (you choose the baseline).
Momentum: RSI + MACD with confirmed-pivot divergence detection.
Volatility: ATR% and Bollinger Band width vs its average to favor expansion over chop.
Volume: OBV-style cumulative flow slope + volume surge vs SMA×multiplier.
Market Structure: Confirmed pivots, BOS (break of structure) and CHOCH (change of character).
HTF Filter: Closed higher-timeframe context via request.security(..., barmerge.gaps_on, barmerge.lookahead_off).
Why it does not repaint
Signals are computed and plotted on closed bars only.
Pivots/divergences use confirmed pivot points (no forward look).
HTF series are fetched with lookahead_off and use the last closed HTF bar in realtime.
No future bar references are used for entries or alerts.
How to use (3 steps)
Pick a timeframe pair: use a 4–6× HTF multiplier (5m→30m, 15m→1h, 1h→4h, 4h→1D, 1D→1W).
Trade with the HTF: take longs only when the HTF filter is bullish; shorts only when bearish.
Prefer expansion: act when BB width > its average and ATR% is elevated; skip most signals in compression.
Suggested presets (start here)
Crypto (BTC/ETH): 15m→1h, 1h→4h. stLen=10, stMult=3.0, bbLen=20, surgeMul=1.8–2.2, thresholds +40 / −40 (intraday can try +35 / −35).
Forex majors: 15m→1h, 1h→4h. stLen=10–14, stMult=2.5–3.0, surgeMul=1.5–1.8, thresholds +35 / −35 (swing: +45 / −45).
US equities (liquid): 5m→30m/1h, 15m→1h/2h. stMult=3.0–3.5, surgeMul=1.6–2.0, thresholds +45 / −45 to reduce chop.
Indices (ES/NQ): 5m→30m, 15m→1h. Defaults are fine; start at +40 / −40.
Gold/Oil: 15m→1h, 1h→4h. Thresholds +35 / −35, surgeMul=1.6–1.9.
Inputs (plain English)
Use Supertrend (off = KAMA): choose the trend baseline.
EMA Fast/Mid/Slow: 20/50/200 by default for classic stack.
RSI/MACD + divergence pivots: momentum and exhaustion context.
ATR Length & BB Length: volatility regime detection.
Volume SMA & Surge Multiplier: defines “meaningful” volume spikes.
Pivot left/right & “Confirm BOS/CHOCH on Close”: structure strictness.
Enable HTF & Higher Timeframe: confirms the lower timeframe direction.
Thresholds (+long / −short): when the score crosses these, you get signals.
Signals & alerts (IDs preserved)
Entry shapes plot at bar close when the score crosses thresholds.
Alerts you can enable:
CONFLUENCE LONG — long entry signal
CONFLUENCE SHORT — short entry signal
BULLISH BIAS — score turned positive
BEARISH BIAS — score turned negative
Best practices
Focus on signals with HTF agreement and volatility expansion; require volume participation (surge or rising OBV slope) for higher quality.
Raise thresholds (+45/−45 or +50/−50) to reduce whipsaws in choppy sessions.
Lower thresholds (+35/−35) only if you also require volatility/volume filters.
Performance & scope
Works across crypto/FX/equities/indices; no broker data or special feeds required.
No repainting by design; signals/alerts are computed on closed bars.
As with any tool, results vary by regime; always combine with risk management.
Disclosure
This script is for educational purposes only and is not financial advice. Trading involves risk. Test on historical data and paper trade before using live.