AI-based Price action confluence dashboard# **AI-Based Price Action Confluence Dashboard - Publication Guide**
Here's a comprehensive introduction guide for your TradingView indicator publication:
***
## **📊 TITLE**
**AI-Based Price Action Confluence Dashboard**
***
## **🎯 SHORT DESCRIPTION** (For the summary field)
A sophisticated real-time confluence scoring system that analyzes multiple price action signals across 15-minute timeframes, providing traders with an AI-weighted scoring mechanism (0-6 scale) to identify high-probability trade setups through visual signal panels and intelligent path detection.
***
## **📝 FULL DESCRIPTION**
### **Overview**
The AI-Based Price Action Confluence Dashboard is an advanced technical indicator designed to eliminate guesswork in intraday trading by systematically scoring and displaying multiple price action signals in real-time. Unlike traditional single-indicator approaches, this dashboard employs a confluence methodology that combines multiple independent signals to provide stronger trade confirmations and reduce false signals.
This indicator is specifically optimized for **1-minute chart analysis** while monitoring **15-minute price structure**, making it ideal for day traders and scalpers who need precise entry timing with larger timeframe context.
***
### **🔑 Key Features**
**✅ Real-Time AI Confluence Scoring**
- Dynamic scoring system (0-6 points) for both bullish and bearish setups
- Visual meter display shows signal strength at a glance
- Color-coded backgrounds indicate confluence levels (strong, moderate, mixed)
**✅ Multi-Signal Analysis**
The dashboard tracks 6 distinct signal types:
1. **FTFC (First to Finish Close)** - Base & Bonus signals
2. **Long/Short Grab** - Liquidity sweep patterns (Path A)
3. **High/Low Hold** - Extended momentum confirmation (+2 bonus)
4. **2-Up/2-Down** - Clean breakout patterns (Path B)
5. **Breakaway** - First candle gap strategies
**✅ Intelligent Path Detection**
- Mutually exclusive path logic prevents signal conflicts
- Automatically identifies whether price is following a "sweep path" or "clean path"
- Unavailable paths are clearly marked with gray indicators
**✅ Visual Signal Panels**
- 🟢 Green Light = Bullish signal ACTIVE
- 🔴 Red Light = Bearish signal ACTIVE
- 🟡 Yellow Light = Signal BUILDING (conditions partially met)
- ⚪ White Light = Signal OFF
- ▪️ Gray Square = Path UNAVAILABLE (mutually exclusive)
**✅ Comprehensive Alert System**
- 10 different alert conditions covering all major signals
- Strong confluence alerts (5+ points)
- Individual signal completion alerts
- Customizable alert messages
***
### **📐 How It Works**
#### **The Confluence Methodology**
This indicator implements a sophisticated confluence trading approach where multiple independent price action signals are combined to identify high-probability setups. Each signal type contributes points to either the bullish or bearish score, with a maximum of 6 points per direction.
**Scoring Breakdown:**
**BULLISH SIGNALS:**
- FTFC Base (15m close > previous 15m close) = +1
- FTFC Bonus (price clears 15th candle high) = +1
- **PATH A (Sweep):** Long Grab = +1, High Hold Bonus = +2
- **PATH B (Clean):** 2-Up = +1, 2-Up Bonus = +1
- Breakaway (gap above first candle) = +1
**BEARISH SIGNALS:**
- FTFC Base (15m close < previous 15m close) = +1
- FTFC Bonus (price clears 15th candle low) = +1
- **PATH A (Sweep):** Short Grab = +1, Low Hold Bonus = +2
- **PATH B (Clean):** 2-Down = +1, 2-Down Bonus = +1
- Breakaway (gap below first candle) = +1
#### **Path Detection Logic**
The indicator automatically determines which path the market is following:
**PATH A: SWEEP PATH**
- Activated when previous 15m low (bull) or high (bear) is breached
- Indicates liquidity grab before reversal
- Includes powerful +2 bonus for "Hold" confirmations
- Mutually exclusive with Path B
**PATH B: CLEAN PATH**
- Activated when previous 15m low (bull) or high (bear) holds
- Indicates strong directional momentum without sweep
- Cleaner price action but smaller point potential
- Mutually exclusive with Path A
This mutual exclusivity prevents double-counting and ensures signal accuracy.
***
### **🎨 How to Use**
#### **Installation**
1. Add indicator to your 1-minute chart
2. The dashboard appears as a table overlay (default: top right)
3. No additional indicators required - this is a complete system
#### **Reading the Dashboard**
**Top Section - Confluence Meter:**
- Shows current bull/bear scores with visual dot meters
- Background color changes based on confluence strength:
- **Bright Green/Red** = 5+ points (strong directional bias)
- **Medium Green/Red** = 3+ points (moderate bias)
- **Orange** = 3+ points both sides (conflicting signals)
- **Gray** = Low confluence (choppy conditions)
**Signal Panels Section:**
- Each row shows a signal type with bull/bear lights side-by-side
- Active signals (🟢🔴) contribute to the total score
- Building signals (🟡) indicate potential setups forming
- Unavailable paths (▪️) show which exclusive path is blocked
#### **Trading Strategy**
**High-Probability Long Entries:**
- Bull score ≥ 5 AND bear score ≤ 1
- Multiple green lights active in signal panels
- PATH A or PATH B showing full completion
- Consider entry on pullback to key 15m level
**High-Probability Short Entries:**
- Bear score ≥ 5 AND bull score ≤ 1
- Multiple red lights active in signal panels
- PATH A or PATH B showing full completion
- Consider entry on rally to key 15m level
**Avoid Trading When:**
- Both scores are 3+ (conflicting signals)
- No path is showing active/building status
- Score is below 3 on both sides (low confluence)
#### **Risk Management**
- Use 15m swing high/low for stop placement
- Target opposing 15m level or previous session extremes
- Scale out at partial targets when confluence decreases
- Best results when combined with proper position sizing
***
### **⚙️ Customization**
**Dashboard Settings:**
- **Table Location:** Top Left, Top Right, Bottom Left, Bottom Right
- **Text Size:** Tiny, Small, Normal, Large
**Color Scheme:**
- **Bullish Color:** Customize green for bull signals (default: #00cc66)
- **Bearish Color:** Customize red for bear signals (default: #ff4444)
- **Building Color:** Customize yellow for forming signals (default: #ffaa00)
- **Inactive Color:** Customize gray for off signals (default: #555555)
- **Unavailable Color:** Customize dark gray for blocked paths (default: #333333)
All colors can be adjusted to match your chart theme or visual preferences.
***
### **🎯 Best Practices**
1. **Use on 1-minute charts only** - The indicator is calibrated for this timeframe
2. **Trade during liquid sessions** - Best results during NY/London overlap
3. **Wait for 3+ confluence** - Minimum threshold for trade consideration
4. **Watch path transitions** - Signal strength changes when paths flip
5. **Use alerts strategically** - Set alerts for 5+ confluence to catch strong setups
6. **Combine with volume** - High volume confirms signal validity
7. **Respect 15m structure** - Don't fight the larger timeframe bias
***
### **⚠️ Important Notes**
- This indicator is designed for **intraday trading only**
- Requires active monitoring during trading sessions
- Works best on liquid instruments (major forex pairs, indices, large-cap stocks)
- Not suitable for swing trading or position trading
- Past performance does not guarantee future results
- Always use proper risk management and position sizing
***
### **🏷️ Category**
**Oscillators** or **Volatility** (choose based on TradingView categories)
***
### **🏷️ Suggested Tags**
- confluence
- price action
- day trading
- scalping
- intraday
- signals
- dashboard
- multi-timeframe
- 1-minute
- 15-minute
***
### **📜 Disclaimer**
This indicator is a tool for technical analysis and should not be used as the sole basis for trading decisions. All trading involves risk, and you should never risk more than you can afford to lose. The developer assumes no responsibility for trading losses incurred through the use of this indicator. Always practice proper risk management and consider your own risk tolerance before trading.
รูปแบบชาร์ต
BTC - VDD Multiple (Approx)Overview & Philosophy
⚠️ Note: This indicator is optimized for the Daily (1D) Timeframe. Please switch your chart to 1D for accurate signal reading.
The BTC – VDD Multiple (Approx) is an advanced oscillator designed to identify market overheating and cycle tops by analyzing the velocity of value moving through the market.
In traditional On-Chain Analysis, Value Days Destroyed (VDD) is a premier metric for spotting macro tops. It multiplies the coin age (how long a coin was held) by the price at which it was moved. When old coins (HODLer money) move at high prices, VDD spikes, signaling massive profit-taking.
The Problem: Real "Coin Days Destroyed" (CDD) data is typically locked behind institutional paywalls or unavailable on standard TradingView plans.
The Solution: This script calculates a Deterministic Proxy. By analyzing the relationship between Exchange Volume, Price, and a Dormancy Constant, we can approximate the structure of the VDD Multiple without needing a premium data feed.
Methodology
The VDD Multiple works by comparing short-term market velocity against a long-term baseline.
1. The Proxy Calculation
Since we cannot directly access the age of coins on TradingView, we model the economic weight of the move:
Proxy Value = Exchange Volume * Price * Dormancy Factor
This creates a synthetic representation of "Value Throughput."
2. The Multiple
We compare the immediate heat of the market against the yearly trend:
• Short-Term MA (2 Days): Captures flash spikes and sudden liquidity exit events.
• Long-Term MA (365 Days): Represents the baseline "hum" of network activity.
VDD Multiple = Short Term MA / Long Term MA
How to Read the Chart
The indicator plots the Multiple as a line and uses background highlighting to signal extreme regimes.
🔴 The Red Zone (Overheated > 2.9)
Meaning: Current value transfer is ~3x higher than the yearly average.
Interpretation: Historically, sharp spikes into the Red Zone correlate with Local or Cycle Tops. This indicates that massive volume is changing hands at high prices—typically a sign of "Smart Money" distributing into "Dumb Money" FOMO.
Note: In strong bull runs, price can push higher even after a VDD spike, but the risk/reward ratio is extremely poor here.
🟢 The Green Zone (Undervalued < 0.75)
Meaning: Market activity is quiet and below the yearly baseline.
Interpretation: These are periods of apathy or accumulation. Historically, extended time spent in the Green Zone (the "flatline") has offered the best asymmetric buying opportunities.
🟠 The Orange Line (Neutral)
Meaning: The market is in transition or equilibrium.
Strategy & Context
This indicator is best used as a Macro Cycle Tool, not a day-trading signal.
• Exit Strategy: Look for "Clusters" of Red Spikes. A single spike often marks a local correction, but a cluster of intense spikes while price makes new highs (Divergence) is a strong Cycle Top warning.
• Entry Strategy: Historically the best entries occur when the indicator flattens out in the Green Zone for weeks or months. This suggests sellers are exhausted and the market has reached a floor.
Credits
This script is an approximation of the original VDD Multiple concept. Full credit for the underlying on-chain theory goes to the pioneers of this metric:
• Concept: The original Value Days Destroyed metric was popularized by Hans Hauge and Glassnode.
• The Multiple: The specific application of a Short/Long MA Multiple on VDD is widely attributed to analysts like TXMC and Bitbo.
This script adapts these concepts for the free TradingView environment using exchange volume proxies.
Settings
• Data Source: Defaults to BINANCE:BTCUSDT to capture high-volume liquidity.
• Short MA: Default is 2 Days to capture rapid velocity spikes.
• Long MA: Default is 365 Days to track the annual trend.
Disclaimer
This tool is an approximation based on exchange volume, not raw blockchain data. While exchange volume and on-chain volume are highly correlated during cycle extremes, they are not identical. This script is for educational and research purposes only. Past performance does not guarantee future results.
Tags
bitcoin, btc, onchain, vdd, cdd, valuation, cycle, top, bottom, Rob Maths
Candle LeverageTechnical indicator that calculates and visually displays the mathematical leverage factor of each individual candle.
FORMULA:
• Bullish Candle: Close ÷ (Close - Low)
• Bearish Candle: Close ÷ (High - Close)
VISUAL REPRESENTATION:
• Green labels above bullish candles with prefix "Lx"
• Red labels below bearish candles with prefix "Sx"
• The displayed number represents the calculated leverage value
TIME FRAME COMPATIBILITY:
• Works on ALL time frames (1 minute to monthly charts)
• Real-time calculation on each candle close
• Consistent behavior across all chart intervals
INTERPRETATION:
• Higher values indicate candles with smaller shadow proportion
• Lower values suggest candles with larger shadow proportion
• Purely quantitative analysis of candle structure
FEATURES:
• Purely mathematical calculation
• No predictions or trading signals
• Non-intrusive chart display
• Decimal places configuration available
• Compatible with any trading instrument (stocks, forex, crypto, etc.)
UTILITY:
For objective technical analysis of candle formations across any time frame, useful when combined with other analysis tools.
DISCLAIMER:
This indicator is provided for educational and research purposes only. It does not constitute financial advice. Trading involves significant risk of loss.
Key Levels: Volume Profile POCProfessional Intraday Key Levels (CST)
This is a comprehensive, institutional-grade Pine Script indicator designed for intraday traders (Futures, Stocks, Options) operating in the Central Time Zone. It automatically plots the most significant support and resistance levels used by algorithms and professional desks.
1. Core Levels Monitored
Daily Levels: Previous Day High (PDH), Low (PDL), Open, Close, and the 50% Midpoint (Equilibrium).
Volume Profile POC: Unlike standard indicators that use a simple average, this calculates the Volume Weighted Average Price (VWAP) of the previous day to determine the true "Fair Value" or Point of Control. Plotted with a thicker, distinct purple line.
Weekly Magnets: Previous Week High (PWH) and Low (PWL), which often act as major targets for breakouts or reversals.
Pre-Market Data: Tracks the High and Low established between 03:00 AM – 08:30 AM CST.
Opening Range (OR): Automatically captures the High and Low of the first 60 minutes of the regular session (08:30 AM – 09:30 AM CST).
2. Smart Visualization Features
Anti-Overlap Labels: If two levels (e.g., Pre-Market High and Previous Day High) are within 0.02% of each other, the script automatically merges them into a single label (e.g., "PDH & Pre-Market High") to prevent chart clutter.
Source Tracing: Trace lines extend backward from the current price level to the exact candle where that High or Low was formed (for Pre-Market and Opening Range levels), giving you instant context on when the level was created.
Clean Readability: Labels are displayed in bold, solid text without price numbers, ensuring a clean chart that focuses on level identification rather than data overload.
3. Technical Precision
Time Zone Locked: Hardcoded to America/Chicago to ensure Pre-Market and Opening Range calculations remain accurate regardless of your local computer settings.
Non-Repainting: Daily and Weekly levels are locked using closed-candle data (lookahead_on), ensuring lines do not shift during the trading day.
Buffer Safe: Optimized drawing logic prevents historical buffer errors, even on lower timeframes (1m/5m).
4. Customization
Toggle Everything: Every single level has an individual "Show/Hide" checkbox in the settings.
Label Sizing: Adjustable text size (Tiny to Huge) and offset positioning.
Compact Mode: Option to switch between full names ("Previous Day High") and abbreviations ("PDH").
MTF H4 Double Maru - All Historydouble marubozu level at h4 will appear at lower timeframe, use it wisely , take action after price already near or react with the level
GS Volume Truth Serum (With Alerts)this tells you when institutions are behind a move and its not a bull trap
Approved Engulfing - Confirmed Close Triggerengulfing tak respek atau king CMS, guna cs sebelum engulfing ni sebagai area entry, bila prce kembali ke area ini, tunggu rejection baru boleh entry, andai tak ada rejection tak boleh entry
the Engulfing is not respected or fails to hold (King CMS), use the candle prior to this engulfing as your entry area. When price returns to this zone, wait for a clear rejection before entering. If there is no rejection, do not enter the trade."
Approved Engulfing - Confirmed Close Triggerit a single engulfing that i personally chase to find a good setup
Plan Your Trade, Trade Your Plan. Levels. - by TenAMTrader📍 Plan Your Trade, Trade Your Plan. Levels. — by TenAMTrader
Successful trading is rarely about predicting — it’s about preparing.
"Plan Your Trade, Trade Your Plan. Levels" is designed to bridge the gap between analysis and execution by forcing clarity before the trade ever happens. Instead of reacting to price in real time, this tool encourages traders to define their plan, map their key levels, and then simply trade what they already decided.
🧠 Why Planning Matters
Most trading mistakes don’t come from bad analysis — they come from abandoning a plan mid-trade. Emotions take over when levels aren’t clearly defined ahead of time.
This indicator is built around a simple philosophy:
Make the plan first. Trade the plan second.
By writing your thesis directly into the indicator and visually anchoring it to price, you remove ambiguity and hesitation when the market starts moving.
📊 What This Indicator Does
Converts your written trade plan or market outlook into clearly plotted price levels
Automatically identifies:
Pivot level (key decision point)
Resistance levels (above pivot)
Support levels (below pivot)
Displays contextual notes directly on the chart so you always remember why a level matters
Keeps your focus on execution, not interpretation
✍️ How to Use It
Paste your daily or weekly plan into the Input your Plan/Levels box
Let the script extract and plot the levels automatically
Observe how price behaves around predefined zones
Execute only what aligns with your original plan
No guesswork. No moving targets.
🎯 Designed For
Traders who value structure and discipline
Futures, index, and equity traders who trade key levels
Traders focused on process over prediction
⚠️ Important Disclaimer
This indicator is provided for educational and informational purposes only and does not constitute financial advice, investment advice, or a recommendation to buy or sell any security, futures contract, or financial instrument.
Trading involves substantial risk and is not suitable for all investors. Past performance is not indicative of future results. All trading decisions, risk management, and position sizing are the sole responsibility of the user.
By using this indicator, you acknowledge that TenAMTrader assumes no liability for any losses, damages, or decisions made based on its use.
Trade prepared. Trade disciplined.
"Plan Your Trade, Trade Your Plan.
— TenAMTrader
GMMA fill (v5) + Golden Crossover HighlightsGMMA Fill (v5) + Golden Crossover Highlights
This setup combines the Guppy Multiple Moving Average (GMMA) Fill version 5 with Golden Crossover signals to identify strong trend continuation and potential breakout points. GMMA provides layered moving averages for short- and long-term trend analysis, while the Golden Crossover highlights bullish momentum shifts, making it ideal for spotting entry opportunities in trending markets.
8menutakeshi//@version=5
indicator("猛の掟・初動スクリーナー(完全版:8項目コメント表示)", overlay=true, max_labels_count=50)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Inputs
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
showPanel = input.bool(true, "コメント表示")
panelPos = input.string("右上", "コメント位置", options= )
lastBarOnly = input.bool(true, "最後の足だけ更新(推奨)")
// EMA
lenEma1 = input.int(5, "EMA 5", minval=1)
lenEma2 = input.int(13, "EMA 13", minval=1)
lenEma3 = input.int(26, "EMA 26", minval=1)
// MACD
macdFast = input.int(12, "MACD fast", minval=1)
macdSlow = input.int(26, "MACD slow", minval=1)
macdSig = input.int(9, "MACD signal", minval=1)
// Volume
volMaLen = input.int(5, "出来高平均(N日)", minval=1)
volMinMul = input.float(1.3, "出来高倍率Min", step=0.1)
volMaxMul = input.float(2.0, "出来高倍率Max", step=0.1)
volFinalMul = input.float(1.5, "最終三点:出来高倍率(>=)", step=0.1)
// Candle
wickBodyMult = input.float(1.8, "下ヒゲ判定:下ヒゲ/実体 >=", step=0.1)
atrLen = input.int(14, "ATR長", minval=1)
bigBodyATR = input.float(1.2, "大陽線判定:実体 >= ATR×", step=0.1)
// Breakout / Pullback
resLookback = input.int(20, "レジスタンス:過去N日高値", minval=5)
pullMinPct = input.float(5.0, "押し目Min(%)", step=0.5)
pullMaxPct = input.float(15.0, "押し目Max(%)", step=0.5)
retestAllowPct = input.float(1.0, "ブレイク価格の許容下抜け(%)", step=0.1)
stateExpireBars = input.int(30, "ブレイク状態の期限(本数)", minval=5)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Series
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ema5 = ta.ema(close, lenEma1)
ema13 = ta.ema(close, lenEma2)
ema26 = ta.ema(close, lenEma3)
= ta.macd(close, macdFast, macdSlow, macdSig)
volAvg = ta.sma(volume, volMaLen)
volMul = volAvg == 0 ? na : (volume / volAvg)
atr = ta.atr(atrLen)
// Candle parts
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 1-3: トレンド
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ema5Up = ema5 > ema5
ema13Up = ema13 > ema13
ema26Up = ema26 > ema26
allEmaUp = ema5Up and ema13Up and ema26Up
golden = (ema5 > ema13) and (ema13 > ema26)
above26_2days = (close > ema26) and (close > ema26 )
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 4: MACD(ゼロライン上GC)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
macdZeroGC = ta.crossover(macdLine, macdSignal) and (macdLine > 0)
histShrinkToUp = (macdHist > macdHist ) and (macdHist < macdHist ) // 参考表示
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 5: 出来高
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
volOK = not na(volMul) and (volMul >= volMinMul) and (volMul <= volMaxMul)
volStrongOK = not na(volMul) and (volMul >= volFinalMul) // 最終三点用
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 6: ローソク(ピンバー/包み/大陽線)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
longLowerWick = (body > 0) and ((lowerWick / body) >= wickBodyMult) and (upperWick <= lowerWick * 0.6) and (close > open)
bullEngulf = (close < open ) and (close > open) and (open <= close ) and (close >= open )
bigBull = (close > open) and (body >= atr * bigBodyATR) and (open < ema13) and (close > ema5)
candleOK = longLowerWick or bullEngulf or bigBull
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 7-8: ブレイク後押し目(押し目 -5〜15%)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
res = ta.highest(high, resLookback)
breakout = ta.crossover(close, res)
var bool inBreak = false
var float breakPrice = na
var int breakBar = na
var float postBreakHigh = na
if breakout
inBreak := true
breakPrice := res
breakBar := bar_index
postBreakHigh := high
if inBreak
postBreakHigh := na(postBreakHigh) ? high : math.max(postBreakHigh, high)
pullPct = (inBreak and not na(postBreakHigh) and postBreakHigh != 0) ? (postBreakHigh - close) / postBreakHigh * 100.0 : na
pullOK = not na(pullPct) and (pullPct >= pullMinPct) and (pullPct <= pullMaxPct)
retestOK = inBreak and not na(breakPrice) and (close >= breakPrice * (1 - retestAllowPct/100.0))
breakoutPullbackOK = inBreak and retestOK and pullOK
if inBreak and not na(breakBar) and (bar_index - breakBar > stateExpireBars)
inBreak := false
breakPrice := na
breakBar := na
postBreakHigh := na
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 8項目チェック(1つでも欠けたら見送り)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
chk1 = allEmaUp
chk2 = golden
chk3 = above26_2days
chk4 = macdZeroGC
chk5 = volOK
chk6 = candleOK
chk7 = pullOK
chk8 = breakoutPullbackOK
all8 = chk1 and chk2 and chk3 and chk4 and chk5 and chk6 and chk7 and chk8
// 最終三点(ヒゲ×出来高×MACD)
// ※「成立時は買い確定」の定義に合わせて、all8に加えてfinal3も必須にしている
final3 = longLowerWick and volStrongOK and macdZeroGC
judge = (all8 and final3) ? "判定:買い" : "判定:見送り"
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// コメント文字列(←txt を必ず先に定義)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fMark(x) => x ? "達成" : "未達"
txt =
"【8項目チェック】 " +
"1 EMA全上向き: " + fMark(chk1) + " " +
"2 黄金隊列: " + fMark(chk2) + " " +
"3 26EMA上2日: " + fMark(chk3) + " " +
"4 MACDゼロ上GC: " + fMark(chk4) + " " +
"5 出来高" + str.tostring(volMinMul) + "-" + str.tostring(volMaxMul) + ": " + fMark(chk5) + " " +
"6 ローソク条件: " + fMark(chk6) + " " +
"7 押し目-" + str.tostring(pullMinPct) + "〜" + str.tostring(pullMaxPct) + "%: " + fMark(chk7) + " " +
"8 ブレイク後押し目: " + fMark(chk8) + " " +
"最終三点(ヒゲ×出来高×MACD): " + (final3 ? "成立" : "未成立") + " " +
judge + " " +
"(参考)出来高倍率=" + (na(volMul) ? "na" : str.tostring(volMul, "#.00")) +
" / 押し目率=" + (na(pullPct) ? "na" : str.tostring(pullPct, "#.0")) + "%" +
" / hist転換=" + (histShrinkToUp ? "YES" : "NO")
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// Table(位置は if で確定。三項演算子で改行しない)
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
var pos = position.top_right
if panelPos == "右上"
pos := position.top_right
else if panelPos == "左上"
pos := position.top_left
else if panelPos == "右下"
pos := position.bottom_right
else
pos := position.bottom_left
var table t = table.new(pos, 1, 1)
// 描画条件
drawNow = showPanel and (lastBarOnly ? barstate.islast : true)
bg = (all8 and final3) ? color.new(color.lime, 80) : color.new(color.gray, 15)
fg = color.white
if drawNow
table.cell(t, 0, 0, txt, text_color=fg, bgcolor=bg, text_size=size.small)
else
table.cell(t, 0, 0, "", text_color=fg, bgcolor=color.new(color.black, 100))
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
// 視覚補助
//━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
plot(ema5, color=color.new(color.yellow, 0), title="EMA5")
plot(ema13, color=color.new(color.orange, 0), title="EMA13")
plot(ema26, color=color.new(color.red, 0), title="EMA26")
plotshape(all8 and final3, title="BUY", style=shape.triangleup, location=location.belowbar,
color=color.new(color.lime, 0), size=size.tiny, text="BUY")
takeshi MNO_2Step_Screener_MOU_MOUB_KAKU//@version=5
indicator("MNO_2Step_Screener_MOU_MOUB_KAKU", overlay=true, max_labels_count=500, max_lines_count=500)
// =========================
// Inputs
// =========================
emaSLen = input.int(5, "EMA Short (5)", minval=1)
emaMLen = input.int(13, "EMA Mid (13)", minval=1)
emaLLen = input.int(26, "EMA Long (26)", minval=1)
macdFast = input.int(12, "MACD Fast", minval=1)
macdSlow = input.int(26, "MACD Slow", minval=1)
macdSignal = input.int(9, "MACD Signal", minval=1)
macdZeroTh = input.float(0.2, "MOU: MACD near-zero threshold", step=0.05)
volDays = input.int(5, "Volume avg (days equivalent)", minval=1)
volMinRatio = input.float(1.3, "MOU: Volume ratio min", step=0.1)
volStrong = input.float(1.5, "Strong volume ratio (MOU-B/KAKU)", step=0.1)
volMaxRatio = input.float(3.0, "Volume ratio max (filter)", step=0.1)
wickBodyMult = input.float(2.0, "Pinbar: lowerWick >= body*x", step=0.1)
pivotLen = input.int(20, "Resistance lookback", minval=5)
pullMinPct = input.float(5.0, "Pullback min (%)", step=0.1)
pullMaxPct = input.float(15.0, "Pullback max (%)", step=0.1)
breakLookbackBars = input.int(5, "Valid bars after break", minval=1)
showEMA = input.bool(true, "Plot EMAs")
showLabels = input.bool(true, "Show labels (猛/猛B/確)")
showShapes = input.bool(true, "Show shapes (猛/猛B/確)")
confirmOnClose = input.bool(true, "Signal only on bar close (recommended)")
locChoice = input.string("Below", "Label location", options= )
lblLoc = locChoice == "Below" ? location.belowbar : location.abovebar
// =========================
// EMA
// =========================
emaS = ta.ema(close, emaSLen)
emaM = ta.ema(close, emaMLen)
emaL = ta.ema(close, emaLLen)
plot(showEMA ? emaS : na, color=color.new(color.yellow, 0), title="EMA 5")
plot(showEMA ? emaM : na, color=color.new(color.blue, 0), title="EMA 13")
plot(showEMA ? emaL : na, color=color.new(color.orange, 0), title="EMA 26")
emaUpS = emaS > emaS
emaUpM = emaM > emaM
emaUpL = emaL > emaL
goldenOrder = emaS > emaM and emaM > emaL
above26_2bars = close > emaL and close > emaL
baseTrendOK = (emaUpS and emaUpM and emaUpL) and goldenOrder and above26_2bars
// =========================
// MACD
// =========================
= ta.macd(close, macdFast, macdSlow, macdSignal)
macdGC = ta.crossover(macdLine, macdSig)
macdUp = macdLine > macdLine
macdNearZero = math.abs(macdLine) <= macdZeroTh
macdGCAboveZero = macdGC and macdLine > 0 and macdSig > 0
macdMouOK = macdGC and macdNearZero and macdUp
macdKakuOK = macdGCAboveZero
// =========================
// Volume (days -> bars)
// =========================
sec = timeframe.in_seconds(timeframe.period)
barsPerDay = (sec > 0 and sec < 86400) ? math.round(86400 / sec) : 1
volLookbackBars = math.max(1, volDays * barsPerDay)
volMA = ta.sma(volume, volLookbackBars)
volRatio = volMA > 0 ? (volume / volMA) : na
volumeMouOK = not na(volRatio) and volRatio >= volMinRatio and volRatio <= volMaxRatio
volumeStrongOK = not na(volRatio) and volRatio >= volStrong and volRatio <= volMaxRatio
// =========================
// Candle patterns
// =========================
body = math.abs(close - open)
upperWick = high - math.max(open, close)
lowerWick = math.min(open, close) - low
pinbar = (body > 0) and (lowerWick >= wickBodyMult * body) and (lowerWick > upperWick) and (close >= open)
bullEngulf = close > open and close < open and close >= open and open <= close
bigBull = close > open and open < emaM and close > emaS and (body > ta.sma(body, 20))
candleOK = pinbar or bullEngulf or bigBull
// =========================
// Resistance / Pullback route
// =========================
res = ta.highest(high, pivotLen)
pullbackPct = res > 0 ? (res - close) / res * 100.0 : na
pullbackOK = not na(pullbackPct) and pullbackPct >= pullMinPct and pullbackPct <= pullMaxPct
brokeRes = ta.crossover(close, res )
barsSinceBreak = ta.barssince(brokeRes)
afterBreakZone = (barsSinceBreak >= 0) and (barsSinceBreak <= breakLookbackBars)
pullbackRouteOK = afterBreakZone and pullbackOK
// =========================
// Signals (猛 / 猛B / 確)
// =========================
mou_pullback = baseTrendOK and volumeMouOK and candleOK and macdMouOK and pullbackRouteOK
mou_breakout = baseTrendOK and ta.crossover(close, res ) and volumeStrongOK and macdKakuOK
cond1 = emaUpS and emaUpM and emaUpL
cond2 = goldenOrder
cond3 = above26_2bars
cond4 = macdKakuOK
cond5 = volumeMouOK
cond6 = candleOK
cond7 = pullbackOK
cond8 = pullbackRouteOK
all8 = cond1 and cond2 and cond3 and cond4 and cond5 and cond6 and cond7 and cond8
final3 = pinbar and macdKakuOK and volumeStrongOK
kaku = all8 and final3
// 確優先(同一足は確だけ出す)
confirmed = confirmOnClose ? barstate.isconfirmed : true
sigKAKU = kaku and confirmed
sigMOU = mou_pullback and not kaku and confirmed
sigMOUB = mou_breakout and not kaku and confirmed
// =========================
// Visualization
// =========================
if showLabels and sigMOU
label.new(bar_index, low, "猛", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black)
if showLabels and sigMOUB
label.new(bar_index, low, "猛B", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.black)
if showLabels and sigKAKU
label.new(bar_index, low, "確", style=label.style_label_up, color=color.new(color.yellow, 0), textcolor=color.black)
plotshape(showShapes and sigMOU, title="MOU", style=shape.labelup, text="猛", color=color.new(color.lime, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showShapes and sigMOUB, title="MOUB", style=shape.labelup, text="猛B", color=color.new(color.green, 0), textcolor=color.black, location=lblLoc, size=size.tiny)
plotshape(showShapes and sigKAKU, title="KAKU", style=shape.labelup, text="確", color=color.new(color.yellow, 0), textcolor=color.black, location=lblLoc, size=size.small)
// =========================
// Alerts
// =========================
alertcondition(sigMOU, title="MNO_MOU", message="MNO: 猛(押し目)")
alertcondition(sigMOUB, title="MNO_MOU_BREAKOUT", message="MNO: 猛B(ブレイク)")
alertcondition(sigKAKU, title="MNO_KAKU", message="MNO: 確(最終)")
alertcondition(sigMOU or sigMOUB or sigKAKU, title="MNO_ALL", message="MNO: 猛/猛B/確 いずれか")
SHAP-Aligned BUY Signal (Daily, Edge-Triggered)Based on the XGBoost + SHAP interpretation report, I'll explain which indicators to monitor for buying NVO. However, I must emphasize that this model performed poorly (47.5% accuracy) and should NOT be used for actual trading! That said, here's what the model learned (for educational purposes):
📊 Top Indicators to Monitor for BUY Signals
1. Days_Since_Low (Most Important - 1.264)
Direction: BULLISH ↑
Interpretation: Higher values → UP prediction
What to monitor: Track how many days since the stock hit its recent low
Buy signal: When the stock has been recovering for an extended period (e.g., 100+ days from low)
Why it matters: The model learned that stocks in long-term recovery tend to continue rising
2. SMA_50 (50-day Moving Average) (0.413)
Direction: BULLISH ↑
Interpretation: Higher absolute SMA_50 values → UP prediction
What to monitor: The 50-day simple moving average price level
Buy signal: When SMA_50 is at higher levels (e.g., above $80-90)
Why it matters: Higher moving averages indicate stronger long-term trends
3. SMA_200 (200-day Moving Average) (0.274)
Direction: BULLISH ↑
Interpretation: Higher SMA_200 → UP prediction
What to monitor: The 200-day simple moving average
Buy signal: When SMA_200 is trending upward and at elevated levels
Why it matters: Long-term trend indicator; golden cross (SMA_50 > SMA_200) is traditionally bullish
4. BB_Width (Bollinger Band Width) (0.199)
Direction: BULLISH ↑
Interpretation: WIDER Bollinger Bands → UP prediction
What to monitor: The distance between upper and lower Bollinger Bands
Buy signal: When BB_Width is expanding (increasing volatility often precedes trend moves)
Why it matters: Widening bands can signal the start of a new trend
5. Price_SMA_50_Ratio (0.158)
Direction: BULLISH ↑
Interpretation: When price is ABOVE the 50-day MA → UP prediction
What to monitor: Current price ÷ SMA_50
Buy signal: When ratio > 1.0 (price is above the 50-day average)
Why it matters: Price above moving averages indicates uptrend
6. Momentum_21D (21-day Momentum) (0.152)
Direction: BULLISH ↑
Interpretation: Positive 21-day momentum → UP prediction
What to monitor: 21-day rate of change
Buy signal: When momentum is positive and increasing
Why it matters: Positive momentum suggests continuation
7. Stoch_K (Stochastic Oscillator) (0.142)
Direction: BULLISH ↑
Interpretation: Higher Stochastic K → UP prediction
What to monitor: Stochastic oscillator (0-100 scale)
Buy signal: When Stoch_K is rising from oversold (<20) or in mid-range (40-60)
Why it matters: Measures momentum and overbought/oversold conditions
Monthly Hotness RSI (Auto-Calibrated)Indicator of the previous months volatility/vol compared to averages over the last 3-5 years. helps show trend and if the market is 'hot'. indicator is good for showing favourable market conditions.
Momentum Burst Pullback System v66* Detects **momentum “bursts”** using:
* **Keltner breakout** (high above upper band for long, low below lower band for short), and/or
* **MACD histogram extreme** (highest/lowest in a lookback window, with correct sign).
* Optional **burst-zone extension** keeps the burst “active” for N extra bars after the burst.
* Marks bursts with **K** (Keltner) and **M** (MACD) labels:
* Core burst labels use one color, extension labels use a different color.
* Tracks the most recent burst as the **dominant side** (long or short), and stores burst “leg” anchors (high/low context).
* Adds **structure-based invalidation**:
* On a new **core burst**, it locks the most recent **confirmed swing** level (pivot):
* Long: locks the last confirmed **swing low**.
* Short: locks the last confirmed **swing high**.
* After the burst, if price **breaks that locked level**, the burst regime is **cancelled** (and any pending setup on that side is dropped).
* Finds **pullback setups** after a dominant burst (and not inside the active burst zone), within min/max bars:
* Long pullback requires a sequence of **lower highs** and price still below the burst high.
* Short pullback requires **higher lows** and price still above the burst low.
* Optional background shading highlights pullback bars.
* On pullback bars, plots **static TP/SL crosses** using ATR:
* Anchor is the pullback bar’s high (long) or low (short).
* TP/SL are ± ATR * multiple.
* TP plots are visually classified (bright vs faded) based on whether TP would exceed the prior burst extreme.
* Maintains a **state-machine entry + trailing stop**:
* Sets a “waiting” trigger on pullback.
* Enters when price breaks the trigger (high break for long, low break for short).
* Trails a stop using **R-multiples**, with different behavior pre-break-even, post-break-even, and near-TP.
* Optionally draws the trailing stop as horizontal line segments.
* Optionally shows a **last-bar label** with the most recent pullback’s TP and SL values.
PDI / MMXM Execution OverlayCreates FVG's on lower time frames automatically. Helps with charting live.
FreeSisters - System v1.8System v1.8
Marks out high time frame levels.
Market Structure defined by quarters theory, based on the lowest price within a 12 month period.
Early Momentum Dashboard [Small Caps]Early Momentum Dashboard for Small Caps
A clean, real-time dashboard that detects building momentum before major moves in small-cap stocks.
Features:
• 7 key early-momentum indicators with traffic-light system (🟢 Bullish / 🟡 Neutral / 🔴 Bearish)
• Toggle each indicator on/off via settings
• Momentum Score (e.g., 5/7) – higher = stronger early signal
• Visual markers on chart (VOL, RSI, MACD)
• Includes: Relative Volume Spike, RSI Buildup, MACD, OBV Accumulation, ROC, ATR Volatility, VWAP Proximity
Ideal for scanning low-float or catalyst-driven small caps.
Tip: Look for 4+ green lights as a high-probability early entry signal.
Enjoy!
Harmonic Patterns (Experimental) [Kodexius]Harmonic Patterns (Experimental) is a multi pattern harmonic geometry scanner that automatically detects, validates, and draws classic harmonic structures directly on your chart. The script continuously builds a pivot map (swing highs and swing lows), then evaluates the most recent pivot sequence against a library of harmonic ratio templates such as Gartley, Bat, Deep Bat, Butterfly, Crab, Deep Crab, Cypher, Shark, Alt Shark, 5-0, AB=CD, and 3 Drives.
Unlike simple “pattern exists / pattern doesn’t exist” indicators, this version scores candidates by accuracy . Each pattern includes “ideal” ratio targets, and the script computes a total error score by measuring how far the observed ratios deviate from the ideal. When multiple patterns could match the same pivot structure, the script selects the best match (lowest total error) and displays that one. This reduces clutter and makes the output more practical in real market conditions where many ratio ranges overlap.
The end result is a clean, information rich visualization of harmonic opportunities that is:
-Pivot based and swing aware
-Ratio validated with configurable tolerance
-Direction filtered (bullish, bearish, or both)
-Ranked by accuracy to prefer higher quality matches
Note: This is an experimental pattern engine intended for research, confluence and chart study. Harmonic patterns are probabilistic and can fail often. Always combine with your own risk management and confirmation tools.
🔹 Features
🔸Pivot Detection
The script uses pivot functions to detect structural turning points:
-Pivot Left Bars controls how many bars must exist on the left of the pivot
-Pivot Right Bars controls confirmation delay on the right (smaller value reacts faster)
Additionally, a Min Swing Distance (%) filter can ignore tiny swings to reduce noise. Pivots are stored separately for highs and lows and capped by Max Pivots to Store to keep the script efficient.
🔸Pattern Library (XABCD and Beyond)
Supported structures include:
-Gartley, Bat, Deep Bat, Butterfly, Crab, Deep Crab
-Cypher (uses XC extension and CD retracement logic)
-Shark and Alt Shark (0-X-A-B-C mapping)
-5-0 (AB and BC extensions with CD retracement)
-AB=CD (symmetry and proportionality checks)
-3 Drives (6 point structure, drive and retracement ratios)
Each pattern is defined by ratio ranges and also “ideal” ratio targets used for scoring.
🔸 Pattern Fibonacci Rules (Detailed Ratio Definitions)
This script validates each harmonic template by measuring a small set of Fibonacci relationships between the legs of the pattern. All measurements are computed using absolute price distance (so the ratios are direction independent), and then a directional sanity check ensures the geometry is positioned correctly for bullish or bearish cases.
How ratios are measured
Most patterns in this script use the standard X A B C D harmonic structure. Four ratios are evaluated:
1) XB retracement of XA
This measures how much price retraces from A back toward X when forming point B .
xbRatio = |B - A| / |A - X|
2) AC retracement of AB
This measures how much point C retraces the AB leg.
acRatio = |C - B| / |B - A|
3) BD extension of BC
This measures the “drive” from C into D relative to the BC leg.
bdRatio = |D - C| / |C - B|
4) XD retracement of XA
This is the most important “completion” ratio in many patterns. It measures where D lands relative to the original XA swing.
xdRatio = |D - A| / |A - X|
Important: the script applies a user defined Fibonacci Tolerance to each accepted range, meaning the pattern can still pass even if ratios are slightly off from the textbook values.
🔸 XABCD Pattern Ratio Templates
Below are the exact ratio rules used by the templates in this script.
Gartley
-XB must be ~0.618 of XA
-AC must be between 0.382 and 0.886 of AB
-BD must be between 1.272 and 1.618 extension of BC
-XD must be ~0.786 of XA
In practice, Gartley is a “non extension” structure, meaning D usually remains inside the X boundary .
Bat
-XB between 0.382 and 0.50 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD ~0.886 of XA
Bat patterns typically complete deeper than Gartley and often create a sharper reaction at D.
Deep Bat
-XB ~0.886 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD ~0.886 of XA
Deep Bat uses the same completion zone as Bat, but requires a much deeper B point.
Butterfly
-XB ~0.786 of XA
-AC between 0.382 and 0.886 of AB
-BD between 1.618 and 2.618 of BC
-XD between 1.272 and 1.618 of XA
Butterfly is an extension pattern . That means D is expected to break beyond X (in the completion direction).
Crab
-XB between 0.382 and 0.618 of XA
-AC between 0.382 and 0.886 of AB
-BD between 2.24 and 3.618 of BC
-XD ~1.618 of XA
Crab is also an extension pattern . It often produces a very deep D completion and a strong reaction zone.
Deep Crab
-XB ~0.886 of XA
-AC between 0.382 and 0.886 of AB
-BD between 2.0 and 3.618 of BC
-XD ~1.618 of XA
Deep Crab combines a deep B point with a strong XA extension completion.
🔸 Cypher Fibonacci Rules (XC Based)
Cypher is not validated with the same four ratios as XABCD patterns. Instead it uses an XC based completion model:
1) B as a retracement of XA
xb = |B - A| / |A - X| // AB/XA
Must be between 0.382 and 0.618 .
2) C as an extension from X relative to XA
xc = |C - X| / |A - X| // XC/XA
Must be between 1.272 and 1.414 .
3) D as a retracement of XC
xd = |D - C| / |C - X| // CD/XC
Must be ~ 0.786 .
This makes Cypher structurally different: the “completion” is defined as a retracement of the entire XC leg, not XA.
🔸 Shark and Alt Shark Fibonacci Rules (0-X-A-B-C Mapping)
Shark patterns are commonly defined as 0 X A B C . In this script the pivots are mapped like this:
0 = pX, X = pA, A = pB, B = pC, C = pD
So the final pivot (stored as pD) is labeled as C on the chart.
Three ratios are validated:
1) AB relative to XA
ab_xa = |B - A| / |A - X|
Must be between 1.13 and 1.618 .
2) BC relative to AB
bc_ab = |C - B| / |B - A|
Must be between 1.618 and 2.24 .
3) OC relative to OX
oc_ox = |C - 0| / |X - 0|
For Shark it must be between 0.886 and 1.13 .
For Alt Shark it must be between 1.13 and 1.618 (a deeper / more extended completion).
🔸 5-0 Fibonacci Rules
5-0 is validated as a sequence of extensions and then a fixed retracement:
1) AB extension of XA
ab_xa = |B - A| / |A - X|
Must be between 1.13 and 1.618 .
2) BC extension of AB
bc_ab = |C - B| / |B - A|
Must be between 1.618 and 2.24 .
3) CD retracement of BC
cd_bc = |D - C| / |C - B|
Must be approximately 0.50 .
Note that for 5-0 the script does not rely on an XA completion ratio like 0.786 or 1.618. The defining completion is the 0.5 retracement of BC.
🔸 AB=CD Fibonacci Rules
AB=CD is a symmetry pattern and is treated differently from the harmonic templates:
1) AB and CD length symmetry
The script checks if CD is approximately equal to AB within tolerance.
2) BC proportion
BC/AB is expected to fall in a common Fibonacci retracement zone:
-approximately 0.618 to 0.786 (with a looser tolerance in code)
3) CD/BC expansion
CD/BC is expected to be an expansion ratio:
-approximately 1.272 to 1.618 (also with a looser tolerance)
This allows the script to capture both classic equal leg AB=CD and common “expanded” variations.
🔸 3 Drives Fibonacci Rules (6 Point Structure)
3 Drives is a 6 point structure and is validated using retracement ratios and extension ratios:
Retracement rules
Retracement 1 must be between 0.618 and 0.786 of Drive 1
Retracement 2 must be between 0.618 and 0.786 of Drive 2
Extension rules
Drive 2 must be between 1.272 and 1.618 of Retracement 1
Drive 3 must be between 1.272 and 1.618 of Retracement 2
This pattern is meant to capture rhythm and proportional repetition rather than a single XA completion ratio.
🔸 Why the script can show “ratio labels” on legs
If you enable Show Fibonacci Values on Legs , the script prints the measured ratios near the midpoint of each leg (or diagonal, depending on pattern type). This makes it easy to visually confirm:
-Which ratios caused the pattern to pass
-How close the structure is to ideal harmonic values
-Why one template was preferred over another via the accuracy score
🔸 Fibonacci Tolerance Control
All ratio checks use a single tolerance input (percentage). This tolerance expands or contracts the acceptable ratio ranges, letting you decide whether you want:
-Tight, high precision matches (lower tolerance)
-Broader, more frequent matches (higher tolerance)
🔸 Direction Filter (Bullish Only / Bearish Only / Both)
You can restrict scanning to bullish patterns, bearish patterns, or allow both. This is useful if you are aligning with higher timeframe bias or only trading one side of the market.
🔸 Best Match Selection (Anti Clutter Logic)
When a new pivot confirms, the script evaluates all enabled patterns against the latest pivot sequence and keeps the one with the smallest total error score. This is especially helpful because many harmonic templates overlap in real time. Instead of drawing multiple conflicting labels, you get one “most accurate” candidate.
🔸 Clean Visual Rendering and Optional Details
The drawing system can display:
-Main structure lines (X-A-B-C-D or special mappings)
-Dashed diagonals for geometric context (XB, AC, BD, XD)
-Pattern fill to visually highlight the structure zone
-Point labels (X,A,B,C,D or 0..5 for 3 Drives, 0-X-A-B-C for Shark)
-Leg Fibonacci labels placed around midpoints for fast ratio reading
All colors (bullish and bearish line and fill) are configurable.
🔸 Pattern Spacing and Display Limits
To keep charts readable, the script includes:
-Max Patterns to Display to limit on-chart drawings
-Min Bars Between Patterns to avoid repeated signals too close together in the same direction
Older patterns are automatically deleted once the display limit is exceeded.
🔸 Alerts
When enabled, alerts trigger on new confirmed detections:
-Bullish Pattern Detected
-Bearish Pattern Detected
Alerts fire once per bar when a new pattern is confirmed by a fresh pivot.
🔹 Calculations
This section summarizes the core logic used under the hood.
1) Pivot Detection and Swing Filtering
The script confirms pivots using right side confirmation, then optionally filters them by minimum swing distance relative to the last opposite pivot.
// Pivot detection
float pHigh = ta.pivothigh(high, pivotLeftBars, pivotRightBars)
float pLow = ta.pivotlow(low, pivotLeftBars, pivotRightBars)
// Example swing distance filter (conceptual)
abs(newPivot - lastOppPivot) / lastOppPivot >= minSwingPercent
Pivots are stored in capped arrays (high pivots and low pivots), ensuring performance and stable memory usage.
2) Ratio Measurements (Retracement and Extension)
The engine measures harmonic ratios using two core helpers:
Retracement measures how much the third point retraces the previous leg.
Extension measures how much the next leg extends relative to the previous leg.
// Retracement: (p3 - p2) compared to (p2 - p1)
calcRetracement(p1, p2, p3) =>
float leg = math.abs(p2.price - p1.price)
float retr = math.abs(p3.price - p2.price)
leg != 0 ? retr / leg : na
// Extension: (p4 - p3) compared to (p3 - p2)
calcExtension(p2, p3, p4) =>
float leg = math.abs(p3.price - p2.price)
float ext = math.abs(p4.price - p3.price)
leg != 0 ? ext / leg : na
For a standard XABCD pattern the script evaluates:
-XB retracement of XA
-AC retracement of AB
-BD extension of BC
-XD retracement of XA
3) Tolerance Based Range Check
Ratio validation uses a flexible range check that expands min and max by the tolerance percent:
isInRange(value, minVal, maxVal, tolerance) =>
float tolMin = minVal * (1.0 - tolerance)
float tolMax = maxVal * (1.0 + tolerance)
value >= tolMin and value <= tolMax
This means even “fixed” ratios (like 0.786) still allow a user controlled deviation.
4) Positional Sanity Check for D (Beyond X or Not)
Some harmonic patterns require D to remain within X (non extension patterns), while others require D to break beyond X (extension patterns). The script enforces that using a boolean flag in each template.
Conceptually:
-If the pattern is an extension type, D should cross beyond X in the expected direction
-If the pattern is not extension type, D should stay on the correct side of X
This prevents visually incorrect “ratio matches” that violate the intended geometry.
5) Template Definitions (Ranges + Ideal Targets)
Every pattern includes ratio ranges plus ideal values. The ideal values are used only for scoring quality, not for pass/fail. Example concept:
-Ranges determine validity
-Ideal targets determine ranking
6) Accuracy Scoring (Total Error)
When a candidate passes all validity checks, the script computes an accuracy score by summing absolute deviations from ideal ratios:
calcError(value, ideal) =>
math.abs(value - ideal)
// Total error is the sum of the four leg errors (as available for the pattern)
totalError =
calcError(xbRatio, xbIdeal) +
calcError(acRatio, acIdeal) +
calcError(bdRatio, bdIdeal) +
calcError(xdRatio, xdIdeal)
Lower score means closer to the “textbook” harmonic proportions.
7) Best Match Resolution (Choosing One Winner)
When multiple enabled patterns match the same pivot structure, the script selects the one with the lowest totalError:
updateBest(currentBest, newCandidate) =>
result = currentBest
if not na(newCandidate)
if na(currentBest) or newCandidate.totalError < currentBest.totalError
result := newCandidate
result
This is a major practical feature because it reduces clutter and highlights the highest quality interpretation.
8) Bullish and Bearish Scanning Logic
The scanner runs when pivots confirm:
-Bullish patterns are evaluated on a newly confirmed pivot low (potential D)
-Bearish patterns are evaluated on a newly confirmed pivot high (potential D)
From that D pivot, the script searches backward through stored pivots to build a valid pivot sequence (X,A,B,C,D). If 3 Drives is enabled, it also attempts to find the extra preceding point needed for the 6 point structure.
9) Rendering: Lines, Fill, Labels, and Leg Fib Text
After detection the script draws:
-Primary legs with thicker lines
-Geometric diagonals with dashed lines (for XABCD types)
-Optional fill between selected legs to emphasize the structure area
-A summary label showing direction, pattern name, and ratios
-Optional point labels and leg ratio labels placed near midpoints
To avoid overlapping with candles, the script offsets labels using ATR:
float yOff = math.max(ta.atr(14) * 0.15, syminfo.mintick * 10)
10) Pattern Lifecycle and Cleanup
To respect chart limits and keep visuals clean, the script deletes old drawings once the maximum visible patterns threshold is exceeded. This includes lines, fills, and labels.
ICT Candle Reading PROICT Candle Reading – Visual Clean
This indicator is designed to provide a clean and precise price reading, based on ICT and Smart Money Concepts, without cluttering the chart.
Its purpose is to help traders identify real institutional zones, understand market intention, and improve entry timing, using pure price action.
🔹 What does this indicator show?
🟢 Fair Value Gaps (FVG / Imbalances)
Detects market inefficiencies created by impulsive moves.
Displayed as clean and minimal boxes extended into the future.
Useful as mitigation, reaction, or continuation zones.
🟠 Liquidity Sweeps
Highlights liquidity grabs above recent highs or below recent lows.
Drawn using dashed horizontal lines.
Helps identify market manipulation before the true move.
🔵 Displacement Candles
Identifies candles with dominant bodies, showing institutional momentum.
Marked with small symbols to keep the chart clean.
Useful to confirm impulse starts or shifts in market intent.
🎯 Indicator Philosophy
❌ No lagging indicators
❌ No chart clutter
✅ Real ICT concepts
✅ Clean candle reading
✅ Suitable for scalping, intraday, and swing trading
⚙️ Customization
Each concept can be enabled or disabled individually.
Zone extension length is adjustable.
Optimized for 15M, 1H, and 4H timeframes.
📈 How to use
This indicator does not provide automatic buy/sell signals.
It is best used with:
Higher timeframe bias
Market structure
Session timing (London / New York)
Proper risk management
🧠 Final Notes
ICT Candle Reading – Visual Clean helps you see the market from an institutional perspective, focusing only on what truly matters: price, liquidity, and intent.






















