Momentum Permission + Pivot Entry (v1.4 CLEAN ENTRY)//@version=5
indicator("Momentum Permission + Pivot Entry (v1.4 CLEAN ENTRY)", overlay=true)
// ─────────── INPUTS ───────────
pivotLookback = input.int(3, "Pivot Lookback")
smaLen = input.int(50, "SMA Length")
relVolTh = input.float(1.3, "RelVol Threshold")
// ─────────── TREND + MOMENTUM — BASICS ───────────
vwapLine = ta.vwap
smaLine = ta.sma(close, smaLen)
relVol = volume / ta.sma(volume, 10)
pivotLow = ta.lowest(low, pivotLookback) == low
trendUp = close > smaLine
aboveVWAP = close > vwapLine
greenCandle = close > open
// ─────────── PERMISSION (Context Only) ───────────
permitSignal = trendUp and (relVol > relVolTh)
// ─────────── ENTRY LOGIC — ONE CLEAN SIGNAL ───────────
rawEntry = permitSignal and aboveVWAP and pivotLow and greenCandle
// Anti-spam: only first signal in a move
entrySignal = rawEntry and not rawEntry
// ─────────── VISUAL SHAPES (Clean) ───────────
plotshape(permitSignal, style=shape.triangleup, color=color.lime, size=size.tiny, location=location.bottom, text="PERMIT")
plotshape(entrySignal, style=shape.triangleup, color=color.aqua, size=size.small, text="ENTRY")
// ─────────── TREND VISUALS ───────────
plot(vwapLine, "VWAP", color=color.blue, linewidth=2)
plot(smaLine, "SMA50", color=color.orange, linewidth=2)
חפש סקריפטים עבור "text"
Momentum Permission + VWAP + RelVol (Clean)//@version=5
indicator("Momentum Permission + VWAP + RelVol (Clean)", overlay=true)
// ──────────────────────────────────────────────
// Inputs
// ──────────────────────────────────────────────
smaLength = input.int(50, "SMA Length")
relVolThresh = input.float(1.3, "Relative Volume Threshold")
// ──────────────────────────────────────────────
// Core Calculations
// ──────────────────────────────────────────────
sma50 = ta.sma(close, smaLength)
vwap = ta.vwap(close)
relVol = volume / ta.sma(volume, 10)
crossUp = ta.crossover(close, sma50)
// Trend conditions
aboveSMA = close > sma50
aboveVWAP = close > vwap
relStrong = relVol > relVolThresh
// ──────────────────────────────────────────────
// One-Time Daily Trend Permission Logic
// ──────────────────────────────────────────────
var bool permission = false
// Reset permission at start of each session
if ta.change(time("D"))
permission := false
trendStart = crossUp and aboveVWAP and relStrong and not permission
if trendStart
permission := true
// ──────────────────────────────────────────────
// Entry Trigger Logic (Breakout Continuation)
// ──────────────────────────────────────────────
entryTrigger = (
permission and
aboveSMA and
aboveVWAP and
relStrong and
close > high // breakout of prior candle high
)
// ──────────────────────────────────────────────
// Plots
// ──────────────────────────────────────────────
// Trend filters
plot(sma50, title="SMA50", color=color.orange, linewidth=2)
plot(vwap, title="VWAP", color=color.new(color.blue, 0), linewidth=2)
// Permission (one-time trend start)
plotshape(
trendStart,
title="Trend Permission",
style=shape.triangleup,
location=location.belowbar,
color=color.new(color.green, 0),
size=size.large,
text="PERMIT"
)
// Entry trigger (continuation entry)
plotshape(
entryTrigger,
title="Entry Trigger",
style=shape.triangleup,
location=location.abovebar,
color=color.new(color.aqua, 0),
size=size.normal,
text="ENTRY"
)
SPX Breadth – Stocks Above 200-day SMA//@version=6
indicator("SPX Breadth – Stocks Above 200-day SMA",
overlay = false,
max_lines_count = 500,
max_labels_count = 500)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Inputs
group_source = "Source"
breadthSymbol = input.symbol("SPXA200R", "Breadth symbol", group = group_source)
breadthTf = input.timeframe("", "Timeframe (blank = chart)", group = group_source)
group_params = "Parameters"
totalStocks = input.int(500, "Total stocks in index", minval = 1, group = group_params)
smoothingLen = input.int(10, "SMA length", minval = 1, group = group_params)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Breadth series (symbol assumed to be percent 0–100)
string tf = breadthTf == "" ? timeframe.period : breadthTf
float rawPct = request.security(breadthSymbol, tf, close) // 0–100 %
float breadthN = rawPct / 100.0 * totalStocks // convert to count
float breadthSma = ta.sma(breadthN, smoothingLen)
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Regime levels (0–20 %, 20–40 %, 40–60 %, 60–80 %, 80–100 %)
float lvl0 = 0.0
float lvl20 = totalStocks * 0.20
float lvl40 = totalStocks * 0.40
float lvl60 = totalStocks * 0.60
float lvl80 = totalStocks * 0.80
float lvl100 = totalStocks * 1.0
p0 = plot(lvl0, "0%", color = color.new(color.black, 100))
p20 = plot(lvl20, "20%", color = color.new(color.red, 0))
p40 = plot(lvl40, "40%", color = color.new(color.orange, 0))
p60 = plot(lvl60, "60%", color = color.new(color.yellow, 0))
p80 = plot(lvl80, "80%", color = color.new(color.green, 0))
p100 = plot(lvl100, "100%", color = color.new(color.green, 100))
// Colored zones
fill(p0, p20, color = color.new(color.maroon, 80)) // very oversold
fill(p20, p40, color = color.new(color.red, 80)) // oversold
fill(p40, p60, color = color.new(color.gold, 80)) // neutral
fill(p60, p80, color = color.new(color.green, 80)) // bullish
fill(p80, p100, color = color.new(color.teal, 80)) // very strong
//–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
// Plots
plot(breadthN, "Stocks above 200-day", color = color.orange, linewidth = 2)
plot(breadthSma, "Breadth SMA", color = color.white, linewidth = 2)
// Optional label showing live value
var label infoLabel = na
if barstate.islast
label.delete(infoLabel)
string txt = "Breadth: " +
str.tostring(breadthN, format.mintick) + " / " +
str.tostring(totalStocks) + " (" +
str.tostring(rawPct, format.mintick) + "%)"
infoLabel := label.new(bar_index, breadthN, txt,
style = label.style_label_left,
color = color.new(color.white, 20),
textcolor = color.black)
RVol based Support & Resistance ZonesDescription:
This indicator is designed to help traders identify significant price levels based on institutional volume. It monitors two higher timeframes (defined by the user) simultaneously. When a candle on these higher timeframes exhibits unusually high volume—known as high Relative Volume (RVol)—the indicator automatically draws a "Zone of Interest" box on your current chart.
These zones are defined by:
Up candle : from candle open to low of candle
Down candle : from candle open to high of candle
Key Features:
Multi-Timeframe Monitoring: You can trade on a lower timeframe (e.g., 5-minute) while the indicator monitors the 30-minute and 1-hour charts for volume spikes.
RVol Boxes: Automatically draws boxes extending from high-volume candles.
Up Candles: Box covers Low to Open.
Down Candles: Box covers High to Open.
Live Dashboard: A neat, color-coded table displays the current Volume, Average Volume, and RVol percentage for your watched timeframes.
Real-Time vs. Confirmed: Choose whether to see boxes appear immediately as volume spikes (Live) or only after the candle has closed and confirmed the volume (Candle Close).
Settings Guide:
1. General Settings
Relative Volume Length: The number of past candles used to calculate the "Average Volume." (Default is 20).
Max Days Back to Draw: To keep your chart clean, this limits how far back in history the script looks for high-volume zones. (e.g., set to 5 to only see zones created in the last 5 days).
Draw Mode:
- Live (Real-time): Draws the box immediately if the current developing candle hits the volume threshold. (Note: The box may disappear if the volume average shifts before the candle closes).
- Candle Close: The box only appears once the candle has finished and permanently confirmed the volume spike.
2. Table Settings
Show Info Table: Toggles the dashboard on or off.
Text Size & Position: Customise where the table appears on your screen and how large the text is.
Colours: Fully customisable colours for the Table Header (Top row) and Data Rows (Bottom rows).
3. Timeframe 1 & 2 Settings
You have two identical sections to configure two different timeframes (e.g., 30m and 1H).
Timeframe: The chart interval to monitor (e.g., "30" for 30 minutes, "60" for 1 Hour, "240" for 4 Hours).
Threshold %: The "Trigger" for drawing a box based on relative candle volume in that timeframe.
Example:
100% = Candle Volume is equal to the average volume for the specified timeframe.
200% = Candle Volume is 2x the average volume for the specified timeframe.
300% = Candle Volume is 3x the average volume for the specified timeframe.
Box & Edge Colour: Distinct colours for each timeframe so you can easily tell which timeframe created the zone.
Volumetric Inverse Fair Value Gap (IFVG) [Kodexius]The Volumetric Inverse Fair Value Gap (IFVG) indicator detects and visualizes inverse fair value gaps (IFVGs) zones where previous inefficiencies in price (fair value gaps) are later invalidated or “inverted.”
Unlike traditional FVG indicators, this tool integrates volume-based analysis to quantify the bullish, bearish, and overall strength of each inversion. It visually represents these metrics within a dynamically updating box on the chart, giving traders deeper insight into market reactions when liquidity imbalances are filled and reversed.
Features
Inverse fair value gap detection
The script identifies bullish and bearish fair value gaps, stores them as pending zones, and turns them into inverse fair value gaps when price trades back through the gap in the opposite direction. Each valid inversion becomes an active IFVG zone on the chart.
Sensitivity control with ATR filter and strict mode
A minimum gap size based on ATR is used to filter out small and noisy gaps. Strict mode can be enabled so that any wick contact between the relevant candles prevents the gap from being accepted as a fair value gap. This lets you decide how clean and selective the zones should be.
Show Last N Boxes control
The indicator can keep only the most recent N IFVG zones visible. Older zones are removed from the chart once the number of active objects exceeds the user setting. This prevents clutter on higher timeframes or long histories and keeps attention on the most relevant recent zones.
Ghost box for the original gap
When the ghost option is enabled, the script draws a faint box that marks the original fair value gap from which the inverse zone came. This makes it easy to see where the initial imbalance appeared and how price later inverted that area.
Volumetric bull, bear and strength metrics
For each IFVG, the script estimates how much of the bar volume is associated with buying and how much with selling, then computes bull percentage, bear percentage and a strength score that uses a percentile rank of volume. These values are stored with the IFVG object and drive the visualization inside the zone.
Three band visual layout inside each IFVG
Each active IFVG is drawn as a container with three horizontal sections. The top band represents the bull percentage, the middle band the bear percentage and the bottom band the strength metric. The width of each bar reflects its respective value so you can read the structure of the zone at a glance.
Customizable colors and label text
Colors for bull, bear, strength, the empty background area, the ghost box and label text can be adjusted in the inputs. This allows you to match the indicator to different chart themes or highlight specific aspects such as strength or direction.
Automatic invalidation and cleanup
When price clearly closes beyond the IFVG in a way that breaks the logic of that zone, the script marks it as inactive and deletes all boxes and labels linked to it. Only valid and active IFVGs remain on the chart, which keeps the display clean and focused.
Calculations
1. Detecting Fair Value Gaps (FVGs)
A fair value gap is identified when price action leaves an imbalance between candle wicks. Depending on the mode:
Bullish FVG: When low > high
Bearish FVG: When high < low
Optionally, the strict mode ensures wicks do not touch.
The gap’s significance is filtered using the ATR multiplier input to exclude minor noise.
Once detected, FVGs are stored as pending zones until inverted by opposite movement (price crossing through).
bool bull_cond = strict_mode ? (low > high ) : (close > high )
bool bear_cond = strict_mode ? (high < low ) : (close < low )
float gap_size = 0.0
if bull_cond and close > open
gap_size := low - high
if bear_cond and close < open
gap_size := low - high
2. Creating IFVGs (Inversions)
When price later moves through a previous FVG in the opposite direction, an Inverse FVG (IFVG) is created.
For example:
A previous bearish FVG becomes bullish IFVG if price moves upward through it.
A previous bullish FVG becomes bearish IFVG if price moves downward through it.
The IFVG is initialized with structural boundaries (top, bottom) and timestamp metadata to anchor visualization.
if not p.is_bull_gap and close > p.top
inverted := true
to_bull := true
if p.is_bull_gap and close < p.btm
inverted := true
to_bull := false
3. Volume Metrics (Bull, Bear, Strength)
Each IFVG calculates buy and sell volumes from the current bar’s price spread and total volume.
Bull % = proportion of upward (buy) volume
Bear % = proportion of downward (sell) volume
Strength % = normalized percentile rank of total volume
These are obtained through a custom function that estimates directional volume contribution:
calc_metrics(float o, float h, float l, float c, float v) =>
float rng = h - l
float buy_v = 0.0
if rng == 0
buy_v := v * 0.5
else
if c >= o
buy_v := v * ((math.abs(c - o) + (math.min(o, c) - l)) / rng)
else
buy_v := v * ((h - math.max(o, c)) / rng)
float sell_v = v - buy_v
float total = buy_v + sell_v
float p_bull = total > 0 ? buy_v / total : 0
float p_bear = total > 0 ? sell_v / total : 0
float p_str = ta.percentrank(v, 100) / 100.0
SUPER TREND + RSI FILTER PRO@version=5
indicator("SUPER TREND + RSI FILTER PRO", overlay=true, timeframe="", timeframe_gaps=true)
//---------------------------
// INPUTS
//---------------------------
factor = input.float(3.0, "SuperTrend Factor")
atr_len = input.int(10, "ATR Length")
rsi_len = input.int(14, "RSI Length")
rsi_buy = input.int(50, "RSI Buy Level")
rsi_sell = input.int(50, "RSI Sell Level")
//---------------------------
// SUPERTREND CALCULATION
//---------------------------
atr = ta.atr(atr_len)
upperBand = close + factor * atr
lowerBand = close - factor * atr
trend = 0.0
trend := close > nz(trend ) ? math.max(lowerBand, nz(trend )) : math.min(upperBand, nz(trend ))
// Coloration
bull = close > trend
bear = close < trend
//---------------------------
// RSI FILTER
//---------------------------
rsi = ta.rsi(close, rsi_len)
//---------------------------
// BUY & SELL SIGNALS
//---------------------------
buySignal = bull and rsi > rsi_buy and close > trend
sellSignal = bear and rsi < rsi_sell and close < trend
//---------------------------
// PLOT SUPERTREND
//---------------------------
plot(trend, color=bull ? color.green : color.red, linewidth=2, title="SuperTrend")
//---------------------------
// BUY / SELL MARKERS
//---------------------------
plotshape(buySignal, title="Buy", style=shape.labelup, color=color.green, size=size.small, text="BUY")
plotshape(sellSignal, title="Sell", style=shape.labeldown, color=color.red, size=size.small, text="SELL")
//---------------------------
// ALERTS
//---------------------------
alertcondition(buySignal, title="Buy Signal", message="BUY Signal - SuperTrend + RSI Filter")
alertcondition(sellSignal, title="Sell Signal", message="SELL Signal - SuperTrend + RSI Filter")
STRAT - MTF Dashboard + FTFC + Reversals v2.7# STRAT Indicator - Complete Description
## Overview
A comprehensive multi-timeframe STRAT trading system indicator that combines market structure analysis, flip levels, Full Timeframe Continuity (FTFC), and reversal pattern detection across 12 timeframes.
## Core Features
### 1. **Multi-Timeframe STRAT Dashboard**
- Displays STRAT combos (1, 2u, 2d, 3) across 12 timeframes: 1m, 5m, 15m, 30m, 1H, 4H, 12H, Daily, Weekly, Monthly, Quarterly, Yearly
- Color-coded directional bias (green/red/doji)
- Inside bars (●) and Outside bars (●) highlighted
- Current timeframe marked with ★
### 2. **HTF Flip Levels with Smart Grouping**
- Displays higher timeframe (HTF) flip levels (open prices) as labels on the right side
- Automatically groups multiple timeframes at the same price level (e.g., "★ 1H/4H/D")
- Current timeframe flip level always displayed with ★ marker
- Color-coded: Green (above price) / Red (below price)
### 3. **Full Timeframe Continuity (FTFC)**
- User-selectable 4 timeframes for FTFC analysis (default: D, W, M, Q)
- Green line: FTFC Up (highest open of 4 timeframes)
- Red line: FTFC Down (lowest open of 4 timeframes)
- Identifies when price is above/below all 4 timeframe opens
### 4. **Hammer & Shooting Star Detection**
- **Hammer Pattern**: Long lower wick (≥2x body), small upper wick, signals potential bottom reversal
- **Shooting Star Pattern**: Long upper wick (≥2x body), small lower wick, signals potential top reversal
- Scans last 100 bars (adjustable) and marks ALL historical patterns
- Chart markers: 🔨 (Hammer) below bars, 🔻 (Shooting Star) above bars
- Dashboard column shows reversal patterns for each timeframe
- Adjustable wick-to-body ratio sensitivity (1.5 to 5.0)
### 5. **Debug Tables**
- **FTFC Debug**: Shows close vs. 4 timeframe opens, confirms all-green/all-red conditions
- **Reversal Debug**: Real-time analysis of current bar - body size, wick measurements, ratios, and pattern qualification
## Settings
### Display Settings
- Dashboard position (9 options: top-left to bottom-right)
- Dashboard text size (tiny to huge)
- Label offset and text size
- Toggle individual features on/off
### FTFC Settings
- Select 4 custom timeframes for continuity analysis
- Default: Daily, Weekly, Monthly, Quarterly
### Reversal Settings
- **Wick to Body Ratio**: Sensitivity for pattern detection (default 2.0)
- **Lookback Bars**: How many historical bars to scan (default 100, max 500)
- Show/hide reversal markers on chart
- Show/hide reversal debug table
## Use Cases
1. **Momentum Trading**: Identify STRAT setups (2-2, 2-1-2 reversals, 3-bar plays) across multiple timeframes
2. **Swing Trading**: Use HTF flip levels as support/resistance and FTFC for trend confirmation
3. **Reversal Trading**: Catch hammer/shooting star patterns at key levels for counter-trend entries
4. **Multi-Timeframe Analysis**: Confirm alignment across timeframes before entering trades
## How to Use
### For STRAT Traders
- Look for 2-1-2 reversal setups in the dashboard
- Watch for inside bars (●) at HTF flip levels for breakout trades
- Use outside bars (●) to identify potential volatility expansion
### For Reversal Traders
- 🔨 Hammers after downtrends = potential long entries
- 🔻 Shooting stars after uptrends = potential short entries
- Combine with HTF flip levels for high-probability setups
### For Trend Followers
- FTFC green line above = bullish structure
- FTFC red line below = bearish structure
- Enter when price breaks and holds above/below FTFC levels
## Visual Elements
- **Green Labels**: HTF flip levels above current price (resistance)
- **Red Labels**: HTF flip levels below current price (support)
- **Lime Line**: FTFC Up (highest timeframe open)
- **Red Line**: FTFC Down (lowest timeframe open)
- **🔨 Icon**: Hammer pattern (potential reversal up)
- **🔻 Icon**: Shooting Star pattern (potential reversal down)
- **★ Symbol**: Current timeframe or multiple timeframes grouped
## Performance Notes
This indicator performs 12 multi-timeframe security calls and may take 15-30 seconds to calculate on initial load. This is normal for comprehensive MTF analysis.
## Version
v2.7 - Simplified reversal detection, current TF labeling, optimized performance
---
**Perfect for**: STRAT traders, multi-timeframe analysts, reversal pattern traders, swing traders looking for high-probability setups with confluence across timeframes.
One for AllOne for All (OFA) - Complete ICT Analysis Suite
Version 3.3.0 by theCodeman
📊 Overview
One for All (OFA) is a comprehensive TradingView indicator designed for traders who follow Inner Circle Trader (ICT) concepts. This all-in-one tool combines essential ICT analysis features—sessions, kill zones, previous period levels, and higher timeframe candles with Fair Value Gaps (FVGs) and Volume Imbalances (VIs)—into a single, highly customizable indicator. Whether you're a beginner learning ICT concepts or an experienced trader refining your edge, OFA provides the visual structure needed for precise market analysis and execution.
✨ Key Features
- 🏷️ Customizable Watermark**: Display your trading identity with customizable titles, subtitles, symbol info, and full style control
- 🌍 Trading Sessions**: Visualize Asian, London, and New York sessions with high/low lines, range boxes, and open/close markers
- 🎯 Kill Zones**: Highlight 5 critical ICT kill zones with precise timing and visual boxes
- 📈 Previous Period H/L**: Track Daily, Weekly, and Monthly highs/lows with customizable styles and lookback periods
- 🕐 Higher Timeframe Candles**: Display up to 5 HTF timeframes with OHLC trace lines, timers, and interval labels
- 🔍 FVG & VI Detection**: Automatically detect and visualize Fair Value Gaps and Volume Imbalances on HTF candles
- ⚙️ Universal Timezone Support**: Works globally with GMT-12 to GMT+14 timezone selection
- 🎨 Full Customization**: Control colors, styles, visibility, and layout for every feature
🚀 How to Use
Watermark Setup
The watermark overlay helps you identify your charts and maintain focus on your trading principles:
1. Enable/disable watermark via "Show Watermark" toggle
2. Customize the title (default: "Name") to display your trading name or account identifier
3. Set up to 3 subtitles (default: "Patience", "Confidence", "Execution") as trading reminders
4. Choose position (9 locations available), size, color, and transparency
5. Toggle symbol and timeframe display as needed
Use Case: Display your trading principles or account name for multi-monitor setups or content creation.
Trading Sessions Analysis
Sessions define market character and liquidity availability:
1. Enable "Show All Sessions" to visualize all three sessions
2. Adjust timezone to match your local market (default: UTC-5 for EST)
3. Customize session times if needed (defaults cover standard hours)
4. Enable session range boxes to see consolidation zones
5. Use session high/low lines to identify key levels for the current session
6. Enable open/close markers to track session transitions
Use Case: Identify which session you're trading in, track session highs/lows for liquidity, and anticipate session transition volatility.
Kill Zones Trading
Kill zones are ICT's high-probability trading windows:
1. Enable individual kill zones or use "Show All Kill Zones"
2. **Asian Kill Zone** (2000-0000 GMT): Early positioning and smart money accumulation
3. **London Kill Zone** (0300-0500 GMT): European market opening volatility
4. **NY AM Kill Zone** (0930-1100 EST): Post-NYSE open expansion
5. **NY Lunch Kill Zone** (1200-1300 EST): Midday consolidation or manipulation
6. **NY PM Kill Zone** (1330-1600 EST): Afternoon positioning and closes
7. Customize colors and times to match your trading style
8. Set max days display to control historical visibility (default: 30 days)
Use Case: Focus entries during high-probability windows. Watch for liquidity sweeps at kill zone openings and institutional positioning.
Previous Period High/Low Levels
Previous period levels act as magnetic price targets and support/resistance:
1. Enable Daily (PDH/PDL), Weekly (PWH/PWL), or Monthly (PMH/PML) levels individually
2. Set lookback period (how many previous periods to display)
3. Choose line style: Solid (current emphasis), Dashed (standard), or Dotted (subtle)
4. Customize colors per timeframe for visual hierarchy
5. Adjust line width (1-5) for visibility preference
6. Enable gradient effect to fade older periods
7. Position labels left or right based on chart layout
8. Customize label text for your preferred notation
Use Case: Identify key levels where price is likely to react. Daily levels work on intraday timeframes, Weekly on daily charts, Monthly for swing trading.
Higher Timeframe (HTF) Candles
HTF candles reveal the larger market context while trading lower timeframes:
1. Enable up to 5 HTF slots simultaneously (default: 5m, 15m, 1H, 4H, Daily)
2. Choose display mode: "Below Chart" (stacked rows) or "Right Side" (compact column)
3. Customize timeframe, colors (bull/bear), and titles for each slot
4. **OHLC Trace Lines**: Visual lines connecting HTF candle levels to chart bars
5. **HTF Timer**: Countdown showing time remaining until HTF candle close
6. **Interval Labels**: Display day of week (Daily+) or time (intraday) on each candle
7. For Daily candles: Choose open time (Midnight, 8:30, 9:30) to match your market structure preference
Use Case: Trade lower timeframes while respecting higher timeframe structure. Watch for HTF candle closes to confirm directional bias.
FVG & VI Detection
Fair Value Gaps and Volume Imbalances highlight inefficiencies that price often revisits:
1. **Fair Value Gaps (FVGs)**: Detected when HTF candle wicks don't overlap between 3 consecutive candles
- Bullish FVG: Gap between candle 1 high and candle 3 low (green box by default)
- Bearish FVG: Gap between candle 1 low and candle 3 high (red box by default)
2. **Volume Imbalances (VIs)**: Similar detection but focuses on body gaps
- Bullish VI: Gap between candle 1 close and candle 3 open
- Bearish VI: Gap between candle 1 open and candle 3 close
3. Enable FVG/VI detection per HTF slot individually
4. Customize colors and transparency for each imbalance type
5. Boxes appear on chart at formation and remain visible as retracement targets
**Use Case**: Identify high-probability retracement zones. Price often returns to fill FVGs and VIs before continuing the trend. Use as entry zones or profit targets.
🎨 Customization
OFA is built for flexibility. Every feature includes extensive customization options:
Visual Customization
- **Colors**: Independent color control for every element (sessions, kill zones, lines, labels, FVGs, VIs)
- **Transparency**: Adjust box and label transparency (0-100%) for clean charts
- **Line Styles**: Choose Solid, Dashed, or Dotted for previous period lines
- **Sizes**: Control text size, line width, and box borders
- **Positions**: Place watermark in 9 positions, labels left/right
Layout Control
- **HTF Display Mode**: "Below Chart" for detailed analysis, "Right Side" for space efficiency
- **Drawing Limits**: Set max days for sessions/kill zones to manage chart clutter
- **Lookback Periods**: Control how many previous periods to display (1-10)
- **Gradient Effects**: Enable fading for older previous period lines
Timing Adjustments
- **Timezone**: Universal GMT offset selector (-12 to +14) for global markets
- **Session Times**: Customize each session's start/end times
- **Kill Zone Times**: Adjust kill zone windows to match your market's characteristics
- **Daily Open**: Choose Midnight, 8:30, or 9:30 for Daily HTF candle open time
💡 Best Practices
1. Start Simple: Enable one feature at a time to learn how each element affects your analysis
2. Match Your Timeframe: Use Daily levels on intraday charts, Weekly on daily charts, HTF candles one or two levels above your trading timeframe
3. Kill Zone Focus: Concentrate your trading activity during kill zones for higher probability setups
4. HTF Confirmation: Wait for HTF candle closes before committing to directional bias
5. FVG/VI Entries: Look for price to return to unfilled FVGs/VIs for entry opportunities with favorable risk/reward
6. Customize Colors: Use a consistent color scheme that matches your chart theme and reduces visual fatigue
7. Reduce Clutter: Disable features you're not actively using in your current trading plan
8. Session Context: Understand which session controls the market—trade with session direction or anticipate reversals at session transitions
⚙️ Settings Guide
OFA organizes settings into logical groups for easy navigation:
- **═══ WATERMARK ═══**: Title, subtitles, position, style, symbol/timeframe display
- **═══ SESSIONS ═══**: Enable/disable sessions, times, colors, high/low lines, boxes, markers
- **═══ KILL ZONES ═══**: Individual kill zone toggles, times, colors, max days display
- **═══ PREVIOUS H/L - DAILY ═══**: Daily high/low lines, style, color, lookback, labels
- **═══ PREVIOUS H/L - WEEKLY ═══**: Weekly high/low lines, style, color, lookback, labels
- **═══ PREVIOUS H/L - MONTHLY ═══**: Monthly high/low lines, style, color, lookback, labels
- **═══ HTF CANDLES ═══**: Global display mode, layout settings
- **═══ HTF SLOT 1-5 ═══**: Individual HTF configuration (timeframe, colors, title, FVG/VI detection, trace lines, timer, interval labels)
Each setting includes tooltips explaining its function. Hover over any input for detailed guidance.
📝 Final Notes
One for All (OFA) represents a complete ICT analysis toolkit in a single indicator. By combining watermark customization, session visualization, kill zone highlighting, previous period levels, and higher timeframe candles with FVG/VI detection, OFA eliminates the need for multiple indicators cluttering your chart.
**Version**: 3.3.0
**Author**: theCodeman
**Pine Script**: v6
**License**: Mozilla Public License 2.0
Start with default settings to learn the indicator's structure, then customize extensively to match your personal trading style. Remember: tools provide information, but your edge comes from disciplined execution of a proven strategy.
Happy Trading! 📈
Buffett Quality Filter (TTM)//@version=6
indicator("Buffett Quality Filter (TTM)", overlay = true, max_labels_count = 500)
// 1. Get financial data (TTM / FY / FQ)
// EPS (TTM) for P/E
eps = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_BASIC", "TTM")
// Profitability & moat (annual stats)
roe = request.financial(syminfo.tickerid, "RETURN_ON_EQUITY", "FY")
roic = request.financial(syminfo.tickerid, "RETURN_ON_INVESTED_CAPITAL", "FY")
// Margins (TTM – rolling 12 months)
grossMargin = request.financial(syminfo.tickerid, "GROSS_MARGIN", "TTM")
netMargin = request.financial(syminfo.tickerid, "NET_MARGIN", "TTM")
// Balance sheet safety (quarterly)
deRatio = request.financial(syminfo.tickerid, "DEBT_TO_EQUITY", "FQ")
currentRat = request.financial(syminfo.tickerid, "CURRENT_RATIO", "FQ")
// Growth (1-year change, TTM)
epsGrowth1Y = request.financial(syminfo.tickerid, "EARNINGS_PER_SHARE_BASIC_ONE_YEAR_GROWTH", "TTM")
revGrowth1Y = request.financial(syminfo.tickerid, "REVENUE_ONE_YEAR_GROWTH", "TTM")
// Free cash flow (TTM) and shares to build FCF per share for P/FCF
fcf = request.financial(syminfo.tickerid, "FREE_CASH_FLOW", "TTM")
sharesOut = request.financial(syminfo.tickerid, "TOTAL_SHARES_OUTSTANDING", "FQ")
fcfPerShare = (not na(fcf) and not na(sharesOut) and sharesOut != 0) ? fcf / sharesOut : na
// 2. Valuation ratios from price
pe = (not na(eps) and eps != 0) ? close / eps : na
pFcf = (not na(fcfPerShare) and fcfPerShare > 0) ? close / fcfPerShare : na
// 3. Thresholds (Buffett-style, adjustable)
minROE = input.float(15.0, "Min ROE %")
minROIC = input.float(12.0, "Min ROIC %")
minGM = input.float(30.0, "Min Gross Margin %")
minNM = input.float(8.0, "Min Net Margin %")
maxDE = input.float(0.7, "Max Debt / Equity")
minCurr = input.float(1.3, "Min Current Ratio")
minEPSG = input.float(8.0, "Min EPS Growth 1Y %")
minREVG = input.float(5.0, "Min Revenue Growth 1Y %")
maxPE = input.float(20.0, "Max P/E")
maxPFCF = input.float(20.0, "Max P/FCF")
// 4. Individual conditions
cROE = not na(roe) and roe > minROE
cROIC = not na(roic) and roic > minROIC
cGM = not na(grossMargin) and grossMargin > minGM
cNM = not na(netMargin) and netMargin > minNM
cDE = not na(deRatio) and deRatio < maxDE
cCurr = not na(currentRat) and currentRat > minCurr
cEPSG = not na(epsGrowth1Y) and epsGrowth1Y > minEPSG
cREVG = not na(revGrowth1Y) and revGrowth1Y > minREVG
cPE = not na(pe) and pe < maxPE
cPFCF = not na(pFcf) and pFcf < maxPFCF
// 5. Composite “Buffett Score” (0–10) – keep it on ONE line to avoid line-continuation errors
score = (cROE ? 1 : 0) + (cROIC ? 1 : 0) + (cGM ? 1 : 0) + (cNM ? 1 : 0) + (cDE ? 1 : 0) + (cCurr ? 1 : 0) + (cEPSG ? 1 : 0) + (cREVG ? 1 : 0) + (cPE ? 1 : 0) + (cPFCF ? 1 : 0)
// Strictness
minScoreForPass = input.int(7, "Min score to pass (0–10)", minval = 1, maxval = 10)
passes = score >= minScoreForPass
// 6. Visuals
bgcolor(passes ? color.new(color.green, 80) : na)
plot(score, "Buffett Score (0–10)", color = color.new(color.blue, 0))
// Info label on last bar
var label infoLabel = na
if barstate.islast
if not na(infoLabel)
label.delete(infoLabel)
infoText = str.format(
"Buffett score: {0}\nROE: {1,number,#.0}% | ROIC: {2,number,#.0}%\nGM: {3,number,#.0}% | NM: {4,number,#.0}%\nP/E: {5,number,#.0} | P/FCF: {6,number,#.0}\nD/E: {7,number,#.00} | Curr: {8,number,#.00}",
score, roe, roic, grossMargin, netMargin, pe, pFcf, deRatio, currentRat)
infoLabel := label.new(bar_index, high, infoText,
style = label.style_label_right,
color = color.new(color.black, 0),
textcolor = color.white,
size = size.small)
Forex indicator By petran Elevate your market analysis with this powerful, all-in-one visual toolkit designed for discretionary traders across Forex, indices, and commodities (metals).
Core Features:
Trading Sessions Overlay: Clear visual bands highlighting the Asian, London, and New York trading sessions directly on your chart. Never miss a market open or a session overlap again.
Smart Daily Levels: Automatically plots the most essential reference points from the previous day:
PDH / PDL (Previous Day High/Low) – Key support and resistance.
PWH / PWL (Previous Week High/Low) – Higher timeframe context.
DO (Day Open) – A crucial intraday pivot level.
Motivational Watermark: A unique and customizable text overlay at the top of your screen. Display your favorite trading quote, rule, or reminder to maintain the right mindset during the trading day.
Clean & Customizable: Designed for clarity. Adjust colors, session times, and watermark text to fit your personal trading style and chart aesthetics.
Why Traders Choose This Indicator:
Saves Time: No more manually drawing sessions or calculating yesterday's levels.
Improves Discipline: The visual sessions and watermark help you trade only during your planned times and follow your rules.
Universal Application: Works seamlessly on any liquid market where session activity and daily ranges matter.
Perfect for traders who rely on price action, session-based strategies, and need a clean, informative chart environment.
NexusLibsDisplayNexusLibsDisplay provides lightweight, reusable UI helpers for Pine Script indicators.
It is designed to simplify the creation of display elements on the chart—such as info tables, headers, and custom text overlays—without forcing users to rebuild UI components in every script.
This library follows a minimal, dependency-free design so it can be imported safely into protected or invite-only indicators.
Functions
createInfoTable(showPair, showTF, txtColor, bgColor)
Creates a compact top-center table displaying the current symbol and timeframe.
Useful for dashboards, algo-overviews, and clean chart annotations.
showText(txt, posX, posY, txtColor)
Displays custom text at a specific chart location.
Ideal for labels, markers, or highlighting model states.
SPY EMA + VWAP Day Trading Strategy (Market Hours Only)//@version=5
indicator("SPY EMA + VWAP Day Trading Strategy (Market Hours Only)", overlay=true)
// === Market Hours Filter (EST / New York Time) ===
nySession = input.session("0930-1600", "Market Session (NY Time)")
inSession = time(timeframe.period, "America/New_York") >= time(nySession, "America/New_York")
// EMAs
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// VWAP
vwap = ta.vwap(close)
// Plot EMAs & VWAP
plot(ema9, "EMA 9", color=color.green, linewidth=2)
plot(ema21, "EMA 21", color=color.orange, linewidth=2)
plot(vwap, "VWAP", color=color.blue, linewidth=2)
// ----------- Signals -----------
long_raw = close > ema9 and ema9 > ema21 and close > vwap and ta.crossover(ema9, ema21)
short_raw = close < ema9 and ema9 < ema21 and close < vwap and ta.crossunder(ema9, ema21)
// Apply Market Hours Filter
long_signal = long_raw and inSession
short_signal = short_raw and inSession
// Plot Signals
plotshape(long_signal,
title="BUY",
style=shape.labelup,
location=location.belowbar,
color=color.green,
size=size.small,
text="BUY")
plotshape(short_signal,
title="SELL",
style=shape.labeldown,
location=location.abovebar,
color=color.red,
size=size.small,
text="SELL")
// Alerts
alertcondition(long_signal, title="BUY Alert", message="BUY Signal (Market Hours Only)")
alertcondition(short_signal, title="SELL Alert", message="SELL Signal (Market Hours Only)")
Clean Industry DataClean Industry Data – Overview
Clean Industry Data is a utility tool designed to give traders an instant, structured view of key fundamental and volatility metrics directly on the chart. The script displays a compact, customizable information panel containing:
Industry & Sector
Market Cap and Free-Float Market Cap
Free-Float Percentage
Average Daily Rupee Volume
Relative Volume (R.Vol) based on daily volume
% from 10 / 21 / 50 EMAs (calculated on daily closes)
ADR (14-day) with threshold-based indicators
ATR (current timeframe) with colour-coded risk cues
All volume-based statistics are anchored to daily data, ensuring the values remain consistent across all timeframes. The display table supports flexible positioning, custom background/text colours, and adjustable text size.
This script is ideal for traders who want a quick, accurate snapshot of a stock’s liquidity, volatility, and broader classification — without digging through multiple menus or external sources.
SYMBOL NOTES - UNCORRELATED TRADING GROUPSWrite symbol-specific notes that only appear on that chart. Organized into 6 uncorrelated groups for safe multi-pair trading.
📝 SYMBOL NOTES - UNCORRELATED TRADING GROUPS
This indicator solves two problems every serious trader faces:
1. Keeping Track of Your Analysis
Write notes for each trading pair and they'll only appear when you view that specific chart. No more forgetting your key levels, trade ideas, or analysis!
2. Avoiding Correlated Risk
The symbols are organized into 6 groups where ALL pairs within each group are completely UNCORRELATED. Trade any combination from the same group without worrying about double exposure.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 THE PROBLEM THIS SOLVES
Have you ever:
- Opened XAUUSD and EURUSD at the same time, then Fed news hit and BOTH positions went against you?
- Traded GBPUSD and GBPJPY together, then BOE announcement stopped out both trades?
- Forgotten what levels you were watching on a pair?
This indicator helps you avoid these costly mistakes!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 THE 6 UNCORRELATED GROUPS
Each group contains pairs that share NO common currency:
```
GRUP 1: XAUUSD • EURGBP • NZDJPY • AUDCHF • NATGAS
GRUP 2: EURUSD • GBPJPY • AUDNZD • CADCHF
GRUP 3: GBPUSD • EURJPY • AUDCAD • NZDCHF
GRUP 4: USDJPY • EURCHF • GBPAUD • NZDCAD
GRUP 5: USDCAD • EURAUD • GBPCHF
GRUP 6: NAS100 • DAX40 • UK100 • JPN225
```
**Example - GRUP 1:**
- XAUUSD → Uses USD + Gold
- EURGBP → Uses EUR + GBP
- NZDJPY → Uses NZD + JPY
- AUDCHF → Uses AUD + CHF
- NATGAS → Commodity (independent)
= 7 different currencies, ZERO overlap!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
**✅ HOW TO USE**
1. Add indicator to any chart
2. Open Settings (gear icon ⚙️)
3. Find your symbol's group and input field
4. Write your note (support levels, trade ideas, etc.)
5. Switch charts - your note appears only on that symbol!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ SETTINGS
- Note Position: Choose where the note box appears (6 positions)
- Text Size: Tiny, Small, Normal, or Large
- Show Group Name: Display which correlation group
- Show Symbol Name: Display current symbol
- Colors: Customize background, text, group label, and border colors
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 TRADING STRATEGY TIPS
Safe Multi-Pair Trading:
1. Pick ONE group for the day
2. Look for setups on ANY symbol in that group
3. Open positions freely - they won't correlate!
4. Even if major news hits, only ONE position is affected
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 COMPATIBLE WITH
- All major forex brokers
- Prop firms (FTMO, Alpha Capital, etc.)
- Works on any timeframe
- Futures symbols supported (MGC, M6E, etc.)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Abu Basel IQOption 2m Signals//@version=5
indicator("Abu Basel IQOption 2m Signals", overlay = true, timeframe = "", timeframe_gaps = true)
//========================
// الإعدادات
//========================
emaFastLen = input.int(9, "EMA سريع (9)")
emaSlowLen = input.int(21, "EMA بطيء (21)")
rsiLen = input.int(14, "RSI Length", minval = 2)
rsiBuyLevel = input.float(50.0, "RSI حد الشراء (أعلى من)", minval = 0, maxval = 100)
rsiSellLevel= input.float(50.0, "RSI حد البيع (أقل من)", minval = 0, maxval = 100)
bbLen = input.int(20, "Bollinger Length")
bbMult = input.float(2.0, "Bollinger Deviation")
showSignals = input.bool(true, "إظهار الأسهم (CALL / PUT)")
showBg = input.bool(true, "تلوين الخلفية عند الإشارات")
//========================
// المؤشرات الأساسية
//========================
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
basis = ta.sma(close, bbLen)
dev = bbMult * ta.stdev(close, bbLen)
bbUpper = basis + dev
bbLower = basis - dev
rsi = ta.rsi(close, rsiLen)
// رسم المتوسطات والبولينجر
plot(emaFast, title = "EMA 9", linewidth = 2)
plot(emaSlow, title = "EMA 21", linewidth = 2)
plot(basis, title = "BB Basis", linewidth = 1)
plot(bbUpper, title = "BB Upper", linewidth = 1, style = plot.style_line)
plot(bbLower, title = "BB Lower", linewidth = 1, style = plot.style_line)
//========================
// دوال أشكال الشموع الانعكاسية
//========================
bodySize = math.abs(close - open)
fullRange = high - low
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
isSmallBody = bodySize <= fullRange * 0.3
// Hammer صاعدة (ذيل سفلي طويل)
bullHammer() =>
lowerWick > bodySize * 2 and upperWick <= bodySize and close > open
// Shooting Star هابطة (ذيل علوي طويل)
bearShootingStar() =>
upperWick > bodySize * 2 and lowerWick <= bodySize and close < open
// Bullish Engulfing
bullEngulfing() =>
close > open and close < open and close > open and open < close
// Bearish Engulfing
bearEngulfing() =>
close < open and close > open and close < open and open > close
// تجميع أنماط صعود/هبوط
bullPattern = bullHammer() or bullEngulfing()
bearPattern = bearShootingStar() or bearEngulfing()
//========================
// شروط الدخول
//========================
// تقاطع المتوسطات
bullCross = ta.crossover(emaFast, emaSlow) // صعود
bearCross = ta.crossunder(emaFast, emaSlow) // هبوط
// شروط شراء CALL:
// 1) تقاطع EMA9 فوق EMA21
// 2) السعر فوق خط وسط البولنجر
// 3) RSI أعلى من 50
// 4) شمعة انعكاسية صاعدة (Hammer أو Engulfing)
callCond = bullCross and close > basis and rsi > rsiBuyLevel and bullPattern
// شروط بيع PUT:
// 1) تقاطع EMA9 تحت EMA21
// 2) السعر تحت خط وسط البولنجر
// 3) RSI أقل من 50
// 4) شمعة انعكاسية هابطة (Shooting Star أو Bearish Engulfing)
putCond = bearCross and close < basis and rsi < rsiSellLevel and bearPattern
//========================
// رسم الإشارات على الشارت
//========================
plotshape(showSignals and callCond, title="CALL 2m",
style=shape.labelup, location=location.belowbar,
text="CALL\n2m", size=size.tiny)
plotshape(showSignals and putCond, title="PUT 2m",
style=shape.labeldown, location=location.abovebar,
text="PUT\n2m", size=size.tiny)
// تلوين الخلفية عند الإشارات
bgcolor(showBg and callCond ? color.new(color.green, 85) :
showBg and putCond ? color.new(color.red, 85) : na)
//========================
// شروط التنبيه (Alerts)
//========================
alertcondition(callCond, title="CALL 2m Signal",
message="Abu Basel Signal: CALL 2m on {{ticker}} at {{close}}")
alertcondition(putCond, title="PUT 2m Signal",
message="Abu Basel Signal: PUT 2m on {{ticker}} at {{close}}")
Gold Signal System + Alerts // GOLD SIGNAL SYSTEM + ALERTS
//@version=5
indicator("Gold Signal System + Alerts", overlay=true)
// EMAs
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
// Conditions
buySignal = ta.crossover(ema50, ema200)
sellSignal = ta.crossunder(ema50, ema200)
// Plot
plot(ema50, color=color.yellow)
plot(ema200, color=color.blue)
// Signals
plotshape(buySignal, title="BUY", style=shape.labelup, color=color.new(color.green,0), text="BUY", size=size.small)
plotshape(sellSignal, title="SELL", style=shape.labeldown, color=color.new(color.red,0), text="SELL", size=size.small)
// Alerts
alertcondition(buySignal, title="Buy Signal", message="BUY signal on GOLD")
alertcondition(sellSignal, title="Sell Signal", message="SELL signal on GOLD")
Structure Break Out + rsi divergence + alma SIMPLIFIED OBJECTIVE (dyor, nfa, test different assets and diff TF)
The goal of this script is to act as a Reversal Sniper. Most traders lose money by trying to guess the top or bottom of a market too early. This strategy solves that by waiting for two specific events to happen together:
First, a hidden shift in momentum (RSI Divergence).
Second, a confirmed change in price direction (Crossing the ALMA 20 Blue Line).
This ensures you only enter a trade when the market has confirmed it is ready to reverse.
TRADING RULES
BUY SIGNAL (Long Position)
Step 1: Look for a GREEN DIV label below the candles. This warns you that sellers are exhausted.
Step 2: Wait for a GREEN TRIANGLE with the text GO. This confirms the price has crossed above the Blue Line.
Step 3: Enter the Buy trade immediately when the candle with the GO signal closes.
SELL SIGNAL (Short Position)
Step 1: Look for a RED DIV label above the candles. This warns you that buyers are exhausted.
Step 2: Wait for a RED TRIANGLE with the text GO. This confirms the price has crossed below the Blue Line.
Step 3: Enter the Sell trade immediately when the candle with the GO signal closes.
EXIT RULES (How to Close the Trade)
The script draws lines on the chart to help you manage the trade.
Scenario A: The Perfect Win (Target Hit)
If price hits the Green Line, the trade is closed automatically for a profit. This is your Risk-Reward Target.
Scenario B: The Trend Change (Reversal)
If the price turns around and crosses the Blue Line in the wrong direction, close the trade immediately. Do not wait for the stop loss. This protects your profits or keeps losses small.
Scenario C: The Safety Net (Stop Loss)
If price hits the Red Line, the trade is closed for a loss. This is your safety guard to prevent a small loss from becoming a big one.
IMPORTANT NOTES
Never trade a DIV label without a GO signal. The DIV is just a warning; the GO is the trigger.
- This strategy works best on 15-Minute and 1-Hour timeframes.
- If t
he Blue Line is flat, be careful, as the market may be ranging. Ideally, you want to see the Blue Line angling up or down.
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
SPX +10 / -10 From 9:30 Open//@version=5
indicator("SPX +10 / -10 From 9:30 Open", overlay=true)
// Exchange Time (New York)
sess = input.session("0930-1600", "Regular Session (ET)")
// Detect session and 9:30 AM bar
inSession = time(timeframe.period, sess)
// Capture the 9:30 AM open
var float open930 = na
if inSession
// If this is the first bar of the session (9:30 AM)
if time(timeframe.period, sess) == na
open930 := open
else
open930 := na
// Calculate movement from 9:30 AM open
up10 = close >= open930 + 10
dn10 = close <= open930 - 10
// Plot reference lines
plot(open930, "9:30 AM Open", color=color.orange)
plot(open930 + 10, "+10 Level", color=color.green)
plot(open930 - 10, "-10 Level", color=color.red)
// Alert conditions
alertcondition(up10, title="SPX Up +10", message="SPX moved UP +10 from the 9:30 AM open")
alertcondition(dn10, title="SPX Down -10", message="SPX moved DOWN -10 from the 9:30 AM open")
// Plot signals on chart
plotshape(up10, title="+10 Hit", style=shape.labelup, color=color.green, text="+10", location=location.belowbar, size=size.tiny)
plotshape(dn10, title="-10 Hit", style=shape.labeldown, color=color.red, text="-10", location=location.abovebar, size=size.tiny)
Average Volume LabelAverage Volume Label Indicator
This TradingView Pine Script creates a customizable label that displays the average trading volume over a specified period directly on your price chart.
Core Functionality:
Calculates the simple moving average (SMA) of volume over a user-defined number of days (default: 20 days)
Displays this average in a positioned label at the top of the chart
The label shows text like "20-Day Avg Volume: 1.2M" with automatic volume formatting
Key Customization Options:
Volume Calculation:
Adjustable lookback period (1-200 days) for the volume average
Label Appearance:
Text color, background color, and transparency controls
Five size options (Tiny to Huge)
Configurable horizontal position (how many bars back from the current bar to place the label)
Technical Implementation:
Updates only on the most recent bar to optimize performance
Positions the label at the highest price point within the visible range for consistent top-of-chart placement
Includes safety checks to prevent runtime errors with lookback periods
Also plots the average volume data (visible in the data window for reference)
This indicator is useful for traders who want to quickly assess whether current volume is above or below the recent average without cluttering their chart with additional panes.
Pivot Move Ranges█ OVERVIEW
“Pivot Move Ranges” is an indicator that displays only the historical price ranges of moves that match the direction of the current swing.
It measures the price range of each individual swing and draws them as horizontal Δ-boxes positioned at the level of the most recently detected pivot.
The indicator operates with a delay equal to the set pivot detection length – after each new Pivot High, only red Δ-boxes appear showing the sizes of previous downward moves; after each new Pivot Low, only green Δ-boxes appear showing the sizes of previous upward moves. When the swing direction changes, the displayed set of levels instantly switches to the opposite direction.
█ CONCEPTS
The indicator was created to instantly provide the trader with objective, real historical price ranges – perfectly reinforcing classic tools such as Fibonacci extension/retracement, daily/weekly pivots, moving averages, order blocks, or Volume Profile.
It detects classic Pivot High and Pivot Low points:
- New Pivot High → only previous downward moves are shown (red Δ-boxes)
- New Pivot Low → only previous upward moves are shown (green Δ-boxes)
This ensures that at any moment you see only the historical ranges that match the current market direction. Price moves very often repeat themselves – the indicator makes these recurring levels immediately visible and ready to serve as natural reinforcement for other technical analysis tools.
█ FEATURES
- Pivot High / Pivot Low detection with adjustable length (default 12)
- Δ-boxes – thin horizontal lines showing the exact size of previous moves that match the current swing
- Automatic switching of the Δ-box set whenever a new opposite pivot appears
- Memory of the last N moves (default 6, max. 50) – oldest are automatically removed
- Labels showing move size (Δ) and start date/time
- Full color customization (separate for up and down), border and text transparency
- Choice of date format (DD.MM.YYYY or MM/DD/YYYY)
- Small circles marking the exact pivot locations
█ HOW TO USE
Add the indicator to your TradingView chart → paste the code → Add to Chart.
Settings:
- Pivot Length – higher values = fewer but more significant pivots (detected with a delay equal to this length)
- Max Corrections to Keep – how many previous matching moves are displayed at once
- Upward / Downward Box Color – colors of the Δ-boxes
- Box Border Transparency (%) – 0 = solid lines, 50–70 = subtle
- Show Δ Text + Move Start Date – turn labels on/off
Interpretation:
At any given moment the chart shows only the historical ranges of moves in the current direction:
- after a Pivot High → red Δ-boxes = “how far the market previously fell”
- after a Pivot Low → green Δ-boxes = “how far the market previously rose”
█ APPLICATIONS
- Instant reinforcement of technical levels – historical moves matching the current swing direction often coincide with Fibonacci levels, daily/weekly pivots, moving averages, or order blocks
- Fast cluster detection – set a high Max Corrections value (30–50) to see where the largest number of similarly sized moves cluster, then reduce to 6–10 and focus only on the most recent levels
█ NOTES
- On very strong trends, Δ-boxes can be extremely long – this is normal and correct behavior
- Always use as a supporting layer alongside other technical analysis tools
CoreMACDHTF [CHE]Library "CoreMACDHTF"
calc_macd_htf(src, preset_str, smooth_len)
Parameters:
src (float)
preset_str (simple string)
smooth_len (int)
is_hist_rising(src, preset_str, smooth_len)
Parameters:
src (float)
preset_str (simple string)
smooth_len (int)
hist_rising_01(src, preset_str, smooth_len)
Parameters:
src (float)
preset_str (simple string)
smooth_len (int)
CoreMACDHTF — Hardcoded HTF MACD Presets with Smoothed Histogram Regime Flags
Summary
CoreMACDHTF provides a reusable MACD engine that approximates higher-timeframe behavior by selecting hardcoded EMA lengths based on the current chart timeframe, then optionally smoothing the resulting histogram with a stateful filter. It is published as a Pine v6 library but intentionally includes a minimal demo plot so you can validate behavior directly on a chart. The primary exported outputs are MACD, signal, a smoothed histogram, and the resolved lengths plus a timeframe tag. In addition, it exposes a histogram rising condition so importing scripts can reuse the same regime logic instead of re-implementing it.
Motivation: Why this design?
Classic MACD settings are often tuned to one timeframe. When you apply the same parameters to very different chart intervals, the histogram can become either too noisy or too sluggish. This script addresses that by using a fixed mapping from the chart timeframe into a precomputed set of EMA lengths, aiming for more consistent “tempo” across intervals. A second problem is histogram micro-chop around turning points; the included smoother reduces short-run flips so regime-style conditions can be more stable for alerts and filters.
What’s different vs. standard approaches?
Reference baseline: a standard MACD using fixed fast, slow, and signal lengths on the current chart timeframe.
Architecture differences:
Automatic timeframe bucketing that selects a hardcoded length set for the chosen preset.
Two preset families: one labeled A with lengths three, ten, sixteen; one labeled B with lengths twelve, twenty-six, nine.
A custom, stateful histogram smoother intended to damp noisy transitions.
Library exports that return both signals and metadata, plus a dedicated “histogram rising” boolean.
Practical effect:
The MACD lengths change when the chart timeframe changes, so the oscillator’s responsiveness is not constant across intervals by design.
The rising-flag logic is based on the smoothed histogram, which typically reduces single-bar flip noise compared to using the raw histogram directly.
How it works (technical)
1. The script reads the chart timeframe and converts it into milliseconds using built-in timeframe helpers.
2. It assigns the timeframe into a bucket label, such as an intraday bucket or a daily-and-above bucket, using fixed thresholds.
3. It resolves a hardcoded fast, slow, and signal length triplet based on:
The selected preset family.
The bucket label.
In some cases, the current minute multiplier for finer mapping.
4. It computes fast and slow EMAs on the selected source and subtracts them to obtain MACD, then computes an EMA of MACD for the signal line.
5. The histogram is derived from the difference between MACD and signal, then passed through a custom smoother.
6. The smoother uses persistent internal state to carry forward its intermediate values from bar to bar. This is intentional and means the smoothing output depends on contiguous bar history.
7. The histogram rising flag compares the current smoothed histogram to its prior value. On the first comparable bar it defaults to “rising” to avoid a missing prior reference.
8. Exports:
A function that returns MACD, signal, smoothed histogram, the resolved lengths, and a text tag.
A function that returns the boolean rising state.
A function that returns a numeric one-or-zero series for direct plotting or downstream numeric logic.
HTF note: this is not a true higher-timeframe request. It does not fetch higher-timeframe candles. It approximates HTF feel by selecting different lengths on the current timeframe.
Parameter Guide
Source — Input price series used for EMA calculations — Default close — Trade-offs/Tips
Preset — Selects the hardcoded mapping family — Default preset A — Preset A is more reactive than preset B in typical use
Table Position — Anchor for an information table — Default top right — Present but not wired in the provided code (Unknown/Optional)
Table Size — Text size for the information table — Default normal — Present but not wired in the provided code (Unknown/Optional)
Dark Mode — Theme toggle for the table — Default enabled — Present but not wired in the provided code (Unknown/Optional)
Show Table — Visibility toggle for the table — Default enabled — Present but not wired in the provided code (Unknown/Optional)
Zero dead-band (epsilon) — Intended neutral band around zero for regime classification — Default zero — Present but not used in the provided code (Unknown/Optional)
Acceptance bars (n) — Intended debounce count for regime confirmation — Default three — Present but not used in the provided code (Unknown/Optional)
Smoothing length — Length controlling the histogram smoother’s responsiveness — Default nine — Smaller values react faster but can reintroduce flip noise
Reading & Interpretation
Smoothed histogram: use it as the momentum core. A positive value implies MACD is above signal, a negative value implies the opposite.
Histogram rising flag:
True means the smoothed histogram increased compared to the prior bar.
False means it did not increase compared to the prior bar.
Demo plot:
The included plot outputs one when rising is true and zero otherwise. It is a diagnostic-style signal line, not a scaled oscillator display.
Practical Workflows & Combinations
Trend following:
Use rising as a momentum confirmation filter after structural direction is established by higher highs and higher lows, or lower highs and lower lows.
Combine with a simple trend filter such as a higher-timeframe moving average from your main script (Unknown/Optional).
Exits and risk management:
If you use rising to stay in trends, consider exiting or reducing exposure when rising turns false for multiple consecutive bars rather than reacting to a single flip.
If you build alerts, evaluate on closed bars to avoid intra-bar flicker in live candles.
Multi-asset and multi-timeframe:
Because the mapping is hardcoded, validate on each asset class you trade. Volatility regimes differ and the perceived “equivalence” across timeframes is not guaranteed.
For consistent behavior, keep the smoothing length aligned across assets and adjust only when flip frequency becomes problematic.
Behavior, Constraints & Performance
Repaint and confirmation:
There is no forward-looking indexing. The logic uses current and prior values only.
Live-bar values can change until the bar closes, so rising can flicker intra-bar if you evaluate it in real time.
security and HTF:
No higher-timeframe candle requests are used. Length mapping is internal and deterministic per chart timeframe.
Resources:
No loops and no arrays in the core calculation path.
The smoother maintains persistent state, which is lightweight but means results depend on uninterrupted history.
Known limits:
Length mappings are fixed. If your chart timeframe is unusual, the bucket choice may not represent what you expect.
Several table and regime-related inputs are declared but not used in the provided code (Unknown/Optional).
The smoother is stateful; resetting chart history or changing symbol can alter early bars until state settles.
Sensible Defaults & Quick Tuning
S tarting point:
Preset A
Smoothing length nine
Source close
Tuning recipes:
Too many flips: increase smoothing length and evaluate rising only on closed bars.
Too sluggish: reduce smoothing length, but expect more short-run reversals.
Different timeframe feel after switching intervals: keep preset fixed and adjust smoothing length first before changing preset.
Want a clean plot signal: use the exported numeric rising series and apply your own display rules in the importing script.
What this indicator is—and isn’t
This is a momentum and regime utility layer built around a MACD-style backbone with hardcoded timeframe-dependent parameters and an optional smoother. It is not a complete trading system, not a risk model, and not predictive. Use it in context with market structure, execution rules, and risk controls.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Do not use this indicator on Heikin-Ashi, Renko, Kagi, Point-and-Figure, or Range charts, as these chart types can produce unrealistic results for signal markers and alerts.
Best regards and happy trading
Chervolino






















