4 EMA + VWAP + UT Bot + SuperTrend + Daily Pivot Checklist📌 Description
This indicator is a multi-indicator trend confirmation checklist designed to simplify decision-making by combining several widely used technical tools into one clean on-chart dashboard.
The goal of this script is clarity, not complexity — helping traders quickly see market bias, trend strength, and trade direction without switching between multiple indicators.
🔹 Indicators Included
EMA 10 / 20 / 50 / 200
VWAP
UT Bot (ATR-based trailing stop with BUY / SELL signals)
SuperTrend (correct trend color logic)
Daily Pivot Point (today only)
All conditions are displayed in a YES / NO + BUY / SELL checklist panel for fast confirmation.
🔹 How to Use
Follow UT Bot BUY / SELL as the primary direction
Use EMA 200 & SuperTrend for overall trend bias
VWAP and Daily Pivot act as intraday filters
Stronger setups occur when most checklist conditions align
This indicator works best when combined with proper risk management and price action.
👥 Credits / Author Note
This script was conceptualized, tested, and refined by the publisher based on real trading use cases.
The development, logic structuring, and UI optimization were done collaboratively with AI-assisted scripting support to ensure clean code, clarity, and non-repainting behavior.
Final responsibility for trading decisions always remains with the user.
⚠️ Disclaimer
This indicator is provided for educational and informational purposes only.
It does not guarantee profits and should not be considered financial advice.
Always trade responsibly.
Candlestick analysis
Mod_capital_trend kanal⚙️ How It Works
1️⃣ Trend Detection
The trend is identified using a Simple Moving Average (SMA) combined with ATR volatility filtering:
Uptrend: Price breaks above SMA + ATR
Downtrend: Price breaks below SMA − ATR
This method avoids false signals and only reacts to strong directional moves.
2️⃣ Dynamic Channel Construction
Once a trend is confirmed, the indicator builds a three-line channel:
Middle Line: Mean price (HL2 smoothed)
Upper Channel: Middle line + (ATR × Channel Width)
Lower Channel: Middle line − (ATR × Channel Width)
The channel automatically expands and contracts based on market volatility.
3️⃣ Smart Trend Switching
When the trend changes:
The previous channel is frozen
A new channel is created in the new direction
Old trend lines are visually de-emphasized (dashed & faded)
This keeps the chart clean and readable, even during market transitions.
4️⃣ Future Price Projection
The indicator calculates the slope of the active trend channel and projects a future price level:
Displays a projected price label at a user-defined future index
Helps visualize trend continuation potential
Useful for planning entries, exits, and targets
🎨 Visual Logic
Green Channel: Bullish trend
Orange Channel: Bearish trend
Solid Lines: Active trend
Dashed Lines: Inactive / previous trend
Automatic Channel Fill: Highlights the price range
All visuals follow a minimal, professional Mod_Capital style.
🧠 Best Use Cases
Trend-following strategies
Dynamic support & resistance
Pullback and continuation trading
Breakout confirmation
Market structure visualization
Manual and discretionary trading
🔧 Customizable Inputs
Trend detection length
Channel width (volatility multiplier)
Future price projection distance
Uptrend & downtrend colors
Works on all markets and timeframes.
✅ Key Advantages
No repainting after trend confirmation
Volatility-adaptive channels
Clean and professional chart design
No unnecessary indicators or signals
Built for serious traders
BO Rule: Full Suite (Auto-Clean)** **
**BO Rule: Ultimate Breakout & Retest Suite (Body Only + Strict Sequence)**
This is a comprehensive Price Action indicator designed for traders who focus on **Structure Break & Retest** setups. Unlike standard fractal indicators, this script employs a strict "New Price Rule" and "Body-Only" logic to filter out noise, combined with a Multi-Timeframe (MTF) Dashboard and Mobile Alerts.
**Key Logic & Unique Features:**
1. **Classic Levels (Body Only):**
* **Logic:** Resistance is defined by a Green candle followed by a Red candle. Support is Red followed by Green.
* **Precision:** The script strictly uses Candle **Bodies** (Open/Close) to define levels and confirm breakouts. Wicks are ignored to avoid volatility fakeouts.
2. **Strict Sequence (New Price Rule):**
* **Reset Logic:** Once a breakout signal is confirmed, all previous structure levels are immediately invalidated.
* The script only scans for *new* structure levels formed *after* the latest confirmed signal. This ensures you are always trading the most current market structure.
3. **Smart Visualization (Auto-Clean):**
* **Queue System:** To keep your chart clean, the script includes a "Display Limit" feature. It only keeps the most recent N signals (e.g., 20) and automatically deletes the oldest ones.
4. **MTF Dashboard & Conflicts:**
* Includes a bottom-right dashboard showing trend directions across 5 user-defined timeframes.
* Displays "Conflict" lines if different timeframes show opposing signals on the same bar.
5. **Filter Duplicates:**
* Option to show only **Trend Reversals** (Buy -> Sell -> Buy) by hiding consecutive signals in the same direction.
6. **Mobile Notifications:**
* Supports custom alerts for specific timeframe reversals, designed to push notifications directly to the TradingView App.
**How to Trade:**
* **Green Dashed Line:** Bullish Confirmation (Body Breakout + Retest).
* **Red Dashed Line:** Bearish Confirmation (Body Breakdown + Retest).
* **Dashboard:** ▲ = Bullish Trend, ▼ = Bearish Trend.
-------------------------------------------------------
** **
**BO Rule: 經典水平突破回踩策略 (實體判斷 + 嚴格序列 + 自動清理)**
這是一個專為裸K交易者 (Price Action) 設計的完整突破回踩系統。它採用了嚴格的「新價格規則」與「僅看實體」邏輯,並整合了多週期儀表板與手機通知功能。
**核心邏輯與獨特功能:**
1. **經典水平 (僅看實體 Body Only):**
* **定義:** 阻力位由「綠K接紅K」形成;支撐位由「紅K接綠K」形成。
* **過濾:** 系統僅使用 K棒實體 (收盤/開盤) 來定義水平與判斷突破,完全忽略影線 (Wicks),有效避免假突破。
2. **新價格規則 (嚴格序列):**
* **重置機制:** 採用「最新優先」原則。一旦當前訊號確認,之前所有的舊結構水平立即作廢。系統只會尋找在「最新訊號之後」形成的新水平,確保交易邏輯符合當下的市場結構。
3. **智能顯示 (自動清理):**
* **佇列系統:** 為了保持圖表整潔,您可以設定「保留最近 N 個訊號」。系統會自動刪除最舊的線段,避免圖表充滿歷史線條。
4. **多週期 (MTF) 儀表板:**
* 右下角面板可同時監控 5 個不同時間級別的趨勢狀態。
* 若不同週期在同一根 K 棒出現相反訊號,會標記為「衝突」。
5. **過濾重複訊號:**
* 可勾選「只顯示反轉」。若當前是多頭,系統會隱藏後續的多頭訊號,直到出現空頭訊號為止 (呈現:多 -> 空 -> 多)。
6. **手機 App 通知:**
* 支援針對特定週期的反轉訊號發送推播通知。
**使用說明:**
* **綠色虛線**:多頭確認 (實體突破 + 回踩)。
* **紅色虛線**:空頭確認 (實體跌破 + 回踩)。
* **儀表板**:▲ = 多頭趨勢,▼ = 空頭趨勢。
Power Candle Morphology Power Score Only- By DaliliPower Candle Morphology Indicator
By Dalili
Overview
This indicator is a price-action–only candle morphology engine designed to identify moments of genuine directional intent rather than noise. It operates strictly on single-bar geometry and immediate context, without moving averages, oscillators, volatility smoothing, or historical aggregation. Each qualifying candle is scored in real time and labeled only when structural dominance is present.
Core Philosophy
Markets move when one side overwhelms the other. This tool quantifies that imbalance directly from the candle itself. It ignores indicators derived from price and instead evaluates how price behaved inside the bar: body dominance, wick asymmetry, closing authority, and classic institutional candle patterns. No hindsight. No averaging. One bar, one judgment.
Morphology Detection
The indicator classifies only high-conviction candle structures:
1. Marubozu variants, where the body controls the full range and the close asserts dominance at the extreme.
2. Engulfing structures, where a current candle decisively absorbs prior opposing intent.
3. Directional pin bars, where rejection is violent and asymmetric, signaling forced participation failure on one side.
If none of these conditions are met, the candle is ignored entirely.
Power Scoring System
Each qualifying candle receives a Power Score from 1 to 10, derived from four independent components:
1. Body dominance as a percentage of total range.
2. Wick asymmetry relative to the body, measuring rejection or control.
3. Close location within the range, measuring who won the bar.
4. Pattern boost for structurally dominant formations.
The score is intentionally capped and discrete. There is no smoothing, rolling average, or cumulative bias.
Signal Output
Only candles that meet both structural qualification and a minimum power threshold are labeled. Labels are minimal by design:
“P#” only, plotted above or below the candle in the direction of dominance. Green denotes bullish control. Red denotes bearish control. No additional text, shapes, or overlays are introduced.
What This Indicator Is Not
It is not predictive.
It is not trend-following.
It is not confirmation-stacking.
It does not care about indicators agreeing with it.
What It Is Used For
This indicator is best used as a decision-quality filter. It answers a single question with precision: Was this candle structurally strong enough to matter? When combined with context such as support and resistance, volume expansion, or volatility contraction, it highlights the exact bars where professional participation is most likely present.
In short, this is a candle truth detector. It strips price action down to dominance, grades it objectively, and stays silent unless something real just happened.
Hap Mum Formasyonu - Candlestick PatternsThis indicator is a comprehensive tool that automatically scans for popular Candlestick Patterns on symbols you select and displays the results in a table on your screen.
Unlike standard scanners, this script allows you to create 10 Different Custom Watchlists. You can add up to 20 symbols to each list and switch between lists via the settings menu to see instant scanning results.
🚀 Key Features
10 Custom Lists: Organize your portfolio into groups (e.g., Indices, Crypto, Forex). Each list holds 20 symbols.
Trend Filter: Patterns are validated based on the trend direction, not just the candle shape. Bullish patterns are searched in downtrends, and Bearish patterns in uptrends.
Option 1: Is Price above/below SMA 50?
Option 2: Price relative to SMA 50 & SMA 200 alignment.
Visual Table: Bullish signals are shown in the Green box, Bearish signals in the Red box.
Flexible Settings: You can toggle specific patterns on/off and change the trend detection method.
📊 Supported Patterns & Legend
Abbreviations used in the dashboard:
Bullish Signals:
DD: Dragonfly Doji
H: Hammer
IH: Inverted Hammer
EB: Engulfing Bullish
MS: Morning Star
MDS: Morning Doji Star
P: Piercing Line
HB: Harami Bullish
TWS: Three White Soldiers
Bearish Signals:
GD: Gravestone Doji
HM: Hanging Man
SS: Shooting Star
EB: Engulfing Bearish
ES: Evening Star
EDS: Evening Doji Star
HB: Harami Bearish
TBC: Three Black Crows
DCC: Dark Cloud Cover
🛠 How to Use?
Add the indicator to your chart.
Open Settings.
Select a list from "Which List Do You Want to Scan?" (e.g., List 1).
Enter your ticker symbols into the corresponding group fields below (LIST 1, LIST 2...).
Click OK, and the table will update with the signals.
Disclaimer: This tool is for educational purposes only. Candlestick patterns do not guarantee future market movements. Always manage your risk.
Mod_Capital EMAThis indicator is a clean EMA crossover tool in Mod_Capital style.
It uses Fast EMA, Slow EMA, and an optional Trend EMA.
Buy signal: Fast EMA crosses above Slow EMA
Sell signal: Fast EMA crosses below Slow EMA
No Take Profit or Stop Loss
No text, minimal visuals
Fully customizable EMA periods, colors, and line widths
Designed for manual trading, trend confirmation, and clean chart analysis.
Intervalo de la confianza usando VWMA 5,10,14,55,90,200Varios Itervalos de Confianza usando VWMA
-LOS QUE MANIPULAN LOS MERCADOS, ES COMPRAR DONDE LA VOLATILIDAD ES BAJA, NO HAY RUIDO.
-DESPUES QUE COMPRAN, SU PROXIMO TRABAJO ES CREAR LA VARICIA=FOMO Y MANDAR UNA TARJETA DE INVITACION A LOS INVERSIONISTA MINORITARIOS.
-DESPUES QUE LOS MINORISTA ENTRAN EN CONFIANZA Y VARICIA-FOMO,VENDEN LOS QUE MANIPULAN LOS MERCADOS
-SU ULTIMA ETAPA ES VENDER MAS AGRESIVO PARA CREAR UN MIEDO=FUD Y DARLES EN EL CODO A LOS MINORISTAS PARA QUE SALGAN PERDIENDO.
ESTE CICLOS SE REPITE EN LOS MERCADOS.
Si las personas que operan los mercados tiene sintimentos donde el meido y la varicia entran en el juego de las inversiones y trade, entoces hay que medir como esta su miedo y varicia en diferentes temporaliades.
Que es mejor mediar esta varicia y miedo usando Intervalo de la Confianza usando el VWMA .
AHORA CON ESTA HERRAMIENTA
Ustedes solo tiene que encontrar como esta esta el FOMO o FUD en diferentes temporalidades.
Multiple Confidence Intervals Using VWMA
- Market manipulators buy where volatility is low and there is no noise.
- After they buy, their next step is to create volatility (FOMO) and send an invitation to retail investors.
- Once retail investors gain confidence and experience volatility (FOMO), the market manipulators sell.
- Their final stage is to sell more aggressively to create fear (FUD) and force retailers to lose money.
This cycle repeats itself in the markets. If people who trade the markets experience feelings where fear and greed come into play in their investments and trading, then it's necessary to measure how their fear and greed manifest across different timeframes.
What's the best way to measure this greed and fear using the Confidence Interval with the VWMA?
NOW WITH THIS TOOL
You only need to determine how FOMO or FUD manifests across different timeframes.
rosh 2026 dtcghhhh,ohooyiugiuug,bbhigiugitgitiy,bkjhohiohoiuyfyff,bhihoihohohlohhjfhd,gkuggugukgugug,
rosh PACE PRO Locked Look One Signalpace pro, use wit vwap and s/r , xau, btc good enough to genarate 10% profit a ady, use it ,soon i will make it private
Stock School IRL & ERLThis indicator is designed to help traders clearly identify liquidity levels on the chart using IRL (Internal Range Liquidity) and ERL (External Range Liquidity).
Liquidity is where the market is attracted.
Price does not move randomly — it moves from one liquidity pool to another.
With this indicator, you can:
• Visually mark IRL (internal liquidity resting inside the range)
• Identify ERL (external liquidity above highs & below lows)
• Understand where Smart Money targets stops
• Anticipate liquidity sweeps, fake breakouts, and reversals
• Improve entries, exits, and trade patience
This tool helps you stop guessing and start reading market intent.
Best used with:
Price Action
Market Structure
Smart Money Concepts (SMC)
Works across:
Stocks • Indices • Forex • Crypto
⚠️ This indicator does not give buy/sell signals.
It provides context, so you trade with logic, not emotions.
If you understand liquidity,
you understand where the market is going next.
Crypto 15M Volume + Supertrend + RSI StrategyThis is AI generated Signal Base on Supertrend, RSI, And Volume Base indicator to create code
Target Ladder Elite Median and ATR Active TargetsTarget Ladder Elite is a precision-based price targeting and reaction framework designed to reveal where price is statistically drawn next and when that target has been meaningfully engaged.
Instead of forecasting distant projections or repainting future paths, this indicator operates entirely in live market context, adapting dynamically to volatility and structure on any timeframe.
📌 What This Indicator Does
Target Ladder Elite builds a dynamic price ladder using three core components:
1️⃣ Median Price Axis
At its core is a short-length median moving average, acting as the equilibrium line of price. This median defines directional bias:
Price above the median → bullish pressure
Price below the median → bearish pressure
The median continuously adapts to price behavior rather than lagging behind it.
2️⃣ ATR-Based Target Bands
Using Average True Range (ATR), the indicator constructs upper and lower volatility targets around the median.
These are not generic volatility bands — they function as statistically relevant price objectives, expanding and contracting with market conditions.
Upper band = upside target
Lower band = downside target
The bands remain stable, smooth, and timeframe-independent.
3️⃣ Active Target System
Only one target is active at a time, determined automatically:
If price is above the median → upper target is active
If price is below the median → lower target is active
The Active Target label appears on the most recent candle and updates in real time, showing traders exactly where price is currently being drawn.
This keeps focus on one objective, eliminating clutter and decision paralysis.
🎯 HIT Detection Logic
Whenever price meaningfully reaches an ATR target, the indicator registers a HIT label directly on the chart.
A HIT signals:
Target fulfillment
Momentum exhaustion or continuation decision zone
High-probability reaction area
Clusters of HITs often appear during trends, while missed or rejected targets frequently precede reversals.
🧠 How to Use Target Ladder Elite
✔ Trend Following
Trade in the direction of the active target
Use HITs as confirmation of trend strength
✔ Mean Reversion Awareness
Multiple HITs without follow-through can signal exhaustion
Failed target attempts often precede reversals back toward the median
✔ Confluence Trading
Pairs exceptionally well with:
Bollinger Bands
RSI / Stochastic RSI
Market structure or support/resistance
✔ Any Timeframe
The logic is volatility-normalized, making it effective on:
Intraday charts
Swing charts
Daily and higher timeframes
No parameter changes are required when switching timeframes.
🎨 Visual Clarity & Customization
Fully customizable colors for:
Median
Upper & lower targets
Active target balloon
HIT labels
Clean, non-repainting design
Designed for professional chart layouts and publishing
⚠️ Important Notes
Target Ladder Elite is not a signal generator and does not predict future price paths.
It is a price reaction and target awareness tool, best used as part of a broader trading plan.
📈 In Summary
Target Ladder Elite helps traders answer three critical questions in real time:
Where is price statistically drawn next?
Has that objective been fulfilled?
Is momentum continuing or stalling?
It brings structure, clarity, and discipline to price movement — without noise.
Cody Order Block FinderCody Order Block Finder
Free Telegram Trading Community t.me
Overview
A professional order block detection indicator that identifies institutional supply and demand zones on any timeframe. This tool helps traders spot key reversal areas where institutional orders are likely placed, providing strategic levels for limit order entries.
Key Features
🔍 Smart Order Block Detection
Bullish Order Blocks: Identifies the last bearish candle before consecutive bullish candles
Bearish Order Blocks: Identifies the last bullish candle before consecutive bearish candles
Configurable Sensitivity: Adjust the number of consecutive candles required (1-50 periods)
Minimum Move Filter: Set percentage threshold to filter only significant moves
🎨 Visual Customization
Multiple Color Schemes: Choose from DARK, BRIGHT, or NEON themes
Customizable Display: Show/hide bullish/bearish channels
Line Extension: Extend OB lines to current bar for better visibility
Historical View: Toggle between showing all historical OBs or only the latest ones
📊 Advanced Filtering
OB Size Filter: Set minimum and maximum order block size as percentage of price
ATR Filter: Filter OBs based on Average True Range multiples
OB Strength Indicator: Color-coded OBs based on subsequent price move strength
Wick/Body Selection: Choose to mark OBs using whole candle range or body only
🔔 Alert System
Real-time Alerts: Get notified immediately when new order blocks form
Customizable Messages: Set your own alert messages
Once-per-OB Option: Prevent alert spam with single alert per OB
📈 Display Features
Three-Line Channels: Shows high, low, and average levels for each OB
Visual Shapes: Clear triangle markers above/below candles
Info Panel: Displays latest OB statistics in a clean table format
Data Window Info: View OB levels in TradingView's data window
How to Use
Setup
Add indicator to your chart
Configure periods (default: 5) - higher values = fewer but stronger OBs
Set minimum % move (default: 0%) to filter significant moves
Choose color scheme for your preference
Trading Applications
Limit Order Placement: Place buy limits at bullish OB lows, sell limits at bearish OB highs
Stop Loss Reference: Set stops beyond OB extremes
Reversal Confirmation: Use OBs as confluence with other indicators
Support/Resistance: OB levels often act as future support/resistance
Advanced Tips
Combine with volume profile for higher probability zones
Use on higher timeframes (4H, Daily) for more significant levels
Look for OBs at key Fibonacci levels for added confluence
Monitor price reactions when revisiting OBs
Technical Details
Programming Language: Pine Script v6
Overlay: Yes (draws directly on price chart)
Max Lines: 500 (prevents chart clutter)
Timeframe Compatibility: All timeframes (1min to Monthly)
Market Compatibility: Forex, Stocks, Crypto, Futures
Input Parameters
Basic Settings
Relevant Periods: Number of consecutive candles required (1-50)
Min. Percent move: Minimum % move to validate OB (0.0-100.0)
Color Scheme: DARK, BRIGHT, or NEON color themes
Display Options
Show latest Bullish/Bearish Channel: Toggle channel display
Extend OB lines to right: Extend lines to current bar
Show all historical OBs: Display all OBs or only latest
Use whole range: Use High/Low or Open/Close for OB marking
Advanced Filters
Min/Max OB size (%): Filter by order block size
Use ATR filter: Filter based on volatility
Show OB Strength: Color code by subsequent move strength
Alert Configuration
Create alerts directly from the indicator by clicking "Create Alert" button on chart:
Bullish OB alerts when green triangle appears
Bearish OB alerts when red triangle appears
Includes price and OB level information
Best Practices
Higher Timeframes First: Start on daily/4H to identify major levels
Multiple Confluence: Combine with trend lines, Fibonacci, or moving averages
Patience: Wait for price to return to OB levels for entries
Risk Management: Always use appropriate position sizing and stops
Support & Updates
For updates and support, visit the script page. The indicator is regularly maintained for optimal performance across all markets and timeframes.
Perfect for: Swing traders, position traders, institutional traders, and anyone looking to trade with the "smart money" flow using order flow concepts.
Trading Styles: Works with all styles - scalping, day trading, swing trading, and investing.
Experience Level: Suitable for beginners to advanced traders with clear visual cues and customizable settings.
DAS Levels and BoxesTrading levels mainly used to trade MNQ Futures plus 1-Hour & 4-Hour price range boxes. I define the day trading range from 6:30AM PST to 1PM PST. I define the overnight range from midnight PST to 6:30AM PST. I define the futures market entire range as starting at 3PM PST going overnight and ending at 2PM PST the following day.
The 1-hour box is for scalping and catching smaller moves and are more risky. Enter long or short trade upon 1-hour candle close above & below the mid-line, respectively.
The 4-hour box is for catching larger moves and require more patience. Enter long or short trade upon 4-hour candle close above & below the mid-line, respectively. This is my first indicator so be patient. These are the lines and boxes that I use to trade so I thought it would save time to have them all present in one indicator. This is set up with Pacific Standard Time as default. I may need to adjust later for day light savings time.
Levels include:
Previous Day Low (PDL)
Previous Day High (PDH)
Overnight Low (ONL)
Overnight High (ONH)
Open AM Price
Open PM Price
Target Ladder Pro MTF ATR and HIT Confirmation
Target Ladder Pro is a multi-timeframe price-targeting and confirmation system designed to give traders clear, actionable target levels regardless of chart timeframe.
The indicator combines volatility-based ATR targets across multiple higher timeframes with a live, candle-by-candle target engine that confirms when price has objectively reached its projected objective (“HIT”). The result is a structured target ladder that helps traders frame expectations, manage trades, and avoid emotional decision-making.
What makes Target Ladder Pro different:
Multi-Timeframe Target Ladder
ATR-derived targets are calculated for 1H, 4H, Daily, and Weekly timeframes.
Each timeframe can be enabled or disabled independently, allowing traders to focus on a single horizon or view full market structure at once.
Live Active Target + HIT Confirmation
A dynamic target updates with each new candle on the active chart timeframe.
When price reaches the target, a HIT label is printed—objectively confirming completion rather than relying on subjective interpretation.
Historical Target Context
Recent targets are retained on the chart, allowing traders to see how price interacts with previous objectives.
This provides valuable insight into continuation, exhaustion, or reversal behavior.
Deviation Band Context (Optional)
Mean and deviation bands offer visual context for where targets sit relative to recent price distribution.
These bands can be toggled on or off without affecting targets or confirmations.
Clean, Chart-Locked Design
All plots and labels are locked to the price scale and designed for clarity across assets and timeframes.
No repainting or future-looking values are used.
Target Ladder Pro is designed to support entries, exits, partials, and risk planning, while remaining flexible enough for scalpers, swing traders, and higher-timeframe analysts alike.
How to Use This Indicator
1. Choose Your Timeframe Focus
Enable only the target ladders that matter to your strategy (e.g., 4H + Daily for swing trading, or 1H for intraday structure).
2. Identify the Active Target
The active target represents the current volatility-based objective for price. This level updates as new candles form.
3. Watch for HIT Confirmation
When price reaches the active target, a HIT label confirms completion. This can be used for:
Profit-taking
Trade management decisions
Evaluating continuation vs. exhaustion
4. Use the Ladder for Context
Higher-timeframe targets often act as decision zones. Price behavior near these levels can signal:
Trend continuation
Compression and consolidation
Potential reaction or reversal areas
5. Optional: Enable Deviation Bands
Deviation bands provide additional context for whether targets are occurring within typical price behavior or at statistically extended levels.
Best Use Cases
Defining objective profit targets
Managing trades across multiple timeframes
Avoiding premature exits during strong trends
Identifying completed moves versus unfinished structure
Candle Intelligence🔹 Candle Intelligence (IM-CI)
Candle Intelligence (IM-CI) is a context-only intraday market behavior indicator designed to help traders understand how price is behaving, not where to buy or sell.
This tool classifies individual candles, detects short-term behavioral patterns, and displays a non-blocking market state to improve decision awareness during live trading.
⚠️ IM-CI does NOT generate buy/sell signals.It is strictly intended for market context, confirmation, and study.
🔍 What This Indicator Does
🧠 Candle Intelligence Layer
Each candle is classified based on volatility-adjusted behavior using ATR:
Strong expansion candles
Normal directional candles
Weak / neutral candles
These classifications are shown as compact candle codes (optional) to quickly read price behavior without clutter.
📐 Pattern Recognition (Context Only)
IM-CI detects short, non-predictive behavioral patterns, such as:
Compression
Absorption
Momentum bursts
Distribution
These patterns are displayed as soft zones, not signals, helping traders visually study how price reacts around key moments.
Cooldown logic is used to prevent repetitive pattern noise.
🌐 Market State Engine
The indicator continuously evaluates recent candle behavior and VWAP positioning to describe the current market condition, such as:
Expansion
Extended
Distribution
Balanced
This state is shown in a small HUD panel and is designed to:
Reduce emotional over-trading
Identify unsuitable market conditions
Improve alignment with higher-probability environments
⚙️ Key Features
ATR-aware candle classification
VWAP extension detection
Timeframe-adaptive candle code visibility
Non-repainting logic
Clean, lightweight HUD panel
Designed for intraday futures & index trading
🛠 How to Use
Use IM-CI as a context filter, not a trigger
Combine with your own execution system
Avoid trading during Extended or unclear states
Best suited for lower timeframes (1–5 min)
⚠️ Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice and should not be used as a standalone trading system.
All trading decisions remain the sole responsibility of the user.
Intervalo de la confianzaIntervalo de la confianza de varias temporaliades usando VWMA.
-Medir el FOMO y el FUD
QUARTERLY THEORY TRUE OPENSQUARTERLY THEORY TRUE OPENS
Multi-cycle True Open indicator based on quarterly cycle theory, with precise cycle-begin termination logic.
OVERVIEW
TRUE OPENS (Cycle Q2) plots the True Open (Q2 open) across multiple market cycles and extends each level only until the next cycle begins.
This mirrors how price actually respects quarterly structure: a True Open is relevant only within its active cycle.
The indicator uses New York (exchange) time, is DST-aware, and relies on a 1-minute event engine to ensure accuracy and visibility across all intraday and higher timeframes — even when candle opens do not align with exact timestamps (e.g., 4H, Daily, Weekly charts).
WHAT IS A TRUE OPEN?
In quarterly cycle theory, each cycle is divided into four quarters (Q1–Q4).
The Q2 opening price — the True Open — often acts as:
A gravitational price level
A premium/discount reference
A mean price the market revisits during the cycle
This indicator tracks those Q2 opens across Micro, Session, Daily, Weekly, Monthly, and Yearly cycles, while respecting each cycle’s actual beginning and end.
CYCLES & DEFINITIONS
All times are New York (Exchange Time).
Micro Cycle
True Opens (Q2):
:22:30 and :52:30
Automatically rounded down on the 1-minute chart (:22, :52)
Cycle Begins:
18:45, 19:30, 20:15, 21:00
Repeats every 45 minutes, anchored at 18:45
Session Cycle (6-Hour)
True Opens (Q2):
19:30, 01:30, 07:30, 13:30
Cycle Begins:
18:00, 00:00, 06:00, 12:00
Daily Cycle
True Open (Q2):
00:00
Cycle Begins:
18:00
Weekly Cycle
True Open (Q2):
Monday 18:00
Cycle Begins:
Sunday 18:00
Monthly Cycle
True Open (Q2):
Second Monday of the month at 00:00
Cycle Begins:
First Sunday of the month at 18:00
Yearly Cycle
True Open (Q2):
First weekday of April at 00:00
Cycle Begins:
First Sunday of the year at 18:00
VISUAL LOGIC
Each True Open is plotted as a horizontal dotted line
The line:
Starts exactly at the True Open candle
Ends automatically when the next cycle begins
When a cycle ends, its line is finalized (solid)
Each cycle is handled independently
Optional labels are placed just after the line end, aligned mid-right
LABELS
Optional, concise labels for clarity:
TMSO — Micro True Open
TSO — Session True Open
TDO — Daily True Open
TWO — Weekly True Open
TMO — Monthly True Open
TYO — Yearly True Open
Text size is fully configurable (Tiny → Large).
TIMEFRAME VISIBILITY (AUTO MODE)
To keep charts clean and relevant, cycles auto-hide above sensible timeframes:
Micro: ≤ 1-minute
Session: ≤ 5-minute
Daily: ≤ 15-minute
Weekly: ≤ 1-hour
Monthly: ≤ 4-hour
Yearly: ≤ Weekly
A Custom mode allows full manual control.
TECHNICAL FEATURES
Pine Script v6
No repainting
No future leakage
No bar-index assumptions
DST-aware New York time handling
1-minute event engine ensures:
Monthly levels appear on 4H charts
Yearly levels appear correctly when history exists
Performance-safe (no loops, no heavy arrays)
HOW TO USE
Use Micro & Session True Opens for precision intraday entries
Use Daily & Weekly True Opens for bias and mean-reversion context
Look for confluence when multiple True Opens align near the same price
Respect cycle boundaries — once a cycle begins, its prior True Open loses relevance
IMPORTANT NOTES
Yearly True Opens require chart history that includes April
Continuous contracts (e.g., ES1!, NQ1!) are recommended for futures
Works on Forex, Futures, Indices, Crypto, and Stocks
DISCLAIMER
This indicator is for educational and informational purposes only.
It does not constitute financial advice. Past performance is not indicative of future results.
Always manage risk responsibly.
Hoon Fib project//@version=6
indicator("Hoon Fib project", shorttitle ="Hoon Fib project" ,overlay = true, max_bars_back = 5000)
// ~~ Tooltips {
var string t1 = "Period: Number of bars used to detect swing highs and swing lows. Larger values give fewer but larger swings. (Works relative to current timeframe)."
var string t2 = "Projection Level: Fibonacci ratio used to calculate the projected future swing targets (e.g. 61.8%)."
var string t2_b = "Trend Projection Ratio: The secondary Fibonacci ratio used for the furthest extension (default was 1.272)."
var string t3 = "Level 1: Ratio and Color for the first retracement level (Standard: 0.236)."
var string t4 = "Level 2: Ratio and Color for the second retracement level (Standard: 0.382)."
var string t5 = "Level 3: Ratio and Color for the third retracement level (Standard: 0.500)."
var string t6 = "Level 4: Ratio and Color for the fourth retracement level (Standard: 0.618)."
var string t7 = "Level 5: Ratio and Color for the fifth retracement level (Standard: 0.786)."
var string t8 = "Fib Line Width: Thickness of all horizontal Fibonacci retracement lines."
var string t9 = "Fib Labels: Show or hide percentage labels at each Fibonacci retracement line."
var string t10 = "Fib Label Text Color: Text color of Fibonacci retracement labels."
var string t11 = "Fib Label Size: Font size of Fibonacci retracement labels."
var string t12 = "Low Line Color: Color for the most recent swing low horizontal guide line."
var string t13 = "High Line Color: Color for the most recent swing high horizontal guide line."
var string t14 = "Swing Line Width: Thickness of both swing high and swing low guide lines."
var string t15 = "Fib Volume Profile: Enable or disable the main volume profile drawn between the last swing high and low."
var string t16 = "Rows: Number of price rows (bins) used in the Fib volume profile. More rows = finer detail."
var string t17 = "Flip Bull/Bear: Swap the horizontal position of bullish and bearish volume bars in the profile."
var string t18 = "Bull Volume Color: Base color used for bullish (up-bar) volume in the Fib volume profile."
var string t19 = "Bear Volume Color: Base color used for bearish (down-bar) volume in the Fib volume profile."
var string t20 = "Fib Volume Delta: Enable or disable the separate volume delta profile between Fibonacci price bands."
var string t21 = "Delta Max Width: Maximum horizontal width (in bars) used to scale delta boxes from smallest to largest."
var string t22 = "Bullish Delta Color: Fill color for bands where bullish volume exceeds bearish volume (positive delta)."
var string t23 = "Bearish Delta Color: Fill color for bands where bearish volume exceeds bullish volume (negative delta)."
var string t24 = "Bullish Projection Line Color: Color of projected segments when price is projected upward."
var string t25 = "Bearish Projection Line Color: Color of projected segments when price is projected downward."
var string t26 = "Projection Line Width: Thickness of projected swing segments."
var string t27 = "Projection Line Style: Visual style of projected lines (solid, dashed, dotted, or arrows)."
var string t28 = "Bullish Label Background: Background color for percentage labels on upward projection segments."
var string t29 = "Bearish Label Background: Background color for percentage labels on downward projection segments."
var string t30 = "Projection Label Text Color: Text color of projection percentage labels."
var string t31 = "Projection Label Size: Font size of projection percentage labels."
var string t32 = "Projection Box Background: Toggle the background fill of projection boxes on or off."
var string t33 = "Projection Box Background Color: Fill color used for projection boxes (when background is enabled)."
var string t34 = "Projection Box Border: Toggle drawing a border around projection boxes."
var string t35 = "Projection Box Border Color: Color of the border around projection boxes."
var string t36 = "Projection Box Border Width: Thickness of projection box borders."
var string t37 = "Projection Box Border Style: Line style for projection box borders (solid/dashed/dotted)."
var string t38 = "Projection Box Horizontal Align: Horizontal alignment of text inside projection boxes (left/center/right)."
var string t39 = "Projection Box Vertical Align: Vertical alignment of text inside projection boxes (top/center/bottom)."
var string t40 = "Projection Box Text Color: Text color for the projection level values shown inside the boxes."
var string t41 = "Projection Box Text Size: Font size of the projection level values shown inside the boxes."
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Inputs {
prd = input.int(
100,
"Period",
group = "Fib Settings",
inline = "fibColor",
tooltip = t1
)
lvl = input.float(
0.618,
title = "Projection Level",
group = "Fib Settings",
options = ,
tooltip = t2
)
// NEW INPUT FOR CUSTOM FIB
trendFibbRatio = input.float(
1.272,
title = "Trend Projection Ratio",
step = 0.001,
group = "Fib Settings",
tooltip = t2_b
)
// Fib line style inputs (horizontal fib levels)
fibLvl1 = input.float(0.236, "Level 1", group = "Fib Levels Style", inline = "f1", tooltip = t3)
fibColor236 = input.color(#f23645, "", group = "Fib Levels Style", inline = "f1")
fibLvl2 = input.float(0.382, "Level 2", group = "Fib Levels Style", inline = "f2", tooltip = t4)
fibColor382 = input.color(#81c784, "", group = "Fib Levels Style", inline = "f2")
fibLvl3 = input.float(0.500, "Level 3", group = "Fib Levels Style", inline = "f3", tooltip = t5)
fibColor500 = input.color(#4caf50, "", group = "Fib Levels Style", inline = "f3")
fibLvl4 = input.float(0.618, "Level 4", group = "Fib Levels Style", inline = "f4", tooltip = t6)
fibColor618 = input.color(#089981, "", group = "Fib Levels Style", inline = "f4")
fibLvl5 = input.float(0.786, "Level 5", group = "Fib Levels Style", inline = "f5", tooltip = t7)
fibColor786 = input.color(#64b5f6, "", group = "Fib Levels Style", inline = "f5")
fibLineWidth = input.int(
2,
"Fib Line Width",
minval = 1,
maxval = 5,
group = "Fib Levels Style",
inline = "fwidth",
tooltip = t8
)
showlab = input.bool(
false,
title = "Fib Labels",
group = "Fib Levels Style",
inline = "fiblab"
)
fibLabelColor = input.color(
color.white,
"",
group = "Fib Levels Style",
inline = "fiblab"
)
fibLabelSizeStr = input.string(
"Small",
"",
options = ,
group = "Fib Levels Style",
inline = "fiblab",
tooltip = t9 + " " + t10 + " " + t11
)
fibLabelOffset = 1 // (fixed) x offset for labels
// derived label size
fibLabelSize =
fibLabelSizeStr == "Tiny" ? size.tiny :
fibLabelSizeStr == "Small" ? size.small :
fibLabelSizeStr == "Large" ? size.large :
fibLabelSizeStr == "Huge" ? size.huge :
size.normal
// Swing high/low lines
loLineColor = input.color(
color.new(color.green, 0),
"Low Line",
group = "Swing High/Low Lines Style",
inline = "hi"
)
hiLineColor = input.color(
color.new(color.red, 0),
"High Line",
group = "Swing High/Low Lines Style",
inline = "hi"
)
hiloLineWidth = input.int(
2,
"Width",
1,
5,
group = "Swing High/Low Lines Style",
inline = "hi",
tooltip = t12 + " " + t13 + " " + t14
)
// Fib volume profile inputs
showFibProfile = input.bool(
true,
"Fib Volume Profile",
group = "Fib Volume Profile",
inline = "fibprof"
)
rows = input.int(
10,
"Rows",
2,
100,
group = "Fib Volume Profile",
inline = "fibprof"
)
flipOrder = input.bool(
false,
"Flip Bull/Bear",
group = "Fib Volume Profile",
inline = "fibprof",
tooltip = t15 + " " + t16 + " " + t17
)
bull_color = input.color(
color.new(color.teal, 30),
"Bull",
group = "Fib Volume Profile",
inline = "volColor"
)
bear_color = input.color(
color.new(color.orange, 30),
"Bear",
group = "Fib Volume Profile",
inline = "volColor",
tooltip = t18 + " " + t19
)
// Volume Text Settings
showVolText = input.bool(true, "Show Volume Values", group="Fib Volume Profile", inline="vtxt")
volTextSizeStr = input.string("Tiny", "Size", options= , group="Fib Volume Profile", inline="vtxt")
volTextSize =
volTextSizeStr == "Tiny" ? size.tiny :
volTextSizeStr == "Small" ? size.small :
size.normal
// Fib Volume Delta profile
showFibDelta = input.bool(
false,
"Fib Volume Delta",
group = "Fib Volume Delta Profile",
inline = "delta"
)
deltaMaxWidth = input.int(
30,
"Max Width",
minval = 5,
maxval = 200,
group = "Fib Volume Delta Profile",
inline = "delta",
tooltip = t20 + " " + t21
)
deltaBullColor = input.color(
color.new(color.lime, 80),
"Bullish Delta",
group = "Fib Volume Delta Profile",
inline = "deltaColor"
)
deltaBearColor = input.color(
color.new(color.red, 80),
"Bearish Delta",
group = "Fib Volume Delta Profile",
inline = "deltaColor",
tooltip = t22 + " " + t23
)
// Projection LINES style
projLineBullColor = input.color(
color.new(color.green, 0),
"Bullish",
group = "Projection Lines Style",
inline = "plc"
)
projLineBearColor = input.color(
color.new(color.red, 0),
"Bearish",
group = "Projection Lines Style",
inline = "plc"
)
projLineWidth = input.int(
2,
"Width",
1,
5,
group = "Projection Lines Style",
inline = "plc"
)
projLineStyleStr = input.string(
"Arrow Right",
"",
options = ,
group = "Projection Lines Style",
inline = "plc",
tooltip = t24 + " " + t25 + " " + t26 + " " + t27
)
projLineStyle =
projLineStyleStr == "Solid" ? line.style_solid :
projLineStyleStr == "Dashed" ? line.style_dashed :
projLineStyleStr == "Dotted" ? line.style_dotted :
projLineStyleStr == "Arrow Left" ? line.style_arrow_left :
line.style_arrow_right
// Projection % LABELS style
projPercBullColor = input.color(
color.new(color.green, 0),
"Bullish Bg",
group = "Projection Labels Style",
inline = "plc"
)
projPercBearColor = input.color(
color.new(color.red, 0),
"Bearish Bg",
group = "Projection Labels Style",
inline = "plc"
)
projPercTextColor = input.color(
color.white,
"Text",
group = "Projection Labels Style",
inline = "plc"
)
projPercLabelSizeStr = input.string(
"Small",
"",
options = ,
group = "Projection Labels Style",
inline = "plc",
tooltip = t28 + " " + t29 + " " + t30 + " " + t31
)
projPercLabelSize =
projPercLabelSizeStr == "Tiny" ? size.tiny :
projPercLabelSizeStr == "Small" ? size.small :
projPercLabelSizeStr == "Large" ? size.large :
projPercLabelSizeStr == "Huge" ? size.huge :
size.normal
// Projection box style inputs
projBoxBgOn = input.bool(
true,
"Background",
group = "Projection Box Style",
inline = "pbg"
)
projBoxBgColor = input.color(
color.new(color.blue, 80),
"",
group = "Projection Box Style",
inline = "pbg"
)
projBoxBorderOn = input.bool(
true,
"Border",
group = "Projection Box Style",
inline = "pbg"
)
projBoxBorderCol = input.color(
color.new(color.white, 0),
"",
group = "Projection Box Style",
inline = "pbg"
)
projBoxBorderW = input.int(
1,
"",
minval = 1,
maxval = 5,
group = "Projection Box Style",
inline = "pbg"
)
projBoxBorderStyleStr = input.string(
"Solid",
"",
options = ,
group = "Projection Box Style",
inline = "pbg",
tooltip = t32 + " " + t33 + " " + t34 + " " + t35 + " " + t36 + " " + t37
)
projBoxTextHAlignStr = input.string(
"Center",
"H Align",
options = ,
group = "Projection Box Style",
inline = "ptxt"
)
projBoxTextVAlignStr = input.string(
"Center",
"V Align",
options = ,
group = "Projection Box Style",
inline = "ptxt",
tooltip = t38 + " " + t39
)
projBoxTextColor = input.color(
color.white,
"Text",
group = "Projection Box Style",
inline = "ptxt2"
)
projBoxTextSizeStr = input.string(
"Normal",
"",
options = ,
group = "Projection Box Style",
inline = "ptxt2",
tooltip = t40 + " " + t41
)
projBoxTextSize =
projBoxTextSizeStr == "Tiny" ? size.tiny :
projBoxTextSizeStr == "Small" ? size.small :
projBoxTextSizeStr == "Large" ? size.large :
projBoxTextSizeStr == "Huge" ? size.huge :
size.normal
// Derived projection box style settings
projBoxBorderStyle =
projBoxBorderStyleStr == "Solid" ? line.style_solid :
projBoxBorderStyleStr == "Dashed" ? line.style_dashed :
line.style_dotted
projBoxTextHAlign =
projBoxTextHAlignStr == "Left" ? "left" :
projBoxTextHAlignStr == "Right" ? "right" :
"center"
projBoxTextVAlign =
projBoxTextVAlignStr == "Top" ? "top" :
projBoxTextVAlignStr == "Bottom" ? "bottom" :
"center"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Swing detection {
hi = ta.highest(high, prd)
lo = ta.lowest(low, prd)
isHi = high == hi
isLo = low == lo
HB = ta.barssince(isHi)
LB = ta.barssince(isLo)
// price of last swing high/low
hiPrice = ta.valuewhen(isHi, high, 0)
loPrice = ta.valuewhen(isLo, low, 0)
// bar index of last swing high/low
hiBar = ta.valuewhen(isHi, bar_index, 0)
loBar = ta.valuewhen(isLo, bar_index, 0)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Persistent drawings {
var line hiLine = na
var line loLine = na
if barstate.isfirst
hiLine := line.new(na, na, na, na, color = hiLineColor, width = hiloLineWidth)
loLine := line.new(na, na, na, na, color = loLineColor, width = hiloLineWidth)
// arrays to store objects
var array fibbLines = array.new_line()
var array fibbLabels = array.new_label()
var array forecastLines = array.new_line()
var array areas = array.new_box()
var array perc = array.new_label()
var array fibProfileBoxes = array.new_box()
var array fibDeltaBoxes = array.new_box()
var int deltaStartX = na
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Functions {
// fib level calculator
fibbFunc(v, last, h, l) =>
last ? h - (h - l) * v : l + (h - l) * v
// generic cleaner for drawing-object arrays (lines, boxes, labels)
cleaner(a, idx) =>
if idx >= 0 and idx < array.size(a)
el = array.get(a, idx)
if not na(el)
el.delete()
array.remove(a, idx)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// ~~ Main logic {
if not na(HB) and not na(LB) and not na(hiPrice) and not na(loPrice) and not na(hiBar) and not na(loBar)
// update swing lines
// update swing lines (position + live style)
line.set_xy1(hiLine, hiBar, hiPrice)
line.set_xy2(hiLine, bar_index, hiPrice)
line.set_color(hiLine, hiLineColor)
line.set_width(hiLine, hiloLineWidth)
line.set_xy1(loLine, loBar, loPrice)
line.set_xy2(loLine, bar_index, loPrice)
line.set_color(loLine, loLineColor)
line.set_width(loLine, hiloLineWidth)
bars = math.abs(HB - LB)
// FIB retracement lines
for i = array.size(fibbLines) - 1 to 0
cleaner(fibbLines, i)
for i = array.size(fibbLabels) - 1 to 0
cleaner(fibbLabels, i)
lvls = array.from(fibLvl1, fibLvl2, fibLvl3, fibLvl4, fibLvl5)
cols = array.from(fibColor236, fibColor382, fibColor500, fibColor618, fibColor786)
baseOffset = HB > LB ? LB : HB
xFibStart = bar_index - baseOffset
for in lvls
f = fibbFunc(e, HB < LB, hiPrice, loPrice)
x1 = xFibStart
x2 = bar_index
ln = line.new(
chart.point.from_index(x1, f),
chart.point.from_index(x2, f),
color = cols.get(i),
width = fibLineWidth
)
array.push(fibbLines, ln)
// fib label at right of line
if showlab
fibText = str.tostring(e * 100, "#.##") + "%"
lbl = label.new(
chart.point.from_index(x2 + fibLabelOffset, f),
fibText,
textcolor = fibLabelColor,
style = label.style_label_left,
size = fibLabelSize,
color =cols.get(i)
)
array.push(fibbLabels, lbl)
// Projection part
fibb = fibbFunc(lvl, LB > HB, hiPrice, loPrice)
fibb2 = LB < HB ?
fibbFunc(lvl, true, fibb, loPrice) :
fibbFunc(lvl, false, hiPrice, fibb)
trendfibb = LB > HB ?
fibbFunc(trendFibbRatio, true, hiPrice, loPrice) :
fibbFunc(trendFibbRatio, false, hiPrice, loPrice)
forecast = array.from(HB < LB ? hiPrice : loPrice, fibb, fibb2, trendfibb)
segment = math.min(bars, math.floor(500.0 / 4.0))
// clear previous forecast lines, boxes, and labels
for i = array.size(forecastLines) - 1 to 0
cleaner(forecastLines, i)
for i = array.size(areas) - 1 to 0
cleaner(areas, i)
for i = array.size(perc) - 1 to 0
cleaner(perc, i)
deltaStartX := na
future = bar_index
for i = 0 to forecast.size() - 2
x1 = math.min(future, bar_index + 500)
x2 = math.min(future + segment, bar_index + 500)
y1 = forecast.get(i)
y2 = forecast.get(i + 1)
lnForecast = line.new(
x1, y1,
x2, y2,
color = y1 < y2 ? projLineBullColor : projLineBearColor,
width = projLineWidth,
style = projLineStyle
)
array.push(forecastLines, lnForecast)
// area box around the end of segment
midBoxLeft = x2 - math.round((x1 - x2) / 4.0)
midBoxRight = x2 + math.round((x1 - x2) / 4.0)
boxHeight = math.abs(y1 - y2) / 10.0
txtLevel = i == forecast.size() - 2 ?
str.tostring(trendFibbRatio, "#.###") :
str.tostring(lvl * 100, "#.##")
boxBg = projBoxBgOn ? projBoxBgColor : color.new(projBoxBgColor, 100)
boxBord = projBoxBorderOn ? projBoxBorderCol : color.new(projBoxBorderCol, 100)
bx = box.new(
midBoxLeft,
y2 + boxHeight,
midBoxRight,
y2 - boxHeight,
bgcolor = boxBg,
border_color = boxBord,
border_style = projBoxBorderStyle,
border_width = projBoxBorderW,
text = txtLevel,
text_halign = projBoxTextHAlign,
text_valign = projBoxTextVAlign,
text_color = projBoxTextColor,
text_size = projBoxTextSize
)
array.push(areas, bx)
// keep track of the rightmost edge of the last projection box
deltaStartX := na(deltaStartX) ? box.get_right(bx) : math.max(deltaStartX, box.get_right(bx))
// percentage label
change = (y2 - y1) / y1
midX = int(math.avg(x1, x2))
midY = line.get_price(lnForecast, midX)
lb = label.new(
chart.point.from_index(midX, midY),
str.tostring(change * 100, format.percent),
color = change > 0 ? projPercBullColor : projPercBearColor,
style = i == 1 ? label.style_label_lower_right : label.style_label_lower_left,
textcolor = projPercTextColor,
size = projPercLabelSize
)
array.push(perc, lb)
future += segment
// ~~ Fib Volume Profile
if showFibProfile and hiBar != loBar and not na(hiPrice) and not na(loPrice)
for i = array.size(fibProfileBoxes) - 1 to 0
cleaner(fibProfileBoxes, i)
top = math.max(hiPrice, loPrice)
bottom = math.min(hiPrice, loPrice)
if top != bottom
step = (top - bottom) / rows
levels = array.new_float()
for i = 0 to rows
array.push(levels, bottom + step * i)
volUp = array.new_float(rows, 0.0)
volDn = array.new_float(rows, 0.0)
startBar = math.min(hiBar, loBar)
endBar = math.max(hiBar, loBar)
for bi = startBar to endBar
offset = bar_index - bi
// SAFETY CHECK: Prevents crash on low timeframes if swing is > 5000 bars
if offset < 4998
price = hlc3
vol = nz(volume ) // SAFETY: nz() for no volume data
bull = close > open
for r = 0 to rows - 1
dn = array.get(levels, r)
up = array.get(levels, r + 1)
if price >= dn and price < up
if bull
array.set(volUp, r, array.get(volUp, r) + vol)
else
array.set(volDn, r, array.get(volDn, r) + vol)
break
maxTot = 0.0
for r = 0 to rows - 1
tot = array.get(volUp, r) + array.get(volDn, r)
maxTot := math.max(maxTot, tot)
span = endBar - startBar + 1
if maxTot > 0
for r = 0 to rows - 1
upVol = array.get(volUp, r)
dnVol = array.get(volDn, r)
normUp = upVol == 0 ? 0 : int((upVol / maxTot) * span)
normDn = dnVol == 0 ? 0 : int((dnVol / maxTot) * span)
bullRowCol = color.from_gradient(r, 0, rows - 1, color.new(bull_color, 80), color.new(bull_color, 10))
bearRowCol = color.from_gradient(r, 0, rows - 1, color.new(bear_color, 80), color.new(bear_color, 10))
yTop = array.get(levels, r + 1)
yBottom = array.get(levels, r)
leftBull = flipOrder ? startBar : startBar + normDn
rightBull = flipOrder ? startBar + normUp : startBar + normDn + normUp
leftBear = flipOrder ? startBar + normUp : startBar
rightBear = flipOrder ? startBar + normUp + normDn : startBar + normDn
if normUp > 0
bBull = box.new(
leftBull, yTop,
rightBull, yBottom,
bgcolor = bullRowCol,
border_color = color.new(bullRowCol, 0),
border_style = line.style_dotted,
text = showVolText ? str.tostring(upVol, format.volume) : "",
text_color = color.white,
text_size = volTextSize,
text_valign = text.align_center,
text_halign = text.align_center
)
array.push(fibProfileBoxes, bBull)
if normDn > 0
bBear = box.new(
leftBear, yTop,
rightBear, yBottom,
bgcolor = bearRowCol,
border_color = color.new(bearRowCol, 0),
border_style = line.style_dotted,
text = showVolText ? str.tostring(dnVol, format.volume) : "",
text_color = color.white,
text_size = volTextSize,
text_valign = text.align_center,
text_halign = text.align_center
)
array.push(fibProfileBoxes, bBear)
// Fib Volume Delta Profile
if showFibDelta and hiBar != loBar and not na(hiPrice) and not na(loPrice)
for i = array.size(fibDeltaBoxes) - 1 to 0
cleaner(fibDeltaBoxes, i)
// Build fib prices
fibPrices = array.new_float()
array.push(fibPrices, hiPrice)
for e in lvls
lvlPrice = fibbFunc(e, HB < LB, hiPrice, loPrice)
array.push(fibPrices, lvlPrice)
array.push(fibPrices, loPrice)
// Sort prices low→high
fibSorted = array.copy(fibPrices)
array.sort(fibSorted)
bandsCount = array.size(fibSorted) - 1
if bandsCount > 0
bandBull = array.new_float(bandsCount, 0.0)
bandBear = array.new_float(bandsCount, 0.0)
startBar = math.min(hiBar, loBar)
endBar = math.max(hiBar, loBar)
// accumulate bull/bear volume per band
for bi = startBar to endBar
offset = bar_index - bi
// SAFETY CHECK: Prevents crash on low timeframes if swing is > 5000 bars
if offset < 4998
price = hlc3
vol = nz(volume ) // SAFETY: nz()
bull = close > open
for b = 0 to bandsCount - 1
bandLow = array.get(fibSorted, b)
bandHigh = array.get(fibSorted, b + 1)
if price >= bandLow and price < bandHigh
if bull
array.set(bandBull, b, array.get(bandBull, b) + vol)
else
array.set(bandBear, b, array.get(bandBear, b) + vol)
break
// compute delta
maxAbsDelta = 0.0
for b = 0 to bandsCount - 1
delta = array.get(bandBull, b) - array.get(bandBear, b)
maxAbsDelta := math.max(maxAbsDelta, math.abs(delta))
if maxAbsDelta > 0
xStartBase = startBar
for b = 0 to bandsCount - 1
bandLow = array.get(fibSorted, b)
bandHigh = array.get(fibSorted, b + 1)
delta = array.get(bandBull, b) - array.get(bandBear, b)
if delta == 0
continue
absDelta = math.abs(delta)
widthBars = int((absDelta / maxAbsDelta) * deltaMaxWidth)
widthBars := math.max(widthBars, 1)
xEnd = xStartBase
xStart = xStartBase - widthBars
col = delta >= 0 ? deltaBullColor : deltaBearColor
dBox = box.new(
xStart, bandHigh,
xEnd, bandLow,
bgcolor = col,
border_color = color.new(col, 0),
border_style = line.style_solid,
text = "Δ " + str.tostring(delta, format.volume),
text_color = color.white,
text_halign = "center",
text_valign = "center"
)
array.push(fibDeltaBoxes, dBox)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
P&T incl. lijnen en timeframePeaks en Troughs indicator waarin je de timeframe kan opgeven en het aantal minimale candles welke tussen een high en low in moeten zitten. Eventueel kan je deze P&T koppelen met een line.
PSP (Precision Swing Point - CIC SMT)PSP SMT – Correlation Stages Indicator
The PSP SMT – Correlation Stages indicator is designed to identify Smart Money divergences (SMT) between correlated markets through a progressive, stage-based model.
It visually classifies price behavior into correlation stages, helping traders detect early imbalance, confirmation, and distribution phases used by institutional participants.
By comparing a primary asset with a correlated symbol, the indicator highlights loss of correlation, displacement, and confirmation signals, offering a structured framework to anticipate potential reversals or continuations within ICT-based market models.
Ideal for traders who apply ICT concepts, intermarket analysis, and liquidity-based strategies, the PSP SMT enhances timing, context, and confidence in decision-making.






















