Indicator ***TuYa*** V8.2 – HH/HL MTF + Peak Mid ZoneIndicator TuYa V8.0 – HH/HL MTF + Peak Mid Zone
TuYa V8.0 combines multi-timeframe market structure with a Peak Reaction midline to create clean, rule-based reversal and trend entries – designed primarily for 1-minute execution with 1-hour bias.
🧠 Core Concept
This indicator fuses three ideas:
HTF Peak Reaction Midline (1H)
Uses a Peak Reaction style logic on the higher timeframe (HTF, default: 1H).
Identifies a reaction high and reaction low, then calculates their midpoint → the Peak Mid Zone.
This midline acts as a dynamic sentiment divider (above = premium / below = discount).
Multi-Timeframe HH/HL/LH/LL Structure
HTF structure (1H): detects HH, HL, LH, LL using pivot highs/lows.
LTF structure (1m): detects HH, HL, LH, LL on the execution timeframe (chart TF, intended for 1m).
HTF → LTF Confirmation Window
After a 1H structure event (HH, HL, LL, LH), the indicator opens a confirmation window of up to N LTF candles (default: 10 x 1m bars).
Within that window, the required 1m structure event must occur to confirm an entry.
🎯 Signal Logic
All entries are generated on the LTF (e.g. 1m chart), using HTF (e.g. 1H) bias + Peak Mid Zone:
1️⃣ Price ABOVE Peak Mid (Bullish premium zone)
Reversal SELL
HTF: HH (Higher High)
Within N 1m bars: LTF HH
→ SELL signal (fading HTF strength near premium)
Trend/Bullish BUY
HTF: HL (Higher Low)
Within N 1m bars: LTF LL
→ BUY signal (buying dips in an uptrend above midline)
2️⃣ Price BELOW Peak Mid (Bearish discount zone)
Reversal BUY
HTF: LL (Lower Low)
Within N 1m bars: LTF LL
→ BUY signal (catching potential reversal from discount)
Trend/Bearish SELL
HTF: LH (Lower High)
Within N 1m bars: LTF HH
→ SELL signal (shorting strength in a downtrend below midline)
Signals are plotted as small BUY/SELL triangles on the chart and exposed via alert conditions.
🧾 Filters & Options
⏳ HTF → LTF Delay Window
Input: “Max 1m bars after HTF trigger” (default: 10)
After a 1H HH/HL/LL/LH event, the indicator waits up to N LTF candles for the matching 1m structure pattern.
If no match occurs within the window, no signal is generated.
📉 RSI No-Trade Zone (HTF)
Toggle: Use RSI no-trade zone
Inputs:
RSI Length (HTF)
No-trade lower bound (default 45)
No-trade upper bound (default 65)
If HTF RSI is inside the defined band (e.g. 45–65), signals are blocked (no-trade regime), helping to avoid noisy mid-range conditions.
You can turn this filter ON/OFF and adjust the band dynamically.
🧱 5m OB / Direction Filter (Optional)
Toggle: Use 5m OB direction filter
Timeframe: Configurable (default: 5m).
Uses a simple directional proxy on the OB timeframe:
For BUY signals → require a bullish candle on OB timeframe.
For SELL signals → require a bearish candle on OB timeframe.
When enabled, this adds an extra layer of confluence by aligning entries with the short-term directional context.
⚙️ Key Inputs (Summary)
Timeframes
HTF (Peak Reaction & Structure): default 60 (1H)
Peak Reaction
Lookback bars (HTF)
ATR multiplier for zones
Show/Hide Peak Mid line
Structure
Pivot left/right bars (for HH/HL/LH/LL swings)
Toggle structure labels (HTF & LTF)
Confirmation
Max LTF bars after HTF trigger (default 10, fully configurable)
RSI Filter
Use filter (on/off)
RSI length
No-trade range (low/high)
5m OB Filter
Use filter (on/off)
OB timeframe (default 5m)
📡 Alerts & Automation
The script includes alertconditions for both BUY and SELL signals, with JSON-formatted alert messages suitable for routing to external bridges (e.g. bots, MT5/MT4, n8n, etc.).
Each alert includes:
Symbol
Side (BUY / SELL)
Price / Entry
SL & TP placeholders (from hidden plots, ready to be wired to your own logic)
Time
Performance tag
CommentCode (for strategy/type tagging on the receiver side)
You can attach these alerts to a webhook and let your execution engine handle SL/TP and order management.
📌 How to Use
Attach the indicator to a 1-minute chart.
Set HTF timeframe to 60 (or your preferred higher timeframe).
Optionally enable:
RSI regime filter
5m OB direction filter
Watch for:
Price relative to the Peak Mid line
BUY/SELL triangles that respect HTF structure + LTF confirmation + filters.
For automation, create alerts using the built-in conditions and your preferred JSON alert template.
⚠️ Disclaimer
This tool is for educational and informational purposes only.
It is not financial advice and does not guarantee profits. Always test thoroughly in replay / paper trading before using with live funds, and trade at your own risk.
스크립트에서 "mtf"에 대해 찾기
OXE MTF Support/Resistance+Demand/Supply Zone ArsenalOXE MTF Support/Resistance + Demand/Supply Zones Indicator
Your Complete Multi-Timeframe Zone Arsenal
This professional-grade indicator transforms your chart into a zone confluence powerhouse, simultaneously tracking high-probability price reaction areas across 5 timeframes (Daily, H4, H1, M15, M5) – giving you the institutional edge you need to dominate the markets.
🎯 What It Is
A sophisticated dual-system zone detector that identifies both:
Classic Support/Resistance levels using pivot point detection
Smart Money Demand/Supply zones triggered by Break-of-Structure (BOS) confirmations
Unlike basic S/R indicators, this tool employs institutional methodology – capturing order blocks and imbalance zones where smart money is positioned, not just where price bounced.
⚡ Core Capabilities
Multi-Timeframe Mastery
Track up to 5 timeframes simultaneously without switching charts
Identify confluence zones where multiple timeframe levels align
Customize which timeframes to display for clean, focused analysis
Intelligent Zone Management
Automatic zone validation – tracks when zones flip from resistance→support or supply→demand
Invalid zone filtering – hide broken/invalidated zones to focus only on active opportunities
Configurable zone limits – control the number of zones per timeframe (up to 8 each)
Smart Money Detection
BOS-confirmed zones – only marks demand/supply after break-of-structure confirmation
Precise zone timing – captures the exact candle that created the imbalance
Visual differentiation – dashed borders distinguish demand/supply from traditional S/R
Professional Dashboard
Real-time zone counter – shows active zones per timeframe at a glance
Filter status indicators – tracks which validation filters are enabled
Color-coded timeframe labels – instant visual organization
💰 How This Transforms Your Trading
1. Find High-Probability Entries
Enter trades at zones where multiple timeframes converge – when H4 demand aligns with Daily support, you've found institutional backing.
2. Stay on the Right Side of the Market
The zone flipping system shows you when market structure changes – a supply zone that flips to demand tells you the narrative has shifted bullish.
3. Eliminate Guesswork
No more wondering "is this level still valid?" The automatic invalidation tracking removes subjectivity – zones are either active (tradeable) or broken (ignored).
4. Scale Your Timeframe Analysis
Whether you're scalping M5 or swing trading Daily, access all relevant zones without the mental overhead of switching between charts and manually tracking levels.
5. Trade Like Institutions
By combining pivot-based S/R with BOS-confirmed order blocks, you're seeing where retail AND institutional money is positioned – giving you the complete picture.
🔥 Perfect For
Day traders seeking M15/H1 confluence for precise entries
Scalpers needing M5 zones with higher-timeframe confirmation
Swing traders looking for Daily/H4 zone alignment for position trades
ICT/SMC practitioners combining order blocks with traditional analysis
Any trader who values clean, validated, multi-timeframe zones over cluttered charts
ATR/ADR MTF Projection ArrayATR/ADR MTF Projection Array
Overview
A powerful predictive tool that projects ATR (Average True Range) and ADR (Average Daily Range) levels as clean support and resistance arrays on your chart. Designed for traders who want to anticipate the high and low of the day using volatility-based projections with multi-timeframe confluence.
This indicator combines traditional ATR analysis with ICT-style ADR methodology, giving you institutional-grade level projections from a single, customizable tool.
Key Features
🎯 Dual Volatility Metrics
ATR Projections — Classic volatility-based levels with full multi-timeframe support
ADR Projections (ICT Style) — Average Daily Range levels using Inner Circle Trader methodology
Enable/disable each independently based on your trading preference
📊 Multi-Timeframe ATR Analysis
Plot ATR levels from up to 3 timeframes simultaneously (Daily, Weekly, Monthly or custom)
Each timeframe displays with distinct styling for easy identification
Perfect for confluence trading across multiple time horizons
⚡ ICT ADR Methodology
NY Midnight calculation mode (ICT standard) or Classic Daily
Key ICT levels built-in:
1/3 ADR (Judas Swing) — Critical manipulation level where fake moves often terminate
1/2 ADR — Mid-range reference
2/3 ADR — Trending day continuation target
100% ADR — Full daily range completion
150% ADR — Extension target for expansion days
Two projection modes: Static (from anchor) or Dynamic (from session high/low)
🔧 Flexible Anchor Points
Previous Close (default)
Daily Open
Weekly Open
Monthly Open
Session Open
📈 Range Completion Tracking
Real-time display of how much of the expected daily range has been consumed
Visual status indicator helps identify when the day's move may be exhausted
How To Use
For Bias Confirmation:
Establish your directional bias using your preferred method (trigger day, market structure, etc.)
Monitor the 1/3 ADR level during London/NY open for potential Judas Swing (manipulation move)
Target 2/3 to 100% ADR for your HOD/LOD objective
For Target Setting:
Use ATR levels as volatility-based profit targets
ADR 100% level often marks session extremes
When Range Used reaches 100%+, expect consolidation or reversal
For Multi-Timeframe Confluence:
Enable Weekly/Monthly ATR levels alongside Daily
Look for clustering of levels across timeframes for high-probability zones
Settings Guide
Master Controls — Toggle ATR/ADR systems and bull/bear levels independently
ATR Settings — Configure period, multiplier, anchor point, and select which timeframes to display
ATR Level Multipliers — Choose which projection levels to show (0.5x, 0.75x, 1.0x, 1.25x, 1.5x)
ADR Settings (ICT Style) — Select calculation mode (NY Midnight recommended), period (5 days is ICT standard), and projection mode
ADR Level Selection — Toggle individual ICT levels (1/3, 1/2, 2/3, 100%, 150%)
Visual Settings — Customize colors, line styles, labels, and info table position
Alerts Included
ATR 1.0x Bull/Bear Cross
ADR 1/3 Judas Swing Zone (Bull/Bear)
ADR 100% Range Completion (Bull/Bear)
Symbol Magnifier & MTF Clock# Symbol Magnifier & MTF Clock
Shows your symbol, price, and countdown timers for multiple timeframes on one chart.
## What It Does
**Symbol Display:**
- Big, easy-to-read symbol and price
- Shows time left until current candle closes
- Green for bullish, red for bearish
- Put it anywhere on your chart
**Multi-Timeframe Clock:**
- Track up to 6 timeframes at once: D1, H4, H1, M30, M15, M5
- See exactly when each candle will close
- Turns orange/red in the last 5 minutes as a warning
- Choose which timeframes to show
## Why Use It?
Never miss important candle closes across multiple timeframes. Perfect if you trade using multiple timeframe analysis or need to time your entries better.
## Settings
- Move displays to any corner
- Change text size
- Pick your colors
- Show only the timeframes you care about
That's it. Simple timing tool for multi-timeframe traders.
4H Supply & Demand – 50% Mitigation (MTF clean)4H Supply & Demand – 50% Mitigation (MTF clean)
This indicator shows strictly 4h supply & demand zones
automatically deletes any zone that got filled by 51%
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.
VB Finviz-style MTF Screener📊 VB Multi-Timeframe Stock Screener (Daily + 4H + 1H)
A structured, high-signal stock screener that blends Daily fundamentals, 4H trend confirmation, and 1H entry timing to surface strong trading opportunities with institutional discipline.
🟦 1. Daily Screener — Core Stock Selection
All fundamental and structural filters run strictly on Daily data for maximum stability and signal quality.
Daily filters include:
📈 Average Volume & Relative Volume
💲 Minimum Price Threshold
📊 Beta vs SPY
🏢 Market Cap (Billions)
🔥 ATR Liquidity Filter
🧱 Float Requirements
📘 Price Above Daily SMA50
🚀 Minimum Gap-Up Condition
This layer acts like a Finviz-style engine, identifying stocks worth trading before momentum or timing is considered.
🟩 2. 4H Trend Confirmation — Momentum Check
Once a stock passes the Daily screen, the 4-hour timeframe validates trend strength:
🔼 Price above 4H MA
📈 MA pointing upward
This removes structurally good stocks that are not in a healthy trend.
🟧 3. 1H Entry Alignment — Timing Layer
The Hourly timeframe refines near-term timing:
🔼 Price above 1H MA
📉 Short-term upward movement detected
This step ensures the stock isn’t just good on paper—it’s moving now.
🧪 MTF Debug Table (Your Transparency Engine)
A live diagnostic table shows:
All Daily values
All 4H checks
All 1H checks
Exact PASS/FAIL per condition
Perfect for tuning thresholds or understanding why a ticker qualifies or fails.
🎯 Who This Screener Is For
Swing traders
Momentum/trend traders
Systematic and rules-based traders
Traders who want clean, multi-timeframe alignment
By combining Daily fundamentals, 4H trend structure, and 1H momentum, this screener filters the market down to the stocks that are strong, aligned, and ready.
CRT MTF + HTF Candles - Milana TradesCRT MTF + HTF Candles is an educational tool that helps you visualize higher-timeframe CRT and HTF candles on your intraday chart
The script automatically tracks key HTF levels and shows three types of CRT events:
1. Pending CRT
When a higher-timeframe candle breaks the previous high or low, the indicator marks this as a “pending” CRT.
This helps you see potential liquidity grabs and where price is currently trapped inside the HTF range
2. Completed CRT
A CRT becomes “completed” when price reaches the opposite side of the previously broken level
3. Invalid CRT
If price closes outside the HTF range before completion, the CRT is marked as invalid.
This helps you identify failed breaks and possible reversals.
Multi-Timeframe HTF Candles
The script draws clean higher-timeframe candles directly on your lower timeframe chart.
Each candle includes:
Body and wicks
HTF open & close
Swing high/low markers
Timeframe labels
Optional timers (showing time remaining in the candle)
Optional imbalances (FVG / volume imbalance)
Optional Midpont line (0.5)
HTF candle spacing
You can adjust candle width, spacing, and alignment so HTF candles fit nicely over lower-TF bars.
Gaps & Imbalances
The tool can highlight:
Fair value gaps
Volume imbalance
Swing Sweep line
When price tried update swing but closed inside the candle cange
Equlibrium line (Midpoint 0.5)
Timeframe tags & timers
Shows clear labels for each HTF candle
You can choose which timeframes to show (1H, 2H, 4H, Daily, etc.) and how many candles should be displayed
Trade smart, stay disciplined, and keep improving every day
Enjoy :)
S/R MTF// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © fluxchart
//@version=6
//S&R; V2.12
const bool DEBUG = false
const bool fixSRs = true
const bool fixRetests = false
indicator("crr S/R MTF", overlay = true, max_labels_count = 500, max_lines_count = 500, max_boxes_count = 500, dynamic_requests = true)
const int maxSRInfoListSize = 10
const int maxBarInfoListSize = 3000
const int maxDistanceToLastBar = 500
const int minSRSize = 5
const int retestLabelCooldown = 3
const float tooCloseATR = 1.0 / 8.0
const int labelOffsetBars = 20
const int atrLen = 20
atr = ta.atr(atrLen)
avgVolume = ta.sma(volume, atrLen)
var int curTFMS = timeframe.in_seconds(timeframe.period) * 1000
var map alerts = map.new()
alerts.put("Retest", false)
alerts.put("Break", false)
srPivotLength = input.int(15, "Pivot Length", minval = 3, maxval = 50, group = "General Configuration", display = display.none)
srStrength = input.int(1, "Strength", , group = "General Configuration", display = display.none)
srInvalidation = input.string("Close", "Invalidation", , group = "General Configuration", display = display.none)
expandZones = input.string("Only Valid", "Expand Lines & Zones", options = , group = "General Configuration", display = display.none)
showInvalidated = input.bool(true, "Show Invalidated", group = "General Configuration", display = display.none)
timeframe1Enabled = input.bool(true, title = "", group = "Timeframes", inline = "timeframe1", display = display.none)
timeframe1 = input.timeframe("", title = "", group = "Timeframes", inline = "timeframe1", display = display.none)
timeframe2Enabled = input.bool(false, title = "", group = "Timeframes", inline = "timeframe2", display = display.none)
timeframe2 = input.timeframe("D", title = "", group = "Timeframes", inline = "timeframe2", display = display.none)
timeframe3Enabled = input.bool(false, title = "", group = "Timeframes", inline = "timeframe3", display = display.none)
timeframe3 = input.timeframe("W", title = "", group = "Timeframes", inline = "timeframe3", display = display.none)
showBreaks = input.bool(true, "Show Breaks", group = "Breaks & Retests", inline = "ShowBR", display = display.none)
showRetests = input.bool(true, "Show Retests", group = "Breaks & Retests", inline = "ShowBR", display = display.none)
avoidFalseBreaks = input.bool(false, "Avoid False Breaks", group = "Breaks & Retests", display = display.none)
breakVolumeThreshold = input.float(0.3, "Break Volume Threshold", minval = 0.1, maxval = 2.0, step = 0.1, group = "Breaks & Retests", tooltip = "Only taken into account if Avoid False Breakouts is enabled.\nHigher values mean it's less likely to be a break.", display = display.none)
inverseBrokenLineColor = input.bool(false, "Inverse Color After Broken", group = "Breaks & Retests", display = display.none)
styleMode = input.string("Lines", "Style", , group = "Style", display = display.none)
lineStyle = input.string("____", "Line Style", , group = "Style", display = display.none)
lineWidth = input.int(2, "Line Width", minval = 1, group = "Style", display = display.none)
zoneSize = input.float(1.0, "Zone Width", minval = 0.1, maxval = 10, step = 0.1, group = "Style", display = display.none)
zoneSizeATR = zoneSize * 0.075
supportColor = input.color(#08998180, "Support Color", group = "Style", inline = "RScolors", display = display.none)
resistanceColor = input.color(#f2364580, "Resistance Color", group = "Style", inline = "RScolors", display = display.none)
breakColor = input.color(color.blue, "Break Color", group = "Style", inline = "RScolors2", display = display.none)
textColor = input.color(#ffffff80, "Text Color", group = "Style", inline = "RScolors2", display = display.none)
enableRetestAlerts = input.bool(true, "Enable Retest Alerts", tooltip = "Needs Show Retests option enabled.", group = "Alerts", display = display.none)
enableBreakAlerts = input.bool(true, "Enable Break Alerts", tooltip = "Needs Show Breaks option enabled.", group = "Alerts", display = display.none)
insideBounds = (bar_index > last_bar_index - maxDistanceToLastBar)
type srInfo
int startTime
float price
string srType
int strength
string timeframeStr
bool ephemeral = false
int breakTime
array retestTimes
type srObj
srInfo info
bool startFixed
bool breakFixed
bool rendered
string combinedTimeframeStr
line srLine
box srBox
label srLabel
label breakLabel
array retestLabels
type barInfo
int t
int tc
float c
float h
float l
var allSRList = array.new()
//#region Find Val RTN Time
findValRtnTime (barInfo biList, valToFind, toSearch, searchMode, minTime, maxTime, int defVal = na) =>
int rtnTime = defVal
float minDiff = na
if biList.size() > 0
for i = biList.size() - 1 to 0
curBI = biList.get(i)
if curBI.t >= minTime and curBI.t < maxTime
toLook = (toSearch == "Low" ? curBI.l : toSearch == "High" ? curBI.h : curBI.c)
if searchMode == "Nearest"
curDiff = math.abs(valToFind - toLook)
if na(minDiff)
rtnTime := curBI.t
minDiff := curDiff
else
if curDiff <= minDiff
minDiff := curDiff
rtnTime := curBI.t
if searchMode == "Higher"
if toLook >= valToFind
rtnTime := curBI.t
break
if searchMode == "Lower"
if toLook <= valToFind
rtnTime := curBI.t
break
rtnTime
//#endregion
formatTimeframeString (string formatTimeframe, bool short = false) =>
timeframeF = (formatTimeframe == "" ? timeframe.period : formatTimeframe)
if str.contains(timeframeF, "D") or str.contains(timeframeF, "W") or str.contains(timeframeF, "S") or str.contains(timeframeF, "M")
timeframe.from_seconds(timeframe.in_seconds(timeframeF))
else
seconds = timeframe.in_seconds(timeframeF)
if seconds >= 3600
hourCount = int(seconds / 3600)
if short
str.tostring(hourCount) + "h"
else
str.tostring(hourCount) + " Hour" + (hourCount > 1 ? "s" : "")
else
if short
timeframeF + "m"
else
timeframeF + " Min"
renderSRObj (srObj sr) =>
if na(sr.info.breakTime) or showInvalidated
sr.rendered := true
endTime = nz(sr.info.breakTime, time + curTFMS * labelOffsetBars)
extendType = extend.none
if na(sr.info.breakTime)
extendType := extend.right
if expandZones == "Only Valid" and na(sr.info.breakTime)
extendType := extend.both
else if expandZones == "All"
extendType := extend.both
endTime := time + curTFMS * labelOffsetBars
labelTitle = formatTimeframeString(sr.info.timeframeStr)
if not na(sr.combinedTimeframeStr)
labelTitle := sr.combinedTimeframeStr
labelTitle += " | " + str.tostring(sr.info.price, format.mintick) + ((sr.info.ephemeral and DEBUG) ? " " : "")
if styleMode == "Lines"
// Line
sr.srLine := line.new(sr.info.startTime, sr.info.price, endTime, sr.info.price, xloc = xloc.bar_time, color = sr.info.srType == "Resistance" ? resistanceColor : supportColor, width = lineWidth, style = lineStyle == "----" ? line.style_dashed : lineStyle == "...." ? line.style_dotted : line.style_solid, extend = extendType)
// Label
sr.srLabel := label.new(extendType == extend.none ? ((sr.info.startTime + endTime) / 2) : endTime, sr.info.price, xloc = xloc.bar_time, text = labelTitle, textcolor = textColor, style = label.style_none)
else
// Zone
sr.srBox := box.new(sr.info.startTime, sr.info.price + atr * zoneSizeATR, endTime, sr.info.price - atr * zoneSizeATR, xloc = xloc.bar_time, bgcolor = sr.info.srType == "Resistance" ? resistanceColor : supportColor, border_color = na, text = labelTitle, text_color = textColor, extend = extendType, text_size = size.normal, text_halign = (extendType != extend.none) ? text.align_right : text.align_center)
// Break Label
if showBreaks
if not na(sr.info.breakTime)
sr.breakLabel := label.new(sr.info.breakTime, sr.info.price, "B", yloc = sr.info.srType == "Resistance" ? yloc.belowbar : yloc.abovebar, style = sr.info.srType == "Resistance" ? label.style_label_up : label.style_label_down, color = breakColor, textcolor = color.new(textColor, 0), xloc = xloc.bar_time, size = size.small)
if (time - curTFMS <= sr.info.breakTime) and (time + curTFMS >= sr.info.breakTime)
alerts.put("Break", true)
// Retest Labels
if showRetests
if sr.info.retestTimes.size() > 0
for i = sr.info.retestTimes.size() - 1 to 0
curRetestTime = sr.info.retestTimes.get(i)
cooldownOK = true
if sr.retestLabels.size() > 0
lastLabel = sr.retestLabels.get(0)
if math.abs(lastLabel.get_x() - curRetestTime) < curTFMS * retestLabelCooldown
cooldownOK := false
if cooldownOK and (curRetestTime >= sr.info.startTime) and (na(sr.info.breakTime) or curRetestTime < sr.info.breakTime)
if time - curTFMS <= curRetestTime and time >= curRetestTime
alerts.put("Retest", true)
sr.retestLabels.unshift(label.new(curRetestTime, sr.info.price, "R" + (DEBUG ? (" " + str.tostring(sr.info.price)) : ""), yloc = sr.info.srType == "Resistance" ? yloc.abovebar : yloc.belowbar, style = sr.info.srType == "Resistance" ? label.style_label_down : label.style_label_up, color = sr.info.srType == "Resistance" ? resistanceColor : supportColor, textcolor = color.new(textColor, 0), xloc = xloc.bar_time, size = size.small))
safeDeleteSRObj (srObj sr) =>
if sr.rendered
line.delete(sr.srLine)
box.delete(sr.srBox)
label.delete(sr.srLabel)
label.delete(sr.breakLabel)
if sr.retestLabels.size() > 0
for i = 0 to sr.retestLabels.size() - 1
curRetestLabel = sr.retestLabels.get(i)
label.delete(curRetestLabel)
sr.rendered := false
var allSRInfoList = array.new()
var barInfoList = array.new()
pivotHigh = ta.pivothigh(srPivotLength, srPivotLength)
pivotLow = ta.pivotlow(srPivotLength, srPivotLength)
barInfoList.unshift(barInfo.new(time, time_close, close, high, low))
if barInfoList.size() > maxBarInfoListSize
barInfoList.pop()
if insideBounds and barstate.isconfirmed
// Find Supports
if not na(pivotLow)
validSR = true
if allSRInfoList.size() > 0
for i = 0 to allSRInfoList.size() - 1
curRSInfo = allSRInfoList.get(i)
if (math.abs(curRSInfo.price - pivotLow) < atr * tooCloseATR) and na(curRSInfo.breakTime)
validSR := false
break
if validSR
newSRInfo = srInfo.new(barInfoList.get(srPivotLength).t, pivotLow, "Support", 1, timeframe.period)
newSRInfo.retestTimes := array.new()
//for i = 1 to srPivotLength
//curBI = barInfoList.get(i)
//if (curBI.l <= newSRInfo.price and curBI.c >= newSRInfo.price)
//newSRInfo.strength += 1
//if curBI.t != newSRInfo.startTime
//newSRInfo.retestTimes.unshift(curBI.t)
allSRInfoList.unshift(newSRInfo)
while allSRInfoList.size() > maxSRInfoListSize
allSRInfoList.pop()
// Find Resistances
if not na(pivotHigh)
validSR = true
if allSRInfoList.size() > 0
for i = 0 to allSRInfoList.size() - 1
curRSInfo = allSRInfoList.get(i)
if (math.abs(curRSInfo.price - pivotLow) < atr * tooCloseATR) and na(curRSInfo.breakTime)
validSR := false
break
if validSR
newSRInfo = srInfo.new(barInfoList.get(srPivotLength).t, pivotHigh, "Resistance", 1, timeframe.period)
newSRInfo.retestTimes := array.new()
//for i = 1 to srPivotLength
//curBI = barInfoList.get(i)
//if (curBI.h >= newSRInfo.price and curBI.c <= newSRInfo.price)
//newSRInfo.strength += 1
//if curBI.t != newSRInfo.startTime
//newSRInfo.retestTimes.unshift(curBI.t)
allSRInfoList.unshift(newSRInfo)
if allSRInfoList.size() > maxSRInfoListSize
allSRInfoList.pop()
// Handle SR Infos
if insideBounds and (srInvalidation == "Wick" or barstate.isconfirmed)
if allSRInfoList.size() > 0
for i = 0 to allSRInfoList.size() - 1
srInfo curSRInfo = allSRInfoList.get(i)
// Breaks
invHigh = (srInvalidation == "Close" ? close : high)
invLow = (srInvalidation == "Close" ? close : low)
closeTime = time
if na(curSRInfo.breakTime)
if curSRInfo.srType == "Resistance" and invHigh > curSRInfo.price
if (not avoidFalseBreaks) or (volume > avgVolume * breakVolumeThreshold)
curSRInfo.breakTime := closeTime
if inverseBrokenLineColor and (not curSRInfo.ephemeral) and curSRInfo.strength >= srStrength
ephSR = srInfo.new(closeTime, curSRInfo.price, "Support", curSRInfo.strength, curSRInfo.timeframeStr, true)
ephSR.retestTimes := array.new()
allSRInfoList.unshift(ephSR)
else if curSRInfo.srType == "Support" and invLow < curSRInfo.price
if (not avoidFalseBreaks) or (volume > avgVolume * breakVolumeThreshold)
curSRInfo.breakTime := closeTime
if inverseBrokenLineColor and (not curSRInfo.ephemeral) and curSRInfo.strength >= srStrength
ephSR = srInfo.new(closeTime, curSRInfo.price, "Resistance", curSRInfo.strength, curSRInfo.timeframeStr, true)
ephSR.retestTimes := array.new()
allSRInfoList.unshift(ephSR)
// Strength & Retests
if na(curSRInfo.breakTime) and time > curSRInfo.startTime and barstate.isconfirmed
if curSRInfo.srType == "Resistance" and high >= curSRInfo.price and close <= curSRInfo.price
int lastRetestTime = 0
if curSRInfo.retestTimes.size() > 0
lastRetestTime := curSRInfo.retestTimes.get(0)
if lastRetestTime != time
if not curSRInfo.ephemeral
curSRInfo.strength += 1
curSRInfo.retestTimes.unshift(time)
else if curSRInfo.srType == "Support" and low <= curSRInfo.price and close >= curSRInfo.price
int lastRetestTime = 0
if curSRInfo.retestTimes.size() > 0
lastRetestTime := curSRInfo.retestTimes.get(0)
if lastRetestTime != time
if not curSRInfo.ephemeral
curSRInfo.strength += 1
curSRInfo.retestTimes.unshift(time)
fixSRToTimeframe (srObj sr) =>
srMS = math.max(timeframe.in_seconds(sr.info.timeframeStr), timeframe.in_seconds()) * 1000
if (not sr.startFixed)
if not sr.info.ephemeral
if sr.info.srType == "Resistance"
sr.info.startTime := findValRtnTime(barInfoList, sr.info.price, "High", "Nearest", sr.info.startTime - srMS, sr.info.startTime + srMS, sr.info.startTime)
else
sr.info.startTime := findValRtnTime(barInfoList, sr.info.price, "Low", "Nearest", sr.info.startTime - srMS, sr.info.startTime + srMS, sr.info.startTime)
sr.startFixed := true
else
if allSRList.size() > 0
for i = 0 to allSRList.size() - 1
curSR = allSRList.get(i)
if (not curSR.info.ephemeral) and (not na(curSR.info.breakTime)) and curSR.info.price == sr.info.price and ((sr.info.srType == "Resistance" and curSR.info.srType == "Support") or (sr.info.srType == "Support" and curSR.info.srType == "Resistance"))
if curSR.breakFixed
sr.info.startTime := curSR.info.breakTime
sr.startFixed := true
break
if not na(sr.info.breakTime)
if (not sr.breakFixed)
if sr.info.srType == "Resistance"
sr.info.breakTime := findValRtnTime(barInfoList, sr.info.price, srInvalidation == "Wick" ? "High" : "Close", "Higher", sr.info.breakTime - srMS, sr.info.breakTime + srMS, sr.info.breakTime)
else
sr.info.breakTime := findValRtnTime(barInfoList, sr.info.price, srInvalidation == "Wick" ? "Low" : "Close", "Lower", sr.info.breakTime - srMS, sr.info.breakTime + srMS, sr.info.breakTime)
sr.breakFixed := true
if sr.info.retestTimes.size() > 0 and fixRetests
for i = 0 to sr.info.retestTimes.size() - 1
curRetestTime = sr.info.retestTimes.get(i)
retestStartTime = curRetestTime - srMS
retestStartTime := math.max(retestStartTime, sr.info.startTime + 1)
retestEndTime = curRetestTime + srMS
if not na(sr.info.breakTime)
retestEndTime := math.min(retestEndTime, sr.info.breakTime - 1)
if sr.info.srType == "Resistance"
sr.info.retestTimes.set(i, findValRtnTime(barInfoList, sr.info.price, "High", "Higher", retestStartTime, retestEndTime, sr.info.retestTimes.get(i)))
else
sr.info.retestTimes.set(i, findValRtnTime(barInfoList, sr.info.price, "Low", "Lower", retestStartTime, retestEndTime, sr.info.retestTimes.get(i)))
getSR (srObj list, srPrice, eph, srType, timeframeStr) =>
srObj rtnSR = na
if list.size() > 0
for i = 0 to list.size() - 1
curSR = list.get(i)
if curSR.info.price == srPrice and curSR.info.ephemeral == eph and curSR.info.srType == srType and curSR.info.timeframeStr == timeframeStr
rtnSR := curSR
break
rtnSR
// Handle SR
handleTF (tfStr, tfEnabled) =>
if tfEnabled
tfSRInfoList = request.security(syminfo.tickerid, tfStr, allSRInfoList)
if not na(tfSRInfoList) and tfSRInfoList.size() > 0
for i = 0 to tfSRInfoList.size() - 1
srInfo curSRInfo = tfSRInfoList.get(i)
if fixSRs
currentSameSR = getSR(allSRList, curSRInfo.price, curSRInfo.ephemeral, curSRInfo.srType, curSRInfo.timeframeStr)
if not na(currentSameSR)
if currentSameSR.startFixed
curSRInfo.startTime := currentSameSR.info.startTime
if currentSameSR.breakFixed
curSRInfo.breakTime := currentSameSR.info.breakTime
curSRInfo.retestTimes := currentSameSR.info.retestTimes
// All other info should be replaced except fixed start, break and all retests.
currentSameSR.info := curSRInfo
if not currentSameSR.breakFixed
fixSRToTimeframe(currentSameSR)
else
srObj newSRObj = srObj.new(curSRInfo)
// We handle retests in current timeframe so no need to get them from upper.
newSRObj.info.retestTimes := array.new()
newSRObj.retestLabels := array.new()
fixSRToTimeframe(newSRObj)
allSRList.unshift(newSRObj)
else
srObj newSRObj = srObj.new(curSRInfo)
newSRObj.retestLabels := array.new()
allSRList.unshift(newSRObj)
true
if (bar_index > last_bar_index - maxDistanceToLastBar * 8) and barstate.isconfirmed
if not fixSRs
if allSRList.size() > 0
for i = 0 to allSRList.size() - 1
srObj curSRObj = allSRList.get(i)
safeDeleteSRObj(curSRObj)
allSRList.clear()
handleTF(timeframe1, timeframe1Enabled)
handleTF(timeframe2, timeframe2Enabled)
handleTF(timeframe3, timeframe3Enabled)
if allSRList.size() > 0
for i = 0 to allSRList.size() - 1
srObj curSRObj = allSRList.get(i)
safeDeleteSRObj(curSRObj)
tooClose = false
for j = 0 to allSRList.size() - 1
closeSR = allSRList.get(j)
if closeSR.rendered and math.abs(closeSR.info.price - curSRObj.info.price) <= tooCloseATR * atr and closeSR.info.srType == curSRObj.info.srType and closeSR.info.ephemeral == curSRObj.info.ephemeral
tooClose := true
if not str.contains((na(closeSR.combinedTimeframeStr) ? formatTimeframeString(closeSR.info.timeframeStr) : closeSR.combinedTimeframeStr), formatTimeframeString(curSRObj.info.timeframeStr))
if na(closeSR.combinedTimeframeStr)
closeSR.combinedTimeframeStr := formatTimeframeString(closeSR.info.timeframeStr) + " & " + formatTimeframeString(curSRObj.info.timeframeStr)
else
closeSR.combinedTimeframeStr += " & " + formatTimeframeString(curSRObj.info.timeframeStr)
break
if (curSRObj.info.strength >= srStrength) and (na(curSRObj.info.breakTime) or (curSRObj.info.breakTime - curSRObj.info.startTime) >= minSRSize * curTFMS) and (not tooClose)
renderSRObj(curSRObj)
// Current Timeframe Retests
if allSRList.size() > 0 and barstate.isconfirmed
for i = 0 to allSRList.size() - 1
srObj curSR = allSRList.get(i)
if na(curSR.info.breakTime) and time > curSR.info.startTime
if curSR.info.srType == "Resistance" and high >= curSR.info.price and close <= curSR.info.price
int lastRetestTime = 0
if curSR.info.retestTimes.size() > 0
lastRetestTime := curSR.info.retestTimes.get(0)
if lastRetestTime != time
curSR.info.retestTimes.unshift(time)
else if curSR.info.srType == "Support" and low <= curSR.info.price and close >= curSR.info.price
int lastRetestTime = 0
if curSR.info.retestTimes.size() > 0
lastRetestTime := curSR.info.retestTimes.get(0)
if lastRetestTime != time
curSR.info.retestTimes.unshift(time)
//plotchar(alerts.get("Break") ? high : na, "", "✅", size = size.normal)
//plotchar(alerts.get("Retest") ? high : na, "", "❤️", size = size.normal, location = location.belowbar)
alertcondition(alerts.get("Retest"), "New Retest", "")
alertcondition(alerts.get("Break"), "New Break", "")
if enableRetestAlerts and alerts.get("Retest")
alert("New Retests Occured.")
if enableBreakAlerts and alerts.get("Break")
alert("New Breaks Occured.")
LockedEye MTF CRT Map SentinelOverview
This script provides a structured multi-timeframe display of market conditions.
It summarizes key elements from M1 up to D1 using five components:
- CRT (Continuation/Reversal Trigger)
- MA6 micro-trend filter
- Candle-close direction
- MA250 macro trend filter
- Sentiment percentage computed from the above signals
The panel is designed to present information at a glance, allowing traders to understand how different timeframes align or disagree.
The purpose is not to merge random indicators. Each row uses a specific rule-based calculation that contributes to an integrated multi-timeframe read. The focus is on market structure, micro-trend, and directional pressure as expressed across several intervals.
How the Script Works
The script does not rely on external indicators. All calculations are performed internally through candle relationships, moving averages, MTF requests, and simple classification logic.
1. CRT Logic (Continuation and Reversal)
CRT identifies two types of behavior in each timeframe:
Continuation: The current candle closes outside the previous candle’s high or low.
Reversal after a sweep: Price takes the previous high or low but closes back inside the range.
A close outside the previous range suggests continuation.
A sweep followed by a close back inside suggests a shift in pressure or reversal .
The CRT row labels these conditions as Bull, Bear, or Wait.
2. MA6 Micro-Trend
The script uses a 6-period simple moving average to understand immediate trend pressure.
Close and open both above the MA6 = Bull
Close and open both below the MA6 = Bear
Mixed = Wait
This gives a quick view of short-term momentum without repainting.
3. Candle-Close Direction
This uses a simple comparison:
Close > Open = Bull
Close < Open = Bear
Equal = Neutral
It is a raw directional signal without interpretation.
4. MA250 Macro Filter
The script applies a 250-period MA to understand the broader trend.
Break above the MA250 = BR (BullRun)
Break below the MA250 = BC(BearCrash)
Inside range = Neutral
This acts as a long-term directional filter .
5. Sentiment Computation
The script aggregates CRT, MA6, and Candle-Close across all timeframes.
Each timeframe contributes a value.
The script then calculates the percentage of bull, bear, and neutral signals.
A short text summary explains whether signals are aligned or mixed.
How to Use the Panel
Multi-Timeframe Alignment
The panel is most useful when interpreting how lower and higher timeframes behave together:
When many timeframes show the same direction, it reflects stronger alignment.
When timeframes disagree, market conditions are more mixed or range-bound.
Users can watch for shifts when multiple rows turn from mixed to aligned.
Trend-Following Context
If higher timeframes (H2–D1) show consistent directional readings in CRT, MA6, and MA250, users may treat that as broader structural context.
Lower timeframes (M1–M15) can then be used to observe pullbacks or shifts within that larger trend.
Counter-Trend Context
If higher timeframes show one direction but lower timeframes show the opposite, this may indicate short-term reactions or pullbacks.
The script does not assume these reactions will continue; it only shows the multi-frame condition so users can decide how to interpret it.
Liquidity Sweep Context
CRT will classify moments when price takes a previous high or low and re-enters the range.
This is included so users can detect areas where the market moves beyond a level and immediately rejects it.
Alerts
The script includes alert conditions for:
CRT Bull or Bear flips on the chart’s timeframe
Multi-timeframe consensus reaching a user-defined threshold
Users can create alerts through the TradingView alert menu once the indicator is added to the chart.
Note:
The script includes a non-repaint mode for alert stability. This mode ensures only confirmed candle closes are used in calculations.
Chart Use
The script displays a fixed panel on the chart.
Users may select the panel’s position to avoid covering price action.
Users are advised to publish with a clean chart where only this script is active, unless pairing is required for explanation.
Toggles:
Close Candle(Non Repaint)
Monitor: BTCUSD along w RSI
Monitor 2: Any Coin
Flip M1-D1
Fast CRT
Final Notes
This script does not forecast future price movement and does not claim accuracy, profitability, or performance results.
It is a diagnostic tool that organizes real-time price behavior across multiple timeframes.
Users should apply their own judgment and risk management.
Fib and Slope Trend Detector [EWT] + MTF Dashboard🚀 Overview
The Momentum Structure Trend Detector is a sophisticated trend-following tool that combines Price Velocity (Slope) with Market Structure (Fibonacci) to identify high-probability trend reversals and continuations.
Unlike traditional indicators that rely heavily on lagging moving averages, this script analyzes the speed of price action in real-time. It operates on the core principle of market structure: Impulse moves are fast and steep, while corrections are slow and shallow.
🧠 The Logic: Physics Meets Market Structure
This indicator determines the trend direction by calculating the Slope (Velocity) of price swings.
ZigZag Calculation: It first identifies market swings (Highs and Lows) using a standard pivot detection algorithm.
Slope Calculation: It calculates the velocity of every completed leg using the formula: $Slope = \frac{|Price Change|}{|Time Duration|}$.
Trend Definition:
Uptrend : If the previous Up-move was fast (Impulse) and the subsequent Down-move is slower (Correction), the market is primed for an uptrend.
Downtrend : If the previous Down-move was fast (Impulse) and the subsequent Up-move is slower (Correction), the market is primed for a downtrend.
🔥 Key Features
1. Aggressive Real-Time Detection (No Lag)
Most structure indicators wait for a "Higher High" to confirm a trend, which often leads to late entries. This script uses an Aggressive Live Slope calculation:
It compares the current developing slope of the live price action against the slope of the previous completed leg.
Result: As soon as the current move becomes "steeper" (faster) than the previous correction, the trend flips immediately. This allows you to catch the "meat" of the move before a new pivot is even confirmed.
2. Fibonacci Validity Filter
Momentum alone isn't enough; we need structural integrity.
The script calculates the 78.6% Retracement level of the impulse leg.
If a correction moves deeper than this Fibonacci limit (on a closing basis), the trend structure is considered "broken" or "invalid," and the indicator switches to a Neutral state. This filters out choppy/ranging markets.
3. Multi-Timeframe (MTF) Dashboard
A customizable dashboard on the chart allows for fractal analysis. You can view the trend state (UP/DOWN/NEUTRAL) across 9 different timeframes (1m to 1M) simultaneously.
Green Row : Uptrend
Red Row : Downtrend
Gray : Neutral/Indeterminate
4. Smart Visuals
Background Colo r: Changes dynamically (Teal for Bullish, Red for Bearish, Gray for Neutral) to give you an instant read of the market state.
Slope Labels : Displays the calculated numeric slope on the chart, helping you visualize the momentum difference between impulse and corrective waves.
Invalidation Levels : Automatically plots the invalidation line (Stop Loss level) based on the market structure.
🛠️ Settings & Inputs
Strategy Settings
Pivot Deviation Length : Sensitivity of the ZigZag calculation (Default: 5). Lower numbers = more sensitive to small swings.
Max Retracement % : The Fibonacci limit for a valid correction (Default: 78.6%).
Min Bars for Live Calc : To prevent noise, the script waits for this many bars after a pivot before calculating the "Live Slope" (Default: 3).
Dashboard Settings
Show Dashboard : Toggle the table on/off.
Timeframe Toggles : Enable/Disable specific timeframes (1m, 5m, 15m, 30m, 1H, 4H, 1D, 1W, 1M) to suit your trading style.
🎯 How to Use
Wait for Background Change : When the background turns Teal, it indicates that a corrective pullback has ended and a new impulse with high velocity has begun.
Check Invalidation : Look at the plotted Stop Loss Level. If price closes below this line, the trade idea is invalid.
Confirm with Dashboard : Use the table to ensure the higher timeframes (e.g., 1H, 4H) align with your current chart's direction for higher probability setups.
Disclaimer : This tool is designed for trend analysis and educational purposes. Past performance (momentum) is not indicative of future results. Always manage your risk.
BC_Monthly Strength Armor [xAI] - v32.2 MTF LOCKED + SCORE FIXED🛡️ **Monthly Strength Armor - v32.2**
**Multi-Timeframe Institutional Edge Indicator**
🔥 **Detects smart money moves** using:
- **Monthly Range Position (Score 0–100)**
- **Higher High/Low Trend Structure (Daily/Weekly/Monthly)**
- **OBV Trend Lock (100% consistent)**
- **Larry Williams OHLC Institutional Patterns (Daily)**
📊 **MTF Table (locked values — no flicker)**
| Daily | Weekly | Monthly |
|-------|--------|---------|
| OBV | Trend | Score |
| ATR% | Larry | PMH/PML |
🎯 **Confluence Alerts**
- **3-TF Bullish / Bearish**
- **ULTRA BUY/SELL** (all TFs aligned)
- **Larry Institutional Buying/Selling**
✅ **No repaint | No warnings | Live-ready**
Built for **NVDA, MSFT, URA, QQQ, SPY**
*By @TedPrime x Grok @ xAI*
WeAxes MTF Scalper [LITE] WeAxes MTF Scalper
Professional Multi-Timeframe Alignment Tool - LITE Version
What This LITE Version Offers:
3-Timeframe Sync: Monitor 1min, 15min, and 1hr trends simultaneously
Visual Alignment System: Color-coded candles for perfect setups
Quick Setup Recognition: Instant HIGH/MEDIUM/LOW quality ratings
Clean Data Display: Essential alignment information at a glance
Perfect for Scalping:
Green Candles: Perfect bullish alignment across all timeframes
Red Candles: Perfect bearish alignment across all timeframes
Setup Quality: Know immediately if conditions are favorable
Multi-Timeframe Context: Never trade blind again
How to Use:
1. HIGH Quality Setups (Green/Red candles): Highest probability trades
2. MEDIUM Quality: All trends aligned, good for trend following
3. LOW Quality: Mixed signals, better to wait for alignment
PRO Version Includes:
- Advanced volume profiling across all timeframes
- Momentum strength calculations
- Detailed market structure analysis
- Smart Money Concepts integration
- Complete volume analysis
- And much more...
This LITE version gives you a taste of professional multi-timeframe analysis. Contact for PRO version access with full features.
Disclaimer: Use proper risk management. This tool assists analysis but doesn't guarantee profits.
BACK TO BASIC, MTF, AOI, BOS Hiya ALL my Friends !!
I am going back to basic, MTF, AOI, BOS, mostly from freely available indicators, just adding the 8 TFs for reference. Hope this will simplify my analysis.
Cheers always !!
DYOR / NFA
Simple HEMAs Color(MTF)Simple HEMAs, MTF for both fast and slow HEMA and color selection for multimple use.
RSI MTF 15m + 1h (Oriol)//@version=5
indicator("RSI MTF 15m + 1h (Oriol)", overlay = false, timeframe = "", timeframe_gaps = true)
// ─── PARÀMETRES ─────────────────────────────────────────────
rsiLength = input.int(14, "Període RSI")
src = input.source(close, "Font de preu")
tfFast = input.timeframe("15", "Timeframe ràpid (RSI 15m)")
tfSlow = input.timeframe("60", "Timeframe lent (RSI 1h)")
showSignals = input.bool(true, "Mostrar senyals LONG/SHORT")
// ─── RSI MULTITIMEFRAME ────────────────────────────────────
// RSI del timeframe ràpid (per defecte 15m)
src_fast = request.security(syminfo.tickerid, tfFast, src)
rsi_fast = ta.rsi(src_fast, rsiLength)
// RSI del timeframe lent (per defecte 1h)
src_slow = request.security(syminfo.tickerid, tfSlow, src)
rsi_slow = ta.rsi(src_slow, rsiLength)
// ─── DIBUIX RSI ─────────────────────────────────────────────
plot(rsi_fast, title = "RSI ràpid (15m)", color = color.new(color.aqua, 0), linewidth = 2)
plot(rsi_slow, title = "RSI lent (1h)", color = color.new(color.orange, 0), linewidth = 2)
hline(70, "Sobrecomprat", color = color.new(color.red, 70), linestyle = hline.style_dashed)
hline(30, "Sobrevenut", color = color.new(color.lime, 70), linestyle = hline.style_dashed)
hline(50, "Mitja", color = color.new(color.gray, 80))
// ─── CONDICIONS D’EXEMPLE ───────────────────────────────────
// LONG: RSI 1h < 40 i RSI 15m creua cap amunt 30
// SHORT: RSI 1h > 60 i RSI 15m creua cap avall 70
longCond = (rsi_slow < 40) and ta.crossover(rsi_fast, 30)
shortCond = (rsi_slow > 60) and ta.crossunder(rsi_fast, 70)
// ─── SENYALS (SENSE SCOPE LOCAL) ────────────────────────────
plotshape(showSignals and longCond,
title = "Possible LONG",
style = shape.triangleup,
location = location.bottom,
color = color.new(color.lime, 0),
size = size.small,
text = "LONG")
plotshape(showSignals and shortCond,
title = "Possible SHORT",
style = shape.triangledown,
location = location.top,
color = color.new(color.red, 0),
size = size.small,
text = "SHORT")
// ─── ALERTES ────────────────────────────────────────────────
alertcondition(longCond, title = "Senyals LONG RSI 15m+1h",
message = "Condició LONG RSI 15m + 1h complerta")
alertcondition(shortCond, title = "Senyals SHORT RSI 15m+1h",
message = "Condició SHORT RSI 15m + 1h complerta")
Ultimate Ichimoku Trend Board MTF – 6× Cloud Analyzer⚡️ Ultimate Ichimoku Trend Board MTF – 6× Cloud Analyzer
Unleash the full power of Ichimoku with this multi-timeframe trend dashboard ⚙️
Quickly identify whether each timeframe is Bullish 🟢, Bearish 🔴, or Inside the Cloud 🟠, and align your trades with the dominant trend like a pro.
🔥 Features:
✅ 6 customizable timeframes (M5 → H4)
✅ Clean & minimal dashboard — no chart clutter
✅ Instantly visualize market direction across all layers
✅ Perfect for scalpers, intraday, and swing traders
💡 See the Clouds. Read the Trends. Dominate the Market. 🌥💪
FVGC — MTF ScreenerFVGC — MTF Screener (by Capital Complex)
Part of the FVGC Suite.
A compact, real-time dashboard that scans the 30s, 1m, 2m, and 3m timeframes for FVGC-compliant conditions—showing a green/red dot when a bullish/bearish setup is arming, and a green/red square when the setup confirms. Built to sit beside FVGC — Signals and FVGC — Visual Overlay so you can monitor multiple timeframes at once without clutter.
---
## What it does
Multi-TF heads-up display : Tracks 30s, 1m, 2m, 3m for valid FVGC criteria.
Clear state encoding:
* Dot = conditions are aligning (setup arming).
* Square = entry model confirmed (go/no-go).
Rule-true logic: Mirrors your FVGC rule set (tap/engulf/inversion and guardrails) so the screener matches what your Signals indicator would accept on each timeframe.
Noise control: Honors your Trading Windows to keep the screen focused on the session you actually trade.
---
## Why traders use it
Time compression: See four lower timeframes progress from “almost” to “confirmed” at a glance.
Discipline aid: Use the dot phase as a heads-up, and the square as the only moment you consider action—no more chart hopping.
Suite cohesion: Screener tells you when, Visual Overlay shows where, Signals defines how.
---
## Key features & options
Timeframes: 30s, 1m, 2m, 3m (fixed for clarity and speed).
FVGC-aligned filters: Honors your suite’s guardrails (e.g., IFVG/BOS logic, midpoint FTC checks, opposing-FVG 50% behavior, opening-range distance caps by TF).
Trading Windows aware: Optional pre-window arming visibility for early heads-up.
Readable UI: On-chart table/HUD with per-state colors (dot/square), custom text color control, and minimal footprint.
Timezone aware: Defaults to America/New_York to align with RTH and your other FVGC tools.
---
## Notes
Designed for index futures, indices, and liquid FX.
This is a visual scanner; it does not place orders. Pair with FVGC — Signals for your actual entry/management logic.
---
## Credits & suite
Capital Complex — FVGC Suite
© TheHiddenMarkets (code components)
---
## Disclaimer
This tool is for educational purposes only and does not constitute financial advice. Trading involves risk; do your own research and manage risk appropriately.
Directional Volume Cloud MTFThe Directional Volume Cloud MTF transforms raw volume into a visually intuitive cloud histogram that highlights directional bias and exhaustion zones.
🔍 Core Logic
- Volume bias is calculated using candle direction (bullish/bearish) and smoothed via EMA.
- Bias strength is normalized against average volume to produce a ratio from -1 to +1.
- Color and opacity dynamically reflect bias direction and strength — pale clouds indicate weak volume, while vivid clouds signal strong conviction.
Features
- Customizable bullish/bearish colors
- Dynamic opacity based on volume strength
- Declining volume signals for potential reversals
- Multi-timeframe bias overlay (e.g., daily bias on intraday chart)
📈 Use Cases
- Spot volume exhaustion before reversals
- Confirm breakout strength with bias intensity
- Compare short-term vs long-term volume pressure
Whether you're scalping intraday moves or validating swing setups, this cloud-based volume heatmap offers a clean, modular way to visualize market conviction.
Weis Wave Volume MTF 🎯 Indicator Name
Weis Wave Volume (Multi‑Timeframe) — adapted from the original “Weis Wave Volume by LazyBear.”
This version adds multi‑timeframe (MTF) readings, configurable colors, font size, and screen position for clear dashboard‑style display.
🧠 Concept Background — What is Weis Wave Volume (WWV)?
The Weis Wave Volume indicator originates from Wyckoff and David Weis’ techniques.
Its purpose is to link price movement “waves” with the amount of traded volume to reveal how strong or weak each wave is.
Instead of showing bars one by one, WWV accumulates the total volume while price keeps moving in the same direction.
When price direction changes (up → down or down → up), it:
Finishes the previous wave volume total.
Starts a new wave and begins accumulating again.
Those wave volumes help traders see:
Effort vs Result: Big volume with small price move ⇒ absorption; low volume with big move ⇒ weak participation.
Trend confirmation or exhaustion: High volume waves in trend direction strengthen it, while low‑volume waves hint exhaustion.
⚙️ How this Script Works
Trend & Wave Detection
Compares close with the previous bar to determine up or down movement (mov).
Detects trend reversals (when mov direction changes).
Builds “waves,” each representing a continuous run of bars in one direction.
Volume Accumulation
While price keeps the same direction, the script adds each bar’s volume to the running total (vol).
When direction flips, it resets that total and starts a new wave.
Multi‑Timeframe Computation
Calculates these wave volumes on three timeframes at once, chosen dynamically:
Active Chart Timeframe Displays WWV for:
1 min 1 min
5 min 5 min
15 min 15 min
Any other Chart TF
It uses request.security() to pull each timeframe’s latest WWV value and current wave direction.
Visual Output
Instead of plotting histogram bars, it shows a table with three numeric values:
WWV (1): 25.3 M | (15): 312 M | (240): 2.46 B
Each value is color‑coded:
user‑selected Uptrend Color when price wave = up
user‑selected Downtrend Color when wave = down
You can position this small table in any corner/center (top / bottom × left / center / right).
Font size is user‑adjustable (Tiny → Huge).
📈 How Traders Use It
Quickly gauge buying vs selling effort across multiple horizons.
Compare short‑term wave volume to higher‑timeframe waves to spot:
Alignment → all up and big volumes = strong trend
Divergence → small or opposite‑colored higher‑TF wave = potential reversal or pause
Combine with Wyckoff, VSA, or standard trend analysis to judge if a breakout or pullback has real participation.
🧩 Key Features of This Version
Feature Description
Multi‑Timeframe Panel Displays WWV values for 3 selected TFs at once
Dynamic TF Mapping Auto‑adjusts which TFs to use based on chart
Up/Down Color Coding Customizable colors for wave direction
Adjustable Font and Placement Set font size (Tiny→Huge) and screen corner/center
No Histograms Keeps chart clean; acts as a compact WWV dashboard
Relative Strength Index + MTF VEIODORIOAn advanced technical indicator that combines multiple RSI (Relative Strength Index) analysis features into a single, comprehensive tool.
Main Features:
1. Traditional RSI
Calculates the standard Relative Strength Index with a configurable period (default: 14)
Displays overbought and oversold levels
Includes colored background fill for better visualization
2. Multi-Timeframe (MTF) Chart
Displays RSI values simultaneously across 8 different timeframes:
1 minute, 5 minutes, 15 minutes, 30 minutes
1 hour, 4 hours, 1 day, 1 week
MORE - MTF Open Retest Extensions [Pro]Overview
MORE- MTF Open Retest Extensions highlights what price typically does after a higher-timeframe structure break (taking out the previous candle’s high or low) and before a potential retest of the current open.
It plots percentile extension levels (above/below the broken side) that quantify how far price has historically moved prior to an open retest if a retest occurs, giving traders objective context for stretch vs. common movement around structural breaks.
Key features
• Break-aware logic: MORE activates only after the current timeframe has broken the prior candle’s high/low. No break → no extensions.
• Open-retest probabilities: Displays the empirical likelihood of retesting the current open following a break, with sensitivity to when in the interval the break occurred (early/late breaks can behave differently).
• Pre-retest extension percentiles: Five percentile bands (e.g., 25/50/75/85/95) show how far price typically extends before any open retest on the broken side.
• Multi-timeframe dashboard: Monitor multiple reference timeframes (e.g., 1h → 12h) while viewing any chart timeframe. See which breaks are active and the highest percentile reached this interval.
• Filtering & display controls: Toggle historical zones, choose zones vs. lines (or both).
• Filtering with a threshold: User can enter a threshold for the historical probability so that the open, zones, levels and dashboard only show for timeframes above this user defined input. e.g. input of 70%, zone and levels will only be drawn when the historical data was greater than or equal to this level.
• Show selected timeframe or all untested opens the dashboard is showing as "Active"
• 2 Alert types: Set for a specific timeframe to alert an activate open for retest or set a percentile level to be crossed and alert on cross.
No signals, just context: MORE is a descriptive tool for structure and stretch—use it alongside your own strategy and risk framework.
Methodology (transparency)
• MORE uses embedded statistical datasets constructed from extensive historical price behavior across multiple timeframes.
• Each dataset represents conditional empirical outcomes —specifically, how far price extended beyond a prior candle’s high/low before retesting its open on the same timeframe.
• Percentiles and probabilities are calculated from these internal data arrays, ensuring the indicator runs deterministically on TradingView with no external data connections .
• The proprietary component lies in:
The way volatility and structure are normalized across timeframes;
How conditional breaks and open-retest windows are segmented; and
How percentile extension zones are blended into continuous statistical envelopes.
• These methods and datasets are unique to LevelLogic Indicators and are not replicated from any public or open-source scripts.
• Outputs summarize historical tendencies for educational context only — they are not predictive signals .
How to use
• Pick the reference timeframe (e.g., 1H, 2H, 4H, … 12H).
• Wait for a break of the prior candle’s high/low on that timeframe—MORE then plots the pre-retest extension percentiles on the broken side.
• Use the open-retest probability as context only; combine with your own entry/management rules.
• Optionally toggle historical view to study prior intervals and how far price usually stretched before any open retest.
• Consider alerts on percentile crosses if you want notifications when price enters statistically stretched areas.
Notes
Educational/analytical tool — no signals, no performance or outcome promises.
Historical tendencies change with regime; treat outputs as context, not advice.
Non-standard bars (e.g., Heikin Ashi/Renko) are for display only.
Credits
Developed by LevelLogic Indicators to provide clear, empirical context around breaks and open-retest behavior across multiple timeframes.
Invite-only script
Only users approved by the author can access this script. Request permission per the author’s instructions.
Ghost Signal — MTF EMA/VWAP Confluence SystemGhost Signal — MTF EMA/VWAP Confluence System
Purpose
Ghost Signal is an intraday trend-entry tool that tries to do one thing well: only fire when multiple, independent edges agree. It looks for pullbacks to the EMA-20 or clean trend-continuations, then gates those raw triggers behind VWAP/Anchored-VWAP alignment, higher-timeframe structure, momentum, spacing (anti-chop), volume and ATR context. The goal is fewer, higher-quality entries that avoid “death-by-a-thousand scalps” in chop.
What it plots
EMA 20/50/200 for trend structure and spacing (no-braid filter).
VWAP (session) and optional Anchored VWAP (Daily/Weekly/Monthly).
ENTRY labels when all filters pass.
A compact status table: HTF score (M/W/D/4H/15/5), VWAP/AVWAP arrows, EMA regime, slopes %, ATR%, spacing %, and distance from EMA-50.
How signals are built
Raw triggers (on chart TF or a lower “signal TF” for intrabar precision):
PB20: trend pullback that crosses back through EMA-20.
TC: trend-continuation when price holds the side of EMA-20 with limited gap.
Confluence filters (must pass):
EMA regime & slopes: 20>50>200 for longs (reverse for shorts) with minimum slope on EMA-20/50.
VWAP/AVWAP alignment: price must be above both for longs / below for shorts, with a configurable margin.
HTF structure score: combines M/W/D/4H/15/5 states and penalizes corrections.
Anti-chop spacing: minimum separation between 20↔50 and 50↔200.
Context: volume ≥ SMA×mult, ATR% ≥ floor, max distance from EMA-50 to avoid late chases.
Optional breakout: close > prior high (long) / < prior low (short).
Time lockouts: exclude known messy windows (open/close, FX rollover, etc.).
Adaptive slope (optional): slopes auto-tighten/loosen with market heat (ATR% & relative volume).
How to use
Works on 1–5m best; designed for futures, stocks, FX, and crypto.
Use the status table to confirm context (HTF score, VWAP arrows, slopes/ATR/spacing).
Pair with your own risk model; common templates: stop ≈ 1.5–2× ATR, TP ≈ 1.2–1.8R or an ATR trail.
Turn the Signal TF to “1” on 3m/5m charts if you want intrabar PB20 detection.
Why it helps
Ghost Signal tries to stack institutional anchors (VWAP/AVWAP), higher-timeframe bias, and momentum/structure so you participate in moves with real sponsorship—and sit out the braid.
Notes & limits
No indicator removes risk. Expect fewer signals on range days, slippage around news, and thinner markets to require stricter volume/spacing. Past results don’t guarantee future returns.






















