SAT_BACKTEST @description TODO: Regroupement of useful functionsLibrary "SAT_BACKTEST"
ex_timezone(tz)
switch case return exact @timezone for timezone input
Parameters:
tz (simple string)
Returns: syminfo.timezone or tz
if_in_date_range(usefromDate, fromDate, usetoDate, toDate, src_timezone, dst_timezone)
if_in_date_range : check if @time_close is range
Parameters:
usefromDate (simple bool)
fromDate (simple int)
usetoDate (simple bool)
toDate (simple int)
src_timezone (simple string)
dst_timezone (simple string)
Returns: true if @time_close is range
if_in_session(useSessionStart, sessionStartHour, sessionStartMinute, useSessionEnd, sessionEndHour, sessionEndMinute, useSessionDay, mon, tue, wed, thu, fri, sat, sun, src_timezone, dst_timezone)
if_in_session : check if @time_close is range
Parameters:
useSessionStart (simple bool)
sessionStartHour (simple int)
sessionStartMinute (simple int)
useSessionEnd (simple bool)
sessionEndHour (simple int)
sessionEndMinute (simple int)
useSessionDay (simple bool)
mon (simple bool)
tue (simple bool)
wed (simple bool)
thu (simple bool)
fri (simple bool)
sat (simple bool)
sun (simple bool)
src_timezone (simple string)
dst_timezone (simple string)
Returns: true if @time_close is range
ค้นหาในสคริปต์สำหรับ "session"
Ext/Non EMA SignalsThis allows for one EMA to reference the regular session well the other references the extended session. A green arrow will appear above a bear candle closing above both the EMAs and a Red arrow on bull candles closing below both.
This saves me time from jumping back and forth from extended sessions and regular session.
Let me know if you have any questions, I just recently started using Pine Editor to build indicators I was not able to find in the library.
Koalafied Initial Balance Levels and ExtensionsShows the Initial Balance and range extensions for either the Daily session or individual market sessions (Asia, London, New York).
Initial Balance is the range represented by the first two segments (typically half-hour segments) of a trading session. Range extensions are a function of the longer-term trader participation, pushing price outside of the beginning 'fair' range established by the local traders. With the introduction of 24/7 markets the initial balance is often now regarded as less important than in the past, however re-calculating IB for multiple trading sessions may reinstitute insight to Market Direction and Confidence
% of Average Volume% of Average Volume (RVOL)
What it is
This indicator measures cumulative volume during pre market and separately during the first 10 minutes of trading and compares it to the average 30 day volume. This matters as a high ratio of volume within the premarket and then during the first 10 minutes of trading can correlate to a stock that has a higher probability of trending in that direction throughout the day.
What it’s meant to do
Identify abnormally high or low participation early in the day.
Normalize volume by time of session, so 9:40 volume is compared to past 9:40 volume—not to the full-day total.
Provide consistent RVOL across 1–5–15–60 minute charts (the same market state yields similar readings).
Handle pre-market cleanly (optional) without inflating RVOL.
How it works (plain English)
Cumulative Intraday Volume: Adds up all bars from the session (or pre-market, if enabled) up to “now.”
Time-Matched Baseline: For each prior day in your lookback, it accumulates only up to the same intraday minute and averages those values.
RVOL %: RVOL = (Today cumulative / Average cumulative at same time) × 100.
This “like-for-like” approach prevents the classic mistakes that overstate RVOL in pre-market or make it drift with timeframe changes.
Works best on
Intraday charts: 1, 2, 3, 4, 5, 10, 15, 30, 45, 60 min
Regular & extended hours: NYSE/Nasdaq equities, futures, ETFs
Daily/weekly views are supported for reference, but the edge comes from intraday time-matched analysis.
Tip: For thin names or very early pre-market, expect more variability—lower liquidity increases noise.
Customization (Inputs → Settings)
Lookback Sessions (e.g., 20): How many prior trading days to build the average.
Include Pre-Market (on/off): If on, RVOL accumulates from pre-market start and compares to historical pre-market at the same time; if off, it begins at the regular session open only.
Session Timezone / Exchange Hours: Choose the session definition that matches your market (e.g., NYSE) so “time-matched” means the same thing every day.
Cutoff Minute (Optional): Fix a reference minute (e.g., 6:40 a.m. PT / 9:40 a.m. ET) to evaluate RVOL at a standard check-in time.
Smoothing (Optional): Apply a short moving average to the RVOL line to reduce jitter.
Thresholds & Colors: Set levels (e.g., 150%, 300%) to color the plot/labels and trigger alerts.
Show Labels/Debug: Toggle on-chart labels (current RVOL%, baseline vols) for quick audits.
On-chart visuals & alerts
RVOL% Line/Histogram: Color-coded by thresholds (e.g., >300% “exceptional”, >150% “elevated”).
Session Markers: Optional vertical lines for pre-market/regular open.
Alerts:
RVOL Crosses Above X% (e.g., 150%, 300%)
RVOL Crosses Below X%
RVOL Rising/Falling (slope-based, optional)
Good defaults to start
Lookback: 20 sessions
Pre-market: Off for large caps, On for momentum screens
Thresholds: 150% (notable), 300% (exceptional)
Smoothing: 0–3 bars (or off for fastest response)
Notes & best practices
Timeframe consistency: Because calculations are time-matched, RVOL should remain directionally consistent across intraday timeframes. If you see divergences, confirm your session hours & timezone match your instrument’s exchange.
Holiday/half days: These are included in history; you can shorten lookback or exclude such sessions if your workflow prefers.
Low-float names: Consider a slightly longer lookback to reduce outlier effects.
TL;DR
A time-matched RVOL that treats pre-market correctly, stays stable across intraday timeframes, and is fully customizable for your exchange hours, thresholds, and alerts—so you can spot real participation when it matters.
J12Matic Builder by galgoomA flexible Renko/tick strategy that lets you choose between two entry engines (Multi-Source 3-way or QBand+Moneyball), with a unified trailing/TP exit engine, NY-time trading windows with auto-flatten, daily profit/loss and trade-count limits (HALT mode), and clean webhook routing using {{strategy.order.alert_message}}.
Highlights
Two entry engines
Multi-Source (3): up to three long/short sources with Single / Dual / Triple logic and optional lookback.
QBand + Moneyball: Gate → Trigger workflow with timing windows, OR/AND trigger modes, per-window caps, optional same-bar fire.
Unified exit engine: Trailing by Bricks or Ticks, plus optional static TP/SL.
Session control (NY time): Evening / Overnight / NY Session windows; auto-flatten at end of any enabled window.
Day controls: Profit/Loss (USD) and Trade-count limits. When hit, strategy HALTS new entries, shows an on-chart label/background.
Alert routing designed for webhooks: Every order sets alert_message= so you can run alerts with:
Condition: this strategy
Notify on: Order fills only
Message: {{strategy.order.alert_message}}
Default JSONs or Custom payloads: If a Custom field is blank, a sensible default JSON is sent. Fill a field to override.
How to set up alerts (the 15-second version)
Create a TradingView alert with this strategy as Condition.
Notify on: Order fills only.
Message: {{strategy.order.alert_message}} (exactly).
If you want your own payloads, paste them into Inputs → 08) Custom Alert Payloads.
Leave blank → the strategy sends a default JSON.
Fill in → your text is sent as-is.
Note: Anything you type into the alert dialog’s Message box is ignored except the {{strategy.order.alert_message}} token, which forwards the payload supplied by the strategy at order time.
Publishing notes / best practices
Renko users: Make sure “Renko Brick Size” in Inputs matches your chart’s brick size exactly.
Ticks vs Bricks: Exit distances switch instantly when you toggle Exit Units.
Same-bar flips: If enabled, a new opposite signal will first close the open trade (with its exit payload), then enter the new side.
HALT mode: When day profit/loss limit or trade-count limit triggers, new entries are blocked for the rest of the session day. You’ll see a label and a soft background tint.
Session end flatten: Auto-closes positions at window ends; these exits use the “End of Session Window Exit” payload.
Bar magnifier: Strategy is configured for on-close execution; you can enable Bar Magnifier in Properties if needed.
Default JSONs (used when a Custom field is empty)
Open: {"event":"open","side":"long|short","symbol":""}
Close: {"event":"close","side":"long|short|flat","reason":"tp|sl|flip|session|limit_profit|limit_loss","symbol":""}
You can paste any text/JSON into the Custom fields; it will be forwarded as-is when that event occurs.
Input sections — user guide
01) Entries & Signals
Entry Logic: Choose Multi-Source (3) or QBand + Moneyball (pick one).
Enable Long/Short Signals: Master on/off switches for entering long/short.
Flip on opposite signal: If enabled, a new opposite signal will close the current position first, then open the other side.
Signal Logic (Multi-Source):
Single: any 1 of the 3 sources > 0
Dual: Source1 AND Source2 > 0
Triple (default): 1 AND 2 AND 3 > 0
Long/Short Signal Sources 1–3: Provide up to three series (often indicators). A positive value (> 0) is treated as a “pulse”.
Use Lookback: Keeps a source “true” for N bars after it pulses (helps catch late triggers).
Long/Short Lookback (bars): How many bars to remember that pulse.
01b) QBands + Moneyball (Gate -> Trigger)
Allow same-bar Gate->Trigger: If ON, a trigger can fire on the same bar as the gate pulse.
Trigger must fire within N bars after Gate: Size of the gate window (in bars).
Max signals per window (0 = unlimited): Cap the number of entries allowed while a gate window is open.
Buy/Sell Source 1 – Gate: Gate pulse sources that open the buy/sell window (often a regime/zone, e.g., QBands bull/bear).
Trigger Pulse Mode (Buy/Sell): How to detect a trigger pulse from the trigger sources (Change / Appear / Rise>0 / Fall<0).
Trigger A/B sources + Extend Bars: Primary/secondary triggers plus optional extension to persist their pulse for N bars.
Trigger Mode: Pick S2 only, S3 only, S2 OR S3, or S2 AND S3. AND mode remembers both pulses inside the window before firing.
02) Exit Units (Trailing/TP)
Exit Units: Choose Bricks (Renko) or Ticks. All distances below switch accordingly.
03) Tick-based Trailing / Stops (active when Exit Units = Ticks)
Initial SL (ticks): Starting stop distance from entry.
Start Trailing After (ticks): Start trailing once price moves this far in your favor.
Trailing Distance (ticks): Offset of the trailing stop from peak/trough once trailing begins.
Take Profit (ticks): Optional static TP distance.
Stop Loss (ticks): Optional static SL distance (overrides trailing if enabled).
04) Brick-based Trailing / Stops (active when Exit Units = Bricks)
Renko Brick Size: Must match your chart’s brick size.
Initial SL / Start Trailing After / Trailing Distance (bricks): Same definitions as tick mode, measured in bricks.
Take Profit / Stop Loss (bricks): Optional static distances.
05) TP / SL Switch
Enable Static Take Profit: If ON, closes the trade at the fixed TP distance.
Enable Static Stop Loss (Overrides Trailing): If ON, trailing is disabled and a fixed SL is used.
06) Trading Windows (NY time)
Use Trading Windows: Master toggle for all windows.
Evening / Overnight / NY Session: Define each session in NY time.
Flatten at End of : Auto-close any open position when a window ends (sends the Session Exit payload).
07) Day Controls & Limits
Enable Profit Limits / Profit Limit (Dollars): When daily net PnL ≥ limit → auto-flatten and HALT.
Enable Loss Limits / Loss Limit (Dollars): When daily net PnL ≤ −limit → auto-flatten and HALT.
Enable Trade Count Limits / Number of Trades Allowed: After N entries, HALT new entries (does not auto-flatten).
On-chart HUD: A label and soft background tint appear when HALTED; a compact status table shows Day PnL, trade count, and mode.
08) Custom Alert Payloads (used as strategy.order.alert_message)
Long/Short Entry: Payload sent on entries (if blank, a default open JSON is sent).
Regular Long/Short Exit: Payload sent on closes from SL/TP/flip (if blank, a default close JSON is sent).
End of Session Window Exit: Payload sent when any enabled window ends and positions are flattened.
Profit/Loss/Trade Limit Close: Payload sent when daily profit/loss limit causes auto-flatten.
Tip: Any tokens you include here are forwarded “as is”. If your downstream expects variables, do the substitution on the receiver side.
Known limitations
No bracket orders from Pine: This strategy doesn’t create OCO/attached brackets on the broker; it simulates exits with strategy logic and forwards your payloads for external automation.
alert_message is per order only: Alerts fire on order events. General status pings aren’t sent unless you wire a separate indicator/alert.
Renko specifics: Backtests on synthetic Renko can differ from live execution. Always forward-test on your instrument and settings.
Quick checklist before you publish
✅ Brick size in Inputs matches your Renko chart
✅ Exit Units set to Bricks or Ticks as you intend
✅ Day limits/Windows toggled as you want
✅ Custom payloads filled (or leave blank to use defaults)
✅ Your alert uses Order fills only + {{strategy.order.alert_message}}
GTrader-ICT All In One-Comumnity VersionMeet the **GTrader-ICT All In One **, a comprehensive toolkit designed to integrate key Inner Circle Trader (ICT) concepts directly onto your chart. This powerful overlay indicator consolidates multiple essential tools, streamlining your technical analysis and helping you identify key temporal and price-based events.
📚 References & Inspiration
This indicator stands on the shoulders of giants. With the help of **tradeforopp** and **LuxAlgo**. The concepts and some implementation details were referenced from the following excellent, publicly available scripts:
ICT Killzones: The session drawing and pivot logic is adapted from tradeforopp
ICT Macros: The macro detection and plotting functionality is inspired by the work of Lux Algo , particularly their widely-used indicators covering ICT concepts.
🎯 Core Features
* **ICT Killzones:** Visualize critical trading sessions with customizable boxes. You can easily toggle and style the **Asia**, **London**, and **New York (AM, Lunch, PM)** sessions to focus on the liquidity and volatility that matter most to your strategy.
* Fully customizable session times and colors.
* Timezone support to align sessions with your local or preferred trading time (defaults to `America/New_York`).
* **ICT Macros:** Automatically identify and plot specific, short-duration time windows where institutional algorithms are known to be active (e.g., `09:50-10:10`, `14:50-15:10`, etc.).
* Plots the high/low range of the macro, providing clear levels of interest.
* Utilizes 1-minute data for precision, even when viewing on 3-minute or 5-minute charts.
📚 Optimization over the other original indicators
We add the custom input for macros session, users just need to input the from/to hour: minute format, and they will be converted into session objects in pinescript
The macro draws function is optimized, removing redundant draws, leading to better performance
Add "Distance from Macro Line to Chart" option
Add "Session Drawings Limit" for better performance
⚠️ Notes on TradingView Warnings
You may encounter some warnings from TradingView when using this script. These are generally expected due to the script's advanced, event-driven nature:
1. **Function Call Consistency:** The function 'box.new' should be called on each calculation for consistency, which may appear. This happens because drawing elements (like session boxes) are intentionally created only on the *first bar* of a new session, not on every single bar. This is a necessary design choice for performance and to prevent duplicate drawings.
2. **Potential for Repainting/Slow Load:** The **Macro** feature uses the `request.security_lower_tf()` function to get accurate 1-minute data. This can trigger warnings about performance or slow loading times. This is a known trade-off for achieving the precision required for the feature.
Gold 3min Trading Pro [XAU/USD]# Gold 3min Trading Pro - User Guide
## Overview
This is a professional scalping indicator specifically designed for Gold (XAU/USD) trading on 3-minute timeframes. It combines multiple technical analysis methods to provide high-probability entry signals for short-term trading.
## Key Features
### 1. Multi-Timeframe Trend Analysis
- **Major Trend**: Analyzes 15min, 1H, and 4H timeframes using moving averages
- **Short-term Trend**: Focuses on 3-minute price action and moving average alignment
- **Trend Strength**: Rated from 1-3 based on timeframe agreement
### 2. Core Indicators
- **RSI (9-period)**: Momentum oscillator for overbought/oversold conditions
- **Stochastic (9-period)**: %K and %D lines for entry timing
- **MACD**: Additional trend confirmation
- **Volume Analysis**: Detects volume spikes for signal validation
- **ATR-based Volatility Filter**: Ensures adequate market movement
### 3. Signal Types
- **Primary Signals**: Green triangles (LONG) and Red triangles (SHORT)
- **Enhanced Signals**: Stronger signals with multiple confirmations
- **Confirmation Signals**: Small circles for stochastic crossovers
## How to Use
### 1. Setup
- **Timeframe**: Use on 3-minute charts for Gold (XAU/USD)
- **Settings**: Default settings are optimized for Gold scalping
- **Session Filter**: Enable for London/New York sessions (recommended)
### 2. Entry Conditions
#### LONG Entry:
- Major trend is bullish (green background)
- Short-term trend is up or neutral
- RSI shows bullish momentum
- Stochastic indicates oversold recovery
- Volume spike confirmation
- Strong price action (bullish candle)
#### SHORT Entry:
- Major trend is bearish (red background)
- Short-term trend is down or neutral
- RSI shows bearish momentum
- Stochastic indicates overbought reversal
- Volume spike confirmation
- Strong price action (bearish candle)
### 3. Trade Management
- **Quick Target**: 50% of ATR-based calculation
- **Main Target**: Full ATR-based target
- **Stop Loss**: 60% of ATR below/above entry
- **Time Limit**: Exit if no progress within 20 bars (60 minutes)
### 4. Risk Management
- **Position Size**: Risk 1-2% of account per trade
- **Maximum Trades**: 3-5 trades per session
- **Avoid**: Low volatility periods and major news events
## Visual Elements
### Background Colors
- **Light Green**: Bullish major trend
- **Light Red**: Bearish major trend
- **Yellow**: Volume spike detected
- **Intense Colors**: Very strong trend alignment
### Chart Indicators
- **RSI Line (Blue)**: Main momentum indicator
- **Stochastic %K (Orange)**: Fast stochastic line
- **Stochastic %D (Yellow)**: Slow stochastic line
- **Horizontal Lines**: 70 (overbought), 30 (oversold), 50 (midline)
### Information Table (Top Right)
- Total signal count and performance statistics
- Current market conditions and trend strength
- RSI levels and volatility status
- Trading session information
- Last signal timing
## Alert System
### Standard Alerts
- **Scalp Long Signal**: Basic long entry signal
- **Scalp Short Signal**: Basic short entry signal
- **Premium Signals**: High-quality signals with strong confirmation
- **Trend Reversal**: Major trend change notifications
### Alert Setup
1. Right-click on chart → "Add Alert"
2. Select desired alert condition
3. Configure notification method (popup, email, webhook)
4. Set alert frequency to "Once Per Bar Close"
## Best Practices
### 1. Trading Sessions
- **Optimal**: London-NY overlap (3:00-5:00 PM EST)
- **Good**: London session (2:00-11:00 AM EST)
- **Avoid**: Asian session and major news releases
### 2. Market Conditions
- **Best**: Trending markets with normal to high volatility
- **Moderate**: Ranging markets during active sessions
- **Avoid**: Extremely low volatility or choppy conditions
### 3. Confirmation Rules
- Wait for signal triangle to appear
- Check that major trend aligns with signal direction
- Verify volume spike (yellow background)
- Ensure volatility is adequate (check info table)
### 4. Entry Timing
- Enter immediately after signal confirmation
- Use market orders for scalping speed
- Set stop loss and take profit levels immediately
## Settings Customization
### Essential Settings
- **MA Type**: EMA (recommended) or SMA
- **RSI Length**: 9 (default, can adjust 5-14)
- **Volume Threshold**: 1.8 (higher = fewer but stronger signals)
- **Volatility Filter**: Keep enabled for better signal quality
### Display Options
- **Show Scalping Signals**: Main entry signals
- **Show Performance Stats**: Information table
- **Show Trend Filter**: Background trend colors
- **Use Time Filter**: Session-based filtering
## Performance Optimization
### 1. Backtesting Tips
- Test on different market conditions
- Analyze win rate and average profit/loss
- Adjust settings based on historical performance
### 2. Signal Quality
- Higher trend strength (2-3) = better signals
- Volume confirmation improves success rate
- Enhanced signals have higher probability
### 3. Risk Control
- Never risk more than 2% per trade
- Use proper position sizing
- Stop trading after 3 consecutive losses
## Troubleshooting
### Common Issues
1. **No Signals**: Check volatility filter and session timing
2. **Too Many Signals**: Increase volume threshold or enable filters
3. **Poor Performance**: Verify timeframe (must be 3-minute) and symbol (XAU/USD)
### Support
- Ensure TradingView Pro+ subscription for multi-timeframe data
- Verify Gold symbol matches your broker's format
- Update to latest TradingView version
This indicator is designed for experienced traders familiar with scalping techniques and risk management. Always practice on demo accounts before live trading.
Delta Volume BubblesDelta Volume Bubbles
Overview
The Delta Volume Bubbles indicator is an advanced order flow visualization tool that displays buying and selling pressure through dynamic bubble representations on your chart. Unlike traditional volume indicators that only show total volume, this indicator calculates the net delta volume (difference between buying and selling volume) and presents it as color-coded bubbles of varying sizes.
How It Works
Core Calculation Method
The indicator uses a sophisticated approach to estimate delta volume from standard OHLCV data:
1. Price Action Analysis: Analyzes the relationship between open, high, low, and close prices to determine market aggression
2. Body Ratio Calculation: body_ratio = |close - open| / (high - low)
3. Aggressive Factor: Applies multipliers based on price action:
- Strong moves (body_ratio > 0.7): 1.5x multiplier
- Moderate moves (body_ratio > 0.4): 1.2x multiplier
- Weak moves: 1.0x multiplier
4. Delta Volume Estimation:
- Buy Volume: price_change > 0 ? volume × aggressive_factor : 0
- Sell Volume: price_change < 0 ? volume × aggressive_factor : 0
- Net Delta: buy_volume - sell_volume
5. Delta Strength Normalization: delta_strength = |net_delta| / sma(volume, 20)
Percentile-Based Filtering
The indicator uses percentile filtering instead of fixed thresholds, making it adaptive to market conditions:
- Bubble Filter: Only shows bubbles when volume exceeds the specified percentile (default: 60%)
- Label Filter: Only displays numbers when volume exceeds a higher percentile (default: 90%)
- Dynamic Adaptation: Automatically adjusts to changing market volatility
Visual Elements
Bubble Sizes
- Tiny: Delta strength < 0.3
- Small: Delta strength 0.3 - 0.7
- Normal: Delta strength 0.7 - 1.2
- Large: Delta strength 1.2 - 2.0
- Huge: Delta strength > 2.0
Color Coding
- Aggressive Buy (Bright Green): Strong buying pressure with high body ratio
- Aggressive Sell (Bright Red): Strong selling pressure with high body ratio
- Passive Buy (Light Green): Moderate buying pressure
- Passive Sell (Light Red): Moderate selling pressure
Intensity Mode
Alternative coloring based on delta strength rather than flow direction:
- Gray: Low intensity (< 0.5)
- Blue: Medium intensity (0.5 - 1.0)
- Orange: High intensity (1.0 - 2.0)
- Red: Extreme intensity (> 2.0)
Parameters
Order Flow Settings
- Show Bubbles: Toggle bubble display on/off
- Bubble Volume %ile: Percentile threshold for bubble display (0-100%)
- Intensity Mode: Switch between flow-based and intensity-based coloring
Bubble Labels
- Show Numbers in Bubbles: Toggle numerical labels on/off
- Label Volume %ile: Higher percentile threshold for label display (0-100%)
Numbers are displayed in K-notation (e.g., 25000 → 25K, 1500000 → 1.5M) for better readability.
Ideal Usage Scenarios
Best Market Conditions
- High volume sessions: More accurate delta calculations
- Trending markets: Clear directional flow identification
- Breakout scenarios: Spot aggressive buying/selling at key levels
- Support/resistance testing: Identify accumulation vs distribution
Trading Applications
1. Entry Timing: Look for aggressive flow in your trade direction
2. Exit Signals: Watch for opposing aggressive flow
3. Trend Confirmation: Consistent flow direction confirms trends
4. Volume Climax: Huge bubbles may indicate exhaustion points
Optimization Tips
Parameter Adjustment
- Lower percentiles (40-60%): More bubbles, good for active markets
- Higher percentiles (70-90%): Fewer bubbles, focus on significant events
- Label percentile: Set 20-30% higher than bubble percentile for clarity
Visual Optimization
- Intensity mode: Better for identifying unusual volume spikes
- Flow mode: Better for directional bias analysis
- Label toggle: Turn off in crowded markets, on for key levels
Limitations
- Estimation-based: Uses approximation algorithms, not true order flow data
- Volume dependency: Requires accurate volume data to function properly
- Timeframe sensitivity: Works best on intraday timeframes with active volume
- Market hours: Most effective during high-volume trading sessions
Technical Notes
The indicator implements advanced Pine Script features including:
- Dynamic percentile calculations using ta.percentile_linear_interpolation()
- Conditional plotting with multiple size categories
- Custom number formatting functions
- Efficient label management to prevent display limits
This tool is designed for traders who want to understand the underlying buying and selling pressure beyond simple volume analysis, providing insights into market sentiment and potential turning points.
Auto Price Action SR Levels by Chaitu50cAuto Price Action SR Levels by Chaitu50c:
This is a session-based support and resistance indicator that identifies price levels based on actual candle activity, without relying on traditional indicators. It works by clustering open, high, low, or close values of past candles that frequently occur within a defined price range, making it a reliable price action-based tool for intraday traders.
The indicator calculates these levels at the start of each new trading session (based on NSE 09:15 time) and keeps them static throughout the session. This avoids unnecessary noise or flickering due to live price action, giving traders consistent zones to work with during the day.
FEATURES:
* Automatic detection of support and resistance levels based on candle price hits
* Cluster formation using high/low or open/close logic
* Static levels: calculated once per session and remain unchanged until the next session
* Adjustable settings for:
* Cluster range (in points)
* Number of lookback candles
* Line width
* Line color (default: black)
* Minimalist design for a clean chart experience
HOW IT WORKS:
The indicator looks back over a defined number of candles at the beginning of each session. It clusters prices that fall within a specified range (e.g., 250 points) and counts how many times they appear as open, high, low, or close values. If a price level is hit at least once (default), it is considered significant and a line is plotted.
Because clustering is done once per session, the lines do not shift during the session. This allows traders to base decisions on fixed, stable levels formed by prior market structure.
RECOMMENDED FOR:
* Intraday traders
* Price action traders
* Traders who prefer clean charts with logical SR zones
* Nifty, BankNifty, and stock-based day trading
Created by Chaitu50c for traders who rely on logic and structure, not signals.
Disclaimer:
This indicator is intended for educational and informational purposes only. It does not constitute financial advice or trading recommendations. Use at your own discretion and always manage risk responsibly.
---
Let me know if you’d like to include use-case examples or screenshots before publishing.
The VoVix Experiment The VoVix Experiment
The VoVix Experiment is a next-generation, regime-aware, volatility-adaptive trading strategy for futures, indices, and more. It combines a proprietary VoVix (volatility-of-volatility) anomaly detector with price structure clustering and critical point logic, only trading when multiple independent signals align. The system is designed for robustness, transparency, and real-world execution.
Logic:
VoVix Regime Engine: Detects pre-move volatility anomalies using a fast/slow ATR ratio, normalized by Z-score. Only trades when a true regime spike is detected, not just random volatility.
Cluster & Critical Point Filters: Price structure and volatility clustering must confirm the VoVix signal, reducing false positives and whipsaws.
Adaptive Sizing: Position size scales up for “super-spikes” and down for normal events, always within user-defined min/max.
Session Control: Trades only during user-defined hours and days, avoiding illiquid or high-risk periods.
Visuals: Aurora Flux Bands (From another Original of Mine (Options Flux Flow): glow and change color on signals, with a live dashboard, regime heatmap, and VoVix progression bar for instant insight.
Backtest Settings
Initial capital: $10,000
Commission: Conservative, realistic roundtrip cost:
15–20 per contract (including slippage per side) I set this to $25
Slippage: 3 ticks per trade
Symbol: CME_MINI:NQ1!
Timeframe: 15 min (but works on all timeframes)
Order size: Adaptive, 1–2 contracts
Session: 5:00–15:00 America/Chicago (default, fully adjustable)
Why these settings?
These settings are intentionally strict and realistic, reflecting the true costs and risks of live trading. The 10,000 account size is accessible for most retail traders. 25/contract including 3 ticks of slippage are on the high side for MNQ, ensuring the strategy is not curve-fit to perfect fills. If it works here, it will work in real conditions.
Forward Testing: (This is no guarantee. I've provided these results to show that executions perform as intended. Test were done on Tradovate)
ALL TRADES
Gross P/L: $12,907.50
# of Trades: 64
# of Contracts: 186
Avg. Trade Time: 1h 55min 52sec
Longest Trade Time: 55h 46min 53sec
% Profitable Trades: 59.38%
Expectancy: $201.68
Trade Fees & Comm.: $(330.95)
Total P/L: $12,576.55
Winning Trades: 59.38%
Breakeven Trades: 3.12%
Losing Trades: 37.50%
Link: www.dropbox.com
Inputs & Tooltips
VoVix Regime Execution: Enable/disable the core VoVix anomaly detector.
Volatility Clustering: Require price/volatility clusters to confirm VoVix signals.
Critical Point Detector: Require price to be at a statistically significant distance from the mean (regime break).
VoVix Fast ATR Length: Short ATR for fast volatility detection (lower = more sensitive).
VoVix Slow ATR Length: Long ATR for baseline regime (higher = more stable).
VoVix Z-Score Window: Lookback for Z-score normalization (higher = smoother, lower = more reactive).
VoVix Entry Z-Score: Minimum Z-score for a VoVix spike to trigger a trade.
VoVix Exit Z-Score: Z-score below which the regime is considered decayed (exit).
VoVix Local Max Window: Bars to check for local maximum in VoVix (higher = stricter).
VoVix Super-Spike Z-Score: Z-score for “super” regime events (scales up position size).
Min/Max Contracts: Adaptive position sizing range.
Session Start/End Hour: Only trade between these hours (exchange time).
Allow Weekend Trading: Enable/disable trading on weekends.
Session Timezone: Timezone for session filter (e.g., America/Chicago for CME).
Show Trade Labels: Show/hide entry/exit labels on chart.
Flux Glow Opacity: Opacity of Aurora Flux Bands (0–100).
Flux Band EMA Length: EMA period for band center.
Flux Band ATR Multiplier: Width of bands (higher = wider).
Compliance & Transparency
* No hidden logic, no repainting, no pyramiding.
* All signals, sizing, and exits are fully explained and visible.
* Backtest settings are stricter than most real accounts.
* All visuals are directly tied to the strategy logic.
* This is not a mashup or cosmetic overlay; every component is original and justified.
Disclaimer
Trading is risky. This script is for educational and research purposes only. Do not trade with money you cannot afford to lose. Past performance is not indicative of future results. Always test in simulation before live trading.
Proprietary Logic & Originality Statement
This script, “The VoVix Experiment,” is the result of original research and development. All core logic, algorithms, and visualizations—including the VoVix regime detection engine, adaptive execution, volatility/divergence bands, and dashboard—are proprietary and unique to this project.
1. VoVix Regime Logic
The concept of “volatility of volatility” (VoVix) is an original quant idea, not a standard indicator. The implementation here (fast/slow ATR ratio, Z-score normalization, local max logic, super-spike scaling) is custom and not found in public TradingView scripts.
2. Cluster & Critical Point Logic
Volatility clustering and “critical point” detection (using price distance from a rolling mean and standard deviation) are general quant concepts, but the way they are combined and filtered here is unique to this script. The specific logic for “clustered chop” and “critical point” is not a copy of any public indicator.
3. Adaptive Sizing
The adaptive sizing logic (scaling contracts based on regime strength) is custom and not a standard TradingView feature or public script.
4. Time Block/Session Control
The session filter is a common feature in many strategies, but the implementation here (with timezone and weekend control) is written from scratch.
5. Aurora Flux Bands (From another Original of Mine (Options Flux Flow)
The “glowing” bands are inspired by the idea of volatility bands (like Bollinger Bands or Keltner Channels), but the visual effect, color logic, and integration with regime signals are original to this script.
6. Dashboard, Watermark, and Metrics
The dashboard, real-time Sharpe/Sortino, and VoVix progression bar are all custom code, not copied from any public script.
What is “standard” or “common quant practice”?
Using ATR, EMA, and Z-score are standard quant tools, but the way they are combined, filtered, and visualized here is unique. The structure and logic of this script are original and not a mashup of public code.
This script is 100% original work. All logic, visuals, and execution are custom-coded for this project. No code or logic is directly copied from any public or private script.
Use with discipline. Trade your edge.
— Dskyz, for DAFE Trading Systems
ETH to RTH Gap DetectorETH to RTH Gap Detector
What It Does
This indicator identifies and tracks custom-defined gaps that form between Extended Trading Hours (ETH) and Regular Trading Hours (RTH). Unlike traditional gap definitions, this indicator uses a specialized approach - defining up gaps as the space between previous session close high to current session initial balance low, and down gaps as the space from previous session close low to current session initial balance high. Each detected gap is monitored until it's touched by price.
Key Features
Detects custom-defined ETH-RTH gaps based on previous session close and current session initial balance
Automatically identifies both up gaps and down gaps
Visualizes gaps with color-coded boxes that extend until touched
Tracks when gaps are filled (when price touches the gap area)
Offers multiple display options for filled gaps (color change, border only, pattern, or delete)
Provides comprehensive statistics including total gaps, up/down ratio, and touched gap percentage
Includes customizable alert system for real-time gap filling notifications
Features toggle options for dashboard visibility and weekend sessions
Uses time-based box coordinates to avoid common TradingView drawing limitations
How To Use It
Configure Session Times : Set your preferred RTH hours and timezone (default 9:30-16:00 America/New York)
Set Initial Balance Period : Adjust the initial balance period (default 30 minutes) for gap detection sensitivity
Monitor Gap Formation : The indicator automatically detects gaps between the previous session close and current session IB
Watch For Gap Fills : Gaps change appearance or disappear when price touches them, based on your selected style
Check Statistics : View the dashboard to see total gaps, directional distribution, and touched percentage
Set Alerts : Enable alerts to receive notifications when gaps are filled
Settings Guide
RTH Settings : Configure the start/end times and timezone for Regular Trading Hours
Initial Balance Period : Controls how many minutes after market open to calculate the initial balance (1-240 minutes)
Display Settings : Toggle gap boxes, extension behavior, and dashboard visibility
Filled Box Style : Choose how filled gaps appear - Filled (color change), Border Only, Pattern, or Delete
Color Settings : Customize colors for up gaps, down gaps, and filled gaps
Alert Settings : Control when and how alerts are triggered for gap fills
Weekend Session Toggle : Option to include or exclude weekend trading sessions
Technical Details
The indicator uses time-based coordinates (xloc.bar_time) to prevent "bar index too far" errors
Gap boxes are intelligently limited to avoid TradingView's 500-bar drawing limitation
Box creation and fill detection use proper range intersection logic for accuracy
Session detection is handled using TradingView's session string format for reliability
Initial balance detection is precisely calculated based on time difference
Statistics calculations exclude zero-division scenarios for stability
This indicator works best on futures markets with extended and regular trading hours, especially indices (ES, NQ, RTY) and commodities. Performs well on timeframes from 1-minute to 1-hour.
What Makes It Different
Most gap indicators focus on traditional open-to-previous-close gaps, but this tool offers a specialized definition more relevant to ETH/RTH transitions. By using the initial balance period to define gap edges, it captures meaningful price discrepancies that often provide trading opportunities. The indicator combines sophisticated gap detection logic with clean visualization and comprehensive tracking statistics. The customizable fill styles and integrated alert system make it practical for both chart analysis and active trading scenarios.
Cumulative Histogram TickThis script is designed to create a cumulative histogram based on tick data from a specific financial instrument. The histogram resets at the start of each trading session, which is defined by a fixed time.
Key Components:
Tick Data Retrieval:
The script fetches the closing tick values from the specified instrument using request.security("TICK.NY", timeframe.period, close). This line ensures that the script works with the tick data for each bar on the chart.
Session Start and End Detection:
Start Hour: The script checks if the current bar's time is 9:30 AM (hour == 9 and minute == 30). This is used to reset the cumulative value at the beginning of each trading session.
End Hour: It also checks if the current bar's time is 4:00 PM (hour == 16). However, this condition is used to prevent further accumulation after the session ends.
Cumulative Value Management:
Reset: When the start hour condition is met (startHour), the cumulative value (cumulative) is reset to zero. This ensures that each trading session starts with a clean slate.
Accumulation: For all bars that are not at the end hour (not endHour), the tick value is added to the cumulative total. This process continues until the end of the trading session.
Histogram Visualization:
The cumulative value is plotted as a histogram using plot.style_histogram. The color of the histogram changes based on whether the cumulative value is positive (green) or negative (red).
Usage
This script is useful for analyzing intraday market activity by visualizing the accumulation of tick data over a trading session. It helps traders identify trends or patterns within each session, which can be valuable for making informed trading decisions.
London BreakOut ClassicHey there, this is my first time publishing a strategy. The strategy is based on the London Breakout Idea, an incredibly popular concept with abundant information available online.
Let me summarize the London Breakout Strategy in a nutshell: It involves identifying key price levels based on the Tokyo Session before the London Session starts. Typically, these key levels are the high and low of the previous Tokyo session. If a breakout occurs during the London session, you simply follow the trend.
The purpose of this code
After conducting my research, I came across numerous posts, videos, and articles discussing the London Breakout Strategy. I aimed to automatically test it myself to verify whether the claims made by these so-called trading gurus are accurate or not. Consequently, I wrote this script to gain an understanding of how this strategy would perform if I were to follow its basic settings blindly.
Explanation of drawings on the chart:
Red or Green Box: A box is drawn on our chart displaying the exact range of the Tokyo trading session. This box is colored red if the trend during the session was downward and green if it was upward. The box is always drawn between the high and the low between 0:00 AM and 7:00 AM UTC. You can change the settings via the Inputs "Session time Tokyo" & "Session time zone".
Green Background: The green background represents the London trading session. My code allows us to make entries only during this time. If we haven't entered a trade, any pending orders are canceled. I've also programmed a timeout at 11 pm to ensure every trade is closed before the new Tokyo session begins.
Red Line: The red line is automatically placed in the middle of our previous Tokyo range. This line acts as our stop loss. If we cross this line after entering a trade but before reaching our take profit, we'll be stopped out.
When do we enter a trade?
We wait for a candle body to close outside of the previous Tokyo range to enter a trade with the opening of the next candle. We only enter one trade per day.
Where do we put our Take Profit?
The code calculates the exact distance between our entry point and the stop loss. We are trading a risk-reward ratio of 1:1 by default, meaning our take profit is always the same number of pips away from our entry as the stop loss. The Stop Loss is always defined by the red line on the chart. You can change the risk-reward ratio via the inputs setting "CRV", to see how the result changes.
What is the purpose of this script?
I wanted to backtest the London breakout strategy to see how it actually works. Therefore, I wrote this code so that everybody can test it for themselves. You can change the settings and see how the result changes. Typically, you should test this strategy on forex markets and on either 1Min, 5 Min, or 15 Min timeframe.
What are the results?
Over the last 3-6 months (over 100 trades), trading the strategy with my default settings hasn't proven to be very successful. Consequently, I do not recommend trading this strategy blindly. The purpose of this code is to provide you with a foundation for the London Breakout Strategy, allowing you to modify and enhance it according to your preferences. If you're contemplating whether to give it a try, you can assess the results from the past months by using this code as a starting point.
ICT Silver Bullet with signals
The "ICT Silver Bullet with signals" indicator (inspired from the lectures of "The Inner Circle Trader" (ICT)),
goes a step further than the ICT Silver Bullet publication, which I made for LuxAlgo :
• uses HTF candles
• instant drawing of Support & Resistance (S/R) lines when price retraces into FVG
• NWOG - NDOG S/R lines
• signals
The Silver Bullet (SB) window which is a specific 1-hour interval where a Fair Value Gap (FVG) pattern can be formed.
When price goes back to the FVG, without breaking it, Support & Resistance lines will be drawn immediately.
There are 3 different Silver Bullet windows (New York local time):
The London Open Silver Bullet (03 AM — 04 AM ~ 03:00 — 04:00)
The AM Session Silver Bullet (10 AM — 11 AM ~ 10:00 — 11:00)
The PM Session Silver Bullet (02 PM — 03 PM ~ 14:00 — 15:00)
🔶 USAGE
This technique can visualise potential support/resistance lines, which can be used as targets.
The script contains 2 main components:
• forming of a Fair Value Gap (FVG)
• drawing support/resistance (S/R) lines
🔹 Forming of FVG
When HTF candles forms an FVG, the FVG will be drawn at the end (close) of the last HTF candle.
To make it easier to visualise the 2 HTF candles that form the FVG, you can enable
• SHOW -> HTF candles
During the SB session, when a FVG is broken, the FVG will be removed, together with its S/R lines.
The same goes if price did not retrace into FVG at the last bar of the SB session
Only exception is when "Remove broken FVG's" is disabled.
In this case a FVG can be broken, as long as price bounces back before the end of the SB session, it will remain to be visible:
🔹 Drawing support/resistance lines
S/R target lines are drawn immediately when price retraces into the FVG.
They will remain updated until they are broken (target hit)
Potential S/R lines are formed by:
• previous swings (swing settings (left-right)
• New Week Opening Gap (NWOG): close on Friday - weekly open
• New Day Opening Gap (NWOG): close previous day - current daily open
Only non-broken lines are included.
Broken =
• minimum of open and close below potential S/R line
• maximum of open and close above potential S/R line
NDOG lines are coloured fuchsia (as in the ICT lectures), NWOG are coloured white (darkmode) or black (lightmode ~ ICT lectures)
Swing line colour can be set as desired.
Here S/R includes NDOG lines:
The same situation, with "Extend Target-lines to their source" enabled:
Here with NWOG lines:
This publication contains a "Minimum Trade Framework (mTFW)", which represents the best-case expected price delivery, this is not your actual trade entry - exit range.
• 40 ticks for index futures or indices
• 15 pips for Forex pairs
The minimum distance (if applicable) can be shown by enabling "Show" - "Minimum Trade Framework" -> blue arrow from close to mTFW
Potential S/R lines needs to be higher (bullish) or lower (bearish) than mTFW.
🔶 SETTINGS
(check USAGE for deeper insights and explanation)
🔹 Only last x bars: when enabled, the script will do most of the calculations at these last x candles, potentially this can speeds calculations.
🔹 Swing settings (left-right): Sets the length, which will set the lookback period/sensitivity of the ZigZag patterns (which directs the trend and points for S/R lines)
🔹 FVG
HTF (minutes): 1-15 minutes.
• When the chart TF is equal of higher, calculations are based on current TF.
• Chart TF > 15 minutes will give the warning: "Please use a timeframe <= 15 minutes".
Remove broken FVG's: when enabled the script will remove FVG (+ associated S/R lines) immediately when FVG is broken at opposite direction.
FVG's still will be automatically removed at the end of the SB session, when there is no retrace, together with associated S/R lines,...
~ trend: Only include FVG in the same direction as the current trend
Note -> when set 'right' (swing setting) rather high ( > 3), he trend change will be delayed as well (default 'right' max 5)
Extend: extend FVG to max right side of SB session
🔹 Targets – support/resistance
Extend Target-lines to their source: extend lines to their origin
Colours (Swing S/R lines)
🔹 Show
SB session: show lines and labels of SB session (+ colour)
• Labels can be disabled separately in the 'Style' section, colour is set at the 'Inputs' section
Trend : Show trend (ZigZag, coloured ~ trend)
HTF candles: Show the 2 HTF candles that form the FVG
Minimum Trade Framework: blue arrow (if applicable)
🔶 ALERTS
There are 4 signals provided (bullish/bearish):
FVG Formed
FVG Retrace
Target reached
FVG cancelled
You can choose between dynamic alerts - only 1 alert needs to be set for all signals, or you can set specific alerts as desired.
💜 PURPLE BARS 😈
• Since TradingView has chosen to give away our precious Purple coloured Wizard Badge, bars are coloured purple 😊😉
Nifty 50 5mint Strategy
The script defines a specific trading session based on user inputs. This session is specified by a time range (e.g., "1000-1510") and selected days of the week (e.g., Monday to Friday). This session definition is crucial for trading only during specific times.
Lookback and Breakout Conditions:
The script uses a lookback period and the highest high and lowest low values to determine potential breakout points. The lookback period is user-defined (default is 10 periods).
The script also uses Bollinger Bands (BB) to identify potential breakout conditions. Users can enable or disable BB crossover conditions. BB consists of an upper and lower band, with the basis.
Additionally, the script uses Dema (Double Exponential Moving Average) and VWAP (Volume Weighted Average Price) . Users can enable or disable this condition.
Buy and Sell Conditions:
Buy conditions are met when the close price exceeds the highest high within the specified lookback period, Bollinger Bands conditions are satisfied, Dema-VWAP conditions are met, and the script is within the defined trading session.
Sell conditions are met when the close price falls below the lowest low within the lookback period, Bollinger Bands conditions are satisfied, Dema-VWAP conditions are met, and the script is within the defined trading session.
When either condition is met, it triggers a "long" or "short" position entry.
Trailing Stop Loss (TSL):
Users can choose between fixed points ( SL by points ) or trailing stop (Profit Trail).
For fixed points, users specify the number of points for the stop loss. A fixed stop loss is set at a certain distance from the entry price if a position is opened.
For Profit Trail, users can enable or disable this feature. If enabled, the script uses a "trail factor" (lookback period) to determine when to adjust the stop loss.
If the price moves in the direction of the trade and reaches a certain level (determined by the trail factor), the stop loss is adjusted, trailing behind the price to lock in profits.
If the close price falls below a certain level (lowest low within the trail factor(lookback)), and a position is open, the "long" position is closed (strategy.close("long")).
If the close price exceeds a certain level (highest high within the specified trail factor(lookback)), and a position is open, the "short" position is closed (strategy.close("short")).
Positions are also closed if they are open outside of the defined trading session.
Background Color:
The script changes the background color of the chart to indicate buy (green) and sell (red) signals, making it visually clear when the strategy conditions are met.
In summary, this script implements a breakout trading strategy with various customizable conditions, including Bollinger Bands, Dema-VWAP crossovers, and session-specific rules. It also includes options for setting stop losses and trailing stop losses to manage risk and lock in profits. The "trail factor" helps adjust trailing stops dynamically based on recent price movements. Positions are closed under certain conditions to manage risk and ensure compliance with the defined trading session.
CE=Buy, CE_SL=stoploss_buy, tCsl=Trailing Stop_buy.
PE=sell, PE_SL= stoploss_sell, tpsl=Trailing Stop_sell.
Remember that trading involves inherent risks, and past performance is not indicative of future results. Exercise caution, manage risk diligently, and consider the advice of financial experts when using this script or any trading strategy.
Earnings Price Move Cheat Sheet [KT]Hello!
This script looks to distinguish replicable sequences and correlations between earnings releases and price. The indicator calculates the average 1-session to 20-session performance of an asset prior to an earnings release, and the 1-session to 20-session performance of an asset subsequent an earnings release.
You can select the number of sessions the script calculates for asset performance.
In the image above the script calculates the average 1-session performance following an earnings surprise, earnings miss, and in general. 20 sessions is the maximum value!
Also measured is the average performance of an asset before and after earnings, in addition to the average performance following an earnings surprise "green earnings" and the average performance following an earnings miss "red earnings".
I included VaR and CVaR calculations - using the historical method - in the script. For those of you unfamiliar with the metrics, both look to quantify the risk of financial loss for a portfolio, or even a particular position.
The script also calculates the 1st - 5th percentile for earnings losses. A more comprehensive explanation of the metrics is stored in tooltips in the user input tab.
The script also calculates the highest high and lowest low following an earnings release, up to 20 sessions, and calculates the difference between the two.
Keep in mind that a company might not have a significant number of earnings misses, or may have only traded publicly for a short while. If true, the resulting earnings/price calculations *will* be misleading - there is an insufficient sample size; no correlations are ascertainable.
I will be working on this script more, so let me know if there is anything you would like included!
Prev-Day POC Hit Rate (v6, RTH, tolerance)//@version=6
indicator("Prev-Day POC Hit Rate (v6, RTH, tolerance)", overlay=true)
// ---- Inputs
sessionStr = input.session("0930-1600", "RTH session (exchange time)")
tolPoints = input.float(0.10, "Tolerance (points)")
tolPercent = input.float(0.10, "Tolerance (%) of prev POC")
showMarks = input.bool(true, "Show touch markers")
// ---- RTH gating in exchange TZ
sessFlag = time(timeframe.period, sessionStr)
inRTH = not na(sessFlag)
rthOpen = inRTH and not inRTH
rthClose = (not inRTH) and inRTH
// ---- Prior-day POC proxy = price of highest-volume 1m bar of prior RTH
var float prevPOC = na
var float curPOC = na
var float curMaxVol = 0.0
// ---- Daily hit stats
var bool hitToday = false
var int days = 0
var int hits = 0
// Finalize a day at RTH close (count touch to prevPOC)
if rthClose and not na(prevPOC)
days += 1
if hitToday
hits += 1
// Roll today's POC to prevPOC at next RTH open; reset builders/flags
if rthOpen
prevPOC := curPOC
curPOC := na
curMaxVol := 0.0
hitToday := false
// Build today's proxy POC during RTH (highest-volume 1m bar)
if inRTH
if volume > curMaxVol
curMaxVol := volume
curPOC := close // swap to (high+low+close)/3 if you prefer HLC3
// ---- Touch test against prevPOC (band = max(points, % of prevPOC))
bandPts = na(prevPOC) ? na : math.max(tolPoints, prevPOC * tolPercent * 0.01)
touched = inRTH and not na(prevPOC) and high >= (prevPOC - bandPts) and low <= (prevPOC + bandPts)
if touched
hitToday := true
// ---- Plots
plot(prevPOC, "Prev RTH POC (proxy)", color=color.new(color.fuchsia, 0), linewidth=2, style=plot.style_linebr)
bgcolor(hitToday and inRTH ? color.new(color.green, 92) : na)
plotshape(showMarks and touched ? prevPOC : na, title="Touch prev POC",
style=shape.circle, location=location.absolute, size=size.tiny, color=color.new(color.aqua, 0))
// ---- On-chart stats
hitPct = days > 0 ? (hits * 100.0 / days) : na
var table T = table.new(position.top_right, 2, 3, border_width=1)
if barstate.islastconfirmedhistory
table.cell(T, 0, 0, "Days")
table.cell(T, 1, 0, str.tostring(days))
table.cell(T, 0, 1, "Hits")
table.cell(T, 1, 1, str.tostring(hits))
table.cell(T, 0, 2, "Hit %")
table.cell(T, 1, 2, na(hitPct) ? "—" : str.tostring(hitPct, "#.0") + "%")
Premarket Hi/Lo + Prior Day O/C LevelsPremarket Hi/Lo + Prior Day O/C (today only) shows four clear reference levels for the current regular trading session: the Premarket High and Premarket Low (taken from a user-defined premarket window, 04:00–09:30 by default) and Yesterday’s 09:30 Open and 15:59 Close (sourced from the 1-minute feed for accuracy). The premarket levels “lock” at the opening bell so they don’t move for the rest of the day. All four lines are displayed only during today’s regular hours to keep the chart focused. Small right-edge labels and an optional top-right mini-table show the exact values at a glance.
This indicator is designed to give immediate context without technical jargon. The premarket high/low summarize where price traveled before the bell; the prior-day open/close summarize where the last session began and ended. Checking whether price is above or below these markers helps you quickly judge strength or weakness and anticipate where price may pause, bounce, or break. Typical uses include watching for a clean break and hold above Premarket High (often bullish), a break and hold below Premarket Low (often bearish), drift back toward Prior Day Close after a gap (a common “magnet”), and flips around Prior Day Open that can lead to continuation.
Setup: Turn on Extended Hours in TradingView so premarket bars are visible (Chart Settings → Symbol → Extended Hours). Apply the indicator to any intraday timeframe. In Inputs, you can change the premarket window to match your market, adjust colors and line widths, and toggle the floating labels and the mini-table. Times use the chart’s exchange time (for US stocks, Eastern Time).
Notes and limits: Lines show only for today’s session (default 09:30–16:00). The script looks at the previous calendar day for “prior day,” so values may be empty after weekends or holidays when markets were closed. If your instrument uses different regular hours or you trade futures/crypto, adjust the premarket session in Inputs and—if needed—edit the regular-hours window in code to match. If your data source does not include premarket, the premarket lines will be blank.
Best practice: The first 15–30 minutes after the open are where these levels have the most impact. Reactions are more meaningful when a line aligns with another tool you use (e.g., VWAP or your opening range). If price does not react clearly at a line, avoid forcing a trade.
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.
Deadband Hysteresis Filter [BackQuant]Deadband Hysteresis Filter
What this is
This tool builds a “debounced” price baseline that ignores small fluctuations and only reacts when price meaningfully departs from its recent path. It uses a deadband to define how much deviation matters and a hysteresis scheme to avoid rapid flip-flops around the decision boundary. The baseline’s slope provides a simple trend cue, used to color candles and to trigger up and down alerts.
Why deadband and hysteresis help
They filter micro noise so the baseline does not react to every tiny tick.
They stabilize state changes. Hysteresis means the rule to start moving is stricter than the rule to keep holding, which reduces whipsaw.
They produce a stepped, readable path that advances during sustained moves and stays flat during chop.
How it works (conceptual)
At each bar the script maintains a running baseline dbhf and compares it to the input price p .
Compute a base threshold baseTau using the selected mode (ATR, Percent, Ticks, or Points).
Build an enter band tauEnter = baseTau × Enter Mult and an exit band tauExit = baseTau × Exit Mult where typically Exit Mult < Enter Mult .
Let diff = p − dbhf .
If diff > +tauEnter , raise the baseline by response × (diff − tauEnter) .
If diff < −tauEnter , lower the baseline by response × (diff + tauEnter) .
Otherwise, hold the prior value.
Trend state is derived from slope: dbhf > dbhf → up trend, dbhf < dbhf → down trend.
Inputs and what they control
Threshold mode
ATR — baseTau = ATR(atrLen) × atrMult . Adapts to volatility. Useful when regimes change.
Percent — baseTau = |price| × pctThresh% . Scale-free across symbols of different prices.
Ticks — baseTau = syminfo.mintick × tickThresh . Good for futures where tick size matters.
Points — baseTau = ptsThresh . Fixed distance in price units.
Band multipliers and response
Enter Mult — outer band. Price must travel at least this far from the baseline before an update occurs. Larger values reject more noise but increase lag.
Exit Mult — inner band for hysteresis. Keep this smaller than Enter Mult to create a hold zone that resists small re-entries.
Response — step size when outside the enter band. Higher response tracks faster; lower response is smoother.
UI settings
Show Filtered Price — plots the baseline on price.
Paint candles — colors bars by the filtered slope using your long/short colors.
How it can be used
Trend qualifier — take entries only in the direction of the baseline slope and skip trades against it.
Debounced crossovers — use the baseline as a stabilized surrogate for price in moving-average or channel crossover rules.
Trailing logic — trail stops a small distance beyond the baseline so small pullbacks do not eject the trade.
Session aware filtering — widen Enter Mult or switch to ATR mode for volatile sessions; tighten in quiet sessions.
Parameter interactions and tuning
Enter Mult vs Response — both govern sensitivity. If you see too many flips, increase Enter Mult or reduce Response. If turns feel late, do the opposite.
Exit Mult — widening the gap between Enter and Exit expands the hold zone and reduces oscillation around the threshold.
Mode choice — ATR adapts automatically; Percent keeps behavior consistent across instruments; Ticks or Points are useful when you think in fixed increments.
Timeframe coupling — on higher timeframes you can often lower Enter Mult or raise Response because raw noise is already reduced.
Concrete starter recipes
General purpose — ATR mode, atrLen=14 , atrMult=1.0–1.5 , Enter=1.0 , Exit=0.5 , Response=0.20 . Balanced noise rejection and lag.
Choppy range filter — ATR mode, increase atrMult to 2.0, keep Response≈0.15 . Stronger suppression of micro-moves.
Fast intraday — Percent mode, pctThresh=0.1–0.3 , Enter=1.0 , Exit=0.4–0.6 , Response=0.30–0.40 . Quicker turns for scalping.
Futures ticks — Ticks mode, set tickThresh to a few spreads beyond typical noise; start with Enter=1.0 , Exit=0.5 , Response=0.25 .
Strengths
Clear, explainable logic with an explicit noise budget.
Multiple threshold modes so the same tool fits equities, futures, and crypto.
Built-in hysteresis that reduces flip-flop near the boundary.
Slope-based coloring and alerts that make state changes obvious in real time.
Limitations and notes
All filters add lag. Larger thresholds and smaller response trade faster reaction for fewer false turns.
Fixed Points or Ticks can under- or over-filter when volatility regime shifts. ATR adapts, but will also expand bands during spikes.
On extremely choppy symbols, even a well tuned band will step frequently. Widen Enter Mult or reduce Response if needed.
This is a chart study. It does not include commissions, slippage, funding, or gap risks.
Alerts
DBHF Up Slope — baseline turns from down to up on the latest bar.
DBHF Down Slope — baseline turns from up to down on the latest bar.
Implementation details worth knowing
Initialization sets the baseline to the first observed price to avoid a cold-start jump.
Slope is evaluated bar-to-bar. The up and down alerts check for a change of slope rather than raw price crossings.
Candle colors and the baseline plot share the same long/short palette with transparency applied to the line.
Practical workflow
Pick a mode that matches how you think about distance. ATR for volatility aware, Percent for scale-free, Ticks or Points for fixed increments.
Tune Enter Mult until the number of flips feels appropriate for your timeframe.
Set Exit Mult clearly below Enter Mult to create a real hold zone.
Adjust Response last to control “how fast” the baseline chases price once it decides to move.
Final thoughts
Deadband plus hysteresis gives you a principled way to “only care when it matters.” With a sensible threshold and response, the filter yields a stable, low-chop trend cue you can use directly for bias or plug into your own entries, exits, and risk rules.
Sunmool's Next Day Model FVG AlertNY Killzone FVG Alert - ICT Fair Value Gap Detection Indicator
This comprehensive Pine Script indicator is specifically designed for traders following ICT (Inner Circle Trader) methodology and Smart Money Concepts. The indicator automatically detects Fair Value Gaps (FVG) that occur during the New York Killzone session, providing real-time alerts when these critical market imbalances are identified.
Key Features:
🎯 Fair Value Gap Detection
Automatically identifies bullish and bearish Fair Value Gaps using the classic 3-candle pattern
Filters gaps based on customizable minimum size thresholds to avoid insignificant imbalances
Provides visual representation through colored boxes and labels for easy identification
⏰ New York Killzone Focus
Specifically monitors the NY Killzone session (default: 7:00 AM - 10:00 AM EST)
Fully customizable session times to accommodate different trading preferences
Only detects FVGs when all three candles forming the gap occur within the killzone timeframe
📅 ICT Next Day Model Compliance
Automatically excludes Mondays from FVG detection as per ICT Next Day Model principles
Optional Monday exclusion can be toggled on/off based on trading strategy
Ensures alignment with professional ICT trading methodologies
🔔 Advanced Alert System
Three distinct alert conditions: Bullish FVG, Bearish FVG, and Combined alerts
Customizable alert messages for different notification preferences
Compatible with TradingView's full alert system including email, SMS, and webhook notifications
🎨 Visual Customization
Adjustable colors for bullish and bearish FVG boxes
Configurable box extension length for better visualization
Optional background highlighting during killzone sessions
Clean, professional chart presentation that doesn't clutter your analysis
📊 Technical Specifications
Works on all timeframes, though most effective on intraday charts (1m, 5m, 15m)
Timezone-aware calculations ensure accurate session detection globally
Efficient code structure minimizes processing load and chart lag
Compatible with other indicators and doesn't interfere with existing chart setups
🎯 Ideal For:
ICT methodology traders seeking automated FVG detection
Smart Money Concepts practitioners
Scalpers and day traders focusing on NY session
Traders looking to identify high-probability entry zones
Anyone interested in market structure and liquidity concepts
📈 Trading Applications:
Fair Value Gaps often serve as areas where price may return to "fill" the imbalance, making them excellent zones for:
Potential reversal areas
Take profit targets
Stop loss placement reference points
Market structure analysis
Confluence with other ICT concepts
⚙️ Customizable Parameters:
FVG minimum size filter
Killzone session start/end times
Visual display options
Alert preferences
Color schemes and styling options
This indicator brings institutional trading concepts to retail traders, helping identify the same market inefficiencies that smart money targets. By focusing specifically on the New York Killzone - one of the most liquid and volatile trading sessions - it provides high-quality signals during optimal market conditions.
Whether you're new to ICT concepts or an experienced trader looking to automate your FVG detection, this indicator provides the precision and reliability needed for professional trading analysis.
Malama's KAYCAP Pre-Market Box# Pre-Market Single Candle Range Box
## What Makes This Script Original
While many scripts plot entire pre-market session ranges, this indicator focuses specifically on **a single user-defined candle** within the pre-market period rather than the entire session. This targeted approach allows traders to isolate the most relevant price action from a specific time (default: 4:00 AM EST) that often establishes key levels for the trading day.
## Core Methodology & Technical Implementation
**Single Candle Isolation:**
- Captures OHLC data from one specific minute within pre-market hours (user configurable)
- Differentiates between the candle's body (open/close range) and wicks (high/low extremes)
- Creates four distinct reference levels instead of traditional session high/low boxes
**Dual Box Structure:**
- **Inner Box (Body):** Plots the range between open and close prices of the target candle
- **Outer Boundaries:** Separately plots the high and low of that same candle
- **Visual Differentiation:** Uses different colors and line weights to distinguish body vs. wick levels
**Time-Specific Logic:**
The script uses precise time matching (`hour == boxHour and minute == boxMinute`) to capture data from exactly one candle, rather than aggregating an entire session. This creates four specific price levels:
- Box Top: Higher of open/close (body boundary)
- Box Bottom: Lower of open/close (body boundary)
- Box High: Candle high (wick extreme)
- Box Low: Candle low (wick extreme)
## Why This Approach Differs from Standard Session Boxes
**vs. Full Session Ranges:** Focuses on a single critical minute rather than entire pre-market period
**vs. Traditional S/R:** Creates both body and wick levels from one specific candle
**vs. Opening Range:** Uses pre-market data rather than regular session opening minutes
## Practical Application
The 4:00 AM EST default targets a time when institutional pre-market activity often establishes initial sentiment and key levels. By isolating this specific candle's range:
- **Body levels** often act as initial support/resistance during regular hours
- **Wick extremes** provide broader range boundaries for breakout analysis
- **Precise timing** allows focus on the most statistically relevant pre-market moment
## Technical Considerations
- Requires intraday timeframes (1-minute recommended) to capture specific candle data
- Time settings should match your broker's timezone for accurate candle selection
- Works best on liquid instruments where pre-market activity is meaningful
- The selected candle must exist in your data feed for the levels to plot
## Customization Options
All timing parameters are adjustable:
- Target candle hour and minute
- Pre-market session definition (for context)
- Visual styling for all four level types
This focused approach provides more granular analysis than broad session ranges while maintaining simplicity in execution.
Anchored VWAP by Fin VirajSimple Anchored VWAP with Directional Colors
📊 Overview
A clean and efficient Anchored VWAP (Volume Weighted Average Price) indicator with dynamic directional coloring. This indicator provides traders with a reliable reference point for price action analysis based on volume-weighted calculations from specific anchor points.
✨ Key Features
🎯 Multiple Anchor Types
Session: Anchors to daily trading session start
Day: Resets at the beginning of each trading day
Week: Weekly anchor points for swing trading
Month: Monthly anchors for longer-term analysis
Manual Date: Set custom anchor date for specific events
🌈 Directional Color System
🟢 Green: Price above VWAP with upward momentum
🔴 Red: Price below VWAP with downward momentum
🔵 Blue: Neutral/transitional conditions
📏 Standard Deviation Bands
Customizable multipliers (default: 1.0 and 2.0)
Toggle on/off as needed
Support and resistance levels based on statistical deviation
Filled area between bands for better visualization
🔧 Settings & Customization
Input Parameters
Anchor Type: Choose from 5 different anchor methods
Manual Anchor Date: Set specific date for manual anchoring
Reset Anchor Point: Manual reset button
Show Standard Deviation Bands: Toggle bands visibility
Band Multipliers: Adjust band distance (1σ and 2σ)
VWAP Line Width: Customize line thickness (1-4)
Color Customization
Bullish Color: Customize uptrend color
Bearish Color: Customize downtrend color
Neutral Color: Customize neutral state color
Band Color: Customize standard deviation bands color
📈 How to Use
For Day Trading
Set anchor type to "Session" or "Day"
Use VWAP as dynamic support/resistance
Green color = bullish bias, Red color = bearish bias
For Swing Trading
Set anchor type to "Week" or "Month"
Longer-term VWAP acts as major S/R level
Standard deviation bands show potential reversal zones
For Event-Based Analysis
Set anchor type to "Manual Date"
Choose significant event date (earnings, news, etc.)
Analyze price behavior relative to that anchor point
🎨 Visual Interpretation
VWAP Line Colors
Bright Green: Strong bullish momentum (price above rising VWAP)
Bright Red: Strong bearish momentum (price below falling VWAP)
Blue: Neutral conditions or transitional phase
Standard Deviation Bands
Upper Bands: Potential resistance levels
Lower Bands: Potential support levels
Band Touches: Often indicate reversal or continuation points
💡 Trading Applications
Support & Resistance
VWAP acts as dynamic support in uptrends
VWAP acts as dynamic resistance in downtrends
Standard deviation bands provide additional S/R levels
Trend Analysis
Price consistently above VWAP = bullish trend
Price consistently below VWAP = bearish trend
Color changes help identify trend shifts
Entry & Exit Points
Use VWAP reclaims for potential long entries
Use VWAP breaks for potential short entries
Standard deviation bands for profit-taking levels
⚙️ Technical Details
Pine Script Version: v6
Overlay: Yes (plots on price chart)
Calculation: Volume-weighted average price from anchor point
Standard Deviation: Statistical measure of price dispersion
Performance: Optimized for real-time calculation
🔄 Anchor Reset Logic
The indicator automatically resets based on selected anchor type:
Session/Day: Resets at market open
Week: Resets at week start
Month: Resets at month start
Manual: Resets from chosen date
Manual Reset: Override button for immediate reset
📋 Best Practices
Choose appropriate timeframe for your anchor type
Combine with volume analysis for better confirmation
Use multiple timeframes for comprehensive analysis
Consider market context when interpreting signals
Test on demo before live trading
⚠️ Disclaimer
This indicator is for educational and informational purposes only. Always conduct your own analysis and risk management before making trading decisions.