Today Low ± 50 LevelsThis script plots two dynamic horizontal lines based on today’s daily low. One line is placed 50 points above the low and the other 50 points below it. The lines update automatically each new day and appear on any timeframe
Multitimeframe
QQQ Quant Power STRATEGY v13.3 (Ribbon + TQQQ Specs)1. The Quant Engine (Data Processing)
Weighted Scoring: It assigns specific weights to stocks (e.g., NVDA gets 8.5% weight, TXN gets 1.0%).
Z-Score Pressure: It calculates how "unusual" the current buying/selling pressure is compared to the average (Standard Deviation).
Alignment Bonus: It boosts the "Conviction Score" if Mega Caps (Top 8) and Large Caps (Next 12) are moving in the same direction.
2. The Dashboard (Mission Control)
The dashboard gives you an X-Ray view of the market:
Main Status: Tells you if the market is BULLISH, BEARISH, or CHOP (Sit Out).
Conviction %: A probability score (0-99%). Higher = Safer trade.
Breadth: Counts how many of the top 20 stocks are above their EMA.
Chop Logic: If Breadth is mixed (between 6 and 14 stocks above EMA), it declares "CHOP" and blocks trades.
Mega/Large Net: Shows the net buying/selling pressure for each group.
3. Visuals
Pressure Line: The line on the chart isn't just a Moving Average; it's the Net Pressure of the 20 stocks pushing price up or down.
Conviction Ribbon: The squares at the bottom of the screen.
🟩 Green: High Probability Long (>77%).
🟥 Red: High Probability Short (>77%).
⬜ Gray: Low Conviction / Holding.
4. Strategy Logic (Automated Trading)
Entry: Enters when the "Basket" of stocks is aligned (Bull/Bear Pressure) AND the Conviction Score is high (>77%).
Exit: Closes the trade if Conviction drops (Signal fades) or hits a Hard Stop Loss.
Time Filters: Includes strict trading windows (e.g., No trading during lunch 12-1pm, closes all positions on Friday).
Summary
This is a Market Breadth & Momentum Strategy. It assumes that QQQ cannot sustain a trend unless its underlying components (NVDA, AAPL, etc.) are pushing it. It filters out "fake moves" where QQQ moves but the components don't support it.
Macros+AMD [NW]Macros + AMD - Daily & Weekly Time-Based Analysis
Multi-timeframe AMD (Accumulation, Manipulation, Distribution) visualization with ICT Macro timing windows for time-based market analysis.
Overview
This indicator visualizes the AMD (Accumulation, Manipulation, Distribution) framework on both daily and weekly timeframes, combined with ICT Macro timing windows. It is designed as an educational tool to help traders study time-based market structure and algorithmic price delivery concepts.
The AMD model is based on the idea that markets move through distinct phases within each trading period:
Accumulation (A) - Initial range formation, liquidity building
Manipulation (M) - False moves to trap traders, liquidity sweeps
Distribution (D) - True directional move, price delivery to targets
What This Indicator Displays
Daily AMD Phases
Displays the intraday AMD cycle based on New York trading hours:
A Phase (Blue): 4:00 AM - 8:35 AM EST — Morning accumulation, Asian/London overlap
M Phase (Red): 8:35 AM - 11:25 AM EST — NY session manipulation, news events
D Phase (Green): 11:25 AM - 4:00 PM EST — Afternoon distribution and price delivery
Weekly AMD Phases
Displays the weekly AMD cycle from Monday to Monday:
A Phase: Monday 00:00 - Tuesday 21:56 EST — Weekly high/low formation begins
M Phase: Tuesday 21:56 - Thursday 02:04 EST — Mid-week reversal zone
D Phase: Thursday 02:04 - Monday 00:00 EST — Weekly price delivery
Inner M Phase Fibs
When enabled, subdivides the M (Manipulation) phase using Fibonacci levels:
0.382 level — Inner accumulation ends
0.500 level — Mid-point of manipulation
0.618 level — Inner distribution begins
This helps identify potential reversal points within the manipulation phase.
ICT Macro Windows
Horizontal lines marking the XX:42 to XX:15 macro periods (33-minute windows):
2:42 - 3:15 AM
3:42 - 4:15 AM (London)
7:42 - 8:15 AM
8:42 - 9:15 AM
9:42 - 10:15 AM (Prime AM session)
10:42 - 11:15 AM
11:42 - 12:15 PM
12:42 - 1:15 PM
1:42 - 2:15 PM
2:42 - 3:15 PM
These windows represent times when algorithmic price delivery is more likely to occur.
How To Use
Understanding the AMD Framework
During the A Phase:
Observe range formation and initial liquidity pools
Note the high and low established during this phase
Wait for manipulation before committing to direction
During the M Phase:
Watch for false breakouts and stop hunts
Look for reversal patterns after liquidity sweeps
The inner fibs (0.382, 0.5, 0.618) can help time entries within this phase
Mid-week (Wednesday) often sees key reversals on weekly AMD
During the D Phase:
This is typically when the true move occurs
Price tends to deliver toward draw on liquidity targets
The direction is often opposite to the manipulation move
Using the Macro Windows
The XX:42 to XX:15 windows are times to pay attention to price action:
These 33-minute periods often see increased algorithmic activity
Look for displacement, fair value gaps, or order blocks forming
The 9:42-10:15 AM window is considered particularly significant for NY session
Weekly Day Labels
Monday/Tuesday: "H/L of Week" — Watch for weekly high or low formation
Wednesday: "Reversal Day" — Mid-week reversal probability increases
Thursday/Friday: "Reversal Day" — Continuation or secondary reversal
Settings Guide
Main Settings
Timezone: Set to your broker's timezone or preferred timezone
Macros On Top: Toggle macro lines above or below AMD boxes
Show All Text Labels: Master toggle for all text (turn off for clean charts on HTF)
Daily/Weekly AMD
Show: Enable/disable the AMD visualization
Opacity: Adjust transparency of the phase boxes (higher = more transparent)
AMD Colors
Customize colors for each phase (A, M, D)
Default: Blue (A), Red (M), Green (D)
Inner M Style
Customize the inner M phase fib lines and text colors
Default: Black lines for clean visibility
Macro Settings
Adjust macro line color and thickness
Toggle individual macro windows on/off
Important Notes
This indicator is for educational purposes and time-based analysis
It does not provide buy/sell signals
Always use in conjunction with proper price action analysis
Past price behavior during these time windows does not guarantee future results
The AMD framework is one lens for viewing market structure — use it as part of a complete methodology
Credits
This indicator is based on concepts taught by ICT (Inner Circle Trader) and the broader Smart Money Concepts community. The AMD framework, macro timing windows, and weekly profile concepts are derived from this educational methodology.
Timeframe Recommendations
Best viewed on 1-minute to 15-minute charts
Text labels automatically hide on 9-minute and higher timeframes for cleaner visualization
Indicator hides completely on 1-hour and higher timeframes
Changelog
v1.0 - Initial release
Daily AMD phases (4am-4pm EST)
Weekly AMD phases (Monday-Monday)
Inner M phase Fibonacci subdivisions
10 ICT Macro timing windows
Full customization options
Automatic 9-day cleanup
Forelume (ULTIMATE) Forelume ULTIMATE is the flagship, feature-rich TradingView trade-assistant that combines trend awareness, confirmation-based signals, structured trade planning, and premium-grade chart UI, while keeping everything configurable and clean.
works on all charts of the market
It’s built for traders who want a consistent workflow:
1) identify direction (trend),
2) wait for quality confirmation
3) execute with a mapped plan
CORE SIGNAL ENGINE
• Multi-Mode Signals: run different signal pathways (Classical, structure-enhanced, cross-based, and combined modes), with simple direction filters (Long only / Short only / Both).
• Regime Awareness: optional cross-base
regime logic with visual markers and a “latest cross” summary so you immediately see when market bias shifts.
• Confirmation Controls: optional confirmation style logic (designed to reduce low-quality prints in chop).
• Structured mapping for every signal: Entry, SL, TP1–TP5 presented in a compact, readable format: - RR-based TP/SL mapping options (with configurable risk behavior)
- Optional “Move to Break Even after TP#” logic for cleaner trade management
- Optional OHLC/4 (average) entry mode for consistency across volatility
PREMIUM UI / READABILITY FEATURES
• Compact HUD Panel: quick glance “Latest Trade / Latest Cross” summary with optional signal age so you know if a setup is fresh or late.
• Clean visual system: show/hide labels, signals, EMAs, and overlays to match your trading style.
UNIQUE VISUAL HIGHLIGHTS
• Zone Cloud: a dynamic cloud between regime EMAs that adapts in real time:
- green when the zone expands (strength)
- red when it shrinks (momentum fading)
• Optional 3rd EMA: adds extra context when needed, stays hidden when not.
• Supply & Demand zones with configurable display, sizing, and behavior.
• Optional BOS tooling and structure confirmation controls when you want higher context precision.
NEW: ALERTS
• Dedicated TradingView alert: “New signal detected”
- get notified the moment a fresh setup appears, new signal is detected
- confirm on-chart, execute with mapped levels
WHY ULTIMATE (AND WHY IT’S THE ONE TO BUY)
• Priority Updates: ULTIMATE users receive new systems, refinements, and improvements first.
• Flagship Build: this is the version where new features land before other tiers.
it is one of the most sophisticated well-structured indicators in the market
Whether you're a day trader hunting scalps, a swing trader riding trends, or an investor monitoring long-term regimes, Forelume ULTIMATE delivers actionable intelligence without overwhelming your charts. Backed by real-time calculations and historical performance tracking, it's the ultimate companion for boosting your win rate and confidence.
Elevate your trading game—install Forelume ULTIMATE today and turn market chaos into calculated opportunity.
IMPORTANT
This indicator provides chart-based signals and planning assistance. It is not financial advice. Always test on your symbols/timeframes and use proper risk management.
Works on all markets.
Forelume (Premium) Forelume Premium is a clean, multi-layer TradingView indicator built to deliver high-quality long/short signals using a regime-first approach with optional confirmation layers, then packages the result into a clear trade plan: Entry, SL, and multiple TP targets.
What it does
Identifies the market’s bullish/bearish trends
added layer of confirmation before signaling
Outputs a structured trade plan (Entry / SL / TP levels) in a consistent visual format
Unique features (the stuff people actually notice)
Regime-aware signals: signals are gated by trend context instead of firing randomly in chop
Multi-target planning: supports multiple take-profit levels for structured exits
Break-even automation (visual + logic): optional BE behavior after a chosen TP milestone
Signal mode controls: filter signals by direction and mode to keep the chart focused
Optional structure enhancement: enable an additional confirmation layer when you want more precision
Clean UI stack: optional labels, markers, and a compact HUD so it stays usable on lower timeframes
Ideal for
Traders who want clean signals, not chart confetti
Scalpers and swing traders who prefer rules-based execution
Anyone who wants a signal tool that’s configurable, readable, and consistent
Disclaimer: This indicator provides signals and planning assistance, not financial advice. Manage risk like you enjoy having an account. It only works on metals and crypto
Forelume (Basic) Overview: The Forelume Basic indicator 3:1 RR is a streamlined, user-friendly technical analysis tool designed for traders seeking reliable entry signals based on our expertise in the market. Optimized for swing trading, this indicator identifies high-probability long and short setups with a fixed 3:1 reward-to-risk ratio, ensuring consistent trade management. Its clean design, robust signal logic, and customizable features make it ideal for traders of all levels looking to enhance their market edge.
Key Features & Perks
Core Mechanism: Generates buy and sell signals based multiple strategies based on our years of expertise in the market.
Fixed 3:1 Reward-to-Risk Ratio
Perk: Provides disciplined trade management with clear, predefined exit points, appealing to traders who prioritize risk management and consistent profitability.
Break-Even Stop-Loss Feature
Informative HUD Display
Feature: Optional heads-up display (HUD) showing the latest trade details (entry, SL, TPs, hit status),
Perk: Provides real-time trade monitoring and market context, enabling traders to make informed decisions without cluttering the chart.
Clean Visuals and Performance
Design: Displays clear long/short signals with triangles, ensures a visually appealing and responsive chart experience, optimized for performance
Ideal For
Swing Traders: Perfect for capturing multi-day or multi-week price moves
Risk-Conscious Traders: The fixed 3:1 RR and break-even feature cater to those prioritizing capital preservation.
Beginners and Pros: Easy to use for newcomers, yet customizable enough for advanced traders to refine their strategies.
ONLY WORKS ON CRYPTO PAIRS
REMS - Deep SynergyThis is a more flexible version of the REMS Synergy indicator. Like other indicators in the REMS family, it builds upon the foundations assessing the relationships between RSI, EMAs, MACDs, and Stochastic RSI across multiple timeframes. Designed to help traders identify less frequent, but high probability entries across 2 time frames. Uses 3 levels of confluence indicators for both long and short moves.
Features 3 levels of confluence across 2 timeframes. All 3 levels allow filtering of any combination of REMS filters. Features more options and customization than previous REMS Synergy.
Includes VWAP and 4 EMAs as optional visual representations.
Includes 'Enhanced Candles' than can colour code candlesticks for better visual identification. (off by default)
Originally designed with 5 minute and 2 minute timeframes in mind, and pairs well with REMS First Strike and/or REMS Snap Shot indicators.
This version features no hard-coded inputs and allows for more freedom than previous version. With the added flexibility comes the ability for the indicator to be more easily stacked.
SCOTTGO ORB V1SCOTTGO ORB (Opening Range Breakout) Indicator
The ORB Indicator is a powerful tool for day traders and scalpers, designed to automatically identify and project key price levels based on the market's initial trading activity—the Opening Range (OR).
It helps you quickly visualize the market structure, potential breakout zones, and price targets for the day.
🔑 Key Features & Customization
1. Dynamic Opening Range Calculation
Flexible Time Periods: Easily define your Opening Range using preset times of 5, 15, or 30 minutes. You can also use the International Overrides to set a custom start and end time with a specified timezone.
Visual Range: The indicator automatically calculates and shades the range between the ORB High and ORB Low prices. The Opacity of this shaded box is fully adjustable.
2. Comprehensive Price Targets
The indicator projects multiple levels of price targets (PTs) based on the size of the initial Opening Range, enabling you to set profit targets and manage risk. Targets are grouped for easy toggling:
Default Targets (50%): Visualize the immediate $50\%$ price extension above and below the ORB.
Extended Targets (75%, 100%): View the $75\%$ and full $100\%$ extension levels.
Further Targets (150%, 200%): Explore extended targets for volatile or trending days.
Mid Point: Optional line to display the $50\%$ retracement/midpoint of the ORB itself.
3. Fibonacci Extensions
Access highly relevant price projections using classic Fibonacci ratios:27.2% and 61.8% Extensions: These provide additional high-probability price targets for breakout scenarios.
4. Breakout & Retest Signaling
Entry Signals: Displays on-chart labels for potential ORB Breakouts and subsequent
Retests (BRB), helping you identify high-probability entry points.
Alert Options: Set alerts for simple ORB level crosses or restrict alerts only to confirmed breakout scenarios (Alert only on ORB breakouts).
🎨 Style Customization
All main ORB lines, target levels, and Fibonacci lines can be individually styled (color, thickness, line type) directly within the TradingView Style tab for a personalized chart experience. Dedicated inputs are available for setting colors for 50%, 75%, 100%, and Fibonacci 27.2% / 61.8% levels.
💡 How to Use
1. Set Your ORB Period: Choose the time frame that best suits your market (e.g., 15 minutes is common for US indices).
2. Monitor the Breakout: Once the ORB session ends, wait for the price to break above the ORB High or below the ORB Low.
3. Target and Risk: Use the projected Price Targets to define your potential profit zones, and place stop-losses just inside the ORB range.
SCOTTGO
Eurovision - EURUSD Market SpecialistProfessional EURUSD trading signals with adaptive parameters
Performance Expectations
Win Rate || 60-70% || Adaptive parameters
Risk/Reward || 1:2.0 || Session optimization
Max Drawdown || <15% || News filter protection
Sharpe Ratio || >1.5 || Multi-timeframe confluence
Signals per Day || 3-8 || EURUSD-specific filtering
Tip: The indicator works best as an overlay on EURUSD M5 charts!
Multi-TimeCycle SMT Live DetectorThis indicator is a multi-asset, multi-timeframe SMT Live detector designed to work on any symbol (indices, futures, FX, crypto, stocks).
It compares your chart symbol against up to two custom comparison symbols and automatically detects bullish and bearish SMT divergences across:
90-minute session blocks (Asia, London, NY – with internal 90m sessions)
60-minute (hourly) cycles
30-minute cycles
10-minute cycles
3-minute cycles
Each SMT is plotted as a line between the reference high/low and the current high/low, with a clear text label showing:
Timecycle (90m / 60m / 30m / 10m / 3m)
Which comparison asset(s) created the divergence (e.g., ES, YM, ES/YM or your custom labels)
The 90-minute SMT module is session-aware using New York time:
Asia: 18:00 – 02:29 NY time
London A/M/D
NY AM A/M/D
NY PM A/M/D
Multi-TimeCycles SMT Live DetectorThis indicator is a multi-asset, multi-timeframe SMT Live detector designed to work on any symbol (indices, futures, FX, crypto, stocks).
It compares your chart symbol against up to two custom comparison symbols and automatically detects bullish and bearish SMT divergences across:
90-minute session blocks (Asia, London, NY – with internal 90m sessions)
60-minute (hourly) cycles
30-minute cycles
10-minute cycles
3-minute cycles
Each SMT is plotted as a line between the reference high/low and the current high/low, with a clear text label showing:
Timecycle (90m / 60m / 30m / 10m / 3m)
Which comparison asset(s) created the divergence (e.g., ES, YM, ES/YM or your custom labels)
The 90-minute SMT module is session-aware using New York time:
Asia: 18:00 – 02:29 NY time
London A/M/D
NY AM A/M/D
NY PM A/M/D
BETradez HTF Order Blocks BETradez HTF Order Blocks identifies and displays order blocks from higher timeframes on your chart. It detects Break of Structure (BOS) events, when price breaks above the highest high or below the lowest low—then scans back up to 200 bars to find the last opposing candle, which becomes the order block zone. The indicator displays up to 5 active order blocks per side (bullish in green, bearish in red), automatically extends them forward in time, and can hide invalidated blocks when price violates them. You can customize the timeframe (use chart or a custom higher timeframe), adjust forward extension, show optional wick lines and center lines, and control label text size. Order blocks often act as support/resistance zones where institutional activity occurred, making them useful for identifying potential entry areas, support/resistance levels, and risk management points in multi-timeframe analysis.
Quarterly Theory (Lé Modél) 🧪 [Ultimate +] | cephxsQUARTERLY THEORY (LÉ MODÉL) 🧪
SSMT + Timed Structural Swing Points + Alerts
This is mostly types using voice typing so the punctuation might be off.
This indicator uses public domain information based on a trading system called "Quarterly Theory" by TraderDaye & ICT. All concepts are freely available educational material that's been around for years. I just built a tool to visualize it properly.
WHAT IS THIS?
Alright so basically this is my attempt (pretty good attempt I'd say) at building the ultimate quarterly theory tool. It tracks multiple timeframe cycles (monthly, weekly, daily, 90m, and micro) and detects when correlated assets are diverging from each other at key swing points. That's the SSMT (sequential smt) part otherwise called an Offset Divergence either in an Accumulation/distribution phase of price.
On top of that, it finds timed structural swing points with their exact formation times, detects liquidity purges, and confirms change in state of delivery (CISD) through orderblock reclaims. Everything is wrapped in a pretty comprehensive alert system so you can actually trade off this stuff without staring at charts 24/7.
CORE FEATURES
Multi-Cycle SSMT Detection: tracks divergences across 5 nested cycles - monthly, weekly, daily, 90m, and micro. each cycle has its own visibility gates so you're only seeing what's relevant to your chart timeframe. They are also customizable so you are not restricted to what I think is best; nevertheless, hard gates are put in place to prevent unnecessary data calls too far back into history to allow users of all plans to use without errors (Bar data limits)
Timed Swing Points: every pivot high/low gets timestamped. you'll see exactly when the swing formed - super useful for macro window analysis (those :00-:10 and :50-:00 minute windows).
Liquidity Purges: automatically detects when price sweeps a previous swing high/low and reverses. shows both the sweep level and confirmation.
CISD (Change In State of Delivery): finds the stretch candle at pivots and waits for price to reclaim it. that's your delivery change confirmation.
Auto Asset Detection: just throw it on any chart and it figures out the correlated assets for you. works with indices ( CME_MINI:NQ1! , CME_MINI:ES1! , CBOT_MINI:YM1! ), forex majors ( FOREXCOM:EURUSD , FOREXCOM:GBPUSD ), metals ( FOREXCOM:XAUUSD , FOREXCOM:XAGUSD ), crypto, and more.
Normal + Hidden Divergences: normal divergence is when extremes diverge between assets. hidden divergence uses body closes instead of wicks - sometimes catches moves that normal misses.
Comprehensive Alert System: atomic alerts for individual events, preset combos for multi-confluence setups, and a custom "alert kitchen" to build your own conditions.
Each of these features can be visually disabled individually while the logic is still computed and alerts still function without bother.
THE CYCLES EXPLAINED
quarterly theory breaks time down into nested fractal cycles. each cycle divides into 4 quarters (Q1, Q2, Q3, Q4) where Q2 is typically expansion/displacement:
Monthly Cycle: tracks the 4 weeks of the month. best viewed on 4H charts and above
Weekly Cycle: Mon-Tue-Wed-Thu-Fri as the 5 "quarters". best on 1H charts.
Daily Cycle: the trading day split into 4 sessions (asia, london, ny am, ny pm). best on 15m.
90m Cycle: 6 x 90-minute windows throughout the day. best on 3-5m charts.
Micro Cycle: 22.5-minute quarters within each 90m block. 1m charts only.
Tried to implement a new Quarterly Cycle, will defer that to a later update.
VISIBILITY GATES
the indicator automatically shows/hides cycles based on your chart timeframe. here's how it works:
Auto Mode (recommended):
Micro: 1m only
90m: 3m-5m
Daily: 15m only
Weekly: 1H only
Monthly: 4H only
Extended Mode (more flexibility):
Micro: 1m-3m
90m: 1m-30m
Daily: 5m-1H
Weekly: 15m-4H
Monthly: 4H-1D
you can also set custom ranges or just show everything with "All" mode.
INPUTS BREAKDOWN
Visual Preset
All Features: shows everything - SSMT, time labels, CISD, purges
SSMT + TIME + CISD: hides purge lines for cleaner charts
SSMT + CISD: hides time labels too
SSMT Only: just the divergence lines, nothing else
SSMT Plots (Section 2)
Extreme Detection Mode: "Normal" uses wick extremes, "Hidden" uses body closes, "All" shows both
Per-Cycle Toggles: enable/disable each cycle independently with custom colors
Label Styling: choose between "Cycle + Asset", "Cycle" only, or "Asset" only labels
Pivot Detection (Section 3)
Sensitivity: controls how many bars on each side to confirm a swing (default: 2)
Maximum Points: limits how many pivots are displayed
Pivot Labels (Section 4)
Show Time Labels: displays the exact timestamp of each swing
Key Times Only: only shows labels for swings in macro windows (:00-:10, :24-:36, :50-:59)
Macro Colors: special highlighting for pivots during macro windows
Purge Detection (Section 5-6)
Pending Timeout: how many bars a purge can wait for confirmation before being discarded
Strict Key Time: requires both the sweep AND confirmation to be in key time windows
Dotted Line Offset: how far the confirmation line extends past the reversal candle
CISD Detection (Section 7-8)
Size Filter: filters out tiny orderblocks using ATR-based sizing. options from "Really Small" (shows most) to "Juicy" (only big ones)
Pending Timeout: bars before an unconfirmed CISD expires
Exhaustive Mode: shows all valid CISDs instead of limiting to max count
ALERT SYSTEM
this is where it gets powerful. three tiers of alerts:
Atomic Alerts (individual events):
Swing High/Low formed
Bearish/Bullish Purge confirmed
CISD Confirmed/Pending
Purge + CISD Combo
Preset Combos (multi-confluence):
M/W/D/90/Micro SSMT + CISD: fires when SSMT divergence is active AND CISD confirms in matching direction
Require Matching Purge: adds purge to the combo requirement
Stacked Alerts: triggers when 2+ cycles align simultaneously
Alert Kitchen (custom builder):
build your own combo by selecting:
Which SSMT cycle (with direction: bullish/bearish/any)
Whether CISD is required
Whether matching purge is required
Purge tolerance (how close the purge pivot needs to be)
Session Filter:
all alerts can be filtered to only fire during specific sessions:
Asia: 18:00-00:00 ET
London: 02:00-05:00 ET
NY AM: 08:30-12:00 ET
NY PM: 13:30-16:00 ET
Custom time ranges
AUTO ASSET DETECTION
the indicator uses the AssetCorrelation library to automatically figure out which assets to compare. here's what it supports:
US Indices: CME_MINI:NQ1! , CME_MINI:ES1! , CBOT_MINI:YM1! (or micros MNQ/MES/MYM)
Forex Majors: FOREXCOM:EURUSD , FOREXCOM:GBPUSD vs TVC:DXY
Metals: FOREXCOM:XAUUSD , FOREXCOM:XAGUSD , Copper
Energy: CL (crude), RB (gasoline), HO (heating oil)
Crypto: BTC, ETH, TOTAL3 as triad
EU Indices: GER40, EU50, UK100, ESP35
you can also disable auto mode and manually configure your own asset triads/dyads.
STATUS BAR
optional horizontal bar showing which SSMT cycles are currently active. displays M | W | D | 90m | Micro with color coding:
Blue = bullish divergence active
Red = bearish divergence active
Gray = neutral (no divergence)
Purple = both directions active simultaneously (sandwich)
RECOMMENDED USAGE
start with "Auto" timeframe gating - it shows the right cycles for your chart
focus on cycles that align with your trading style (scalpers: 90m/micro, swing: daily/weekly)
use CISD confirmation before entries - divergence alone isn't enough (at least for me)
Pair with True Opens to align properly (This is a trading model in itself)
set up preset alerts for your main setup (e.g., "D SSMT + CISD" on 15m chart)
filter alerts to your active trading session to reduce noise
TIMEFRAME CHEAT SHEET
1m: Micro cycle + 90m context
3-5m: 90m cycle + Daily context
15m: Daily cycle + Weekly context
1H: Weekly cycle + Monthly context
4H: Monthly cycle only
FAQ
why don't i see any SSMT lines?
check your timeframe gating mode. if you're on a 15m chart with "Auto" mode, you'll only see Daily cycle. switch to "Extended" or "All" to see more cycles.
what's the difference between normal and hidden divergence?
normal uses wick highs/lows, hidden uses body closes. hidden can catch divergences that wicks miss, but it's also noisier.
Why do some CISDs not confirm?
the stretch candle needs to be reclaimed by price within the timeout window. if price never comes back to that level, the CISD expires.
can i use this on stocks?
technically yes, but you'll need to manually configure your asset pairs since auto-detection focuses on futures/forex/crypto.
DISCLAIMER
this is an educational tool, not financial advice. quarterly theory, SSMT, and all related concepts are based on publicly available information from TraderDaye and ICT methodology on X with a touch of my own discoveries too.
past performance doesn't guarantee future results. always use proper risk management and never trade more than you can afford to lose. the indicator is provided as-is with no guarantees.
do your own backtesting before using this in live markets.
CREDITS
Quarterly Theory concepts: TraderDaye & ICT
AssetCorrelation library: fstarcapital
Development: cephxs & fstarcapital community
CHANGELOG
Ultimate +: added Alert Kitchen, stacked cycle alerts, session filtering, status bar, size-filtered CISD
Pro +: added hidden divergences, added sweep detection/plots, auto asset detection, preset combos
Base: initial release with core SSMT and pivot time labels
No form of this Library is to be sold in any capacity as part of any service / indicator on the TradingView Platform or elsewhere by anyone else but me.
Otherwise it is completely free to use in private and public open/closed source indicators.
Sidenote: 3rd upload because I'm trying to get the thumbnail right :(
Made with ❤️ from cephxs
Three Custom Moving AveragesAllows you to have 3 moving averages with any timeframe no matter what timeframe you are viewing.
HTF Manipulation Swing Points [Pogiest]General
HTF Manipulation Swing Points plots out relevant swings on the higher timeframes selected and draws a horizontal line anchored from the extremes of the swing point. These are important levels traders can look to base entries off of. This indicator is designed to track higher timeframe swing points on a lower timeframe. It will detect a sweep (Manipulation) or a breakout/breakdown (Failure to Manipulate) based on the higher timeframe candle close.
Usage
Depending on how the higher timeframe candles engage the relevant swing points, it can assist traders on bias and direction given the higher timeframe order-flow, lower timeframe order-flow, zones, levels, etc. Manipulation of swing points can potentially signal the start of a reversal or retracement. Failure to Manipulate swing points can potentially signal continuation of the higher timeframe current trend. It is up to the trader to gauge the price action at these levels.
How the Indicator works
1. Lines (Not engaged) - Plots out line from higher timeframe swing points and extends to the right.
2. Manipulation (M) - M label will be plotted on the swing point line that has been engaged. For example, if 1 hour timeframe was selected in settings and the 1 hour swing point line is plotted on the chart, the indicator will track the first one hour candle to engage the line and wait for the 1 hour engaging candle to close before marking it out as a Manipulation label. It is deemed to be manipulation if the 1 hour candle sweeps the level and closes back into the range.
3. Failure to Manipulate (FTM) - FTM label functions the same as Manipulation in which it waits for the swing point line to be engaged in order for a label to be printed. However, if the price does not sweep the swing point, breaks through, and closes beyond the level then it would be deemed a "Failure to Manipulate".
Note: The timeframe selected in settings will match the engaging candle. For instance, if a 4 hour timeframe is selected, the next 4 hour candle that engages the swing point level will need to close before it displays a label. In addition, this indicator is designed to view on lower timeframes with higher timeframe swing points selected in Settings.
Settings
Timeframes:
1. Choose up to two timeframes for swing point levels.
2. Adjust Pivot lookback.
3. Option to change high and low line color, line style, and line width.
Timeframe Manipulation Labels:
4. Show/hide labels.
5. Option to adjust offset of labels horizontally/vertically for each high or low line.
6. Option to change label colors, label size, and text color.
Line Tags:
7. Show/hide line end tags.
8. Option to change tag size and tag color.
9. Adjust offset of tags.
Overlap Detection:
10. Adjust overlap threshold percentage.
11. Adjust label shift amount (for when labels are overlapping each other).
Alerts:
12. Option to enable/disable all alerts. Select different alerts for each timeframe (i.e. manipulate alert or failure to manipulate alert).
Risk Disclaimer
This indicator is for educational and informational purposes only and does not constitute financial advice. All trading and investment decisions remain solely the responsibility of the user.
Trading involves a high degree of risk, and past performance is not indicative of future results.
Always conduct your own research and consult with a qualified financial professional before making any trading decisions.
By using this indicator, users acknowledge they understand these risks and accept full responsibility for their trading decisions and outcomes.
JFX Smart ORBJFX Smart ORB is a complete visual trading framework built around the classic
Opening Range Breakout (ORB) concept, enhanced with:
Fixed position sizing (lots)
Automatic Martingale-style size increase after full SL only
A full, event-based alert system for entries, targets, stops, and break-even exits
All of that, plus a clean dual-language HUD (AR/EN) directly on your chart.
What JFX Smart ORB Does
🔹 Smart Opening Range (ORB)
Automatically defines the opening range via:
Fixed timeframe (e.g., 30 minutes), or
Custom session window (e.g., 09:30–09:45) with configurable time zone (UTC-5, etc.).
Plots ORH / ORL and the midline, and shades the OR building zone for visual clarity.
🔹 Regime Detection (Context)
Background shading tells you where price is trading:
📈 Green: Above ORH (bullish regime)
📉 Red: Below ORL (bearish regime)
🔵 Neutral: Inside the OR range
This gives you an instant read on context before you even think about entries.
🔹 Trade Logic & Multi-Target Management
Automatic entry when:
Price breaks ORH for long trades
Price breaks ORL for short trades
Stop loss on the opposite side of the range.
Targets calculated in R-multiples:
TP1 = 0.5R
TP2 = 1R
TP3 = 2R
Position is split across TP1 / TP2 / TP3 according to user-defined percentages, normalized automatically.
💰 Fixed Size + Martingale After Loss Only
Inputs:
Capital ($) – for display/analysis
Base Position Size (lots) – your standard trade size
Contract per 1.00 lot – to convert price movement to P/L in dollars
If a trade hits a full stop loss before TP1, the indicator:
Doubles the position size for the next trade (Martingale factor).
If the trade hits any profit (TP1, TP2, TP3) or closes at Break-Even, the:
Martingale factor resets back to 1× (base size).
Everything is tracked and shown on the chart: current trade size, P/L per trade, and net P/L.
🧠 Session Protection & Inner-Range Logic
Optional session block:
After a strong winning trade (e.g., TP2 or TP3), you can block any further trades for the rest of the ORB session to avoid overtrading.
Inner-range logic after TP1:
Prevents immediate re-entry in the same direction after a BE exit from TP1.
Waits for price to return into a defined inner range around the OR midline, filtering out random noise.
📊 On-Chart HUD / Stats (AR & EN)
The built-in info panel shows in real time:
Session status:
✅ Trading enabled
🚫 Trading disabled until a new ORB
⏳ Waiting for two bars back inside the range
Current price regime (Above ORH / Below ORL / Inside OR).
Entry price, stop loss, TP1, TP2.
Total trades, losing trades, and win rate.
Counts of TP1 / TP2 / TP3 hits.
Reported capital, current position size (lots).
Current trade P/L and total net P/L in dollars.
🔔 Full Alert System (Ready for Webhooks/Bots)
The indicator generates per-bar event flags that feed into alertcondition() so you can build any alert setup you want (pop-up, email, SMS, webhook, bot, EA, etc.).
Available alerts:
Buy Entry: JFX_ORB_BUY_ENTRY
Sell Entry: JFX_ORB_SELL_ENTRY
Stop Loss Hit: JFX_ORB_SL_HIT
TP1 Hit: JFX_ORB_TP1
TP2 Hit: JFX_ORB_TP2
TP3 Hit: JFX_ORB_TP3
Break-Even Exit: JFX_ORB_BE_EXIT
Simply create alerts in TradingView based on these conditions and messages, or plug them into your automation via webhooks.
Who Is JFX Smart ORB For?
Day traders and scalpers who like structured ORB strategies instead of random entries.
Traders who want clear, rule-based entries, well-defined stops and multi-target exits.
Anyone looking to combine ORB + position management + Martingale logic + Alerts in a single, professional tool.
Disclaimer:
This indicator is a professional analysis and trade-management tool, not a guarantee of profit.
Always test on demo first and adapt the position sizing and Martingale behavior to your own risk management and trading plan.
Triple Screen System [FlexibleMAs MACD-RSI-ADX]#### Triple Screen System (TSS-FMR)
The TSS-FMR script is a specialized, multi-timeframe confirmation tool built for Swing, Positional Traders, and Longer Term Investors. It is engineered to filter out low-conviction noise by implementing an advanced interpretation of the Elder's Triple Screen strategy, relying on proprietary momentum, volatility, and volume analysis to isolate high-probability setups.
---
#### 🧠 Core Methodology & Logic
The TSS-FMR synthesizes three distinct layers of confirmation to generate signals:
1. Macro Trend & Volatility: Determines the primary trend and overall market condition using configurable EMA+RSI metrics , the script uses Average Directional Index (ADX) as an internal component to filter out non-trending, consolidating market conditions.
2. Momentum Synchronization: A proprietary filter requiring MACD,MAs and RSI to be synchronized * within a specified bar window (`MACD/RSI Sync Window`) ensures that entries align with current short-term momentum shifts.
3. Volume & Price Action: Final entry is triggered only when the higher timeframes align and the entry timeframe (Daily or 4H) confirms the move, optionally requiring * Candle Confirmation * and filtering out low-quality trades using the * Volume Filter *
The key is the separation of input thresholds and lengths for Weekly and Daily lookbacks, allowing for precise tuning unavailable in standard public libraries.
---
#### 🎯 Understanding Signal Strength & Conviction
Signals are categorized using a proprietary Strength scale (from Overbought/Oversold to 6) to help traders gauge the potential size and probability of the momentum move, This scale is dynamically influenced by the ADX volatility readings.
#### 🔍 Integrating External Visual Tools (Addressing Rule: Vendor/Chart)
The TSS-FMR generates signals based solely on its internal logic and inputs .*
We recommend overlaying the TSS-FMR signals with external tools (such as the Lux Algo SmartMoneyConcepts indicator or similar public S/R tools) for visual confirmation only :
* Signals (2, 3, 4) + CHOCH/BOS: * A signal with lower internal strength (2-4) gains stronger conviction if it aligns precisely with a CHOCH or BOS event visually identified by the external tool. This confirms that the market structure is validating the script's momentum reading.
Zone Confirmation: When signals land precisely within visually defined Liquidity or Accumulation/Distribution Zones (provided by external visual tools), it adds significant conviction to the TSS-FMR's output.
The *Overbought/Oversold regions* are decided based on the script's internal strength calculation and prevailing price action.
#### Summary:
--- This script is for Swing, Positional Traders and Longer Term Investors
--- It will only work with Monthly,Weekly, Daily and 4H chart to help you make confirmation based positions.
--- Sell Signals are Overbought Exits and Short sell signals, Plan according to Weekly Signals and Daily signals
--- Use the Momentum Table/matrix at the right top of the chart when TSS indicator is active.
--- Use Volume Filter enable to remove chaos of signals
--- Keep *Lux Algo -SmartMoneyConcepts* indicator active for visual of zones
--- Adjust Volume Filter in Settings to avoid crowding of signals
--- Adjust Input signal length to select number of history bars
--- Watch-out for Weekly 100ema Line and
--- Watch-out for Sell Signals, in discount region they are marked as Buy oversold or moderate, vise versa Sell Overbought signals are added to the charts.
--- To earn money, we need to look out for early signals, fake breakouts, breakdowns and what we want the table/matrix turning all green or red in Momentum trades.
---
#### House Rule Compliance Statement
This script description is provided strictly for technical clarity. It is free from all promotional content, external links, contact information, social media references, and solicitations, as per TradingView's General House Rule #2. The justification for its closed-source nature is based on its proprietary signal synchronization logic and flexible, multi-timeframe implementation.
HTF Candle overlayOverview
This Pine Script indicator overlays three separate Mini Charts onto the right side of your main chart area. These mini charts display price action from Higher Timeframes (HTF), allowing traders to monitor multi-timeframe market structure and trends without switching screens. Each mini chart is overlaid with up to 5 customizable EMA (Exponential Moving Average) Clouds.
Key Features
1. Three Independent Mini Charts
Users can select three distinct higher timeframes (e.g., 1 Hour, 4 Hours, 1 Day).
The script automatically checks to ensure the selected timeframe is higher than the current chart's timeframe.
Displays up to 10 historical candles per mini chart (limited to optimize Pine Script drawing resources).
2. Smart Data Handling (RTH vs. ETH)
Daily, Weekly, Monthly: For timeframes of 1 Day or higher, the script forces Regular Trading Hours (RTH) data. This ensures daily candles look standard and aren't distorted by pre/post-market low volume ticks.
Intraday (e.g., 1H, 4H): For timeframes below 1 Day, the script uses Extended Trading Hours (ETH) data, ensuring you see the full picture of pre-market and after-hours moves.
Ticker Cleaning: The script automatically sanitizes ticker IDs to prevent "Symbol Resolve Errors" when used on charts with complex session settings.
3. Comprehensive EMA Clouds
5 Customizable Clouds: Each mini chart can display up to 5 different EMA Clouds (pairs of Short and Long Moving Averages).
Full Color Control: Users can individually customize:
Line Colors: Distinct colors for Short and Long EMA lines.
Cloud Fill: Distinct colors and transparency for Bullish and Bearish trends.
Toggle Visibility: Each of the 5 clouds can be turned On or Off via settings.
Source Selection: Users can calculate EMAs based on Close, Open, High, Low, HL2, HLC3, or OHLC4.
4. Custom Visuals & Positioning
Candle Aesthetics: Users can define Bull/Bear candle colors, transparency, and Candle Width (thickness).
Positioning:
Horizontal Offset: Shift the entire dashboard left or right to avoid overlapping with current price action.
Spacing: Adjust the gap between the three mini charts.
Assistance Lines: Optional Support/Resistance lines (Fibonacci or Range High/Low) can be drawn extending from the mini charts.
How it Works (Technical Summary)
The script utilizes request.security to fetch OHLC data and Moving Average data from the specified higher timeframes. It stores this data in Matrices and Arrays to manage history. It then uses Pine Script's line.new and label.new functions to manually draw the candles and EMA lines onto the main chart canvas, relative to the current bar_index. It includes logic to handle dynamic array resizing and garbage collection to stay within Pine Script's execution limits.
FRAN CRASH PLAY RULESA script with purely descriptive nature is one that:
• Only describes actions, settings, characters, and events.
• Contains no dialogue, commands, or instructions for execution.
• Does not specify plot decisions, logic, or interactive elements.
• Reads like a detailed narrative blueprint, focusing on what exists or happens rather than what anyone should do.
Bappa - Dynamic VWAP Simple Vwap, just dynamic colour Coding added to sense whether VWAP is in uptrend or downtrend. Refer to colour code to enter Call side or Put side, it never disappoints you at any timeframe. Enjoy & happy Trading!!
Better results if used in conjuction with Pivots/ fractals indicator, named as Bappa EMA + BBW (V2) indicator.
RSI + BB + RSI Advanced MTF Panel//@version=6
indicator(title="RSI + BB + RSI Advanced MTF Panel", shorttitle="RSI + BB + RSI Advance MTF Panel", format=format.price, precision=2, overlay=false)
bb_group = "BB (Price Overlay)"
bb_length = input.int(50, minval=1, group = bb_group)
bb_maType = input.string("SMA", "Basis MA Type", options = , group = bb_group)
bb_src = input.source(close, title="Source", group = bb_group)
bb_mult = input.float(0.2, minval=0.001, maxval=50, title="StdDev", group = bb_group)
BasisColor = input.color(color.rgb(163, 41, 245), "Basis Color", group = bb_group, display = display.none)
UpperColor = input.color(color.rgb(120, 156, 202,100), "Upper Color", group = bb_group, display = display.none)
LowerColor = input.color(color.rgb(120, 156, 202,100), "Lower Color", group = bb_group, display = display.none)
offset = input.int(0, "Offset", minval = -500, maxval = 500, display = display.data_window, group = bb_group)
ma(source, bb_length, _type) =>
switch _type
"SMA" => ta.sma(source, bb_length)
"EMA" => ta.ema(source, bb_length)
"SMMA (RMA)" => ta.rma(source, bb_length)
"WMA" => ta.wma(source, bb_length)
"VWMA" => ta.vwma(source, bb_length)
basis = ma(bb_src, bb_length, bb_maType)
dev = bb_mult * ta.stdev(bb_src, bb_length)
upper = basis + dev
lower = basis - dev
plot(basis, "Basis", color=BasisColor, offset = offset, force_overlay = true)
p1 = plot(upper, "Upper", color=UpperColor, offset = offset, force_overlay = true)
p2 = plot(lower, "Lower", color=LowerColor, offset = offset, force_overlay = true)
fill(p1, p2, title = "Background", color=color.rgb(163, 41, 245, 90))
rsiLengthInput = input.int(30, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
calculateDivergence = input.bool(false, title="Calculate Divergence", group="RSI Settings", display = display.data_window, tooltip = "Calculating divergences is needed in order for divergence alerts to fire.")
SignalDot = input.bool(false, title="Signal Dot", group="Smoothing", display = display.data_window, tooltip = "Signal for possible entry")
change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiPlot = plot(rsi, "RSI", color= rsi >= 51 ? color.rgb(13, 197, 230) : color.red)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
midline = hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
midLinePlot = plot(50, color = na, editable = false, display = display.none)
fill(rsiPlot, midLinePlot, 100, 70, top_color = color.new(color.green, 0), bottom_color = color.new(color.green, 100), title = "Overbought Gradient Fill")
fill(rsiPlot, midLinePlot, 30, 0, top_color = color.new(color.red, 100), bottom_color = color.new(color.red, 0), title = "Oversold Gradient Fill")
GRP = "Smoothing"
TT_BB = "Only applies when 'SMA + Bollinger Bands' is selected. Determines the distance between the SMA and the bands."
maTypeInput = input.string("SMA", "Type", options = , group = GRP, display = display.data_window)
maLengthInput = input.int(14, "Length", group = GRP, display = display.data_window)
bbMultInput = input.float(2.0, "BB StdDev", minval = 0.001, maxval = 50, step = 0.5, tooltip = TT_BB, group = GRP, display = display.data_window)
var enableMA = maTypeInput != "None"
var isBB = maTypeInput == "SMA + Bollinger Bands"
smoothma(source, length, MAtype) =>
switch MAtype
"SMA" => ta.sma(source, length)
"SMA + Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
smoothingMA = enableMA ? smoothma(rsi, maLengthInput, maTypeInput) : na
smoothingStDev = isBB ? ta.stdev(rsi, maLengthInput) * bbMultInput : na
plot(smoothingMA, "RSI-based MA", color=color.yellow, display = enableMA ? display.all : display.none, editable = enableMA)
bbUpperBand = plot(smoothingMA + smoothingStDev, title = "Upper Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
bbLowerBand = plot(smoothingMA - smoothingStDev, title = "Lower Bollinger Band", color=color.green, display = isBB ? display.all : display.none, editable = isBB)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill", display = isBB ? display.all : display.none, editable = isBB)
lookbackRight = 5
lookbackLeft = 5
rangeUpper = 60
rangeLower = 5
bearColor = color.red
bullColor = color.green
textColor = color.white
noneColor = color.new(color.white, 100)
_calcBarsSince(cond) =>
ta.barssince(cond)
rsiLBR = rsi
// 1. Calculate Pivots Unconditionally
plFound = not na(ta.pivotlow(rsi, lookbackLeft, lookbackRight))
phFound = not na(ta.pivothigh(rsi, lookbackLeft, lookbackRight))
// 2. Calculate History Unconditionally
barsSincePL = _calcBarsSince(plFound )
barsSincePH = _calcBarsSince(phFound )
// 3. Check Ranges Unconditionally
inRangePL = rangeLower <= barsSincePL and barsSincePL <= rangeUpper
inRangePH = rangeLower <= barsSincePH and barsSincePH <= rangeUpper
// 4. Calculate Conditions
var bool bullCond = false
var bool bearCond = false
if calculateDivergence
rsiHL = rsiLBR > ta.valuewhen(plFound, rsiLBR, 1) and inRangePL
lowLBR = low
priceLL = lowLBR < ta.valuewhen(plFound, lowLBR, 1)
bullCond := priceLL and rsiHL and plFound
rsiLH = rsiLBR < ta.valuewhen(phFound, rsiLBR, 1) and inRangePH
highLBR = high
priceHH = highLBR > ta.valuewhen(phFound, highLBR, 1)
bearCond := priceHH and rsiLH and phFound
else
bullCond := false
bearCond := false
plot(plFound ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bullish", linewidth = 2, color = (bullCond ? bullColor : noneColor), display = display.pane, editable = calculateDivergence)
plotshape(bullCond ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bullish Label", text = " Bull ", style = shape.labelup, location = location.absolute, color = bullColor, textcolor = textColor, display = display.pane, editable = calculateDivergence)
plot(phFound ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bearish", linewidth = 2, color = (bearCond ? bearColor : noneColor), display = display.pane, editable = calculateDivergence)
plotshape(bearCond ? rsiLBR : na, offset = -lookbackRight, title = "Regular Bearish Label", text = " Bear ", style = shape.labeldown, location = location.absolute, color = bearColor, textcolor = textColor, display = display.pane, editable = calculateDivergence)
alertcondition(bullCond, title='Regular Bullish Divergence', message="Found a new Regular Bullish Divergence.")
alertcondition(bearCond, title='Regular Bearish Divergence', message='Found a new Regular Bearish Divergence.')
// --- Panel Options (General) ---
g_panel = 'MTF Panel Options'
i_orientation = input.string('Vertical', 'Orientation', options = , group = g_panel)
i_position = input.string('Bottom Right', 'Position', options = , group = g_panel)
i_border_width = input.int(1, 'Border Width', minval = 0, maxval = 10, group = g_panel, inline = 'border')
i_color_border = input.color(#000000, '', group = g_panel, inline = 'border')
i_showHeaders = input.bool(true, 'Show Headers', group = g_panel)
i_color_header_bg = input.color(#5d606b, 'Headers Background', group = g_panel, inline = 'header')
i_color_header_text = input.color(color.white, 'Text', group = g_panel, inline = 'header')
i_color_tf_bg = input.color(#2a2e39, 'Timeframe Background', group = g_panel, inline = 'tf')
i_color_tf_text = input.color(color.white, 'Text', group = g_panel, inline = 'tf')
i_debug = input.bool(false, 'Display colors palette (debug)', group = g_panel)
// --- RSI Colors (Conditional Formatting) ---
g_rsi = 'MTF RSI Colors'
i_threshold_ob = input.int(70, 'Overbought Threshold', minval=51, maxval=100, group = g_rsi)
i_color_ob = input.color(#128416, 'Overbought Background', inline = 'ob', group = g_rsi)
i_tcolor_ob = input.color(color.white, 'Text', inline = 'ob', group = g_rsi)
i_threshold_uptrend = input.int(60, 'Uptrend Threshold', minval=51, maxval=100, group = g_rsi)
i_color_uptrend = input.color(#2d472e, 'Uptrend Background', inline = 'up', group = g_rsi)
i_tcolor_uptrend = input.color(color.white, 'Text', inline = 'up', group = g_rsi)
i_color_mid = input.color(#131722, 'No Trend Background', group = g_rsi, inline = 'mid')
i_tcolor_mid = input.color(#b2b5be, 'Text', group = g_rsi, inline = 'mid')
i_threshold_downtrend = input.int(40, 'Downtrend Threshold', group = g_rsi, minval=0, maxval=49)
i_color_downtrend = input.color(#5b2e2e, 'Downtrend Background', group = g_rsi, inline = 'down')
i_tcolor_downtrend = input.color(color.white, 'Text', group = g_rsi, inline = 'down')
i_threshold_os = input.int(30, 'Oversold Threshold', minval=0, maxval=49, group = g_rsi)
i_color_os = input.color(#db3240, 'Oversold Background', group = g_rsi, inline = 'os')
i_tcolor_os = input.color(color.white, 'Text', group = g_rsi, inline = 'os')
// --- Individual RSI Settings (MTF Sources) ---
g_rsi1 = 'RSI #1'
i_rsi1_enabled = input.bool(true, title = 'Enabled', group = g_rsi1)
i_rsi1_tf = input.timeframe('5', 'Timeframe', group = g_rsi1)
i_rsi1_len = input.int(30, 'Length', minval = 1, group = g_rsi1)
i_rsi1_src = input.source(close, 'Source', group = g_rsi1) * 10000
v_rsi1 = i_rsi1_enabled ? request.security(syminfo.tickerid, i_rsi1_tf, ta.rsi(i_rsi1_src, i_rsi1_len)) : na
g_rsi2 = 'RSI #2'
i_rsi2_enabled = input.bool(true, title = 'Enabled', group = g_rsi2)
i_rsi2_tf = input.timeframe('15', 'Timeframe', group = g_rsi2)
i_rsi2_len = input.int(30, 'Length', minval = 1, group = g_rsi2)
i_rsi2_src = input.source(close, 'Source', group = g_rsi2) * 10000
v_rsi2 = i_rsi2_enabled ? request.security(syminfo.tickerid, i_rsi2_tf, ta.rsi(i_rsi2_src, i_rsi2_len)) : na
g_rsi3 = 'RSI #3'
i_rsi3_enabled = input.bool(true, title = 'Enabled', group = g_rsi3)
i_rsi3_tf = input.timeframe('60', 'Timeframe', group = g_rsi3)
i_rsi3_len = input.int(30, 'Length', minval = 1, group = g_rsi3)
i_rsi3_src = input.source(close, 'Source', group = g_rsi3) * 10000
v_rsi3 = i_rsi3_enabled ? request.security(syminfo.tickerid, i_rsi3_tf, ta.rsi(i_rsi3_src, i_rsi3_len)) : na
g_rsi4 = 'RSI #4'
i_rsi4_enabled = input.bool(true, title = 'Enabled', group = g_rsi4)
i_rsi4_tf = input.timeframe('240', 'Timeframe', group = g_rsi4)
i_rsi4_len = input.int(30, 'Length', minval = 1, group = g_rsi4)
i_rsi4_src = input.source(close, 'Source', group = g_rsi4) * 10000
v_rsi4 = i_rsi4_enabled ? request.security(syminfo.tickerid, i_rsi4_tf, ta.rsi(i_rsi4_src, i_rsi4_len)) : na
g_rsi5 = 'RSI #5'
i_rsi5_enabled = input.bool(true, title = 'Enabled', group = g_rsi5)
i_rsi5_tf = input.timeframe('D', 'Timeframe', group = g_rsi5)
i_rsi5_len = input.int(30, 'Length', minval = 1, group = g_rsi5)
i_rsi5_src = input.source(close, 'Source', group = g_rsi5) * 10000
v_rsi5 = i_rsi5_enabled ? request.security(syminfo.tickerid, i_rsi5_tf, ta.rsi(i_rsi5_src, i_rsi5_len)) : na
g_rsi6 = 'RSI #6'
i_rsi6_enabled = input.bool(true, title = 'Enabled', group = g_rsi6)
i_rsi6_tf = input.timeframe('W', 'Timeframe', group = g_rsi6)
i_rsi6_len = input.int(30, 'Length', minval = 1, group = g_rsi6)
i_rsi6_src = input.source(close, 'Source', group = g_rsi6) * 10000
v_rsi6 = i_rsi6_enabled ? request.security(syminfo.tickerid, i_rsi6_tf, ta.rsi(i_rsi6_src, i_rsi6_len)) : na
g_rsi7 = 'RSI #7'
i_rsi7_enabled = input.bool(false, title = 'Enabled', group = g_rsi7)
i_rsi7_tf = input.timeframe('W', 'Timeframe', group = g_rsi7)
i_rsi7_len = input.int(30, 'Length', minval = 1, group = g_rsi7)
i_rsi7_src = input.source(close, 'Source', group = g_rsi7) * 10000
v_rsi7 = i_rsi7_enabled ? request.security(syminfo.tickerid, i_rsi7_tf, ta.rsi(i_rsi7_src, i_rsi7_len)) : na
g_rsi8 = 'RSI #8'
i_rsi8_enabled = input.bool(false, title = 'Enabled', group = g_rsi8)
i_rsi8_tf = input.timeframe('W', 'Timeframe', group = g_rsi8)
i_rsi8_len = input.int(30, 'Length', minval = 1, group = g_rsi8)
i_rsi8_src = input.source(close, 'Source', group = g_rsi8) * 10000
v_rsi8 = i_rsi8_enabled ? request.security(syminfo.tickerid, i_rsi8_tf, ta.rsi(i_rsi8_src, i_rsi8_len)) : na
g_rsi9 = 'RSI #9'
i_rsi9_enabled = input.bool(false, title = 'Enabled', group = g_rsi9)
i_rsi9_tf = input.timeframe('W', 'Timeframe', group = g_rsi9)
i_rsi9_len = input.int(30, 'Length', minval = 1, group = g_rsi9)
i_rsi9_src = input.source(close, 'Source', group = g_rsi9) * 10000
v_rsi9 = i_rsi9_enabled ? request.security(syminfo.tickerid, i_rsi9_tf, ta.rsi(i_rsi9_src, i_rsi9_len)) : na
g_rsi10 = 'RSI #10'
i_rsi10_enabled = input.bool(false, title = 'Enabled', group = g_rsi10)
i_rsi10_tf = input.timeframe('W', 'Timeframe', group = g_rsi10)
i_rsi10_len = input.int(30, 'Length', minval = 1, group = g_rsi10)
i_rsi10_src = input.source(close, 'Source', group = g_rsi10) * 10000
v_rsi10 = i_rsi10_enabled ? request.security(syminfo.tickerid, i_rsi10_tf, ta.rsi(i_rsi10_src, i_rsi10_len)) : na
// --- Panel Helper Functions ---
// Function 4: String Position to Constant (Indentation cleaned)
f_StrPositionToConst(_p) =>
switch _p
'Top Left' => position.top_left
'Top Right' => position.top_right
'Top Center' => position.top_center
'Middle Left' => position.middle_left
'Middle Right' => position.middle_right
'Middle Center' => position.middle_center
'Bottom Left' => position.bottom_left
'Bottom Right' => position.bottom_right
'Bottom Center' => position.bottom_center
=> position.bottom_right
// Function 5: Timeframe to Human Readable (Indentation cleaned)
f_timeframeToHuman(_tf) =>
seconds = timeframe.in_seconds(_tf)
if seconds < 60
_tf
else if seconds < 3600
str.tostring(seconds / 60) + 'm'
else if seconds < 86400
str.tostring(seconds / 60 / 60) + 'h'
else
switch _tf
"1D" => "D"
"1W" => "W"
"1M" => "M"
=> str.tostring(_tf)
type TPanel
table src = na
bool vertical_orientation = true
int row = 0
int col = 0
// Method 1: Increment Column (Indentation cleaned)
method incCol(TPanel _panel) =>
if _panel.vertical_orientation
_panel.col += 1
else
_panel.row += 1
// Method 2: Increment Row (Indentation cleaned)
method incRow(TPanel _panel) =>
if not _panel.vertical_orientation
_panel.col += 1
_panel.row := 0
else
_panel.row += 1
_panel.col := 0
// Method 3: Add Cell (Indentation cleaned)
method add(TPanel _panel, string _v1, color _bg1, color _ctext1, string _v2, color _bg2, color _ctext2) =>
table.cell(_panel.src, _panel.col, _panel.row, _v1, text_color = _ctext1, bgcolor = _bg1)
_panel.incCol()
table.cell(_panel.src, _panel.col, _panel.row, _v2, text_color = _ctext2, bgcolor = _bg2)
_panel.incRow()
// Function 6: Background Color
f_bg(_rsi) =>
c_line = na(_rsi) ? i_color_mid :
_rsi >= i_threshold_ob ? i_color_ob :
_rsi >= i_threshold_uptrend ? i_color_uptrend :
_rsi <= i_threshold_os ? i_color_os :
_rsi <= i_threshold_downtrend ? i_color_downtrend :
i_color_mid
// Function 7: Text Color
f_rsi_text_color(_rsi) =>
c_line = na(_rsi) ? i_tcolor_mid :
_rsi >= i_threshold_ob ? i_tcolor_ob :
_rsi >= i_threshold_uptrend ? i_tcolor_uptrend :
_rsi <= i_threshold_os ? i_tcolor_os :
_rsi <= i_threshold_downtrend ? i_tcolor_downtrend :
i_tcolor_mid
f_formatRsi(_rsi) => na(_rsi) ? 'N/A' : str.tostring(_rsi, '0.00')
// --- Panel Execution Logic ---
if barstate.islast
v_panel = TPanel.new(vertical_orientation = i_orientation == 'Vertical')
v_max_rows = 20
v_panel.src := table.new(f_StrPositionToConst(i_position), v_max_rows, v_max_rows, border_width = i_border_width, border_color = i_color_border)
if i_showHeaders
v_panel.add('TF', i_color_header_bg, i_color_header_text, 'RSI', i_color_header_bg, i_color_header_text)
if i_rsi1_enabled
v_panel.add(f_timeframeToHuman(i_rsi1_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi1), f_bg(v_rsi1), f_rsi_text_color(v_rsi1))
if i_rsi2_enabled
v_panel.add(f_timeframeToHuman(i_rsi2_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi2), f_bg(v_rsi2), f_rsi_text_color(v_rsi2))
if i_rsi3_enabled
v_panel.add(f_timeframeToHuman(i_rsi3_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi3), f_bg(v_rsi3), f_rsi_text_color(v_rsi3))
if i_rsi4_enabled
v_panel.add(f_timeframeToHuman(i_rsi4_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi4), f_bg(v_rsi4), f_rsi_text_color(v_rsi4))
if i_rsi5_enabled
v_panel.add(f_timeframeToHuman(i_rsi5_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi5), f_bg(v_rsi5), f_rsi_text_color(v_rsi5))
if i_rsi6_enabled
v_panel.add(f_timeframeToHuman(i_rsi6_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi6), f_bg(v_rsi6), f_rsi_text_color(v_rsi6))
if i_rsi7_enabled
v_panel.add(f_timeframeToHuman(i_rsi7_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi7), f_bg(v_rsi7), f_rsi_text_color(v_rsi7))
if i_rsi8_enabled
v_panel.add(f_timeframeToHuman(i_rsi8_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi8), f_bg(v_rsi8), f_rsi_text_color(v_rsi8))
if i_rsi9_enabled
v_panel.add(f_timeframeToHuman(i_rsi9_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi9), f_bg(v_rsi9), f_rsi_text_color(v_rsi9))
if i_rsi10_enabled
v_panel.add(f_timeframeToHuman(i_rsi10_tf), i_color_tf_bg, i_color_tf_text, f_formatRsi(v_rsi10), f_bg(v_rsi10), f_rsi_text_color(v_rsi10))
if i_debug
t = table.new(position.middle_center, 21, 20, border_width = i_border_width, border_color = i_color_border)
v_panel2 = TPanel.new(t, vertical_orientation = i_orientation == 'Vertical')
v_panel2.add('Debug', i_color_header_bg, i_color_header_text, 'Colors', i_color_header_bg, i_color_header_text)
// Using a tuple array for debugging colors demo
// Final Syntax Correction: Use array.new() and array.set() to avoid 'tuple()' function reference error
v_rows = 5 // We know we have 5 elements
demo = array.new(v_rows, '') // Initialize array with 5 string elements, will hold string representation of the tuple
// We will push the elements as a *string* representation of the tuple, as Pine v6 allows
// and then parse them inside the loop if necessary.
// To preserve the structure (string, float) without the tuple() function:
// We must define two separate arrays if the 'tuple' function is truly unavailable.
tf_array = array.new(v_rows)
rsi_array = array.new(v_rows)
// Populate the arrays
array.set(tf_array, 0, 'Overbought')
array.set(rsi_array, 0, float(i_threshold_ob))
array.set(tf_array, 1, 'Uptrend')
array.set(rsi_array, 1, float(i_threshold_uptrend))
array.set(tf_array, 2, 'No Trend')
array.set(rsi_array, 2, 50.0)
array.set(tf_array, 3, 'Downtrend')
array.set(rsi_array, 3, float(i_threshold_downtrend))
array.set(tf_array, 4, 'Oversold')
array.set(rsi_array, 4, float(i_threshold_os))
// Iterate over the arrays using a simple index
for i = 0 to v_rows - 1
tf = array.get(tf_array, i)
rsi = array.get(rsi_array, i)
v_panel2.add(tf, i_color_tf_bg, i_color_tf_text, f_formatRsi(rsi), f_bg(rsi), f_rsi_text_color(rsi))
LJ Parsons Adjustable expanding MRT Fibpapers.ssrn.com
Market Resonance Theory (MRT) reinterprets financial markets as structured multiplicative, recursive systems rather than linear, dollar-based constructs. By mapping price growth as a logarithmic lattice of intervals, MRT identifies the deep structural cycles underlying long-term market behaviour. The model draws inspiration from the proportional relationships found in musical resonance, specifically the equal temperament system, revealing that markets expand through recurring octaves of compounded growth. This framework reframes volatility, not as noise, but as part of a larger self-organising structure.






















