Multitimeframe
VSA Highlight & Relative Strength of Volume [odnac]This is a TradingView indicator combining VSA (Volume Spread Analysis) signals with a relative strength of volume visualization.
The indicator has two main parts:
1. VSA Volume Highlight:
Detects common VSA signals, including Stopping Volume, Buying Climax, No Supply, No Demand, Test, Up-thrust, Shakeout, Demand Absorption, and Supply Absorption.
Supports a trend filter using a user-selectable moving average type (SMA, EMA, WMA, or VWMA) and length.
Calculates spread and volume moving averages to determine wide/narrow spreads and high/low volume relative to the averages.
Determines relative bar positions (close near high, close near low, or mid-close) to categorize VSA signals.
Optionally colors the background based on the detected VSA signal.
Supports alerts for each VSA signal type.
2. Relative Strength of Volume:
Splits total volume into buying and selling components based on the candle’s high, low, and close.
Buying volume is calculated as volume times the proportion of the candle’s close above the low.
Selling volume is calculated as volume times the proportion of the candle’s close below the high.
Plots buying and selling volume as colored columns in the pane.
Plots total volume in the status line colored according to the dominant side (buying or selling).
Inputs include:
Toggle visibility for each VSA signal.
Trend filter options (type and length).
Volume and spread moving average lengths and multipliers for high/low volume and wide/narrow spread detection.
Thresholds for close positions near high or low, and for identifying Buying Climax.
Opacity for VSA volume highlights.
The indicator is designed to help traders visually identify key volume patterns and analyze buying and selling pressure in the market.
Market Sessions & Daily Range ProThis tool is designed for market visualization. It displays the real trading sessions (Asia, Europe, and America) together with the daily range (00:00–24:00). Boxes and labels show daily highs, lows, open/close levels, and current extremes. The purpose is to provide traders with a clear visual map of how price behaves across sessions and within the daily structure.
High Timeframe Candle Overlay (Configurable)HTF Candle Overlay — Read Higher Timeframe on Lower Timeframe Charts
What it does
This indicator draws each selected Higher-Timeframe (HTF) candle directly on your lower-timeframe (LTF) chart. It shows a translucent range box (HTF high–low) and an inner body box (HTF open–close), so you can track how the bigger candle is forming while you analyze lower-timeframe structure, liquidity sweeps, and intrabar reactions.
Why it’s helpful
• See where the current HTF candle opened, where price sits inside its body, and how far wicks extend—without leaving your LTF chart.
• Combine HTF context (e.g., 1H/4H) with LTF execution (e.g., 1m–15m) to spot confluence, S/R flips, and failed breaks faster.
• The overlay is locked to the price scale and anchored by bar index, so it pans/zooms exactly with your chart (no drifting while dragging).
⸻
How it works (under the hood)
• Fetches HTF OHLC via request.security.
• When a new HTF bar starts, the previous HTF boxes are frozen at the true close.
• The current HTF bar updates intrabar (so you see live formation) and is clamped to the correct span.
• Horizontal anchoring uses bar index, and a hidden price plot binds the script to the main price scale for stable zoom/pan behavior.
⸻
Inputs
• High Timeframe (HTF): Default 1H (set any TF you like).
• Show High–Low Box: On/off.
• Show Body Box (Open–Close): On/off.
• Opacity for range/body boxes.
• Bull/Bear Colors and Outline + Width.
• Max HTF Candles to Keep: Auto-deletes older boxes to maintain performance.
⸻
Usage tips
• Popular combos: view 1H or 4H candles while trading 1–15m charts.
• Turn off the range box if you only want a clean HTF body overlay.
• Pair with your session/structure tools; this indicator is visual context only (no signals or alerts).
⸻
Notes & limitations
• Non-repainting for closed HTF bars: once an HTF candle closes, its boxes are fixed. The current/in-progress HTF bar updates until it closes (expected live behavior).
• Data alignment depends on your symbol’s feed and session settings. Heikin Ashi/renko/etc. may not match classic OHLC.
• Heavy history + many boxes can affect performance; reduce “Max HTF Candles to Keep” if needed.
⸻
Disclaimer
This script is for education and charting visualization only. It does not provide financial advice, trade signals, or performance guarantees. Always do your own research and manage risk.
Quarterly Theory —Q1,Q2,Q3,Q4The Quarterly Theory Indicator is a trading tool designed to visualize the natural time-based cycles of the market, based on the principles of Quarterly Theory, popularized by the Inner Circle Trader (ICT). The indicator divides market sessions into four equal “quarters” to help traders identify potential accumulation, manipulation, and distribution phases (AMD model) and improve the timing of entries and exits.
Key Features:
Quarter Divisions (Q1–Q4):
Each market session (e.g., NY AM, London, Asia) is divided into four quarters.
Vertical lines mark the beginning of each quarter, making it easy to track session structure.
Optional labels show Q1, Q2, Q3, and Q4 directly on the chart.
True Open (Q2 Open):
The True Open is the opening price of Q2, considered a key reference point in Quarterly Theory.
A horizontal red line is drawn at the True Open price with a label showing the exact value.
This line helps traders filter bullish and bearish setups:
Buy below the True Open if the market is bullish.
Sell above the True Open if the market is bearish.
Session Awareness:
The indicator can automatically detect market sessions and reset lines and labels for each new session.
Ensures that only the current session’s True Open and quarter lines are displayed, reducing chart clutter.
Timeframe Flexibility:
Works on any chart timeframe (1-minute to daily).
Maintains accurate alignment of quarters and True Open regardless of the timeframe used.
Purpose of Quarterly Theory:
Quarterly Theory is based on the idea that market behavior is fractal and time-driven. By dividing sessions into four quarters, traders can anticipate potential market phases:
Q1: Initial price discovery and setup for the session.
Q2: Accumulation or manipulation phase, where the True Open is established.
Q3: Manipulation or Judas Swing phase designed to trap traders.
Q4: Distribution or trend continuation/reversal.
By visualizing these quarters and the True Open, traders can reduce ambiguity, identify high-probability setups, and improve their timing in line with the ICT AMD (Accumulation, Manipulation, Distribution) framework.
FUMO MA Cross Matrix 9/21/50/100/200 FUMO MA Cross Matrix is a flexible and advanced indicator designed for traders who rely on moving average crossovers as part of their strategy.
🔹 Key Features:
Supports 5 types of Moving Averages: EMA, SMA, SMMA (RMA), WMA, HMA.
Includes 5 standard MAs: 9, 21, 50, 100, 200 (toggle on/off individually).
Choose which MA crosses to monitor (9×21, 21×50, 50×100, 100×200, and 6 extended combinations).
On-chart signals (labels) when crosses occur.
Alerts system for every selected cross and also summary alerts (“Any Cross Up/Down”).
Option to trigger signals only on confirmed bars (no repaint).
Fully adjustable label visibility and signal style.
🔹 Use Cases:
Detect trend shifts (short-term vs long-term).
Build scalping, swing, or position trading strategies.
Combine with price action or volume analysis for stronger setups.
Quickly react to Golden Cross and Death Cross events.
🔹 How to Use:
Select your preferred MA type (EMA, SMA, etc.).
Enable the MAs (9, 21, 50, 100, 200) you want to plot.
Choose which crossovers to track in the settings.
Enable/disable on-chart labels for better visualization.
Set up alerts:
“CROSS UP/DOWN X>Y” for specific pairs.
“ANY CROSS UP/DOWN” for aggregated signals.
📌 Example Alerts
MA Cross UP 9>21 on BTCUSDT 15m @ 65432
Any selected MA cross DOWN on AAPL 1D @ 195.2
Market Sessions [odnac]
This indicator highlights the three main global market sessions (USA, Europe, Asia) and their overlaps directly on the chart.
It helps traders quickly identify active trading periods and potential high-liquidity overlaps.
Features:
Customizable start and end times for each session
Optional daily dividers with weekday labels
Session markers displayed as circles above the candles
Overlap sessions displayed in distinct colors
Adjustable opacity for better chart visibility
Option to hide weekends
Sessions included:
USA Market Session (default 13:30–20:00 UTC)
Europe Market Session (default 07:00–16:00 UTC)
Asia Market Session (default 00:00–09:00 UTC)
Overlaps: USA + Europe, USA + Asia, Europe + Asia
This tool is designed for intraday timeframes (1m–60m) and can be useful for scalping, day trading, or session-based strategies.
EMA Oracle and RSIEMA Oracle
- “See the market’s structure through the eyes of exponential wisdom.”
combines classic EMA stacks with Pi-based logic to reveal high-probability buy/sell zones and trend bias across timeframes
Multi-EMA Trend & Pi Signal Indicator
This advanced indicator combines classic trend analysis with Pi-based signal logic to help traders identify optimal entry and exit zones across multiple timeframes.
Core Features
EMA Trend Structure: Displays EMAs 9, 13, 20, 50, and 200 to visualize short-term and long-term trend orientation. Bullish momentum is indicated when shorter EMAs are stacked above longer ones.
Pi-Based Signal Logic: Inspired by the Pi Indicator, it includes EMA111 and EMA700 (350×2) on the daily chart:
Buy Zone: When price is trading below EMA111, it signals potential accumulation for spot or low-leverage position trades.
Sell Zone: When price is above EMA700, it suggests potential distribution or exit zones.
Trend Cross Alerts: Detects EMA crossovers and crossunders to highlight shifts in market structure and generate buy/sell signals.
Multi-Timeframe Analysis: Evaluates trend direction across selected timeframes (e.g., 15m, 30m, 1h, 4h, 1D), offering a broader market perspective.
RSI Integration: Combines Relative Strength Index (RSI) readings with EMA positioning to assess momentum and overbought/oversold conditions.
Trend Table Display: A dynamic table summarizes the asset’s trend status per timeframe, showing:
RSI values
EMA alignment
Overall trend bias (bullish, bearish, neutral)
Time Based Range CandleThis indicator creates a visual candle representation from price action during a specified time period.
Key Features:
Configurable Sessions: Set any calculation period (when range is measured) and display period (when visualization appears)
Candle Visualization: Draws a large candle showing open, close, high, low with proper body coloring
Wick/Tail Analysis: Displays wicks and tails with quarter-level subdivisions based on candle type (bullish vs bearish)
End Marker: Vertical line marks exactly when the calculation period ends
Quarter Lines: Optional dotted/dashed lines showing 25%, 50%, 75% levels within body, wicks, and tails
Common Use Cases:
Overnight range analysis (18:00 - 6:00 ET) displayed during regular hours
Session-based range trading (Asian, London, NY sessions)
Custom time period analysis for any market
The indicator follows proper candle terminology where wicks and tails are measured differently for bullish vs bearish candles, making it useful for precise level analysis and range trading strategies.
RTH Levels: VWAP + PDH/PDL + ONH/ONL + IBAlgo Index — Levels Pro (ONH/ONL • PDH/PDL • VWAP±Bands • IB • Gaps)
Purpose. A session-aware, non-repainting levels tool for intraday decision-making. Designed for futures and indices, with clean visuals, alerts, and a one-click Minimal Mode for screenshot-ready charts.
What it plots
• PDH/PDL (RTH-only) – Prior Regular Trading Hours high/low, computed intraday and frozen at the RTH close (no 24h mix-ups, no repainting).
• ONH/ONL – Prior Overnight high/low, held throughout RTH.
• RTH VWAP with ±σ bands – Volume-weighted variance, reset each RTH.
• Initial Balance (IB) – First N minutes of RTH, plus 1.5× / 2.0× extensions after IB completes.
• Today’s RTH Open & Prior RTH Close – With gap detection and “gap filled” alert.
• Killzone shading – NY Open (09:30–10:30 ET) and Lunch (11:15–13:30 ET).
• Values panel (top-right) – Each level with live distance in points & ticks.
• Right-edge level tags – With anti-overlap (stagger + vertical jitter).
• Price-scale tags – Native trackprice markers that always “stick” to the axis.
⸻
New in v6.4
• Minimal Mode: one click for a clean look (thinner lines, VWAP bands/IB extensions hidden, on-chart right-edge labels off; price-scale tags remain).
• Theme presets: Dark Hi-Contrast / Light Minimal / Futures Classic / Muted Dark.
• Anti-overlap controls: horizontal staggering, vertical jitter, and baseline offset to keep tags readable even when levels cluster.
⸻
Quick start (2 minutes)
1. Add to chart → keep defaults.
2. Sessions (ET):
• RTH Session default: 09:30–16:00 (US equities cash hours).
• Overnight Session default: 18:00–09:29.
Adjust for your market if you use different “day” hours (e.g., many use 08:20–13:30 ET for COMEX Gold).
3. Theme & Minimal Mode: pick a Theme Preset; enable Minimal Mode for screenshots.
4. Visibility: toggle PD/ON/VWAP/IB/References/Panel to taste.
5. Right-edge labels: turn Show Right-Edge Labels on. If they crowd, tune:
• Anti-overlap: min separation (ticks)
• Horizontal offset per tag (bars)
• Vertical jitter per step (ticks)
• Right-edge baseline offset (bars)
6. Alerts: open Add alert → Condition: and pick the events you want.
⸻
How levels are computed (no repainting)
• PDH/PDL: Intraday H/L are accumulated only while in RTH and saved at RTH close for “yesterday’s” values.
• ONH/ONL: Accumulated across the defined Overnight window and then held during RTH.
• RTH VWAP & ±σ: Volume-weighted mean and standard deviation, reset at the RTH open.
• IB: First N minutes of RTH (default 60). Extensions (1.5×/2.0×) appear after IB completes.
• Gaps: Today’s RTH open vs prior RTH close; “Gap Filled” triggers when price trades back to prior close.
⸻
Practical playbooks (how to trade around the levels)
1) PDH/PDL interactions
• Rejection: Price taps PDH/PDL then closes back inside → mean-reversion toward VWAP/IB.
• Acceptance: Close/hold beyond PDH/PDL with momentum → continuation to next HTF/IB target.
• Alert: PD Touch/Break.
2) ONH/ONL “taken”
• Often one ON extreme is taken during RTH. ONH Taken / ONL Taken → check if it’s a clean break or sweep & reclaim.
• Sweep + reclaim near VWAP can fuel rotations through the ON range.
3) VWAP ±σ framework
• Balanced: First tag of ±1σ often reverts toward VWAP.
• Trend: Persistent trade beyond ±1σ + IB break → target ±2σ/±3σ.
• Alerts: VWAP Cross and VWAP Reject (cross then immediate fail back).
4) IB breaks
• After IB completes, a clean IB break commonly targets 1.5× and sometimes 2.0×.
• Quick return inside IB = possible fade back to the opposite IB edge/VWAP.
• Alerts: IB Break Up / Down.
5) Gaps
• Gap-and-go: Opening drive away from prior close + VWAP support → trend until IB completion.
• Gap-fill: Weak open and VWAP overhead/underfoot → trade toward prior close; manage on Gap Filled alert.
Pro tip: Stack confluences (e.g., ONL sweep + VWAP reclaim + IB hold) and respect your execution rules (e.g., require a 5-minute close in direction, or your order-flow confirmation).
⸻
Inputs you’ll actually touch
• Sessions (ET): Session Timezone, RTH Session, Overnight Session.
• Visibility: toggles for PD/ON/VWAP/IB/Ref/Panel.
• VWAP bands: set σ multipliers (±1/±2/±3).
• IB: duration (minutes) and extension multipliers (1.5× / 2.0×).
• Style & Theme: Theme Preset, Main Line Width, Trackprice, Minimal Mode, and anti-overlap controls.
⸻
Alerts included
• PD Touch/Break — High ≥ PDH or Low ≤ PDL
• ONH Taken / ONL Taken — First in-RTH take of ONH/ONL
• VWAP Cross — Close crosses VWAP
• VWAP Reject — Cross then immediate fail back
• IB Break Up / Down — Break of IB High/Low after IB completes
• Gap Filled — Price trades back to prior RTH close
Setup: Add alert → Condition: Algo Index — Levels Pro → choose event → message → Notify on app/email.
⸻
Panel guide
The top-right panel shows each level plus live distance from last price:
LevelValue (Δpoints | Δticks)
Coloring: green if level is below current price, red if above.
⸻
Styling & screenshot tips
• Use Theme Preset that matches your chart.
• For dark charts, “Dark Hi-Contrast” with Main Line Width = 3 works well.
• Enable Trackprice for crisp axis tags that always stick to the right edge.
• Turn on Minimal Mode for cleaner screenshots (no VWAP bands or IB extensions, on-chart tags off; price-scale tags remain).
• If tags crowd, increase min separation (ticks) to 30–60 and horizontal offset to 3–5; add vertical jitter (4–12 ticks) and/or push tags farther right with baseline offset (bars).
⸻
Behavior & limitations
• Levels are computed incrementally; tables refresh on the last bar for efficiency.
• Right-edge labels are placed at bar_index + offset and do not track extra right-margin scrolling (TradingView limitation). The price-scale tags (from trackprice) do track the axis.
• “RTH” is what you define in inputs. If your market uses different day hours, change the session strings so PDH/PDL reflect your definition of “yesterday’s session.”
⸻
FAQ
Q: My PDH/PDL don’t match the daily chart.
A: By design this uses RTH-only highs/lows, not 24h daily bars. Adjust sessions if you want a different definition.
Q: Right-edge tags overlap or don’t sit at the far right.
A: Increase min separation / horizontal offset / vertical jitter and/or push tags farther with baseline offset. If you want markers that always hug the axis, rely on Trackprice.
Q: Can I change killzones?
A: Yes—edit the session strings in settings or request a version with user inputs for custom windows.
⸻
Disclaimer
Educational use only. This is not financial advice. Always apply your own risk management and confirmation rules.
⸻
Enjoy it? Please ⭐ the script and share screenshots using Minimal Mode + a Theme Preset that fits your style.
RSI Dynamic Bands█ OVERVIEW
The "RSI Dynamic Bands" indicator is a variant of the Relative Strength Index (RSI) oscillator that brings its signals directly onto the price chart. It displays dynamic bands around the price, adjusted based on RSI levels, enabling easy identification of potential overbought or oversold conditions. The indicator also integrates a multi-timeframe RSI table, facilitating the analysis of trend strength across different timeframes.
█ CONCEPTS
The "RSI Dynamic Bands" indicator is designed to simplify the interpretation of price levels in the context of support and resistance zones, which can be correlated with other technical indicators and RSI values. Since the price itself does not display RSI values, a table showing RSI for four selected timeframes has been added, allowing traders to quickly assess trend strength across different time intervals. The most effective approach is to combine the indicator with other technical analysis tools, such as Fibonacci levels or pivot points, to confirm signals when the price approaches the bands and RSI values indicate a potential reversal.
Band Calculation
The bands are calculated based on the current closing price and RSI values, incorporating dynamic scaling to better adapt to market conditions. The formulas for the bands are as follows:
• Upper Band: close + (rsiUpper - rsi) * scaleFactor, where rsiUpper is the upper RSI level (default: 70), and scaleFactor accounts for market volatility.
• Lower Band: close + (rsiLower - rsi) * scaleFactor, where rsiLower is the lower RSI level (default: 30).
• Midline: The arithmetic average of the upper and lower bands: (upperBand + lowerBand) / 2.
Why Scaling? Without scaling, the bands would be chaotic and jagged, making them difficult to interpret. Scaling smooths the bands, making them wider during periods of high volatility and narrower during consolidation, better reflecting potential support and resistance levels.
Indicator Features
• Dynamic Price Bands: The bands adapt to market conditions, facilitating the identification of key price levels.
• Multi-Timeframe RSI Table: Displays RSI values for four selected timeframes (default: 15m, 1h, 4h, Daily), enabling comparison of trend strength across different perspectives.
• Style Customization: Users can adjust band colors, line thickness, and toggle the visibility of bands, fills, and the table.
How to Set Up the Indicator
1 — Add the "RSI Dynamic Bands" indicator to your TradingView chart.
2 — Configure parameters in the settings, such as RSI length, upper/lower levels, and scaling multiplier, to match your trading style.
3 — Enable or disable the display of bands, fills, or the RSI table based on your needs.
4 — Adjust band and table colors in the input section and line thickness in the "Style" section to better align the indicator with your chart.
█ OTHER SECTIONS
FEATURES
• RSI Length: The period for calculating RSI (default: 14).
• RSI Levels: Thresholds for overbought (default: 70) and oversold (default: 30).
• Scaling Multiplier: Adjusts bands based on market volatility (default: 0.15).
• Table Timeframes: Select four timeframes for the RSI table (default: 15m, 1h, 4h, Daily).
• Style Options: Customize band colors, fills, table, and line thickness.
HOW TO USE
Add the indicator to your chart, configure the parameters, and observe price interactions with the bands to identify potential entry and exit points. The RSI table allows you to compare RSI values across different timeframes, aiding in trading decisions. The most effective approach is to combine the indicator with other technical analysis tools, such as Fibonacci levels or pivot points, to confirm signals when the price approaches the bands and RSI values indicate a potential reversal.
Trading Strategies:
• Scalping: Use lower timeframes (e.g., 5m, 15m) in the RSI table to quickly identify short-term lows and highs. Wait for the price to approach the lower band in the RSI oversold zone, with RSI on lower timeframes starting to rise, and other tools, such as Fibonacci levels (e.g., 38.2%) or pivot points, confirming support.
• Medium-Term Trading: Focus on 1h and 4h timeframes. Look for confirmation of a low on a lower timeframe (e.g., 1h), where RSI indicates oversold conditions or starts rising, then check if RSI on a higher timeframe (e.g., 4h) confirms the trend. Confirmation from other tools, such as a Fibonacci level (e.g., 50%) or pivot point near the bands, strengthens the signal.
• Long-Term Trading: Use Daily and higher timeframes (e.g., Weekly). Wait for all relevant timeframes to confirm a low (e.g., RSI near oversold and price at the lower band), with lower timeframes (e.g., 4h) showing rising RSI. Other tools, such as Fibonacci levels (e.g., 61.8%) or pivot points near the bands, can further confirm a trend reversal signal.
Multi-TF Trend Table (Configurable)1) What this tool does (in one minute)
A compact, multi‑timeframe dashboard that stacks eight timeframes and tells you:
Trend (fast MA vs slow MA)
Where price sits relative to those MAs
How far price is from the fast MA in ATR terms
MA slope (rising, falling, flat)
Stochastic %K (with overbought/oversold heat)
MACD momentum (up or down)
A single score (0%–100%) per timeframe
Alignment tick when trend, structure, slope and momentum all agree
Use it to:
Frame bias top‑down (M→W→D→…→15m)
Time entries on your execution timeframe when the higher‑TF stack is aligned
Avoid counter‑trend traps when the table is mixed
2) Table anatomy (each column explained)
The table renders 9 columns × 8 rows (one row per timeframe label you define).
TF — The label you chose for that row (e.g., Month, Week, 4H). Cosmetic; helps you read the stack.
Trend — Arrow from fast MA vs slow MA: ↑ if fastMA > slowMA (up‑trend), ↓ otherwise (down‑trend). Cell is green for up, red for down.
Price Pos — One‑character structure cue:
🔼 if price is above both fast and slow MAs (bullish structure)
🔽 if price is below both (bearish structure)
– otherwise (between MAs / mixed)
MA Dist — Distance of price from the fast MA measured in ATR multiples:
XS < S < M < L < XL according to your thresholds (see §3.3). Useful for judging stretch/mean‑reversion risk and stop sizing.
MA Slope — The fast MA one‑bar slope:
↑ if fastMA - fastMA > 0
↓ if < 0
→ if = 0
Stoch %K — Rounded %K value (default 14‑1‑3). Background highlights when it aligns with the trend:
Green heat when trend up and %K ≤ oversold
Red heat when trend down and %K ≥ overbought Tooltip shows K and D values precisely.
Trend % — Composite score (0–100%), the dashboard’s confidence for that timeframe:
+20 if trendUp (fast>slow)
+20 if fast MA slope > 0
+20 if MACD up (signal definition in §2.8)
+20 if price above fast MA
+20 if price above slow MA
Background colours:
≥80 lime (strong alignment)
≥60 green (good)
≥40 orange (mixed)
<40 grey (weak/contrary)
MACD — 🟢 if EMA(12)−EMA(26) > its EMA(9), else 🔴. It’s a simple “momentum up/down” proxy.
Align — ✔ when everything is in gear for that trend direction:
For up: trendUp and price above both MAs and slope>0 and MACD up
For down: trendDown and price below both MAs and slope<0 and MACD down Tooltip spells this out.
3) Settings & how to tune them
3.1 Timeframes (TF1–TF8)
Inputs: TF1..TF8 hold the resolution strings used by request.security().
Defaults: M, W, D, 720, 480, 240, 60, 15 with display labels Month, Week, Day, 12H, 8H, 4H, 1H, 15m.
Tips
Keep a top‑down funnel (e.g., Month→Week→Day→H4→H1→M15) so you can cascade bias into entries.
If you scalp, consider D, 240, 120, 60, 30, 15, 5, 1.
Crypto weekends: consider 2D in place of W to reflect continuous trading.
3.2 Moving Average (MA) group
Type: EMA, SMA, WMA, RMA, HMA. Changes both fast & slow MA computations everywhere.
Fast Length: default 20. Shorten for snappier trend/slope & tighter “price above fast” signals.
Slow Length: default 200. Controls the structural trend and part of the score.
When to change
Swing FX/equities: EMA 20/200 is a solid baseline.
Mean‑reversion style: consider SMA 20/100 so trend flips slower.
Crypto/indices momentum: HMA 21 / EMA 200 will read slope more responsively.
3.3 ATR / Distance group
ATR Length: default 14; longer makes distance less jumpy.
XS/S/M/L thresholds: define the labels in column MA Dist. They are compared to |close − fastMA| / ATR.
Defaults: XS 0.25×, S 0.75×, M 1.5×, L 2.5×; anything ≥L is XL.
Usage
Entries late in a move often occur at L/XL; consider waiting for a pullback unless you are trading breakouts.
For stops, an initial SL around 0.75–1.5 ATR from fast MA often sits behind nearby noise; use your plan.
3.4 Stochastic group
%K Length / Smoothing / %D Smoothing: defaults 14 / 1 / 3.
Overbought / Oversold: defaults 70 / 30 (adjust to 80/20 for trendier assets).
Heat logic (column Stoch %K): highlights when a pullback aligns with the dominant trend (oversold in an uptrend, overbought in a downtrend).
3.5 View
Full Screen Table Mode: centers and enlarges the table (position.middle_center). Great for clean screenshots or multi‑monitor setups.
4) Signal logic (how each datapoint is computed)
Per‑TF data (via a single request.security()):
fastMA, slowMA → based on your MA Type and lengths
%K, %D → Stoch(High,Low,Close,kLen) smoothed by kSmooth, then %D smoothed by dSmooth
close, ATR(atrLen) → for structure and distance
MACD up → (EMA12−EMA26) > EMA9(EMA12−EMA26)
fastMA_prev → yesterday/previous‑bar fast MA for slope
TrendUp → fastMA > slowMA
Price Position → compares close to both MAs
MA Distance Label → thresholds on abs(close − fastMA)/ATR
Slope → fastMA − fastMA
Score (0–100) → sum of the five 20‑point checks listed in §2.7
Align tick → conjunction of trend, price vs both MAs, slope and MACD (see §2.9)
Important behaviour
HTF values are sampled at the execution chart’s bar close using Pine v6 defaults (no lookahead). So the daily row updates only when a daily bar actually closes.
5) How to trade with it (playbooks)
The table is a framework. Entries/exits still follow your plan (e.g., S/D zones, price action, risk rules). Use the table to know when to be aggressive vs patient.
Playbook A — Trend continuation (pullback entry)
Look for Align ✔ on your anchor TFs (e.g., Week+Day both ≥80 and green, Trend ↑, MACD 🟢).
On your execution TF (e.g., H1/H4), wait for Stoch heat with the trend (oversold in uptrend or overbought in downtrend), and MA Dist not at XL.
Enter on your trigger (break of pullback high/low, engulfing, retest of fast MA, or S/D first touch per your plan).
Risk: consider ATR‑based SL beyond structure; size so 0.25–0.5% account risk fits your rules.
Trail or scale at M/L distances or when score deteriorates (<60).
Playbook B — Breakout with confirmation
Mixed stack turns into broad green: Trend % jumps to ≥80 on Day and H4; MACD flips 🟢.
Price Pos shows 🔼 across H4/H1 (above both MAs). Slope arrows ↑.
Enter on the first clean base‑break with volume/impulse; avoid if MA Dist already XL.
Playbook C — Mean‑reversion fade (advanced)
Use only when higher TFs are not aligned and the row you trade shows XL distance against the higher‑TF context. Take quick targets back to fast MA. Lower win‑rate, faster management.
Playbook D — Top‑down filter for Supply/Demand strategy
Trade first retests only in the direction where anchor TFs (Week/Day) have Align ✔ and Trend % ≥60. Skip counter‑trend zones when the stack is red/green against you.
6) Reading examples
Strong bullish stack
Week: ↑, 🔼, S/M, slope ↑, %K=32 (green heat), Trend 100%, MACD 🟢, Align ✔
Day: ↑, 🔼, XS/S, slope ↑, %K=45, Trend 80%, MACD 🟢, Align ✔
Action: Look for H4/H1 pullback into demand or fast MA; buy continuation.
Late‑stage thrust
H1: ↑, 🔼, XL, slope ↑, %K=88
Day/H4: only 60–80%
Action: Likely overextended on H1; wait for mean reversion or multi‑TF alignment before chasing.
Bearish transition
Day flips from 60%→40%, Trend ↓, MACD turns 🔴, Price Pos “–” (between MAs)
Action: Stand aside for longs; watch for lower‑high + Align ✔ on H4/H1 to join shorts.
7) Practical tips & pitfalls
HTF closure: Don’t assume a daily row changed mid‑day; it won’t settle until the daily bar closes. For intraday anticipation, watch H4/H1 rows.
MA Type consistency: Changing MA Type changes slope/structure everywhere. If you compare screenshots, keep the same type.
ATR thresholds: Calibrate per asset class. FX may suit defaults; indices/crypto might need wider S/M/L.
Score ≠ signal: 100% does not mean “must buy now.” It means the environment is favourable. Still execute your trigger.
Mixed stacks: When rows disagree, reduce size or skip. The tool is telling you the market lacks consensus.
8) Customisation ideas
Timeframe presets: Save layouts (e.g., Swing, Intraday, Scalper) as indicator templates in TradingView.
Alternative momentum: Replace the MACD condition with RSI(>50/<50) if desired (would require code edit).
Alerts: You can add alert conditions for (a) Align ✔ changes, (b) Trend % crossing 60/80, (c) Stoch heat events. (Not shipped in this script, but easy to add.)
9) FAQ
Q: Why do I sometimes see a dash in Price Pos? A: Price is between fast and slow MAs. Structure is mixed; seek clarity before acting.
Q: Does it repaint? A: No, higher‑TF values update on the close of their own bars (standard request.security behaviour without lookahead). Intra‑bar they can fluctuate; decisions should be made at your bar close per your plan.
Q: Which columns matter most? A: For trend‑following: Trend, Price Pos, Slope, MACD, then Stoch heat for entries. The Score summarises, and Align enforces discipline.
Q: How do I integrate with ATR‑based risk? A: Use the MA Dist label to avoid chasing at extremes and to size stops in ATR terms (e.g., SL behind structure at ~1–1.5 ATR).
LevelsThis Indicator is meant to plot some of the most common levels that traders use.
The display of these levels is highly customizable, as you can choose the line type , color , thickness and whether it shows you no label, price only, reduced label or full label next to the line. All labels (except for "no Label") will show the price at this level.
Also You have the option to mark the start on each timeframe with either a individually colored background or a vertical line where you can choose the line style and color.
Full List of available Levels and Optional inputs to these levels:
Previous HTF Candle Levels:
• Previous HTF Candle Open
• Previous HTF Candle High
• Previous HTF Candle Low
• Previous HTF Candle Close
Optional:
• Choose any higher timeframe
• Mark start of new HTF candle
Session Levels:
• Session Open
• Session High
• Session Low
• Session Close
Optional:
• Choose any time as start and end of your session
• Mark start of session
• Mark full session
Daily Levels:
• Current Day Open
• Current Day High
• Current Day Low
• Previous Day Open
• Previous Day High
• Previous Day Low
• Previous Day Close
Optional:
• Choose start of day (standard, NY Midnight, custom start time)
• Mark start of day
Weekly Levels:
• Current Week Open
• Current Week High
• Current Week Low
• Previous Week Open
• Previous Week High
• Previous Week Low
• Previous Week Close
Optional:
• Mark start of Week
Monthly Levels:
• Current Month Open
• Current Month High
• Current MonthLow
• Previous Month Open
• Previous Month High
• Previous Month Low
• Previous Month Close
Optional:
• Mark start of Month
SPX → NQ Levels ConverterSPX → NQ Levels Converter is a Pine Script indicator that projects key S&P 500 (SPX) levels onto the NASDAQ 100 (NQ) chart using a configurable conversion ratio.
• Dynamic ratio: calculates the live SPX/NQ ratio in real time.
• Static ratio: allows manual input of a fixed ratio.
• Supports up to 10 custom SPX levels, automatically converted into their equivalent NQ values.
• Each level is displayed with a line and label (SPX → NQ) with independent color settings.
• Advanced visualization controls:
• line extension (right, left, both, or fixed)
• line length & placement
• label side & offset.
• Lines and labels auto-update on every bar to stay accurate over time.
Use case: particularly useful for traders who track SPX option levels or support/resistance zones but execute trades on the NQ.
samc's - Keltner OscillatorThe KELTNER CHANNEL is a widely used technical indicator developed in the 60's by Chester W. Keltner who described it in his 1960 book How To Make Money in Commodities.
so i took the logic, simplified the code and made into an oscillator.
to add a flavor of modern times you can choose among 10 different colorways themes in the settings. (so traders can adjust it for dark or light charts)
Although the initial idea was developed for stocks and commodities, I've carefully back tested this as an oscillator across FX MAJORS , MINORS and high liquidity stocks for the use case of scalping and Medium term trade ideas.
now, this indicator works successfully over all time frames, custom time frames and all assets.
This script builds on the same approach as my earlier session tool — keeping things clean, visual, and easy to read.
I intend to publish more of my work as i develop them from Beta ideas into stable scripts, and i welcome feedback.
samc's FX SESSIONS - on candles So, based on my 8 yrs of experience and over a 2 decade worth of back testing on FX majors pairs one thing i can univocally affirm to the fact that Timing is everything especially in the currency markets.
so i made this indicator to help reduce the noise and focus on signals which is coded by time,
now i made this as GMT+8 in focus but you can adjust based on your requirements.
I classified my indicator colors according to the inter-SESSION High Impact areas only as following :
Primary session colors:
ASIAN - YELLOW
EU - BLUE
US - Magenta (light)
and every first 10 mins of the hour (Great for scalping)
i marked them in a shade of grey.
secondary sessions i marked them as minor sessions.
PRE-EU 1hr of expected trend i marked in color green
and
after hours in a shade of color violet.
so i usually make my candles into light grey by default and remove the body and wicks to minimize the visual stimulus so that this indicator will work great with both dark and light themes and does not obstruct other indicators.
also i made an option to uncheck my naming scheme of session on the top right.
Multi-Timeframe 200 EMAMulti-Timeframe 200 EMA Indicator
This indicator plots five 200-period Exponential Moving Averages (EMAs) on your chart, each from a different timeframe: 1-hour, 2-hour, 4-hour, 8-hour, and 1-day.
What It Does:
Analyzes Higher Timeframes: It uses the request.security() function to fetch data from higher timeframes. This allows you to see significant long-term support and resistance levels from higher timeframes, all on your current chart.
Customizable: You can easily turn each EMA line on or off individually in the indicator's settings. By default, the 1-hour and 1-day EMAs are off, so you can focus on the intermediate timeframes right away.
Clean and Simple: The indicator is designed to be clean and easy to read, with different colors for each EMA line to help you quickly identify the different timeframes at a glance.
This is a powerful tool for trend analysis and identifying key price levels, helping you make more informed trading decisions.
Elliott Wave Detector with FibonacciDetermines what timeframe (if any) the underlying asset displays congruence with Elliot Waves, validated by examining the congruence of the waves with fibonacci patterns. Like all backwards-looking indicators, any actual match will be a very pretty coincidence rather than any kind of indicator of potential future behaviour,
CNS - Multi-Timeframe Bollinger Band OscillatorMy hope is to optimize the settings for this indicator and reintroduce it as a "strategy" with suggested position entry and exit points shown in the price pane.
I’ve been having good results setting the “Bollinger Band MA Length” in the Input tab to between 5 and 10. You can use the standard 20 period, but your results will not be as granular.
This indicator has proven very good at finding local tops and bottoms by combining data from multiple timeframes. Use BB timeframes that are lower than the timeframe you are viewing in your price pane.
The default settings work best on the weekly timeframe, but can be adjusted for most timeframes including intraday.
Be cognizant that the indicator, like other oscillators, does occasionally produce divergences at tops and bottoms.
Any feedback is appreciated.
Overview
This indicator is an oscillator that measures the normalized position of the price relative to Bollinger Bands across multiple timeframes. It takes the price's position within the Bollinger Bands (calculated on different timeframes) and averages those positions to create a single value that oscillates between 0 and 1. This value is then plotted as the oscillator, with reference lines and colored regions to help interpret the price's relative strength or weakness.
How It Works
Bollinger Band Calculation:
The indicator uses a custom function f_getBBPosition() to calculate the position of the price within Bollinger Bands for a given timeframe.
Price Position Normalization:
For each timeframe, the function normalizes the price's position between the upper and lower Bollinger Bands.
It calculates three positions based on the high, low, and close prices of the requested timeframe:
pos_high = (High - Lower Band) / (Upper Band - Lower Band)
pos_low = (Low - Lower Band) / (Upper Band - Lower Band)
pos_close = (Close - Lower Band) / (Upper Band - Lower Band)
If the upper band is not greater than the lower band or if the data is invalid (e.g., na), it defaults to 0.5 (the midline).
The average of these three positions (avg_pos) represents the normalized position for that timeframe, ranging from 0 (at the lower band) to 1 (at the upper band).
Multi-Timeframe Averaging:
The indicator fetches Bollinger Band data from four customizable timeframes (default: 30min, 60min, 240min, daily) using request.security() with lookahead=barmerge.lookahead_on to get the latest available data.
It calculates the normalized position (pos1, pos2, pos3, pos4) for each timeframe using f_getBBPosition().
These four positions are then averaged to produce the final avg_position:avg_position = (pos1 + pos2 + pos3 + pos4) / 4
This average is the oscillator value, which is plotted and typically oscillates between 0 and 1.
Moving Averages:
Two optional moving averages (MA1 and MA2) of the avg_position can be enabled, calculated using simple moving averages (ta.sma) with customizable lengths (default: 5 and 10).
These can be potentially used for MA crossover strategies.
What Is Being Averaged?
The oscillator (avg_position) is the average of the normalized price positions within the Bollinger Bands across the four selected timeframes. Specifically:It averages the avg_pos values (pos1, pos2, pos3, pos4) calculated for each timeframe.
Each avg_pos is itself an average of the normalized positions of the high, low, and close prices relative to the Bollinger Bands for that timeframe.
This multi-timeframe averaging smooths out short-term fluctuations and provides a broader perspective on the price's position within the volatility bands.
Interpretation
0.0 The price is at or below the lower Bollinger Band across all timeframes (indicating potential oversold conditions).
0.15: A customizable level (green band) which can be used for exiting short positions or entering long positions.
0.5: The midline, where the price is at the average of the Bollinger Bands (neutral zone).
0.85: A customizable level (orange band) which can be used for exiting long positions or entering short positions.
1.0: The price is at or above the upper Bollinger Band across all timeframes (indicating potential overbought conditions).
The colored regions and moving averages (if enabled) help identify trends or crossovers for trading signals.
Example
If the 30min timeframe shows the close at the upper band (position = 1.0), the 60min at the midline (position = 0.5), the 240min at the lower band (position = 0.0), and the daily at the upper band (position = 1.0), the avg_position would be:(1.0 + 0.5 + 0.0 + 1.0) / 4 = 0.625
This value (0.625) would plot in the orange region (between 0.85 and 0.5), suggesting the price is relatively strong but not at an extreme.
Notes
The use of lookahead=barmerge.lookahead_on ensures the indicator uses the latest available data, making it more real-time, though its effectiveness depends on the chart timeframe and TradingView's data feed.
The indicator’s sensitivity can be adjusted by changing bb_length ("Bollinger Band MA Length" in the Input tab), bb_mult ("Bollinger Band Standard Deviation," also in the Input tab), or the selected timeframes.
Multi-Timeframe Bollinger BandsMy hope is to optimize the settings for this indicator and reintroduce it as a "strategy" with suggested position entry and exit points shown in the price pane.
I’ve been having good results setting the “Bollinger Band MA Length” in the Input tab to between 5 and 10. You can use the standard 20 period, but your results will not be as granular.
This indicator has proven very good at finding local tops and bottoms by combining data from multiple timeframes. Use timeframes that are lower than the timeframe you are viewing in your price pane. Be cognizant that the indicator, like other oscillators, does occasionally produce divergences at tops and bottoms.
Any feedback is appreciated.
Overview
This indicator is an oscillator that measures the normalized position of the price relative to Bollinger Bands across multiple timeframes. It takes the price's position within the Bollinger Bands (calculated on different timeframes) and averages those positions to create a single value that oscillates between 0 and 1. This value is then plotted as the oscillator, with reference lines and colored regions to help interpret the price's relative strength or weakness.
How It Works
Bollinger Band Calculation:
The indicator uses a custom function f_getBBPosition() to calculate the position of the price within Bollinger Bands for a given timeframe.
Price Position Normalization:
For each timeframe, the function normalizes the price's position between the upper and lower Bollinger Bands.
It calculates three positions based on the high, low, and close prices of the requested timeframe:
pos_high = (High - Lower Band) / (Upper Band - Lower Band)
pos_low = (Low - Lower Band) / (Upper Band - Lower Band)
pos_close = (Close - Lower Band) / (Upper Band - Lower Band)
If the upper band is not greater than the lower band or if the data is invalid (e.g., na), it defaults to 0.5 (the midline).
The average of these three positions (avg_pos) represents the normalized position for that timeframe, ranging from 0 (at the lower band) to 1 (at the upper band).
Multi-Timeframe Averaging:
The indicator fetches Bollinger Band data from four customizable timeframes (default: 30min, 60min, 240min, daily) using request.security() with lookahead=barmerge.lookahead_on to get the latest available data.
It calculates the normalized position (pos1, pos2, pos3, pos4) for each timeframe using f_getBBPosition().
These four positions are then averaged to produce the final avg_position:avg_position = (pos1 + pos2 + pos3 + pos4) / 4
This average is the oscillator value, which is plotted and typically oscillates between 0 and 1.
Moving Averages:
Two optional moving averages (MA1 and MA2) of the avg_position can be enabled, calculated using simple moving averages (ta.sma) with customizable lengths (default: 5 and 10).
These can be potentially used for MA crossover strategies.
What Is Being Averaged?
The oscillator (avg_position) is the average of the normalized price positions within the Bollinger Bands across the four selected timeframes. Specifically:It averages the avg_pos values (pos1, pos2, pos3, pos4) calculated for each timeframe.
Each avg_pos is itself an average of the normalized positions of the high, low, and close prices relative to the Bollinger Bands for that timeframe.
This multi-timeframe averaging smooths out short-term fluctuations and provides a broader perspective on the price's position within the volatility bands.
Interpretation
0.0 The price is at or below the lower Bollinger Band across all timeframes (indicating potential oversold conditions).
0.15: A customizable level (green band) which can be used for exiting short positions or entering long positions.
0.5: The midline, where the price is at the average of the Bollinger Bands (neutral zone).
0.85: A customizable level (orange band) which can be used for exiting long positions or entering short positions.
1.0: The price is at or above the upper Bollinger Band across all timeframes (indicating potential overbought conditions).
The colored regions and moving averages (if enabled) help identify trends or crossovers for trading signals.
Example
If the 30min timeframe shows the close at the upper band (position = 1.0), the 60min at the midline (position = 0.5), the 240min at the lower band (position = 0.0), and the daily at the upper band (position = 1.0), the avg_position would be:(1.0 + 0.5 + 0.0 + 1.0) / 4 = 0.625
This value (0.625) would plot in the orange region (between 0.85 and 0.5), suggesting the price is relatively strong but not at an extreme.
Notes
The use of lookahead=barmerge.lookahead_on ensures the indicator uses the latest available data, making it more real-time, though its effectiveness depends on the chart timeframe and TradingView's data feed.
The indicator’s sensitivity can be adjusted by changing bb_length ("Bollinger Band MA Length" in the Input tab), bb_mult ("Bollinger Band Standard Deviation," also in the Input tab), or the selected timeframes.
Multi-Timeframe Bollinger Band PositionBeta version.
My hope is to optimize the settings for this indicator and reintroduce it as a "strategy" with suggested position entry and exit points shown in the price pane.
Any feedback is appreciated.
Overview
This indicator is an oscillator that measures the normalized position of the price relative to Bollinger Bands across multiple timeframes. It takes the price's position within the Bollinger Bands (calculated on different timeframes) and averages those positions to create a single value that oscillates between 0 and 1. This value is then plotted as the oscillator, with reference lines and colored regions to help interpret the price's relative strength or weakness.
How It Works
Bollinger Band Calculation:
The indicator uses a custom function f_getBBPosition() to calculate the position of the price within Bollinger Bands for a given timeframe.
Price Position Normalization:
For each timeframe, the function normalizes the price's position between the upper and lower Bollinger Bands.
It calculates three positions based on the high, low, and close prices of the requested timeframe:
pos_high = (High - Lower Band) / (Upper Band - Lower Band)
pos_low = (Low - Lower Band) / (Upper Band - Lower Band)
pos_close = (Close - Lower Band) / (Upper Band - Lower Band)
If the upper band is not greater than the lower band or if the data is invalid (e.g., na), it defaults to 0.5 (the midline).
The average of these three positions (avg_pos) represents the normalized position for that timeframe, ranging from 0 (at the lower band) to 1 (at the upper band).
Multi-Timeframe Averaging:
The indicator fetches Bollinger Band data from four customizable timeframes (default: 30min, 60min, 240min, daily) using request.security() with lookahead=barmerge.lookahead_on to get the latest available data.
It calculates the normalized position (pos1, pos2, pos3, pos4) for each timeframe using f_getBBPosition().
These four positions are then averaged to produce the final avg_position:avg_position = (pos1 + pos2 + pos3 + pos4) / 4
This average is the oscillator value, which is plotted and typically oscillates between 0 and 1.
Moving Averages:
Two optional moving averages (MA1 and MA2) of the avg_position can be enabled, calculated using simple moving averages (ta.sma) with customizable lengths (default: 5 and 10).
These can be potentially used for MA crossover strategies.
What Is Being Averaged?
The oscillator (avg_position) is the average of the normalized price positions within the Bollinger Bands across the four selected timeframes. Specifically:It averages the avg_pos values (pos1, pos2, pos3, pos4) calculated for each timeframe.
Each avg_pos is itself an average of the normalized positions of the high, low, and close prices relative to the Bollinger Bands for that timeframe.
This multi-timeframe averaging smooths out short-term fluctuations and provides a broader perspective on the price's position within the volatility bands.
Interpretation:
0.0 The price is at or below the lower Bollinger Band across all timeframes (indicating potential oversold conditions).
0.15: A customizable level (green band) which can be used for exiting short positions or entering long positions.
0.5: The midline, where the price is at the average of the Bollinger Bands (neutral zone).
0.85: A customizable level (orange band) which can be used for exiting long positions or entering short positions.
1.0: The price is at or above the upper Bollinger Band across all timeframes (indicating potential overbought conditions).
The colored regions and moving averages (if enabled) help identify trends or crossovers for trading signals.
Example:
If the 30min timeframe shows the close at the upper band (position = 1.0), the 60min at the midline (position = 0.5), the 240min at the lower band (position = 0.0), and the daily at the upper band (position = 1.0), the avg_position would be:(1.0 + 0.5 + 0.0 + 1.0) / 4 = 0.625
This value (0.625) would plot in the orange region (between 0.85 and 0.5), suggesting the price is relatively strong but not at an extreme.
Notes:
The use of lookahead=barmerge.lookahead_on ensures the indicator uses the latest available data, making it more real-time, though its effectiveness depends on the chart timeframe and TradingView's data feed.
The indicator’s sensitivity can be adjusted by changing bb_length ("Bollinger Band MA Length" in the Input tab), bb_mult ("Bollinger Band Standard Deviation," also in the Input tab), or the selected timeframes.
Screener based on Profitunity strategy for multiple timeframes
Screener based on Profitunity strategy by Bill Williams for multiple timeframes (max 5, including chart timeframe) and customizable symbol list. The screener analyzes the Alligator and Awesome Oscillator indicators, Divergent bars and high volume bars.
The maximum allowed number of requests (symbols and timeframes) is limited to 40 requests, for example, for 10 symbols by 4 requests of different timeframes. Therefore, the indicator automatically limits the number of displayed symbols depending on the number of timeframes for each symbol, if there are more symbols than are displayed in the screener table, then the ordinal numbers are displayed to the left of the symbols, in this case you can display the next group of symbols by increasing the value by 1 in the "Show tickers from" field, if the "Group" field is enabled, or specify the symbol number by 1 more than the last symbol in the screener table. 👀 When timeframe filtering is applied, the screener table displays only the columns of those timeframes for which the filtering value is selected, which allows displaying more symbols.
For each timeframe, in the "TIMEFRAMES > Prev" field, you can enable the display of data for the previous bar relative to the last (current) one, if the market is open for the requested symbol. In the "TIMEFRAMES > Y" field, you can enable filtering depending on the location of the last five bars relative to the Alligator indicator lines, which are designated by special symbols in the screener table:
⬆️ — if the Alligator is open upwards (Lips > Teeth > Jaw) and none of the bars is closed below the Lips line;
↗️ — if one of the bars, except for the penultimate one, is closed below Lips, or two bars, except for the last one, are closed below Lips, or the Alligator is open upwards only below four bars, but none of the bars is closed below Lips;
⬇️ — if the Alligator is open downwards (Lips < Teeth < Jaw), but none of the bars is closed above Lips;
↘️ — if one of the bars, except the penultimate one, is closed above the Lips, or two bars, except the last one, are closed above the Lips, or the Alligator is open down only above four bars, but none of the bars are closed above the Lips;
➡️ — in other cases, including when the Alligator lines intersect and one of the bars is closed behind the Lips line or two bars intersect one of the Alligator lines.
In the "TIMEFRAMES > Show bar change value for TF" field, you can add a column to the right of the selected timeframe column with the percentage change between the closing price of the last bar (current) and the closing price of the previous bar ((close – previous close) / previous close * 100). Depending on the percentage value, the background color of the screener table cell will change: dark red if <= -3%; red if <= -2%, light red if <= -0.5%; dark green if >= 3%; green if >= 2%; light green if >= 0.5%.
For each timeframe, the screener table displays the symbol of the latest (current) bar, depending on the closing price relative to the bar's midpoint ((high + low) / 2) and its location relative to the Alligator indicator lines: ⎾ — the bar's closing price is above its midpoint; ⎿ — the bar's closing price is below its midpoint; ├ — the bar's closing price is equal to its midpoint; 🟢 — Bullish Divergent bar, i.e. the bar's closing price is above its midpoint, the bar's high is below all Alligator lines, the bar's low is below the previous bar's low; 🔴 — Bearish Divergent bar, i.e. the bar's closing price is below its midpoint, the bar's low is above all Alligator lines, the bar's high is above the previous bar's high. When filtering is enabled in the "TIMEFRAMES > Filtering by Divergent bar" field, the data in the screener table cells will be displayed only for those timeframes that have a Divergent bar. A high bar volume signal is also displayed — 📶/📶² if the bar volume is greater than 40%/70% of the average volume value calculated using a simple moving average (SMA) in the 140 bar interval from the last bar.
In the indicator settings in the "SYMBOL LIST" field, each ticker (for example: OANDA:SPX500USD) must be on a separate line. If the market is closed, then the data for requested symbols will be limited to the time of the last (current) bar on the chart, for example, if the current symbol was traded yesterday, and the requested symbol is traded today, when requesting data for an hourly timeframe, the last bar will be for yesterday, if the timeframe of the current chart is not higher than 1 day. Therefore, by default, a warning will be displayed on the chart instead of the screener table that if the market is open, you must wait for the screener to load (after the first price change on the current chart), or if the highest timeframe in the screener is 1 day, you will be prompted to change the timeframe on the current chart to 1 week, if the screener requests data for the timeframe of 1 week, you will be prompted to change the timeframe on the current chart to 1 month, or switch to another symbol on the current chart for which the market is open (for example: BINANCE:BTCUSDT), or disable the warning in the field "SYMBOL LIST > Do not display screener if market is close".
The number of the last columns with the color of the AO indicator that will be displayed in the screener table for each timeframe is specified in the indicator settings in the "AWESOME OSCILLATOR > Number of columns" field.
For each timeframe, the direction of the trend between the price of the highest and lowest bars in the specified range of bars from the last bar is displayed — ↑ if the trend is up (the highest bar is to the right of the lowest), or ↓ if the trend is down (the lowest bar is to the right of the highest). If there is a divergence on the AO indicator in the specified interval, the symbol ∇ is also displayed. The average volume value is also calculated in the specified interval using a simple moving average (SMA). The number of bars is set in the indicator settings in the "INTERVAL FOR HIGHEST AND LOWEST BARS > Bars count" field.
In the indicator settings in the "STYLE" field you can change the position of the screener table relative to the chart window, the background color, the color and size of the text.
***
Скринер на основе стратегии Profitunity Билла Вильямса для нескольких таймфреймов (максимум 5, включая таймфрейм графика) и настраиваемого списка символов. Скринер анализирует индикаторы Alligator и Awesome Oscillator, Дивергентные бары и бары с высоким объемом.
Максимально допустимое количество запросов (символы и таймфреймы) ограничено 40 запросами, например, для 10 символов по 4 запроса разных таймфреймов. Поэтому в индикаторе автоматически ограничивается количество отображаемых символов в зависимости от количества таймфреймов для каждого символа, если символов больше чем отображено в таблице скринера, то слева от символов отображаются порядковые номера, в таком случае можно отобразить следующую группу символов, увеличив значение на 1 в настройках индикатора поле "Show tickers from", если включено поле "Group", или указать номер символа на 1 больше, чем последний символ в таблице скринера. 👀 Когда применяется фильтрация по таймфрейму, в таблице скринера отображаются только столбцы тех таймфреймов, для которых выбрано значение фильтрации, что позволяет отображать большее количество символов.
Для каждого таймфрейма в настройках индикатора в поле "TIMEFRAMES > Prev" можно включить отображение данных для предыдущего бара относительно последнего (текущего), если для запрашиваемого символа рынок открыт. В поле "TIMEFRAMES > Y" можно включить фильтрацию, в зависимости от расположения последних пяти баров относительно линий индикатора Alligator, которые обозначаются специальными символами в таблице скринера:
⬆️ — если Alligator открыт вверх (Lips > Teeth > Jaw) и ни один из баров не закрыт ниже линии Lips;
↗️ — если один из баров, кроме предпоследнего, закрыт ниже Lips, или два бара, кроме последнего, закрыты ниже Lips, или Alligator открыт вверх только ниже четырех баров, но ни один из баров не закрыт ниже Lips;
⬇️ — если Alligator открыт вниз (Lips < Teeth < Jaw), но ни один из баров не закрыт выше Lips;
↘️ — если один из баров, кроме предпоследнего, закрыт выше Lips, или два бара, кроме последнего, закрыты выше Lips, или Alligator открыт вниз только выше четырех баров, но ни один из баров не закрыт выше Lips;
➡️ — в остальных случаях, в то числе когда линии Alligator пересекаются и один из баров закрыт за линией Lips или два бара пересекают одну из линий Alligator.
В поле "TIMEFRAMES > Show bar change value for TF" можно добавить справа от выбранного столбца таймфрейма столбец с процентным изменением между ценой закрытия последнего бара (текущего) и ценой закрытия предыдущего бара ((close – previous close) / previous close * 100). В зависимости от величины процента будет меняться цвет фона ячейки таблицы скринера: темно-красный, если <= -3%; красный, если <= -2%, светло-красный, если <= -0.5%; темно-зеленый, если >= 3%; зеленый, если >= 2%; светло-зеленый, если >= 0.5%.
Для каждого таймфрейма в таблице скринера отображается символ последнего (текущего) бара, в зависимости от цены закрытия относительно середины бара ((high + low) / 2) и расположения относительно линий индикатора Alligator: ⎾ — цена закрытия бара выше его середины; ⎿ — цена закрытия бара ниже его середины; ├ — цена закрытия бара равна его середине; 🟢 — Бычий Дивергентный бар, т.е. цена закрытия бара выше его середины, максимум бара ниже всех линий Alligator, минимум бара ниже минимума предыдущего бара; 🔴 — Медвежий Дивергентный бар, т.е. цена закрытия бара ниже его середины, минимум бара выше всех линий Alligator, максимум бара выше максимума предыдущего бара. При включении фильтрации в поле "TIMEFRAMES > Filtering by Divergent bar" данные в ячейках таблицы скринера будут отображаться только для тех таймфреймов, где есть Дивергентный бар. Также отображается сигнал высокого объема бара — 📶/📶², если объем бара больше чем на 40%/70% среднего значения объема, рассчитанного с помощью простой скользящей средней (SMA) в интервале 140 баров от последнего бара.
В настройках индикатора в поле "SYMBOL LIST" каждый тикер (например: OANDA:SPX500USD) должен быть на отдельной строке. Если рынок закрыт, то данные для запрашиваемых символов будут ограничены временем последнего (текущего) бара на графике, например, если текущий символ торговался последний день вчера, а запрашиваемый символ торгуется сегодня, при запросе данных для часового таймфрейма, последний бар будет за вчерашний день, если таймфрейм текущего графика не выше 1 дня. Поэтому по умолчанию на графике будет отображаться предупреждение вместо таблицы скринера о том, что если рынок открыт, то необходимо дождаться загрузки скринера (после первого изменения цены на текущем графике), или если в скринере самый высокий таймфрейм 1 день, то будет предложено изменить на текущем графике таймфрейм на 1 неделю, если в скринере запрашиваются данные для таймфрейма 1 неделя, то будет предложено изменить на текущем графике таймфрейм на 1 месяц, или же переключиться на другой символ на текущем графике, для которого рынок открыт (например: BINANCE:BTCUSDT), или отключить предупреждение в поле "SYMBOL LIST > Do not display screener if market is close".
Количество последних столбцов с цветом индикатора AO, которые будут отображены в таблице скринера для каждого таймфрейма, указывается в настройках индикатора в поле "AWESOME OSCILLATOR > Number of columns".
Для каждого таймфрейма отображается направление тренда между ценой самого высокого и самого низкого баров в указанном интервале баров от последнего бара — ↑, если тренд направлен вверх (самый высокий бар справа от самого низкого), или ↓, если тренд направлен вниз (самый низкий бар справа от самого высокого). Если есть дивергенция на индикаторе AO в указанном интервале, то также отображается символ — ∇. В указанном интервале также рассчитывается среднее значение объема с помощью простой скользящей средней (SMA). Количество баров устанавливается в настройках индикатора в поле "INTERVAL FOR HIGHEST AND LOWEST BARS > Bars count".
В настройках индикатора в поле "STYLE" можно изменить положение таблицы скринера относительно окна графика, цвет фона, цвет и размер текста.
Market structure + TF Bucket Market Structure + TF Bucket
This Pine Script™ indicator, published under the Mozilla Public License 2.0, extends the "Market Structure" script by mickes (), with full credit to mickes. It integrates the enhanced MarketStructure library by Fenomentn (), also based on mickes’ library under MPL 2.0, to provide advanced market structure analysis with multi-timeframe pivot length customization.
Functionality
Market Structure Analysis: Detects internal (orderflow) and swing market structures, visualizing Break of Structure (BOS), Change of Character (CHoCH), Equal High/Low (EQH/EQL), and liquidity zones using the MarketStructure library.
Timeframe Bucket (TF Bucket): Dynamically adjusts pivot lengths for six user-defined timeframes (e.g., 3m, 5m, 10m, 15m, 4h, 12h), optimizing structure detection across different chart timeframes.
Trend Strength Visualization: Displays a trend strength metric (from the library) for internal and swing structures, indicating trend reliability based on pivot frequency and volatility.
Statistics Table: Shows yearly counts of BOS and CHoCH events for internal and swing structures, configurable by a user-defined period.
Screener Support: Outputs BOS and CHoCH signals for TradingView’s screener, with a configurable signal persistence period.
Customizable Alerts: Enables alerts for BOS and CHoCH events, separately configurable for internal and swing structures.
Methodology
Pivot Detection: Uses the library’s Pivot function, which applies a volatility filter (ATR-based) to confirm significant pivots, reducing false signals in low-volatility markets.
TF Bucket: Maps user-selected timeframes to Pine Script’s timeframe.period using f_getTimeframePeriod, applying custom pivot lengths when the chart’s timeframe matches a selected one (or base lengths in Static mode).
Trend Strength: Calculates a score as pivotCount / LeftLength * (currentATR / ATR), displayed via labels to help traders assess trend reliability.
BOS/CHoCH Detection: Identifies BOS when price breaks a pivot in the trend direction and CHoCH when price reverses against the trend, labeling events as “MSF” or “MSF+” based on pivot patterns.
EQH/EQL and Liquidity: Draws boxes for equal high/low zones within ATR-based thresholds and visualizes liquidity levels with confirmation bars.
Statistics and Screener: Tracks BOS/CHoCH events in a yearly table and outputs signals for screener use, with persistence controlled by a user-defined period.
Usage
Integration: Apply the indicator to any chart and import the library via import Fenomentn/MarketStructure/1.
Configuration: Set up to six timeframes with custom pivot lengths, enable/disable internal and swing structures, configure alerts, and adjust statistics years in the settings panel.
Alerts: Enable BOS and CHoCH alerts for real-time notifications, triggered on bar close to avoid repainting.
Screener: Use the plotted signals to monitor BOS/CHoCH events across multiple tickers in TradingView’s screener.
Best Practices: Optimal for forex and crypto charts on 1m to 12h timeframes. Adjust pivot lengths and the library’s volatility threshold for specific market conditions.
Originality
This indicator enhances mickes’ original script with:
Timeframe Bucket: Dynamic pivot length selection for multi-timeframe analysis, not present in the original.
Trend Strength Display: Visualizes the library’s TrendStrength metric for enhanced trend analysis.
Enhanced Library Integration: Leverages Fenomentn/MarketStructure/1, which adds a volatility-based pivot filter, dynamic label sizing, and customizable BOS/CHoCH visualization styles.No additional open-source code was reused beyond mickes’ script and library, fully credited under MPL 2.0.