M-OscillatorThe M-Oscillator is a bounded oscillator that moves between (-14) and (+14), it gives early buy/sell signals, spots divergences, displays overbought/oversold levels, and provides re-entry points, and it also work as a trend identifier.
Interpretation
• M-Oscillator is plotted along the bottom of the price chart; it fluctuates between positive and negative 14.
• Movement above 10 is considered overbought, and movement below -10 is oversold.
• In sharp moves to the upside, the M-Oscillator fluctuates between 5 and 14, while in down side it fluctuates between -5 and -14.
• In an uptrend, the M-Oscillator fluctuates between zero and 14 and vice versa.
Trading tactics
Overbought/Oversold: We define the overbought area as anywhere above the 10 level.
The oversold area is below -10. When the M-Oscillator goes above 10 (overbought) and then re-crosses it to the downside, a sell signal is triggered.
When the M-Oscillator surpasses -10 to the downside and then re-crosses back above this level, a buy signal is triggered.
This tactic is only successful during sideways markets; during an uptrend, the oscillator will remain in its overbought territory for long period of times.
During a downtrend, it will remain in oversold for a long time.
Divergence
Divergence is one of the most striking features of the M-Oscillator.
It is a very important aspect of technical analysis that enhances trading tactics enormously; it shows hidden weakness or strength in the market, which is not apparent in the price action.
A positive divergence occurs when the price is declining and makes a lower low, while M-Oscillator witnesses a higher low.
A negative divergence occurs when the price is rising and makes a higher High, while the M-Oscillator makes a lower high, which indicates hidden weakness in the market.
Divergences are very important as they give us early hints of trend reversal (weekly chart)
Cerca negli script per "a股近10年第二天溢价的股票"
FUMO 200 MagnetWhat it does
FUMO Magnet measures how far price has stretched away from its long-term “magnet” — a blended EMA/SMA moving average (200 by default).
It plots a logarithmic deviation (optionally normalized) as an oscillator around zero.
Above 0** → price is above the magnet (stretched up)
Below 0** → price is below the magnet (stretched down)
Guide levels** highlight potential overbought/oversold zones
---
Why log deviation?
Log returns make extremes comparable across cycles and compress exponential trends — especially useful for BTC and other crypto assets.
Normalization modes further adjust the scale, keeping the oscillator readable on any chart.
---
Inputs
**Base**
* Source (default: Close)
* Base Length (default: 200 EMA/SMA)
* EMA vs SMA weight (%) — 0% = pure SMA, 100% = pure EMA, 50% = blended
* EMA smoothing of deviation — acts as a noise filter
**Normalization**
* None (Log Deviation) — raw log stretch in % terms
* Z-score — deviation in standard deviations (σ)
* Robust Z (MAD) — deviation vs median absolute deviation, resistant to outliers
* Tanh squash — smooth nonlinear squash of extremes for compact scale
* Normalization window (for Z / MAD)
* Tanh scale (lower = stronger squash)
* Clamp after normalization — hard cap at ±X
**Levels**
* Guide levels (Upper / Lower) — visual thresholds (default ±12)
* Zero line toggle
---
### How to read it
* **Trend bias**: sustained time above 0 = uptrend, below 0 = downtrend
* **Stretch / mean reversion**: the farther from 0, the higher the reversion risk
* **Cross-checks**: combine with structure (HH/HL, LH/LL), volume, or momentum (RSI, MACD)
---
### Recommended settings by timeframe
**Long-term (1D / 1W)**
* Normalization: None (Log Deviation)
* Base Length: 200
* EMA vs SMA weight: 50% (adjust 35–65% for faster/slower magnet)
* Deviation smoothing: 20 (10–30 range)
* Guide levels: ±12 to ±20
* Use case: cycle extremes, portfolio rebalancing, trim/add logic
**Swing (4H – 1D)**
* Normalization: Z-score
* Window: 200 (100–250)
* Smoothing: 14–20
* Guide levels: ±2σ to ±3σ
* Use case: stretched conditions across regimes; ±3σ is rare, often mean-reverts
**Intraday / Active swing (1H – 4H)**
* Normalization: Robust Z (MAD)
* Window: 200 (150 for faster response)
* Smoothing: 10–16
* Guide levels: ±3 to ±4 (robust units)
* Use case: handles spikes better than σ, fewer false overbought/oversold signals
**Scalping / Universal readability (15m – 1H)**
* Normalization: Tanh squash
* Tanh scale: 6–10 (start with 8)
* Smoothing: 8–12
* Guide levels: ±8 to ±12
* Use case: compact panel across assets and timeframes; not % or σ, but visually consistent
---
### Optional
* Clamp: enable ±20 (or ±25) for strict bounded range (useful for public charts)
---
### Quick setups
**BTC Daily (“cycle view”)**
* Normalization: None
* Blend: 50%
* Smooth: 20
* Levels: ±12–15
**BTC 4H (“swing”)**
* Normalization: Z-score
* Window: 200
* Smooth: 16
* Levels: ±2.5σ to ±3σ
**Alts 1H (“volatile”)**
* Normalization: Robust Z (MAD)
* Window: 200
* Smooth: 12
* Levels: ±3.5 to ±4.5
**Mixed assets 15m (“compact panel”)**
* Normalization: Tanh squash
* Scale: 8
* Smooth: 10
* Levels: ±8–12
* Clamp: ±20
Advanced Volume Profile Pro Delta + POC + VAH/VAL# Advanced Volume Profile Pro - Delta + POC + VAH/VAL Analysis System
## WHAT THIS SCRIPT DOES
This script creates a comprehensive volume profile analysis system that combines traditional volume-at-price distribution with delta volume calculations, Point of Control (POC) identification, and Value Area (VAH/VAL) analysis. Unlike standard volume indicators that show only total volume over time, this script analyzes volume distribution across price levels and estimates buying vs selling pressure using multiple calculation methods to provide deeper market structure insights.
## WHY THIS COMBINATION IS ORIGINAL AND USEFUL
**The Problem Solved:** Traditional volume indicators show when volume occurs but not where price finds acceptance or rejection. Standalone volume profiles lack directional bias information, while basic delta calculations don't provide structural context. Traders need to understand both volume distribution AND directional sentiment at key price levels.
**The Solution:** This script implements an integrated approach that:
- Maps volume distribution across price levels using configurable row density
- Estimates delta (buying vs selling pressure) using three different methodologies
- Identifies Point of Control (highest volume price level) for key support/resistance
- Calculates Value Area boundaries where 70% of volume traded
- Provides real-time alerts for key level interactions and volume imbalances
**Unique Features:**
1. **Developing POC Visualization**: Real-time tracking of Point of Control migration throughout the session via blue dotted trail, revealing institutional accumulation/distribution patterns before they complete
2. **Multi-Method Delta Calculation**: Price Action-based, Bid/Ask estimation, and Cumulative methods for different market conditions
3. **Adaptive Timeframe System**: Auto-adjusts calculation parameters based on chart timeframe for optimal performance
4. **Flexible Profile Types**: N Bars Back (precise control), Days Back (calendar-based), and Session-based analysis modes
5. **Advanced Imbalance Detection**: Identifies and highlights significant buying/selling imbalances with configurable thresholds
6. **Comprehensive Alert System**: Monitors POC touches, Value Area entry/exit, and major volume imbalances
## HOW THE SCRIPT WORKS TECHNICALLY
### Core Volume Profile Methodology:
**1. Price Level Distribution:**
- Divides price range into user-defined rows (10-50 configurable)
- Calculates row height: `(Highest Price - Lowest Price) / Number of Rows`
- Distributes each bar's volume across price levels it touched proportionally
**2. Delta Volume Calculation Methods:**
**Price Action Method:**
```
Price Range = High - Low
Buy Pressure = (Close - Low) / Price Range
Sell Pressure = (High - Close) / Price Range
Buy Volume = Total Volume × Buy Pressure
Sell Volume = Total Volume × Sell Pressure
Delta = Buy Volume - Sell Volume
```
**Bid/Ask Estimation Method:**
```
Average Price = (High + Low + Close) / 3
Buy Volume = Close > Average ? Volume × 0.6 : Volume × 0.4
Sell Volume = Total Volume - Buy Volume
```
**Cumulative Method:**
```
Buy Volume = Close > Open ? Volume : Volume × 0.3
Sell Volume = Close ≤ Open ? Volume : Volume × 0.3
```
**3. Point of Control (POC) Identification:**
- Scans all price levels to find maximum volume concentration
- POC represents the price level with highest trading activity
- Acts as significant support/resistance level
- **Developing POC Feature**: Tracks POC evolution in real-time via blue dotted trail, showing how institutional interest migrates throughout the session. Upward POC migration indicates accumulation patterns, downward migration suggests distribution, providing early trend signals before price confirmation.
**4. Value Area Calculation:**
- Starts from POC and expands up/down to encompass 70% of total volume
- VAH (Value Area High): Upper boundary of value area
- VAL (Value Area Low): Lower boundary of value area
- Expansion algorithm prioritizes direction with higher volume
**5. Adaptive Range Selection:**
Based on profile type and timeframe optimization:
- **N Bars Back**: Fixed lookback period with performance optimization (20-500 bars)
- **Days Back**: Calendar-based analysis with automatic timeframe adjustment (1-365 days)
- **Session**: Current trading session or custom session times
### Performance Optimization Features:
- **Sampling Algorithm**: Reduces calculation load on large datasets while maintaining accuracy
- **Memory Management**: Clears previous drawings to prevent performance degradation
- **Safety Constraints**: Prevents excessive memory usage with configurable limits
## HOW TO USE THIS SCRIPT
### Initial Setup:
1. **Profile Configuration**: Select profile type based on trading style:
- N Bars Back: Precise control over data range
- Days Back: Intuitive calendar-based analysis
- Session: Real-time session development
2. **Row Density**: Set number of rows (30 default) - more rows = higher resolution, slower performance
3. **Delta Method**: Choose calculation method based on market type:
- Price Action: Best for trending markets
- Bid/Ask Estimate: Good for ranging markets
- Cumulative: Smoothed approach for volatile markets
4. **Visual Settings**: Configure colors, position (left/right), and display options
### Reading the Profile:
**Volume Bars:**
- **Length**: Represents relative volume at that price level
- **Color**: Green = net buying pressure, Red = net selling pressure
- **Intensity**: Darker colors indicate volume imbalances above threshold
**Key Levels:**
- **POC (Blue Line)**: Highest volume price - major support/resistance
- **VAH (Purple Dashed)**: Value Area High - upper boundary of fair value
- **VAL (Orange Dashed)**: Value Area Low - lower boundary of fair value
- **Value Area Fill**: Shaded region showing main trading range
**Developing POC Trail:**
- **Blue Dotted Lines**: Show real-time POC evolution throughout the session
- **Migration Patterns**: Upward trail indicates bullish accumulation, downward trail suggests bearish distribution
- **Early Signals**: POC movement often precedes price movement, providing advance warning of institutional activity
- **Institutional Footprints**: Reveals where smart money concentrated volume before final POC establishment
### Trading Applications:
**Support/Resistance Analysis:**
- POC acts as magnetic price level - expect reactions
- VAH/VAL provide intermediate support/resistance levels
- Profile edges show areas of low volume acceptance
**Developing POC Analysis:**
- **Upward Migration**: POC moving higher = institutional accumulation, bullish bias
- **Downward Migration**: POC moving lower = institutional distribution, bearish bias
- **Stable POC**: Tight clustering = balanced market, range-bound conditions
- **Early Trend Detection**: POC direction change often precedes price breakouts
**Entry Strategies:**
- Buy at VAL with POC as target (in uptrends)
- Sell at VAH with POC as target (in downtrends)
- Breakout plays above/below profile extremes
**Volume Imbalance Trading:**
- Strong buying imbalance (>60% threshold) suggests continued upward pressure
- Strong selling imbalance suggests continued downward pressure
- Imbalances near key levels provide high-probability setups
**Multi-Timeframe Context:**
- Use higher timeframe profiles for major levels
- Lower timeframe profiles for precise entries
- Session profiles for intraday trading structure
## SCRIPT SETTINGS EXPLANATION
### Volume Profile Settings:
- **Profile Type**: Determines data range for calculation
- N Bars Back: Exact number of bars (20-500 range)
- Days Back: Calendar days with timeframe adaptation (1-365 days)
- Session: Trading session-based (intraday focus)
- **Number of Rows**: Profile resolution (10-50 range)
- **Profile Width**: Visual width as chart percentage (10-50%)
- **Value Area %**: Volume percentage for VA calculation (50-90%, 70% standard)
- **Auto-Adjust**: Automatically optimizes for different timeframes
### Delta Volume Settings:
- **Show Delta Volume**: Enable/disable delta calculations
- **Delta Calculation Method**: Choose methodology based on market conditions
- **Highlight Imbalances**: Visual emphasis for significant volume imbalances
- **Imbalance Threshold**: Percentage for imbalance detection (50-90%)
### Session Settings:
- **Session Type**: Daily, Weekly, Monthly, or Custom periods
- **Custom Session Time**: Define specific trading hours
- **Previous Sessions**: Number of historical sessions to display
### Days Back Settings:
- **Lookback Days**: Number of calendar days to analyze (1-365)
- **Automatic Calculation**: Script automatically converts days to bars based on timeframe:
- Intraday: Accounts for 6.5 trading hours per day
- Daily: 1 bar per day
- Weekly/Monthly: Proportional adjustment
### N Bars Back Settings:
- **Lookback Bars**: Exact number of bars to analyze (20-500)
- **Precise Control**: Best for systematic analysis and backtesting
### Visual Customization:
- **Colors**: Bullish (green), Bearish (red), and level colors
- **Profile Position**: Left or Right side of chart
- **Profile Offset**: Distance from current price action
- **Labels**: Show/hide level labels and values
- **Smooth Profile Bars**: Enhanced visual appearance
### Alert Configuration:
- **POC Touch**: Alerts when price interacts with Point of Control
- **VA Entry/Exit**: Alerts for Value Area boundary interactions
- **Major Imbalance**: Alerts for significant volume imbalances
## VISUAL FEATURES
### Profile Display:
- **Horizontal Bars**: Volume distribution across price levels
- **Color Coding**: Delta-based coloring for directional bias
- **Smooth Rendering**: Optional smoothing for cleaner appearance
- **Transparency**: Configurable opacity for chart readability
### Level Lines:
- **POC**: Solid blue line with optional label
- **VAH/VAL**: Dashed colored lines with value displays
- **Extension**: Lines extend across relevant time periods
- **Value Area Fill**: Optional shaded region between VAH/VAL
### Information Table:
- **Current Values**: Real-time POC, VAH, VAL prices
- **VA Range**: Value Area width calculation
- **Positioning**: Multiple table positions available
- **Text Sizing**: Adjustable for different screen sizes
## IMPORTANT USAGE NOTES
**Realistic Expectations:**
- Volume profile analysis provides structural context, not trading signals
- Delta calculations are estimations based on price action, not actual order flow
- Past volume distribution does not guarantee future price behavior
- Combine with other analysis methods for comprehensive market view
**Best Practices:**
- Use appropriate profile types for your trading style:
- Day Trading: Session or Days Back (1-5 days)
- Swing Trading: Days Back (10-30 days) or N Bars Back
- Position Trading: Days Back (60-180 days)
- Consider market context (trending vs ranging conditions)
- Verify key levels with additional technical analysis
- Monitor profile development for changing market structure
**Performance Considerations:**
- Higher row counts increase calculation complexity
- Large lookback periods may affect chart performance
- Auto-adjust feature optimizes for most use cases
- Consider using session profiles for intraday efficiency
**Limitations:**
- Delta calculations are estimations, not actual transaction data
- Profile accuracy depends on available price/volume history
- Effectiveness varies across different instruments and market conditions
- Requires understanding of volume profile concepts for optimal use
**Data Requirements:**
- Requires volume data for accurate calculations
- Works best on liquid instruments with consistent volume
- May be less effective on very low volume or exotic instruments
This script serves as a comprehensive volume analysis tool for traders who need detailed market structure information with integrated directional bias analysis and real-time POC development tracking for informed trading decisions.
Chart-Only Scanner — Pro Table v2.5.1Chart-Only Scanner — Pro Table v2.5
User Manual (Pine Script v6)
What this tool does (in one line)
A compact, on-chart table that scores the current chart symbol (or an optional override) using momentum, volume, trend, volatility, and pattern checks—so you can quickly decide UP, DOWN, or WAIT.
Quick Start (90 seconds)
Add the indicator to any chart and timeframe (1m…1M).
Leave “Override chart symbol” = OFF to auto-use the chart’s symbol.
Choose your layout:
Row (wide horizontal strip), or Grid (title + labeled cells).
Pick a size preset (Micro, Small, Medium, Large, Mobile).
Optional: turn on “Use Higher TF (EMA 20/50)” and set HTF Multiplier (e.g., 4 ⇒ if chart is 15m, HTF is 60m).
Watch the table:
DIR (↑/↓/→), ROC%, MOM, VOL, EMA stack, HTF, REV, SCORE, ACT.
Add an alert if you want: the script fires when |SCORE| ≥ Action threshold.
What to expect
A small table appears on the chart corner you choose, updating each bar (or only at bar close if you keep default smart-update).
The ACT cell shows 🔥 (strong), 👀 (medium), or ⏳ (weak).
Panels & Settings (every option explained)
Core
Momentum Period: Lookback for rate-of-change (ROC%). Shorter = more reactive; longer = smoother.
ROC% Threshold: Minimum absolute ROC% to call direction UP (↑) or DOWN (↓); otherwise →.
Require Volume Confirmation: If ON and VOL ≤ 1.0, the SCORE is forced to 0 (prevents low-volume false positives).
Override chart symbol + Custom symbol: By default, the indicator uses the chart’s symbol. Turn this ON to lock to a specific ticker (e.g., a perpetual).
Higher TF
Use Higher TF (EMA 20/50): Compares EMA20 vs EMA50 on a higher timeframe.
HTF Multiplier: Higher TF = (chart TF × multiplier).
Example: on 3H chart with multiplier 2 ⇒ HTF = 6H.
Volatility & Oscillators
ATR Length: Used to show ATR% (ATR relative to price).
RSI Length: Standard RSI; colors: green ≤30 (oversold), red ≥70 (overbought).
Stoch %K Length: With %D = SMA(%K, 3).
MACD Fast/Slow/Signal: Standard MACD values; we display Line, Signal, Histogram (L/S/H).
ADX Length (Wilder): Wilder’s smoothing (internal derivation); also shows +DI / −DI if you enable the ADX column.
EMAs / Trend
EMA Fast/Mid/Slow: We compute EMA(20/50/200) by default (editable).
EMA Stack: Bull if Fast > Mid > Slow; Bear if Fast < Mid < Slow; Flat otherwise.
Benchmark (optional, OFF by default)
Show Relative Strength vs Benchmark: Displays RS% = ROC(symbol) − ROC(benchmark) over the Momentum Period.
Benchmark Symbol: Ticker used for comparison (e.g., BTCUSDT as a market proxy).
Columns (show/hide)
Toggle which fields appear in the table. Hiding unused fields keeps the layout clean (especially on mobile).
Display
Layout Mode:
Row = a single two-row strip; each column is a metric.
Grid = a title row plus labeled pairs (label/value) arranged in rows.
Size Preset: Micro, Small, Medium, Large, Mobile change text size and the grid density.
Table Corner: Where the panel sits (e.g., Top Right).
Opaque Table Background: ON = dark card; OFF = transparent(ish).
Update Every Bar: ON = update intra-bar; OFF = smart update (last bar / real-time / confirmed history).
Action threshold (|score|): The cutoff for 🔥 and alert firing (default 70).
How to read each field
CHART: The active symbol name (or your custom override).
DIR: ↑ (ROC% > threshold), ↓ (ROC% < −threshold), → otherwise.
ROC%: Rate of change over Momentum Period.
Formula: (Close − Close ) / Close × 100.
MOM: A scaled momentum score: min(100, |ROC%| × 10).
VOL: Volume ratio vs 20-bar SMA: Volume / SMA(Volume,20).
1.5 highlights as yellow (significant participation).
ATR%: (ATR / Close) × 100 (volatility relative to price).
RSI: Colored for extremes: ≤30 green, ≥70 red.
Stoch K/D: %K and %D numbers.
MACD L/S/H: Line, Signal, Histogram. Histogram color reflects sign (green > 0, red < 0).
ADX, +DI, −DI: Trend strength and directional components (Wilder). ADX ≥ 25 is highlighted.
EMA 20/50/200: Current EMA values (editable lengths).
STACK: Bull/Bear/Flat as defined above.
VWAP%: (Close − VWAP) / Close × 100 (premium/discount to VWAP).
HTF: ▲ if HTF EMA20 > EMA50; ▼ if <; · if flat/off.
RS%: Symbol’s ROC% − Benchmark ROC% (positive = outperforming).
REV (reversal):
🟢 Eng/Pin = bullish engulfing or bullish pin detected,
🔴 Eng/Pin = bearish engulfing or bearish pin,
· = none.
SCORE (absolute shown as a number; sign shown via DIR and ACT):
Components:
base = MOM × 0.4
volBonus = VOL > 1.5 ? 20 : VOL × 13.33
htfBonus = use_mtf ? (HTF == DIR ? 30 : HTF == 0 ? 15 : 0) : 0
trendBonus = (STACK == DIR) ? 10 : 0
macdBonus = 0 (placeholder for future versions)
scoreRaw = base + volBonus + htfBonus + trendBonus + macdBonus
SCORE = DIR ≥ 0 ? scoreRaw : −scoreRaw
If Require Volume Confirmation and VOL ≤ 1.0 ⇒ SCORE = 0.
ACT:
🔥 if |SCORE| ≥ threshold
👀 if 50 < |SCORE| < threshold
⏳ otherwise
Practical examples
Strong long (trend + participation)
DIR = ↑, ROC% = +3.2, MOM ≈ 32, VOL = 1.9, STACK = Bull, HTF = ▲, REV = 🟢
SCORE: base(12.8) + volBonus(20) + htfBonus(30) + trend(10) ≈ 73 → ACT = 🔥
Action idea: look for longs on pullbacks; confirm risk with ATR%.
Weak long (no volume)
DIR = ↑, ROC% = +1.0, but VOL = 0.8 and Require Volume Confirmation = ON
SCORE forced to 0 → ACT = ⏳
Action: wait for volume > 1.0 or turn off confirmation knowingly.
Bearish reversal warning
DIR = →, REV = 🔴 (bearish engulfing), RSI = 68, HTF = ▼
SCORE may be mid-range; ACT = 👀
Action: watch for breakdown and rising VOL.
Alerts (how to use)
The script calls alert() whenever |SCORE| ≥ Action threshold.
To receive pop-ups, sounds, or emails: click “⏰ Alerts” in TradingView, choose this indicator, and pick “Any alert() function call.”
The alert message includes: symbol, |SCORE|, DIR.
Layout, Size, and Corner tips
Row is best when you want a compact status ribbon across the top.
Grid is clearer on big screens or when you enable many columns.
Size:
Mobile = one pair per row (tall, readable)
Micro/Small = dense; good for many fields
Large = presentation/screenshots
Corner: If the table overlaps price, change the corner or set Opaque Background = OFF.
Repaint & timeframe behavior
Default smart update prefers stability (last bar / live / confirmed history).
For a stricter, “close-only” behavior (less repaint): turn Update Every Bar = OFF and avoid Heikin Ashi when you want raw market OHLC (HA modifies price inputs).
HTF logic is derived from a clean, integer multiple of your chart timeframe (via multiplier). It works with 3H/4H and any TF.
Performance notes
The script analyzes one symbol (chart or override) with multiple metrics using efficient tuple requests.
If you later want a multi-symbol grid, do it with pages (10–15 per page + rotate) to stay within platform limits (recommended future add-on).
Troubleshooting
No table visible
Ensure the indicator is added and not hidden.
Try toggling Opaque Background or switch Corner (it might be behind other drawings).
Keep Columns count reasonable for the chosen Size.
If you turned ON Override, verify the Custom symbol exists on your data provider.
Numbers look different on HA candles
Heikin Ashi modifies OHLC; switch to regular candles if you need raw price metrics.
3H/4H issues
Use integer HTF Multiplier (e.g., 2, 4). The tool builds the correct string internally; no manual timeframe strings needed.
Power user tips
Volume gating: keeping Require Volume Confirmation = ON filters most fake moves; if you’re a scalper, reduce strictness or turn it off.
Action threshold: 60–80 is typical. Higher = fewer but stronger signals.
Benchmark RS%: great for spotting leaders/laggards; positive RS% = outperformance vs benchmark.
Change policy & safety
This version doesn’t alter your historical logic you tested (no radical changes).
Any future “radical” change (score weights, HTF logic, UI hiding data) will ship with a toggle and an Impact Statement so you can keep old behavior if you prefer.
Glossary (quick)
ROC%: Percent change over N bars.
MOM: Scaled momentum (0–100).
VOL ratio: Volume vs 20-bar average.
ATR%: ATR as % of price.
ADX/DI: Trend strength / direction components (Wilder).
EMA stack: Relationship between EMAs (bullish/bearish/flat).
VWAP%: Premium/discount to VWAP.
RS%: Relative strength vs benchmark.
Dual Volume Profiles: Session + Rolling (Range Delineation)Dual Volume Profiles: Session + Rolling (Range Delineation)
INTRO
This is a probability-centric take on volume profile. I treat the volume histogram as an empirical PDF over price, updated in real time, which makes multi-modality (multiple acceptance basins) explicit rather than assumed away. The immediate benefit is operational: if we can read the shape of the distribution, we can infer likely reversion levels (POC), acceptance boundaries (VAH/VAL), and low-friction corridors (LVNs).
My working hypothesis is that what traders often label “fat tails” or “power-law behavior” at short horizons is frequently a tail-conditioned view of a higher-level Gaussian regime. In other words, child distributions (shorter periodicities) sit within parent distributions (longer periodicities); when price operates in the parent’s tail, the child regime looks heavy-tailed without being fundamentally non-Gaussian. This is consistent with a hierarchical/mixture view and with the spirit of the central limit theorem—Gaussian structure emerges at aggregate scales, while local scales can look non-Gaussian due to nesting and conditioning.
This indicator operationalizes that view by plotting two nested empirical PDFs: a rolling (local) profile and a session-anchored profile. Their confluence makes ranges explicit and turns “regime” into something you can see. For additional nesting, run multiple instances with different lookbacks. When using the default settings combined with a separate daily VP, you effectively get three nested distributions (local → session → daily) on the chart.
This indicator plots two nested distributions side-by-side:
Rolling (Local) Profile — short-window, prorated histogram that “breathes” with price and maps the immediate auction.
Session Anchored Profile — cumulative distribution since the current session start (Premkt → RTH → AH anchoring), revealing the parent regime.
Use their confluence to identify range floors/ceilings, mean-reversion magnets, and low-volume “air pockets” for fast traverses.
What it shows
POC (dashed): central tendency / “magnet” (highest-volume bin).
VAH & VAL (solid): acceptance boundaries enclosing an exact Value Area % around each profile’s POC.
Volume histograms:
Rolling can auto-color by buy/sell dominance over the lookback (green = buying ≥ selling, red = selling > buying).
Session uses a fixed style (blue by default).
Session anchoring (exchange timezone):
Premarket → anchors at 00:00 (midnight).
RTH → anchors at 09:30.
After-hours → anchors at 16:00.
Session display span:
Session Max Span (bars) = 0 → draw from session start → now (anchored).
> 0 → draw a rolling window N bars back → now, while still measuring all volume since session start.
Why it’s useful
Think in terms of nested probability distributions: the rolling node is your local Gaussian; the session node is its parent.
VA↔VA overlap ≈ strong range boundary.
POC↔POC alignment ≈ reliable mean-reversion target.
LVNs (gaps) ≈ low-friction corridors—expect quick moves to the next node.
Quick start
Add to chart (great on 5–10s, 15–60s, 1–5m).
Start with: bins = 240, vaPct = 0.68, barsBack = 60.
Watch for:
First test & rejection at overlapping VALs/VAHs → fade back toward POC.
Acceptance beyond VA (several closes + growing outer-bin mass) → traverse to the next node.
Inputs (detailed)
General
Lookback Bars (Rolling)
Count of most-recent bars for the rolling/local histogram. Larger = smoother node that shifts slower; smaller = more reactive, “breathing” profile.
• Typical: 40–80 on 5–10s charts; 60–120 on 1–5m.
• If you increase this but keep Number of Bins fixed, each bin aggregates more volume (coarser bins).
Number of Bins
Vertical resolution (price buckets) for both rolling and session histograms. Higher = finer detail and crisper LVNs, but more line objects (closer to platform limits).
• Typical: 120–240 on 5–10s; 80–160 on 1–5m.
• If you hit performance or object limits, reduce this first.
Value Area %
Exact central coverage for VAH/VAL around POC. Computed empirically from the histogram (no Gaussian assumption): the algorithm expands from POC outward until the chosen % is enclosed.
• Common: 0.68 (≈“1σ-like”), 0.70 for slightly wider core.
• Smaller = tighter VA (more breakout flags). Larger = wider VA (more reversion bias).
Max Local Profile Width (px)
Horizontal length (in pixels) of the rolling bars/lines and its VA/POC overlays. Visual only (does not affect calculations).
Session Settings
RTH Start/End (exchange tz)
Defines the current session anchor (Premkt=00:00, RTH=your start, AH=your end). The session histogram always measures from the most recent session start and resets at each boundary.
Session Max Span (bars, 0 = full session)
Display window for session drawings (POC/VA/Histogram).
• 0 → draw from session start → now (anchored).
• > 0 → draw N bars back → now (rolling look), while still measuring all volume since session start.
This keeps the “parent” distribution measurable while letting the display track current action.
Local (Rolling) — Visibility
Show Local Profile Bars / POC / VAH & VAL
Toggle each overlay independently. If you approach object limits, disable bars first (POC/VA lines are lighter).
Local (Rolling) — Colors & Widths
Color by Buy/Sell Dominance
Fast uptick/downtick proxy over the rolling window (close vs open):
• Buying ≥ Selling → Bullish Color (default lime).
• Selling > Buying → Bearish Color (default red).
This color drives local bars, local POC, and local VA lines.
• Disable to use fixed Bars Color / POC Color / VA Lines Color.
Bars Transparency (0–100) — alpha for the local histogram (higher = lighter).
Bars Line Width (thickness) — draw thin-line profiles or chunky blocks.
POC Line Width / VA Lines Width — overlay thickness. POC is dashed, VAH/VAL solid by design.
Session — Visibility
Show Session Profile Bars / POC / VAH & VAL
Independent toggles for the session layer.
Session — Colors & Widths
Bars/POC/VA Colors & Line Widths
Fixed palette by design (default blue). These do not change with buy/sell dominance.
• Use transparency and width to make the parent profile prominent or subtle.
• Prefer minimal? Hide session bars; keep only session VA/POC.
Reading the signals (detailed playbook)
Core definitions
POC — highest-volume bin (fair price “magnet”).
VAH/VAL — upper/lower bounds enclosing your Value Area % around POC.
Node — contiguous block of high-volume bins (acceptance).
LVN — low-volume gap between nodes (low friction path).
Rejection vs Acceptance (practical rule)
Rejection at VA edge: 0–1 closes beyond VA and no persistent growth in outer bins.
Acceptance beyond VA: ≥3 closes beyond VA and outer-bin mass grows (e.g., added volume beyond the VA edge ≥ 5–10% of node volume over the last N bars). Treat acceptance as regime change.
Confluence scores (make boundary/target quality objective)
VA overlap strength (range boundary):
C_VA = 1 − |VA_edge_local − VA_edge_session| / ATR(n)
Values near 1.0 = tight overlap (stronger boundary).
Use: if C_VA ≥ 0.6–0.8, treat as high-quality fade zone.
POC alignment (magnet quality):
C_POC = 1 − |POC_local − POC_session| / ATR(n)
Higher C_POC = greater chance a rotation completes to that fair price.
(You can estimate these by eye.)
Setups
1) Range Fade at VA Confluence (mean reversion)
Context: Local VAL/VAH near Session VAL/VAH (tight overlap), clear node, local color not screaming trend (or flips to your side).
Entry: First test & rejection at the overlapped band (wick through ok; prefer close back inside).
Stop: A tick/pip beyond the wider of the two VA edges or beyond the nearest LVN, a small buffer zone can be used to judge whether price is truly rejecting a VAL/VAH or simply probing.
Targets: T1 node mid; T2 POC (size up when C_POC is high).
Flip: If acceptance (rule above) prints, flip bias or stand down.
2) LVN Traverse (continuation)
Context: Price exits VA and enters an LVN with acceptance and growing outer-bin volume.
Entry: Aggressive—first close into LVN; Conservative—retest of the VA edge from the far side (“kiss goodbye”).
Stop: Back inside the prior VA.
Targets: Next node’s VA edge or POC (edge = faster exits; POC = fuller rotations).
Note: Flatter VA edge (shallower curvature) tends to breach more easily.
3) POC→POC Magnet Trade (rotation completion)
Context: Local POC ≈ Session POC (high C_POC).
Entry: Fade a VA touch or pullback inside node, aiming toward the shared POC.
Stop: Past the opposite VA edge or LVN beyond.
Target: The shared POC; optional runner to opposite VA if the node is broad and time-of-day is supportive.
4) Failed Break (Reversion Snap-back)
Context: Push beyond VA fails acceptance (re-enters VA, outer-bin growth stalls/shrinks).
Entry: On the re-entry close, back toward POC.
Stop/Target: Stop just beyond the failed VA; target POC, then opposite VA if momentum persists.
How to read color & shape
Local color = most recent sentiment:
Green = buying ≥ selling; Red = selling > buying (over the rolling window). Treat as context, not a standalone signal. A green local node under a blue session VAH can still be a fade if the parent says “over-valued.”
Shape tells friction:
Fat nodes → rotation-friendly (fade edges).
Sharp LVN gaps → traversal-friendly (momentum continuation).
Time-of-day intuition
Right after session anchor (e.g., RTH 09:30): Session profile is young and moves quickly—treat confluence cautiously.
Mid-session: Cleanest behavior for rotations.
Close / news: Expect more traverses and POC migrations; tighten risk or switch playbooks.
Risk & execution guidance
Use tight, mechanical stops at/just beyond VA or LVN. If you need wide stops to survive noise, your entry is late or the node is unstable.
On micro-timeframes, account for fees & slippage—aim for targets paying ≥2–3× average cost.
If acceptance prints, don’t fight it—flip, reduce size, or stand aside.
Suggested presets
Scalp (5–10s): bins 120–240, barsBack 40–80, vaPct 0.68–0.70, local bars thin (small bar width).
Intraday (1–5m): bins 80–160, barsBack 60–120, vaPct 0.68–0.75, session bars more visible for parent context.
Performance & limits
Reuses line objects to stay under TradingView’s max_lines_count.
Very large bins × multiple overlays can still hit limits—use visibility toggles (hide bars first).
Session drawings use time-based coordinates to avoid “bar index too far” errors.
Known nuances
Rolling buy/sell dominance uses a simple uptick/downtick proxy (close vs open). It’s fast and practical, but it’s not a full tape classifier.
VA boundaries are computed from the empirical histogram—no Gaussian assumption.
This script does not calculate the full daily volume profile. Several other tools already provide that, including TradingView’s built-in Volume Profile indicators. Instead, this indicator focuses on pairing a rolling, short-term volume distribution with a session-wide distribution to make ranges more explicit. It is designed to supplement your use of standard or periodic volume profiles, not replace them. Think of it as a magnifying lens that helps you see where local structure aligns with the broader session.
How to trade it (TL;DR)
Fade overlapping VA bands on first rejection → target POC.
Continue through LVN on acceptance beyond VA → target next node’s VA/POC.
Respect acceptance: ≥3 closes beyond VA + growing outer-bin volume = regime change.
FAQ
Q: Why 68% Value Area?
A: It mirrors the “~1σ” idea, but we compute it exactly from empirical volume, not by assuming a normal distribution.
Q: Why are my profiles thin lines?
A: Increase Bars Line Width for chunkier blocks; reduce for fine, thin-line profiles.
Q: Session bars don’t reach session start—why?
A: Set Session Max Span (bars) = 0 for full anchoring; any positive value draws a rolling window while still measuring from session start.
Changelog (v1.0)
Dual profiles: Rolling + Session with independent POC/VA lines.
Session anchoring (Premkt/RTH/AH) with optional rolling display span.
Dynamic coloring for the rolling profile (buying vs selling).
Fully modular toggles + per-feature colors/widths.
Thin-line rendering via bar line width.
Egg vs Tennis Ball — Drop/Rebound StrengthEgg vs Tennis Ball — Drop/Rebound Meter
What it does
Classifies selloffs as either:
Eggs — dead‑cat, no bounce
Tennis Balls — fast, decisive rebound
Core features
Detects swing drops from a Pivot High (PH) to a Pivot Low (PL)
Requires drops to be meaningful (volatility‑aware, ATR‑scaled)
Draws a bounce threshold line and a deadline
Decides outcome based on speed and extent of rebound
Tracks scores and win rates across multiple lookback windows
Includes a color‑coded meter and current streak display
Visuals at a glance
Gray diagonal — drop from PH to PL
Teal dotted horizontal — bounce threshold, from PH to the deadline
Solid green — Tennis Ball (bounce line broken before the deadline)
Solid red — Egg (deadline expired before the bounce)
Optional PH / PL labels for clarity
How the decision is made
1) Find pivots — symmetric pivots using Pivot Left / Right; PL confirms after Right bars.
2) Qualify the drop — Drop Size = PH − PL; must be ≥ (Drop Threshold × ATR at PL).
3) Define the bounce line — PL + (Bounce Multiple × Drop Size). 1.00× = full retrace to PH; up to 2.00× for overshoot.
4) Set the deadline — Drop Bars = PL index − PH index; Deadline = Drop Bars × Recovery Factor; timer starts from PH or PL.
5) Resolve — Tennis Ball if price hits the bounce line before the deadline; Egg if the deadline passes first.
Scoring system (−100 to +100)
+100 = perfect Tennis Ball (fastest possible + full overshoot)
−100 = perfect Egg (no recovery)
In between: scored by rebound speed and extent, shaped by your weight settings
Meter Table
Columns (toggle on/off)
All (off by default)
Last N1 (default 5)
Last N2 (default 10)
Last N3 (default 20)
Rows
Tennis / Eggs — counts
% Tennis — win rate
Avg Score — normalized quality from −100 to +100
Streak — overall (not windowed), e.g., +3 = 3 Tennis Balls in a row, −4 = 4 Eggs in a row
Alerts
Tennis Ball – Fast Rebound — triggers when the bounce line is broken in time
Egg – Window Expired — triggers when the deadline passes without a bounce
Inputs
① Drop Detection
Pivot Left / Right
ATR Length
Drop Threshold × ATR
② Bounce Requirement
Bounce Multiple × Drop Size (0.10–2.00×)
③ Timing
Timer Start — PH or PL
Recovery Factor × Drop Bars
Break Trigger — Close or High
④ Display
Show Pivot/Outcome Labels
Line Width
Table Position (corner)
⑤ Meter Columns
Show All (off by default)
Show N1 / N2 / N3 (5, 10, 20 by default)
⑥ Scoring Weights
Tennis — Base, Speed, Extent
Egg — Base, Strength
How to use it
Pick strictness — start with Drop Threshold = 2.0 ATR, Bounce Multiple = 1.0×, Recovery Factor = 3.0×; adjust to timeframe and volatility.
Watch the dotted line — it ends at the deadline; turns solid green (Tennis) if broken in time, solid red (Egg) if it expires.
Read the meter — short windows (5–10) show current behavior; Avg Score captures quality; Streak shows momentum.
Blend with your system — combine with trend filters, volume, or regime detection.
Tips
Close vs High trigger: Close is stricter; High is more responsive.
PH vs PL timer start: PH measures round‑trip; PL measures recovery only.
Increase pivot strength for fewer, more reliable signals.
Higher timeframes generally produce cleaner patterns.
Defaults
Pivot L/R: 5 / 5
ATR Length: 14
Drop Threshold: 2.0× ATR
Bounce Multiple: 1.00×
Recovery Factor: 3.0×
Break Trigger: Close
Windows: Last 5, 10, 20 (All off)
Interpreting results
Tennis‑y: Avg Score +30 to +70, %Tennis > 55%
Mixed: Avg Score near 0
Egg‑y: Avg Score −30 to −80, %Tennis < 45%
Dip Hunter [BackQuant]Dip Hunter
What this tool does in plain language
Dip Hunter is a pullback detector designed to find high quality buy-the-dip opportunities inside healthy trends and to avoid random knife catches. It watches for a quick drop from a recent high, checks that the drop happened with meaningful participation and volatility, verifies short-term weakness inside a larger uptrend, then scores the setup and paints the chart so you can act with confidence. It also draws clean entry lines, provides a meter that shows dip strength at a glance, and ships with alerts that match common execution workflows.
How Dip Hunter thinks
It defines a recent swing reference, measures how far price has dipped off that high, and only looks at candidates that meet your minimum percentage drop.
It confirms the dip with real activity by requiring a volume spike and a volatility spike.
It checks structure with two EMAs. Price should be weak in the short term while the larger context remains constructive.
It optionally requires a higher-timeframe trend to be up so you focus on pullbacks in trending markets.
It bundles those checks into a score and shows you the score on the candles and on a gradient meter.
When everything lines up it paints a green triangle below the bar, shades the background, and (if you wish) draws a horizontal entry line at your chosen level.
Inputs and what they mean
Dip Hunter Settings
• Vol Lookback and Vol Spike : The script computes an average volume over the lookback window and flags a spike when current volume is a multiple of that average. A multiplier of 2.0 means today’s volume must be at least double the average. This helps filter noise and focuses on dips that other traders actually traded.
• Fast EMA and Slow EMA : Short-term and medium-term structure references. A dip is more credible if price closes below the fast EMA while the fast EMA is still below the slow EMA during the pullback. That is classic corrective behavior inside a larger trend.
• Price Smooth : Optional smoothing length for price-derived series. Use this if you trade very noisy assets or low timeframes.
• Volatility Len and Vol Spike (volatility) : The script checks both standard deviation and true range against their own averages. If either expands beyond your multiplier the market confirms the move with range.
• Dip % and Lookback Bars : The engine finds the highest high over the lookback window, then computes the percentage drawdown from that high to the current close. Only dips larger than your threshold qualify.
Trend Filter
• Enable Trend Filter : When on, Dip Hunter will only trigger if the market is in an uptrend.
• Trend EMA Period : The longer EMA that defines the session’s backbone trend.
• Minimum Trend Strength : A small positive slope requirement. In practice this means the trend EMA should be rising, and price should be above it. You can raise the value to be more selective.
Entries
• Show Entry Lines : Draws a horizontal guide from the signal bar for a fixed number of bars. Great for limit orders, scaling, or re-tests.
• Line Length (bars) : How far the entry guide extends.
• Min Gap (bars) : Suppresses new entry lines if another dip fired recently. Prevents clutter during choppy sequences.
• Entry Price : Choose the line level. “Low” anchors at the signal candle’s low. “Close” anchors at the signal close. “Dip % Level” anchors at the theoretical level defined by recent_high × (1 − dip%). This lets you work resting orders at a consistent discount.
Heat / Meter
• Color Bars by Score : Colors each candle using a red→white→green gradient. Red is overheated, green is prime dip territory, white is neutral.
• Show Meter Table : Adds a compact gradient strip with a pointer that tracks the current score.
• Meter Cells and Meter Position : Resolution and placement of the meter.
UI Settings
• Show Dip Signals : Plots green triangles under qualifying bars and tints the background very lightly.
• Show EMAs : Plots fast, slow, and the trend EMA (if the trend filter is enabled).
• Bullish, Bearish, Neutral colors : Theme controls for shapes, fills, and bar painting.
Core calculations explained simply
Recent high and dip percent
The script finds the highest high over Lookback Bars , calls it “recent high,” then calculates:
dip% = (recent_high − close) ÷ recent_high × 100.
If dip% is larger than Dip % , condition one passes.
Volume confirmation
It computes a simple moving average of volume over Vol Lookback . If current volume ÷ average volume > Vol Spike , we have a participation spike. It also checks 5-bar ROC of volume. If ROC > 50 the spike is forceful. This gets an extra score point.
Volatility confirmation
Two independent checks:
• Standard deviation of closes vs its own average.
• True range vs ATR.
If either expands beyond Vol Spike (volatility) the move has range. This prevents false triggers from quiet drifts.
Short-term structure
Price should close below the Fast EMA and the fast EMA should be below the Slow EMA at the moment of the dip. That is the anatomy of a pullback rather than a full breakdown.
Macro trend context (optional)
When Enable Trend Filter is on, the Trend EMA must be rising and price must be above it. The logic prefers “micro weakness inside macro strength” which is the highest probability pattern for buying dips.
Signal formation
A valid dip requires:
• dip% > threshold
• volume spike true
• volatility spike true
• close below fast EMA
• fast EMA below slow EMA
If the trend filter is enabled, a rising trend EMA with price above it is also required. When all true, the triangle prints, the background tints, and optional entry lines are drawn.
Scoring and visuals
Binary checks into a continuous score
Each component contributes to a score between 0 and 1. The script then rescales to a centered range (−50 to +50).
• Low or negative scores imply “overheated” conditions and are shaded toward red.
• High positive scores imply “ripe for a dip buy” conditions and are shaded toward green.
• The gradient meter repeats the same logic, with a pointer so you can read the state quickly.
Bar coloring
If you enable “Color Bars by Score,” each candle inherits the gradient. This makes sequences obvious. Red clusters warn you not to buy. White means neutral. Increasing green suggests the pullback is maturing.
EMAs and the trend EMA
• Fast EMA turns down relative to the slow EMA inside the pullback.
• Trend EMA stays rising and above price once the dip exhausts, which is your cue to focus on long setups rather than bottom fishing in downtrends.
Entry lines
When a fresh signal fires and no other signal happened within Min Gap (bars) , the indicator draws a horizontal level for Line Length bars. Use these lines for limit entries at the low, at the close, or at the defined dip-percent level. This keeps your plan consistent across instruments.
Alerts and what they mean
• Market Overheated : Score is deeply negative. Do not chase. Wait for green.
• Close To A Dip : Score has reached a healthy level but the full signal did not trigger yet. Prepare orders.
• Dip Confirmed : First bar of a fresh validated dip. This is the most direct entry alert.
• Dip Active : The dip condition remains valid. You can scale in on re-tests.
• Dip Fading : Score crosses below 0.5 from above. Momentum of the setup is fading. Tighten stops or take partials.
• Trend Blocked Signal : All dip conditions passed but the trend filter is offside. Either reduce risk or skip, depending on your plan.
How to trade with Dip Hunter
Classic pullback in uptrend
Turn on the trend filter.
Watch for a Dip Confirmed alert with green triangle.
Use the entry line at “Dip % Level” to stage a limit order. This keeps your entries consistent across assets and timeframes.
Initial stop under the signal bar’s low or under the next lower EMA band.
First target at prior swing high, second target at a multiple of risk.
If you use partials, trail the remainder under the fast EMA once price reclaims it.
Aggressive intraday scalps
Lower Dip % and Lookback Bars so you catch shallow flags.
Keep Vol Spike meaningful so you only trade when participation appears.
Take quick partials when price reclaims the fast EMA, then exit on Dip Fading if momentum stalls.
Counter-trend probes
Disable the trend filter if you intentionally hunt reflex bounces in downtrends.
Require strong volume and volatility confirmation.
Use smaller size and faster targets. The meter should move quickly from red toward white and then green. If it does not, step aside.
Risk management templates
Stops
• Conservative: below the entry line minus a small buffer or below the signal bar’s low.
• Structural: below the slow EMA if you aim for swing continuation.
• Time stop: if price does not reclaim the fast EMA within N bars, exit.
Position sizing
Use the distance between the entry line and your structural stop to size consistently. The script’s entry lines make this distance obvious.
Scaling
• Scale at the entry line first touch.
• Add only if the meter stays green and price reclaims the fast EMA.
• Stop adding on a Dip Fading alert.
Tuning guide by market and timeframe
Equities daily
• Dip %: 1.5 to 3.0
• Lookback Bars: 5 to 10
• Vol Spike: 1.5 to 2.5
• Volatility Len: 14 to 20
• Trend EMA: 100 or 200
• Keep trend filter on for a cleaner list.
Futures and FX intraday
• Dip %: 0.4 to 1.2
• Lookback Bars: 3 to 7
• Vol Spike: 1.8 to 3.0
• Volatility Len: 10 to 14
• Use Min Gap to avoid clusters during news.
Crypto
• Dip %: 3.0 to 6.0 for majors on higher timeframes, lower on 15m to 1h
• Lookback Bars: 5 to 12
• Vol Spike: 1.8 to 3.0
• ATR and stdev checks help in erratic sessions.
Reading the chart at a glance
• Green triangle below the bar: a validated dip.
• Light green background: the current bar meets the full condition.
• Bar gradient: red is overheated, white is neutral, green is dip-friendly.
• EMAs: fast below slow during the pullback, then reclaim fast EMA on the bounce for quality continuation.
• Trend EMA: a rising spine when the filter is on.
• Entry line: a fixed level to anchor orders and risk.
• Meter pointer: right side toward “Dip” means conditions are maturing.
Why this combination reduces false positives
Any single criterion will trigger too often. Dip Hunter demands a dip off a recent high plus a volume surge plus a volatility expansion plus corrective EMA structure. Optional trend alignment pushes odds further in your favor. The score and meter visualize how many of these boxes you are actually ticking, which is more reliable than a binary dot.
Limitations and practical tips
• Thin or illiquid symbols can spoof volume spikes. Use larger Vol Lookback or raise Vol Spike .
• Sideways markets will show frequent small dips. Increase Dip % or keep the trend filter on.
• News candles can blow through entry lines. Widen stops or skip around known events.
• If you see many back-to-back triangles, raise Min Gap to keep only the best setups.
Quick setup recipes
• Clean swing trader: Trend filter on, Dip % 2.0 to 3.0, Vol Spike 2.0, Volatility Len 14, Fast 20 EMA, Slow 50 EMA, Trend 100 EMA.
• Fast intraday scalper: Trend filter off, Dip % 0.7 to 1.0, Vol Spike 2.5, Volatility Len 10, Fast 9 EMA, Slow 21 EMA, Min Gap 10 bars.
• Crypto swing: Trend filter on, Dip % 4.0, Vol Spike 2.0, Volatility Len 14, Fast 20 EMA, Slow 50 EMA, Trend 200 EMA.
Summary
Dip Hunter is a focused pullback engine. It quantifies a real dip off a recent high, validates it with volume and volatility expansion, enforces corrective structure with EMAs, and optionally restricts signals to an uptrend. The score, bar gradient, and meter make reading conditions instant. Entry lines and alerts turn that read into an executable plan. Tune the thresholds to your market and timeframe, then let the tool keep you patient in red, selective in white, and decisive in green.
Gann Fan Master – Selectable Base Angle & Fibonacci AnglesGann Fan Master – Selectable Base Angle & Fibonacci Angles
This indicator plots a Gann Fan from point A1 through point B1, with full customization over:
Base angle selection (8/1, 1/1, 1/8)
Main angle set
Fibonacci-based angles
Up to 10 custom user-defined angles
Logarithmic or linear slope calculation
Custom fan color and extended line length
Perfect for manual chart analysis — you select A1 and B1, the script calculates and draws the fan with labeled angles.
How It Works
-Select A1 (time & price) and B1 (time & price).
-The script calculates the base slope depending on the selected base angle:
Linear scale: slope = (B1 − A1) / Δt / base_angle_value
Logarithmic scale: slope = (ln(B1) − ln(A1)) / Δt / base_angle_value
-Each enabled angle is drawn from A1, extended by the chosen number of bars, and labeled with its value.
-Fan color is determined automatically by direction (green for upward, red for downward) or can be overridden.
Quick Start
-Add the indicator to your chart.
-In settings:
A1 Time/Price — starting point.
B1 Time/Price — second point (defines slope).
Base Angle — choose 8/1, 1/1, or 1/8.
Extend Fan (Bars) — number of bars to extend lines into the future.
Logarithmic Fan Calculation — toggle for log-scale mode.
Enable desired angle sets: Main, Fibonacci, or Custom.
-Optionally, enable Use Custom Fan Color and set your own color.
Settings
Enable Fan — master switch.
A1 Time/A1 Price, B1 Time/B1 Price — anchor points.
Base Angle — 8/1, 1/1, 1/8.
Extend Fan (Bars) — extension length.
Use Custom Fan Color / Fan Color — manual color override.
Main Angles — 1/8, 1/4, 1/3, 1/2, 1/1, 2/1, 3/1, 4/1, 6/1, 8/1.
Fibonacci Angles — 0.214, 0.35, 0.382, 0.618, 0.786, 0.886, 0.9335, 1.118, 1.236, 1.382, 1.618.
Custom Angles — up to 10 values (dotted lines), labels from the exact value.
Usage Tips
-Choosing A1 and B1:
A1 — significant starting swing high or low.
B1 — next key swing to define slope.
-Logarithmic scale:
Ideal for long-term exponential trends (crypto, growth stocks).
Prices must be > 0.
-Watch how price reacts to different angles:
1/1 as median trend, fractional for support/resistance, multiples for acceleration/slowdown.
Disclaimer
This is a technical analysis tool. It is not financial advice. Trading decisions are made at your own risk.
Gann Fan Master – Selectable Base Angle & Fibonacci Angles
Индикатор строит веер Ганна от точки A1 через точку B1 с полной кастомизацией:
Выбор базового угла (8/1, 1/1, 1/8)
Набор основных углов
Углы Фибоначчи
До 10 пользовательских углов
Расчёт в логарифмической или линейной шкале
Цвет веера по направлению или заданный вручную
Настройка длины продления линий
Идеально подходит для ручного анализа графика — вы задаёте A1 и B1, а скрипт рассчитывает и строит веер с подписями углов.
Как это работает
-Задайте A1 (время и цена) и B1 (время и цена).
-Скрипт рассчитывает базовый наклон в зависимости от выбранного базового угла:
Линейная шкала: наклон = (B1 − A1) / Δt / base_angle_value
Логарифмическая шкала: наклон = (ln(B1) − ln(A1)) / Δt / base_angle_value
-Каждый включённый угол рисуется из точки A1, продлевается на заданное число баров и подписывается.
-Цвет линий определяется автоматически по направлению (зелёный — вверх, красный — вниз) или задаётся вручную.
Быстрый старт
1)Добавьте индикатор на график.
2)В настройках:
A1 Time/Price — начальная точка.
B1 Time/Price — вторая точка (задаёт наклон).
Base Angle — выберите 8/1, 1/1 или 1/8.
Extend Fan (Bars) — длина продления линий в барах.
Logarithmic Fan Calculation — переключатель логарифмического режима.
Включите нужные блоки углов: Main, Fibonacci, Custom.
3)При желании активируйте Use Custom Fan Color и задайте цвет веера.
Настройки
Enable Fan — общий выключатель.
A1 Time/A1 Price, B1 Time/B1 Price — опорные точки.
Base Angle — 8/1, 1/1, 1/8.
Extend Fan (Bars) — продление линий.
Use Custom Fan Color / Fan Color — цвет вручную.
Main Angles — 1/8, 1/4, 1/3, 1/2, 1/1, 2/1, 3/1, 4/1, 6/1, 8/1.
Fibonacci Angles — 0.214, 0.35, 0.382, 0.618, 0.786, 0.886, 0.9335, 1.118, 1.236, 1.382, 1.618.
Custom Angles — до 10 значений (точечные линии) с подписями.
Советы по применению
Выбор A1 и B1:
A1 — значимый экстремум начала движения.
B1 — следующий важный экстремум для задания наклона.
Логарифмическая шкала:
Подходит для долгосрочных экспоненциальных трендов (крипто, акции роста).
Цена должна быть > 0.
Следите, как цена реагирует на разные углы:
1/1 — медианный тренд.
Дробные углы — потенциальная поддержка/сопротивление.
Кратные — ускорение/замедление движения.
Дисклеймер
Это инструмент технического анализа и не является инвестиционной рекомендацией. Торговые решения вы принимаете на свой страх и риск.
MSFA_LibraryLibrary "MSFA_library"
TODO: add library description here
getDecimals()
Calculates how many decimals are on the quote price of the current market
Returns: The current decimal places on the market quote price
getPipSize(multiplier)
Calculates the pip size of the current market
Parameters:
multiplier (int) : The mintick point multiplier (1 by default, 10 for FX/Crypto/CFD but can be used to override when certain markets require)
Returns: The pip size for the current market
truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places
Parameters:
number (float) : The number to truncate
decimalPlaces (simple float) : (default=2) The number of decimal places to truncate to
Returns: The given number truncated to the given decimalPlaces
toWhole(number)
Converts pips into whole numbers
Parameters:
number (float) : The pip number to convert into a whole number
Returns: The converted number
toPips(number)
Converts whole numbers back into pips
Parameters:
number (float) : The whole number to convert into pips
Returns: The converted number
getPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period
Parameters:
value1 (float) : The first value to reference
value2 (float) : The second value to reference
lookback (int) : The lookback period to analyze
Returns: The percent change over the two values and lookback period
random(minRange, maxRange)
Wichmann–Hill Pseudo-Random Number Generator
Parameters:
minRange (float) : The smallest possible number (default: 0)
maxRange (float) : The largest possible number (default: 1)
Returns: A random number between minRange and maxRange
bullFib(priceLow, priceHigh, fibRatio)
Calculates a bullish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
bearFib(priceLow, priceHigh, fibRatio)
Calculates a bearish fibonacci value
Parameters:
priceLow (float) : The lowest price point
priceHigh (float) : The highest price point
fibRatio (float) : The fibonacci % ratio to calculate
Returns: The fibonacci value of the given ratio between the two price points
getMA(length, maType)
Gets a Moving Average based on type (! MUST BE CALLED ON EVERY TICK TO BE ACCURATE, don't place in scopes)
Parameters:
length (simple int) : The MA period
maType (string) : The type of MA
Returns: A moving average with the given parameters
barsAboveMA(lookback, ma)
Counts how many candles are above the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to check
Returns: The bar count of how many recent bars are above the MA
barsBelowMA(lookback, ma)
Counts how many candles are below the MA
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many recent bars are below the EMA
barsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently (based on closing prices)
Parameters:
lookback (int) : The lookback period to look back over
ma (float) : The moving average to reference
Returns: The bar count of how many times price recently crossed the EMA (based on closing prices)
getPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count)
Parameters:
lookback (int) : The lookback period to look back over
direction (int) : The color of the bar to count (1 = Green, -1 = Red)
Returns: The bar count of how many candles have retraced over the given lookback & direction
getBodySize()
Gets the current candle's body size (in POINTS, divide by 10 to get pips)
Returns: The current candle's body size in POINTS
getTopWickSize()
Gets the current candle's top wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's top wick size in POINTS
getBottomWickSize()
Gets the current candle's bottom wick size (in POINTS, divide by 10 to get pips)
Returns: The current candle's bottom wick size in POINTS
getBodyPercent()
Gets the current candle's body size as a percentage of its entire size including its wicks
Returns: The current candle's body size percentage
isHammer(fib, colorMatch)
Checks if the current bar is a hammer candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be green? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a hammer candle
isStar(fib, colorMatch)
Checks if the current bar is a shooting star candle based on the given parameters
Parameters:
fib (float) : (default=0.382) The fib to base candle body on
colorMatch (bool) : (default=false) Does the candle need to be red? (true/false)
Returns: A boolean - true if the current bar matches the requirements of a shooting star candle
isDoji(wickSize, bodySize)
Checks if the current bar is a doji candle based on the given parameters
Parameters:
wickSize (float) : (default=2) The maximum top wick size compared to the bottom (and vice versa)
bodySize (float) : (default=0.05) The maximum body size as a percentage compared to the entire candle size
Returns: A boolean - true if the current bar matches the requirements of a doji candle
isBullishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bullish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bullish engulfing candle
isBearishEC(allowance, rejectionWickSize, engulfWick)
Checks if the current bar is a bearish engulfing candle
Parameters:
allowance (float) : (default=0) How many POINTS to allow the open to be off by (useful for markets with micro gaps)
rejectionWickSize (float) : (default=disabled) The maximum rejection wick size compared to the body as a percentage
engulfWick (bool) : (default=false) Does the engulfing candle require the wick to be engulfed as well?
Returns: A boolean - true if the current bar matches the requirements of a bearish engulfing candle
isInsideBar()
Detects inside bars
Returns: Returns true if the current bar is an inside bar
isOutsideBar()
Detects outside bars
Returns: Returns true if the current bar is an outside bar
barInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls within the given time session
barOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session
Parameters:
sess (simple string) : The session to check
useFilter (bool) : (default=true) Whether or not to actually use this filter
Returns: A boolean - true if the current bar falls outside the given time session
dateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range
Parameters:
startTime (int) : The UNIX date timestamp to begin searching from
endTime (int) : the UNIX date timestamp to stop searching from
Returns: A boolean - true if the current bar falls within the given dates
dayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze
Parameters:
monday (bool) : Should the script analyze this day? (true/false)
tuesday (bool) : Should the script analyze this day? (true/false)
wednesday (bool) : Should the script analyze this day? (true/false)
thursday (bool) : Should the script analyze this day? (true/false)
friday (bool) : Should the script analyze this day? (true/false)
saturday (bool) : Should the script analyze this day? (true/false)
sunday (bool) : Should the script analyze this day? (true/false)
Returns: A boolean - true if the current bar's day is one of the given days
atrFilter(atrValue, maxSize)
Parameters:
atrValue (float)
maxSize (float)
tradeCount()
Calculate total trade count
Returns: Total closed trade count
isLong()
Check if we're currently in a long trade
Returns: True if our position size is positive
isShort()
Check if we're currently in a short trade
Returns: True if our position size is negative
isFlat()
Check if we're currentlyflat
Returns: True if our position size is zero
wonTrade()
Check if this bar falls after a winning trade
Returns: True if we just won a trade
lostTrade()
Check if this bar falls after a losing trade
Returns: True if we just lost a trade
maxDrawdownRealized()
Gets the max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
Returns: The max drawdown based on closed trades (ie. realized P&L). The strategy tester displays max drawdown as open P&L (unrealized).
totalPipReturn()
Gets the total amount of pips won/lost (as a whole number)
Returns: Total amount of pips won/lost (as a whole number)
longWinCount()
Count how many winning long trades we've had
Returns: Long win count
shortWinCount()
Count how many winning short trades we've had
Returns: Short win count
longLossCount()
Count how many losing long trades we've had
Returns: Long loss count
shortLossCount()
Count how many losing short trades we've had
Returns: Short loss count
breakEvenCount(allowanceTicks)
Count how many break-even trades we've had
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even count
longCount()
Count how many long trades we've taken
Returns: Long trade count
shortCount()
Count how many short trades we've taken
Returns: Short trade count
longWinPercent()
Calculate win rate of long trades
Returns: Long win rate (0-100)
shortWinPercent()
Calculate win rate of short trades
Returns: Short win rate (0-100)
breakEvenPercent(allowanceTicks)
Calculate break even rate of all trades
Parameters:
allowanceTicks (float) : Optional - how many ticks to allow between entry & exit price (default 0)
Returns: Break-even win rate (0-100)
averageRR()
Calculate average risk:reward
Returns: Average winning trade divided by average losing trade
unitsToLots(units)
(Forex) Convert the given unit count to lots (multiples of 100,000)
Parameters:
units (float) : The units to convert into lots
Returns: Units converted to nearest lot size (as float)
skipTradeMonteCarlo(chance, debug)
Checks to see if trade should be skipped to emulate rudimentary Monte Carlo simulation
Parameters:
chance (float) : The chance to skip a trade (0-1 or 0-100, function will normalize to 0-1)
debug (bool) : Whether or not to display a label informing of the trade skip
Returns: True if the trade is skipped, false if it's not skipped (idea being to include this function in entry condition validation checks)
fillCell(tableID, column, row, title, value, bgcolor, txtcolor, tooltip)
This updates the given table's cell with the given values
Parameters:
tableID (table) : The table ID to update
column (int) : The column to update
row (int) : The row to update
title (string) : The title of this cell
value (string) : The value of this cell
bgcolor (color) : The background color of this cell
txtcolor (color) : The text color of this cell
tooltip (string)
Returns: Nothing.
Bitcoin Logarithmic Growth Curve 2025 Z-Score"The Bitcoin logarithmic growth curve is a concept used to analyze Bitcoin's price movements over time. The idea is based on the observation that Bitcoin's price tends to grow exponentially, particularly during bull markets. It attempts to give a long-term perspective on the Bitcoin price movements.
The curve includes an upper and lower band. These bands often represent zones where Bitcoin's price is overextended (upper band) or undervalued (lower band) relative to its historical growth trajectory. When the price touches or exceeds the upper band, it may indicate a speculative bubble, while prices near the lower band may suggest a buying opportunity.
Unlike most Bitcoin growth curve indicators, this one includes a logarithmic growth curve optimized using the latest 2024 price data, making it, in our view, superior to previous models. Additionally, it features statistical confidence intervals derived from linear regression, compatible across all timeframes, and extrapolates the data far into the future. Finally, this model allows users the flexibility to manually adjust the function parameters to suit their preferences.
The Bitcoin logarithmic growth curve has the following function:
y = 10^(a * log10(x) - b)
In the context of this formula, the y value represents the Bitcoin price, while the x value corresponds to the time, specifically indicated by the weekly bar number on the chart.
How is it made (You can skip this section if you’re not a fan of math):
To optimize the fit of this function and determine the optimal values of a and b, the previous weekly cycle peak values were analyzed. The corresponding x and y values were recorded as follows:
113, 18.55
240, 1004.42
451, 19128.27
655, 65502.47
The same process was applied to the bear market low values:
103, 2.48
267, 211.03
471, 3192.87
676, 16255.15
Next, these values were converted to their linear form by applying the base-10 logarithm. This transformation allows the function to be expressed in a linear state: y = a * x − b. This step is essential for enabling linear regression on these values.
For the cycle peak (x,y) values:
2.053, 1.268
2.380, 3.002
2.654, 4.282
2.816, 4.816
And for the bear market low (x,y) values:
2.013, 0.394
2.427, 2.324
2.673, 3.504
2.830, 4.211
Next, linear regression was performed on both these datasets. (Numerous tools are available online for linear regression calculations, making manual computations unnecessary).
Linear regression is a method used to find a straight line that best represents the relationship between two variables. It looks at how changes in one variable affect another and tries to predict values based on that relationship.
The goal is to minimize the differences between the actual data points and the points predicted by the line. Essentially, it aims to optimize for the highest R-Square value.
Below are the results:
snapshot
snapshot
It is important to note that both the slope (a-value) and the y-intercept (b-value) have associated standard errors. These standard errors can be used to calculate confidence intervals by multiplying them by the t-values (two degrees of freedom) from the linear regression.
These t-values can be found in a t-distribution table. For the top cycle confidence intervals, we used t10% (0.133), t25% (0.323), and t33% (0.414). For the bottom cycle confidence intervals, the t-values used were t10% (0.133), t25% (0.323), t33% (0.414), t50% (0.765), and t67% (1.063).
The final bull cycle function is:
y = 10^(4.058 ± 0.133 * log10(x) – 6.44 ± 0.324)
The final bear cycle function is:
y = 10^(4.684 ± 0.025 * log10(x) – -9.034 ± 0.063)
The main Criticisms of growth curve models:
The Bitcoin logarithmic growth curve model faces several general criticisms that we’d like to highlight briefly. The most significant, in our view, is its heavy reliance on past price data, which may not accurately forecast future trends. For instance, previous growth curve models from 2020 on TradingView were overly optimistic in predicting the last cycle’s peak.
This is why we aimed to present our process for deriving the final functions in a transparent, step-by-step scientific manner, including statistical confidence intervals. It's important to note that the bull cycle function is less reliable than the bear cycle function, as the top band is significantly wider than the bottom band.
Even so, we still believe that the Bitcoin logarithmic growth curve presented in this script is overly optimistic since it goes parly against the concept of diminishing returns which we discussed in this post:
This is why we also propose alternative parameter settings that align more closely with the theory of diminishing returns."
Now with Z-Score calculation for easy and constant valuation classification of Bitcoin according to this metric.
Created for TRW
Time Window Optimizer [theUltimator5]The Time Window Optimizer is designed to identify the most profitable 30-minute trading windows during regular market hours (9:30 AM - 4:00 PM EST). This tool helps traders optimize their intraday strategies by automatically discovering time periods with the highest historical performance or allowing manual selection for custom analysis. It also allows you to select manual timeframes for custom time period analysis.
🏆 Automatic Window Discovery
The core feature of this indicator is its intelligent Auto-Find Best 30min Window system that analyzes all 13 possible 30-minute time slots during market hours.
How the Algorithm Works:
Concurrent Analysis: The indicator simultaneously tracks performance across all 13 time windows (9:30-10:00, 10:00-10:30, 10:30-11:00... through 15:30-16:00)
Daily Performance Tracking: For each window, it captures the percentage change from window open to window close on every trading day
Cumulative Compounding: Daily returns are compounded over time to show the true long-term performance of each window, starting from a normalized value of 1.0
Dynamic Optimization: The system continuously identifies the window with the highest cumulative return and highlights it as the optimal choice
Statistical Validation: Performance is validated through multiple metrics including average daily returns, win rates, and total sample size
Visual Representation:
Best Window Line: The top-performing window is displayed as a thick colored line for easy identification
All 13 Lines (optional): Users can view performance lines for all time windows simultaneously to compare relative performance
Smart Coloring: Lines are color-coded (green for gains, red for losses) with the best performer highlighted in a user-selected color
📊 Comprehensive Performance Analysis
The indicator provides detailed statistics in an information table:
Average Daily Return: Mean percentage change per trading session
Cumulative Return: Total compounded performance over the analysis period
Win Rate: Percentage of profitable days (colored green if ≥50%, red if <50%)
Buy & Hold Comparison: Shows outperformance vs. simple buy-and-hold strategy
Sample Size: Number of trading days analyzed for statistical significance
🛠️ User Settings
imgur.com
Auto-Optimization Controls:
Auto-Find Best Window: Toggle to enable/disable automatic optimization
Show All 13 Lines: Display all time window performance lines simultaneously
Best Window Line Color: Customize the color of the top-performing window
Manual Mode:
imgur.com
Custom Time Window: Set any desired time range using session format (HHMM-HHMM)
Crypto Support: Built-in timezone offset adjustment for cryptocurrency markets
Chart Type Options: Switch between candlestick and line chart visualization
Visual Customization:
imgur.com
Background Highlighting: Optional background color during active time windows
Candle Coloring: Custom colors for bullish/bearish candles within the time window
Table Positioning: Flexible placement of the statistics table anywhere on the chart
🔧 Technical Features
Market Compatibility:
Stock Markets: Optimized for traditional market hours (9:30 AM - 4:00 PM EST)
Cryptocurrency: Includes timezone offset adjustment for 24/7 crypto markets
Exchange Detection: Automatically detects crypto exchanges and applies appropriate settings
Performance Optimization:
Efficient Calculation: Uses separate arrays for each time block to minimize computational overhead
Real-time Updates: Dynamically updates the best-performing window as new data becomes available
Memory Management: Optimized data structures to handle large datasets efficiently
💡 Use Cases
Strategy Development: Identify the most profitable trading hours for your specific instruments
Risk Management: Focus trading activity during historically successful time periods
Performance Comparison: Evaluate whether time-specific strategies outperform buy-and-hold
Market Analysis: Understand intraday patterns and market behavior across different time windows
📈 Key Benefits
Data-Driven Decisions: Base trading schedules on historical performance data
Automated Analysis: No manual calculation required - the algorithm does the work
Flexible Implementation: Works in both automated discovery and manual selection modes
Comprehensive Metrics: Multiple performance indicators for thorough analysis
Visual Clarity: Clear, color-coded visualization makes interpretation intuitive
This indicator transforms complex intraday analysis into actionable insights, helping traders optimize their time allocation and improve overall trading performance through systematic, data-driven approach to market timing.
Gold Killzone Bias Suite🟡 Gold Killzone Bias Suite
The Gold Killzone Bias Suite is an advanced institutional-grade tool designed to generate high-confidence directional bias for XAU/USD (Gold) during the London and New York killzones.
Built for traders using a structured, confluence-driven approach, this tool blends price action, smart money principles, momentum, and volume into a real-time bias engine with a clean, easy-to-read dashboard.
🔧 Key Features
🕰️ Session-Based Bias (London / New York)
Independent bias calculation per session
Killzone times customizable with timezone support
Background highlighting (blue/red) for each session
📊 VWAP Engine
Reclaim & rejection detection
VWAP deviation alerts
Daily HTF VWAP integration
Score impact based on VWAP behaviour
📉 Market Structure (CHoCH / BOS)
Detects swing highs/lows
Labels bullish/bearish CHoCHs
Structure score contributes to session bias
💧 Liquidity Grabs
Detects stop hunts above highs / below lows
Confirms with candle rejection (body % filter)
Plots labels and adds to bias scoring
⚡ Momentum Filters
RSI: Bullish >55, Bearish <45
MACD: Histogram + Signal Line crossovers
Combined momentum score used in bias
🧠 Smart Money Proximity
Optional FVG/OB score toggle (placeholder for custom logic)
Adds static confluence for proximity-based setups
⏫ Higher Time Frame Context
Daily VWAP comparison
4H high/low structure breaks
Adds trend score to current session bias
🧠 How Bias Works
The suite uses a scoring model. Each confluence adds or subtracts points:
VWAP reclaim/reject: ±30
CHoCH/BOS: ±30
Liquidity grab: ±20
RSI/MACD: ±10
FVG/OB Proximity: +10
Daily VWAP trend: ±10
H4 Trend Break: ±10
Final Bias:
Bullish if score ≥ +20
Bearish if score ≤ -20
Neutral if between -19 and +19
A confidence % (capped at 100) is also shown, along with the contributing confluences (VWAP, Structure, Liquidity, etc.).
📋 Dashboard
A real-time dashboard shows for each session:
Session name and time
Bias (Bullish / Bearish / Neutral)
Confidence (%)
Confluences used
Position can be moved (Top Left, Top Right, etc.). Designed to be unobtrusive yet informative.
🧪 Best Practices
Use on 15m / 5m charts for intraday setups
Confirm with D1 or H4 structure for directional context
Combine with OB/FVG zones or SMT for entries
Use Trading View alerts for bias flips or liquidity grabs (custom logic can be added)
Bar Replay compatible for back testing and journaling bias shifts
🔐 Notes
Does not generate trade signals or alerts by default
Focused on bias generation and confluence stacking
Compatible with funded account trading models
📈 Built for traders who want a systematic, score-based approach to identifying directional edge in high-volume gold sessions.
Stochastic MACDStochastic MACD Indicator: Quick Guide
This Pine Script indicator, "Stochastic MACD" (SMACD), blends MACD and Stochastic Oscillator principles to help you spot momentum shifts and potential reversals.
What it Shows:
SMACD Line: Tracks momentum.
Signal Line: Averages the SMACD line, creating crossovers.
Histogram: Visualizes momentum strength, changing color with direction.
Overbought/Oversold Levels: (Default 10 and -10) Help identify stretched market conditions. Adjustable in settings.
Visual Signals (Triangles):
Red Down Arrow (Overbought Signal): Appears when both SMACD and Signal lines are above the Overbought level (default 10) AND SMACD crosses the Signal line upwards. This suggests strong overbought conditions and a potential reversal down.
Green Up Arrow (Oversold Signal): Appears when both SMACD and Signal lines are below the Oversold level (default -10) AND SMACD crosses the Signal line upwards. This suggests potential buying opportunities from oversold conditions and a possible reversal up.
How to Use It:
Confirm Trends: Use the histogram and line directions.
Spot Reversals: Look for the red and green triangles for quick alerts.
Combine: Always use with other analysis like price action or support/resistance.
Important: This is an analytical tool, not financial advice. Trading involves risk.
SMC Structures and FVGสวัสดีครับ! ผมจะอธิบายอินดิเคเตอร์ "SMC Structures and FVG + MACD" ที่คุณให้มาอย่างละเอียดในแต่ละส่วน เพื่อให้คุณเข้าใจการทำงานของมันอย่างถ่องแท้ครับ
อินดิเคเตอร์นี้เป็นการผสมผสานแนวคิดของ Smart Money Concept (SMC) ซึ่งเน้นการวิเคราะห์โครงสร้างตลาด (Market Structure) และ Fair Value Gap (FVG) เข้ากับอินดิเคเตอร์ MACD เพื่อใช้เป็นตัวกรองหรือตัวยืนยันสัญญาณ Choch/BoS (Change of Character / Break of Structure)
1. ภาพรวมอินดิเคเตอร์ (Overall Purpose)
อินดิเคเตอร์นี้มีจุดประสงค์หลักคือ:
ระบุโครงสร้างตลาด: ตีเส้นและป้ายกำกับ Choch (Change of Character) และ BoS (Break of Structure) บนกราฟโดยอัตโนมัติ
ผสานการยืนยันด้วย MACD: สัญญาณ Choch/BoS จะถูกพิจารณาก็ต่อเมื่อ MACD Histogram เกิดการตัดขึ้นหรือลง (Zero Cross) ในทิศทางที่สอดคล้องกัน
แสดง Fair Value Gap (FVG): หากเปิดใช้งาน จะมีการตีกล่อง FVG บนกราฟ
แสดงระดับ Fibonacci: คำนวณและแสดงระดับ Fibonacci ที่สำคัญตามโครงสร้างตลาดปัจจุบัน
ปรับตาม Timeframe: การคำนวณและการแสดงผลทั้งหมดจะปรับตาม Timeframe ที่คุณกำลังใช้งานอยู่โดยอัตโนมัติ
2. ส่วนประกอบหลักของโค้ด (Code Breakdown)
โค้ดนี้สามารถแบ่งออกเป็นส่วนหลัก ๆ ได้ดังนี้:
2.1 Inputs (การตั้งค่า)
ส่วนนี้คือตัวแปรที่คุณสามารถปรับแต่งได้ในหน้าต่างการตั้งค่าของอินดิเคเตอร์ (คลิกที่รูปฟันเฟืองข้างชื่ออินดิเคเตอร์บนกราฟ)
MACD Settings (ตั้งค่า MACD):
fast_len: ความยาวของ Fast EMA สำหรับ MACD (ค่าเริ่มต้น 12)
slow_len: ความยาวของ Slow EMA สำหรับ MACD (ค่าเริ่มต้น 26)
signal_len: ความยาวของ Signal Line สำหรับ MACD (ค่าเริ่มต้น 9)
= ta.macd(close, fast_len, slow_len, signal_len): คำนวณค่า MACD Line, Signal Line และ Histogram โดยใช้ราคาปิด (close) และค่าความยาวที่กำหนด
is_bullish_macd_cross: ตรวจสอบว่า MACD Histogram ตัดขึ้นเหนือเส้น 0 (จากค่าลบเป็นบวก)
is_bearish_macd_cross: ตรวจสอบว่า MACD Histogram ตัดลงใต้เส้น 0 (จากค่าบวกเป็นลบ)
Fear Value Gap (FVG) Settings:
isFvgToShow: (Boolean) เปิด/ปิดการแสดง FVG บนกราฟ
bullishFvgColor: สีสำหรับ Bullish FVG
bearishFvgColor: สีสำหรับ Bearish FVG
mitigatedFvgColor: สีสำหรับ FVG ที่ถูก Mitigate (ลดทอน) แล้ว
fvgHistoryNbr: จำนวน FVG ย้อนหลังที่จะแสดง
isMitigatedFvgToReduce: (Boolean) เปิด/ปิดการลดขนาด FVG เมื่อถูก Mitigate
Structures (โครงสร้างตลาด) Settings:
isStructBodyCandleBreak: (Boolean) หากเป็น true การ Break จะต้องเกิดขึ้นด้วย เนื้อเทียน ที่ปิดเหนือ/ใต้ Swing High/Low หากเป็น false แค่ไส้เทียนทะลุก็ถือว่า Break
isCurrentStructToShow: (Boolean) เปิด/ปิดการแสดงเส้นโครงสร้างตลาดปัจจุบัน (เส้นสีน้ำเงินในภาพตัวอย่าง)
pivot_len: ความยาวของแท่งเทียนที่ใช้ในการมองหาจุด Pivot (Swing High/Low) ยิ่งค่าน้อยยิ่งจับ Swing เล็กๆ ได้, ยิ่งค่ามากยิ่งจับ Swing ใหญ่ๆ ได้
bullishBosColor, bearishBosColor: สีสำหรับเส้นและป้าย BOS ขาขึ้น/ขาลง
bosLineStyleOption, bosLineWidth: สไตล์ (Solid, Dotted, Dashed) และความหนาของเส้น BOS
bullishChochColor, bearishChochColor: สีสำหรับเส้นและป้าย CHoCH ขาขึ้น/ขาลง
chochLineStyleOption, chochLineWidth: สไตล์ (Solid, Dotted, Dashed) และความหนาของเส้น CHoCH
currentStructColor, currentStructLineStyleOption, currentStructLineWidth: สี, สไตล์ และความหนาของเส้นโครงสร้างตลาดปัจจุบัน
structHistoryNbr: จำนวนการ Break (Choch/BoS) ย้อนหลังที่จะแสดง
Structure Fibonacci (จากโค้ดต้นฉบับ):
เป็นชุด Input สำหรับเปิด/ปิด, กำหนดค่า, สี, สไตล์ และความหนาของเส้น Fibonacci Levels ต่างๆ (0.786, 0.705, 0.618, 0.5, 0.382) ที่จะถูกคำนวณจากโครงสร้างตลาดปัจจุบัน
2.2 Helper Functions (ฟังก์ชันช่วยทำงาน)
getLineStyle(lineOption): ฟังก์ชันนี้ใช้แปลงค่า String ที่เลือกจาก Input (เช่น "─", "┈", "╌") ให้เป็นรูปแบบ line.style_ ที่ Pine Script เข้าใจ
get_structure_highest_bar(lookback): ฟังก์ชันนี้พยายามหา Bar Index ของแท่งเทียนที่ทำ Swing High ภายในช่วง lookback ที่กำหนด
get_structure_lowest_bar(lookback): ฟังก์ชันนี้พยายามหา Bar Index ของแท่งเทียนที่ทำ Swing Low ภายในช่วง lookback ที่กำหนด
is_structure_high_broken(...): ฟังก์ชันนี้ตรวจสอบว่าราคาปัจจุบันได้ Break เหนือ _structureHigh (Swing High) หรือไม่ โดยพิจารณาจาก _highStructBreakPrice (ราคาปิดหรือราคา High ขึ้นอยู่กับการตั้งค่า isStructBodyCandleBreak)
FVGDraw(...): ฟังก์ชันนี้รับ Arrays ของ FVG Boxes, Types, Mitigation Status และ Labels มาประมวลผล เพื่ออัปเดตสถานะของ FVG (เช่น ถูก Mitigate หรือไม่) และปรับขนาด/ตำแหน่งของ FVG Box และ Label บนกราฟ
2.3 Global Variables (ตัวแปรทั่วทั้งอินดิเคเตอร์)
เป็นตัวแปรที่ประกาศด้วย var ซึ่งหมายความว่าค่าของมันจะถูกเก็บไว้และอัปเดตในแต่ละแท่งเทียน (persists across bars)
structureLines, structureLabels: Arrays สำหรับเก็บอ็อบเจกต์ line และ label ของเส้น Choch/BoS ที่วาดบนกราฟ
fvgBoxes, fvgTypes, fvgLabels, isFvgMitigated: Arrays สำหรับเก็บข้อมูลของ FVG Boxes และสถานะต่างๆ
structureHigh, structureLow: เก็บราคาของ Swing High/Low ที่สำคัญของโครงสร้างตลาดปัจจุบัน
structureHighStartIndex, structureLowStartIndex: เก็บ Bar Index ของจุดเริ่มต้นของ Swing High/Low ที่สำคัญ
structureDirection: เก็บสถานะของทิศทางโครงสร้างตลาด (1 = Bullish, 2 = Bearish, 0 = Undefined)
fiboXPrice, fiboXStartIndex, fiboXLine, fiboXLabel: ตัวแปรสำหรับเก็บข้อมูลและอ็อบเจกต์ของเส้น Fibonacci Levels
isBOSAlert, isCHOCHAlert: (Boolean) ใช้สำหรับส่งสัญญาณ Alert (หากมีการตั้งค่า Alert ไว้)
2.4 FVG Processing (การประมวลผล FVG)
ส่วนนี้จะตรวจสอบเงื่อนไขการเกิด FVG (Bullish FVG: high < low , Bearish FVG: low > high )
หากเกิด FVG และ isFvgToShow เป็น true จะมีการสร้าง box และ label ใหม่เพื่อแสดง FVG บนกราฟ
มีการจัดการ fvgBoxes และ fvgLabels เพื่อจำกัดจำนวน FVG ที่แสดงตาม fvgHistoryNbr และลบ FVG เก่าออก
ฟังก์ชัน FVGDraw จะถูกเรียกเพื่ออัปเดตสถานะของ FVG (เช่น การถูก Mitigate) และปรับการแสดงผล
2.5 Structures Processing (การประมวลผลโครงสร้างตลาด)
Initialization: ที่ bar_index == 0 (แท่งเทียนแรกของกราฟ) จะมีการกำหนดค่าเริ่มต้นให้กับ structureHigh, structureLow, structureHighStartIndex, structureLowStartIndex
Finding Current High/Low: highest, highestBar, lowest, lowestBar ถูกใช้เพื่อหา High/Low ที่สุดและ Bar Index ของมันใน 10 แท่งล่าสุด (หรือทั้งหมดหากกราฟสั้นกว่า 10 แท่ง)
Calculating Structure Max/Min Bar: structureMaxBar และ structureMinBar ใช้ฟังก์ชัน get_structure_highest_bar และ get_structure_lowest_bar เพื่อหา Bar Index ของ Swing High/Low ที่แท้จริง (ไม่ใช่แค่ High/Low ที่สุดใน lookback แต่เป็นจุด Pivot ที่สมบูรณ์)
Break Price: lowStructBreakPrice และ highStructBreakPrice จะเป็นราคาปิด (close) หรือราคา Low/High ขึ้นอยู่กับ isStructBodyCandleBreak
isStuctureLowBroken / isStructureHighBroken: เงื่อนไขเหล่านี้ตรวจสอบว่าราคาได้ทำลาย structureLow หรือ structureHigh หรือไม่ โดยพิจารณาจากราคา Break, ราคาแท่งก่อนหน้า และ Bar Index ของจุดเริ่มต้นโครงสร้าง
Choch/BoS Logic (ส่วนสำคัญที่ถูกผสานกับ MACD):
if(isStuctureLowBroken and is_bearish_macd_cross): นี่คือจุดที่ MACD เข้ามามีบทบาท หากราคาทำลาย structureLow (สัญญาณขาลง) และ MACD Histogram เกิด Bearish Zero Cross (is_bearish_macd_cross เป็น true) อินดิเคเตอร์จะพิจารณาว่าเป็น Choch หรือ BoS
หาก structureDirection == 1 (เดิมเป็นขาขึ้น) หรือ 0 (ยังไม่กำหนด) จะตีเป็น "CHoCH" (เปลี่ยนทิศทางโครงสร้างเป็นขาลง)
หาก structureDirection == 2 (เดิมเป็นขาลง) จะตีเป็น "BOS" (ยืนยันโครงสร้างขาลง)
มีการสร้าง line.new และ label.new เพื่อวาดเส้นและป้ายกำกับ
structureDirection จะถูกอัปเดตเป็น 1 (Bullish)
structureHighStartIndex, structureLowStartIndex, structureHigh, structureLow จะถูกอัปเดตเพื่อกำหนดโครงสร้างใหม่
else if(isStructureHighBroken and is_bullish_macd_cross): เช่นกันสำหรับขาขึ้น หากราคาทำลาย structureHigh (สัญญาณขาขึ้น) และ MACD Histogram เกิด Bullish Zero Cross (is_bullish_macd_cross เป็น true) อินดิเคเตอร์จะพิจารณาว่าเป็น Choch หรือ BoS
หาก structureDirection == 2 (เดิมเป็นขาลง) หรือ 0 (ยังไม่กำหนด) จะตีเป็น "CHoCH" (เปลี่ยนทิศทางโครงสร้างเป็นขาขึ้น)
หาก structureDirection == 1 (เดิมเป็นขาขึ้น) จะตีเป็น "BOS" (ยืนยันโครงสร้างขาขึ้น)
มีการสร้าง line.new และ label.new เพื่อวาดเส้นและป้ายกำกับ
structureDirection จะถูกอัปเดตเป็น 2 (Bearish)
structureHighStartIndex, structureLowStartIndex, structureHigh, structureLow จะถูกอัปเดตเพื่อกำหนดโครงสร้างใหม่
การลบเส้นเก่า: d.delete_line (หากไลบรารีทำงาน) จะถูกเรียกเพื่อลบเส้นและป้ายกำกับเก่าออกเมื่อจำนวนเกิน structHistoryNbr
Updating Structure High/Low (else block): หากไม่มีการ Break เกิดขึ้น แต่ราคาปัจจุบันสูงกว่า structureHigh หรือต่ำกว่า structureLow ในทิศทางที่สอดคล้องกัน (เช่น ยังคงเป็นขาขึ้นและทำ High ใหม่) structureHigh หรือ structureLow จะถูกอัปเดตเพื่อติดตาม High/Low ที่สุดของโครงสร้างปัจจุบัน
Current Structure Display:
หาก isCurrentStructToShow เป็น true อินดิเคเตอร์จะวาดเส้น structureHighLine และ structureLowLine เพื่อแสดงขอบเขตของโครงสร้างตลาดปัจจุบัน
Fibonacci Display:
หาก isFiboXToShow เป็น true อินดิเคเตอร์จะคำนวณและวาดเส้น Fibonacci Levels ต่างๆ (0.786, 0.705, 0.618, 0.5, 0.382) โดยอิงจาก structureHigh และ structureLow ของโครงสร้างตลาดปัจจุบัน
Alerts:
alertcondition: ใช้สำหรับตั้งค่า Alert ใน TradingView เมื่อเกิดสัญญาณ BOS หรือ CHOCH
plot(na):
plot(na) เป็นคำสั่งที่สำคัญในอินดิเคเตอร์ที่ไม่ได้ต้องการพล็อต Series ของข้อมูลบนกราฟ (เช่น ไม่ได้พล็อตเส้น EMA หรือ RSI) แต่ใช้วาดอ็อบเจกต์ (Line, Label, Box) โดยตรง
การมี plot(na) ช่วยให้ Pine Script รู้ว่าอินดิเคเตอร์นี้มีเอาต์พุตที่แสดงผลบนกราฟ แม้ว่าจะไม่ได้เป็น Series ที่พล็อตตามปกติก็ตาม
3. วิธีใช้งาน
คัดลอกโค้ดทั้งหมด ที่อยู่ในบล็อก immersive ด้านบน
ไปที่ TradingView และเปิดกราฟที่คุณต้องการ
คลิกที่เมนู "Pine Editor" ที่อยู่ด้านล่างของหน้าจอ
ลบโค้ดเดิมที่มีอยู่ และ วางโค้ดที่คัดลอกมา ลงไปแทน
คลิกที่ปุ่ม "Add to Chart"
อินดิเคเตอร์จะถูกเพิ่มลงในกราฟของคุณโดยอัตโนมัติ คุณสามารถคลิกที่รูปฟันเฟืองข้างชื่ออินดิเคเตอร์บนกราฟเพื่อเข้าถึงหน้าต่างการตั้งค่าและปรับแต่งตามความต้องการของคุณได้
Hello! I will explain the "SMC Structures and FVG + MACD" indicator you provided in detail, section by section, so you can fully understand how it works.This indicator combines the concepts of Smart Money Concept (SMC), which focuses on analyzing Market Structure and Fair Value Gaps (FVG), with the MACD indicator to serve as a filter or confirmation for Choch (Change of Character) and BoS (Break of Structure) signals.1. Overall PurposeThe main purposes of this indicator are:Identify Market Structure: Automatically draw lines and label Choch (Change of Character) and BoS (Break of Structure) on the chart.Integrate MACD Confirmation: Choch/BoS signals will only be considered when the MACD Histogram performs a cross (Zero Cross) in the corresponding direction.Display Fair Value Gap (FVG): If enabled, FVG boxes will be drawn on the chart.Display Fibonacci Levels: Calculate and display important Fibonacci levels based on the current market structure.Adapt to Timeframe: All calculations and displays will automatically adjust to the timeframe you are currently using.2. Code BreakdownThis code can be divided into the following main sections:2.1 Inputs (Settings)This section contains variables that you can adjust in the indicator's settings window (click the gear icon next to the indicator's name on the chart).MACD Settings:fast_len: Length of the Fast EMA for MACD (default 12)slow_len: Length of the Slow EMA for MACD (default 26)signal_len: Length of the Signal Line for MACD (default 9) = ta.macd(close, fast_len, slow_len, signal_len): Calculates the MACD Line, Signal Line, and Histogram using the closing price (close) and the specified lengths.is_bullish_macd_cross: Checks if the MACD Histogram crosses above the 0 line (from negative to positive).is_bearish_macd_cross: Checks if the MACD Histogram crosses below the 0 line (from positive to negative).Fear Value Gap (FVG) Settings:isFvgToShow: (Boolean) Enables/disables the display of FVG on the chart.bullishFvgColor: Color for Bullish FVG.bearishFvgColor: Color for Bearish FVG.mitigatedFvgColor: Color for FVG that has been mitigated.fvgHistoryNbr: Number of historical FVG to display.isMitigatedFvgToReduce: (Boolean) Enables/disables reducing the size of FVG when mitigated.Structures (โครงสร้างตลาด) Settings:isStructBodyCandleBreak: (Boolean) If true, the break must occur with the candle body closing above/below the Swing High/Low. If false, a wick break is sufficient.isCurrentStructToShow: (Boolean) Enables/disables the display of the current market structure lines (blue lines in the example image).pivot_len: Lookback length for identifying Pivot points (Swing High/Low). A smaller value captures smaller, more frequent swings; a larger value captures larger, more significant swings.bullishBosColor, bearishBosColor: Colors for bullish/bearish BOS lines and labels.bosLineStyleOption, bosLineWidth: Style (Solid, Dotted, Dashed) and width of BOS lines.bullishChochColor, bearishChochColor: Colors for bullish/bearish CHoCH lines and labels.chochLineStyleOption, chochLineWidth: Style (Solid, Dotted, Dashed) and width of CHoCH lines.currentStructColor, currentStructLineStyleOption, currentStructLineWidth: Color, style, and width of the current market structure lines.structHistoryNbr: Number of historical breaks (Choch/BoS) to display.Structure Fibonacci (from original code):A set of inputs to enable/disable, define values, colors, styles, and widths for various Fibonacci Levels (0.786, 0.705, 0.618, 0.5, 0.382) that will be calculated from the current market structure.2.2 Helper FunctionsgetLineStyle(lineOption): This function converts the selected string input (e.g., "─", "┈", "╌") into a line.style_ format understood by Pine Script.get_structure_highest_bar(lookback): This function attempts to find the Bar Index of the Swing High within the specified lookback period.get_structure_lowest_bar(lookback): This function attempts to find the Bar Index of the Swing Low within the specified lookback period.is_structure_high_broken(...): This function checks if the current price has broken above _structureHigh (Swing High), considering _highStructBreakPrice (closing price or high price depending on isStructBodyCandleBreak setting).FVGDraw(...): This function takes arrays of FVG Boxes, Types, Mitigation Status, and Labels to process and update the status of FVG (e.g., whether it's mitigated) and adjust the size/position of FVG Boxes and Labels on the chart.2.3 Global VariablesThese are variables declared with var, meaning their values are stored and updated on each bar (persists across bars).structureLines, structureLabels: Arrays to store line and label objects for Choch/BoS lines drawn on the chart.fvgBoxes, fvgTypes, fvgLabels, isFvgMitigated: Arrays to store FVG box data and their respective statuses.structureHigh, structureLow: Stores the price of the significant Swing High/Low of the current market structure.structureHighStartIndex, structureLowStartIndex: Stores the Bar Index of the start point of the significant Swing High/Low.structureDirection: Stores the status of the market structure direction (1 = Bullish, 2 = Bearish, 0 = Undefined).fiboXPrice, fiboXStartIndex, fiboXLine, fiboXLabel: Variables to store data and objects for Fibonacci Levels.isBOSAlert, isCHOCHAlert: (Boolean) Used to trigger alerts in TradingView (if alerts are configured).2.4 FVG ProcessingThis section checks the conditions for FVG formation (Bullish FVG: high < low , Bearish FVG: low > high ).If FVG occurs and isFvgToShow is true, a new box and label are created to display the FVG on the chart.fvgBoxes and fvgLabels are managed to limit the number of FVG displayed according to fvgHistoryNbr and remove older FVG.The FVGDraw function is called to update the FVG status (e.g., whether it's mitigated) and adjust its display.2.5 Structures ProcessingInitialization: At bar_index == 0 (the first bar of the chart), structureHigh, structureLow, structureHighStartIndex, and structureLowStartIndex are initialized.Finding Current High/Low: highest, highestBar, lowest, lowestBar are used to find the highest/lowest price and its Bar Index of it in the last 10 bars (or all bars if the chart is shorter than 10 bars).Calculating Structure Max/Min Bar: structureMaxBar and structureMinBar use get_structure_highest_bar and get_structure_lowest_bar functions to find the Bar Index of the true Swing High/Low (not just the highest/lowest in the lookback but a complete Pivot point).Break Price: lowStructBreakPrice and highStructBreakPrice will be the closing price (close) or the Low/High price, depending on the isStructBodyCandleBreak setting.isStuctureLowBroken / isStructureHighBroken: These conditions check if the price has broken structureLow or structureHigh, considering the break price, previous bar prices, and the Bar Index of the structure's starting point.Choch/BoS Logic (Key Integration with MACD):if(isStuctureLowBroken and is_bearish_macd_cross): This is where MACD plays a role. If the price breaks structureLow (bearish signal) AND the MACD Histogram performs a Bearish Zero Cross (is_bearish_macd_cross is true), the indicator will consider it a Choch or BoS.If structureDirection == 1 (previously bullish) or 0 (undefined), it will be labeled "CHoCH" (changing structure direction to bearish).If structureDirection == 2 (already bearish), it will be labeled "BOS" (confirming bearish structure).line.new and label.new are used to draw the line and label.structureDirection will be updated to 1 (Bullish).structureHighStartIndex, structureLowStartIndex, structureHigh, structureLow will be updated to define the new structure.else if(isStructureHighBroken and is_bullish_macd_cross): Similarly for bullish breaks. If the price breaks structureHigh (bullish signal) AND the MACD Histogram performs a Bullish Zero Cross (is_bullish_macd_cross is true), the indicator will consider it a Choch or BoS.If structureDirection == 2 (previously bearish) or 0 (undefined), it will be labeled "CHoCH" (changing structure direction to bullish).If structureDirection == 1 (already bullish), it will be labeled "BOS" (confirming bullish structure).line.new and label.new are used to draw the line and label.structureDirection will be updated to 2 (Bearish).structureHighStartIndex, structureLowStartIndex, structureHigh, structureLow will be updated to define the new structure.Deleting Old Lines: d.delete_line (if the library works) will be called to delete old lines and labels when their number exceeds structHistoryNbr.Updating Structure High/Low (else block): If no break occurs, but the current price is higher than structureHigh or lower than structureLow in the corresponding direction (e.g., still bullish and making a new high), structureHigh or structureLow will be updated to track the highest/lowest point of the current structure.Current Structure Display:If isCurrentStructToShow is true, the indicator draws structureHighLine and structureLowLine to show the boundaries of the current market structure.Fibonacci Display:If isFiboXToShow is true, the indicator calculates and draws various Fibonacci Levels (0.786, 0.705, 0.618, 0.5, 0.382) based on the structureHigh and structureLow of the current market structure.Alerts:alertcondition: Used to set up alerts in TradingView when BOS or CHOCH signals occur.plot(na):plot(na) is an important statement in indicators that do not plot data series directly on the chart (e.g., not plotting EMA or RSI lines) but instead draw objects (Line, Label, Box).Having plot(na) helps Pine Script recognize that this indicator has an output displayed on the chart, even if it's not a regularly plotted series.3. How to UseCopy all the code in the immersive block above.Go to TradingView and open your desired chart.Click on the "Pine Editor" menu at the bottom of the screen.Delete any existing code and paste the copied code in its place.Click the "Add to Chart" button.The indicator will be added to your chart automatically. You can click the gear icon next to the indicator's name on the chart to access the settings window and customize it to your needs.I hope this explanation helps you understand this indicator in detail. If anything is unclear, or you need further adjustments, please let me know.
Bollinger Levels Table - Horizontal Support ZonesBollinger Levels Table - Horizontal Support Zones Indicator (with Customizable Options)
The "Bollinger Levels Table - Horizontal Support Zones" indicator is a comprehensive tool designed to help you identify potential support areas on your chart using moving averages and Bollinger Bands. The indicator displays an organized table of key price levels and draws horizontal lines on the chart, providing clear visibility of potential support zones.
What Does This Indicator Do?
This indicator aims to simplify support analysis by consolidating and displaying significant price levels derived from three different Bollinger Band settings: BB10, BB20, and BB50. It calculates both the Mid-line (Basis) and the Lower Band for each of these settings.
Furthermore, the indicator automatically arranges these levels from highest to lowest in an easy-to-read table, assigning a "Payment" label to each level. These "Payments" are simply labels to help you track the levels in descending order.
How Does This Indicator Work?
Bollinger Band Calculations: The indicator uses the standard Bollinger Band formula:
Mid-line (Basis): A Simple Moving Average (SMA) of the closing price over a specified period.
Standard Deviation (Dev): The standard deviation of the closing price over the same period, multiplied by a Multiplier.
Lower Band: The Mid-line minus the Standard Deviation.
These calculations are applied to three different periods: 10, 20, and 50, providing a variety of potential support levels based on different timeframes. You can adjust the values for these lengths (10, 20, 50) and the Multiplier through the indicator's settings.
Table Construction: A dynamic table is created on the chart (which can be positioned in the top or bottom right corner based on the current price's position). This table displays:
Indicator: The name of the Bollinger Band level (e.g., BB10 Mid, BB20 Lower).
Price: The exact price value of that level.
Payments: A label indicating the level's order in the table.
Level Ordering: All calculated levels are dynamically sorted from highest to lowest to present them in a logical order within the table.
Horizontal Line Plotting: Horizontal lines are drawn on the chart for each selected level, providing a visual representation of the potential support areas. These lines are colored black and have a consistent width for easy identification.
How to Use This Indicator:
This indicator is intended to provide potential entry points or accumulation zones for trades, especially for traders employing Dollar-Cost Averaging (DCA) strategies or building positions in stages. The levels displayed in the table and on the chart can represent potential support levels where one might consider initiating or adding to a position.
In the indicator's settings, you'll find important options:
Multiplier: Controls the width of the Bollinger Bands (default 2.0).
BB Lengths: Allows you to adjust the periods for the moving averages (default 20, 50, 10).
Visible Levels: This is the new feature! Here, you can select which levels you wish to see in the table and on the chart. Simply check or uncheck the boxes next to each level (BB10 Mid, BB10 Lower, and so on) to customize the indicator's display according to your strategy and needs.
Underlying Concepts:
This indicator is based on the principle that Bollinger Bands can act as dynamic support and resistance zones.
Mid-line (SMA): Often functions as a medium-term support or resistance.
Lower Band: Typically indicates that the price is relatively low and may find support, making it a potential area for buying or starting to build a position.
By combining different Bollinger Band timeframes (10, 20, 50), the indicator gives you a multi-timeframe perspective on support areas, helping you identify the most relevant levels for your strategy.
Note: While the indicator provides "Payments" for the levels, this is purely a sequential labeling within the table to assist your position-building strategy. There is no actual payment functionality associated with this indicator.
Candle Channel█ OVERVIEW
The "Candle Channel" indicator is a versatile technical analysis tool that plots a price channel based on the Simple Moving Average (SMA) of candlestick midpoints. The channel bands, calculated based on candlestick volatility, form dynamic support and resistance levels that adapt to price movements. The script generates signals for reversals from the bands and SMA breakouts, making it useful for both short-term and long-term traders. By adjusting the SMA length, the channel can vary in nature—from a wide channel encapsulating price movement to narrower support/resistance or trend-following bands. The channel width can be further customized using a scaling parameter, allowing adaptation to different trading styles and markets.
█ MECHANISM
Band Calculation
The indicator is based on the following calculations:
Candlestick Midpoint: Calculated as the arithmetic average of the candle’s high and low prices: (high + low) / 2.
Simple Moving Average (SMA): The average of candlestick midpoints over a specified length (default: 20 candles), forming the channel’s centerline.
Average Candle Height: Calculated as the average difference between the high and low prices (high - low) over the same SMA length, serving as a measure of market volatility.
Band Scaling: The user specifies a percentage of the average candle height (default: 200%), which is multiplied by the average height to create an offset. The upper band is SMA + offset, and the lower band is SMA - offset.Example: For an average candle height of 10 points and 200% scaling, the offset is 20 points, meaning the bands are ±20 points from the SMA.
Channel Characteristics: The SMA length determines the channel’s dynamics. Shorter SMA values (10–30) create a wide channel that contains price movement, ideal for scalping or short-term trading. Longer SMA values (above 30, e.g., 50–100) transform the channel into narrower support/resistance or trend-following bands, suitable for longer-term analysis. Band scaling further adjusts the channel width to match market volatility.
Signals
Reversal from Bands: Signals are generated when the price closes outside the band (above the upper or below the lower) and then returns to the channel, indicating a potential trend reversal.
SMA Breakout: Signals are generated when the price crosses the SMA upward (bullish signal) or downward (bearish signal), suggesting potential trend changes.
Visualization
Centerline: The SMA of candlestick midpoints, displayed as a thin line.
Channel Bands: Upper and lower channel boundaries, with customizable colors.
Fill: Options include a gradient (smooth color transition between bands) or solid color. The fill can also be disabled for greater clarity.
█ FEATURES AND SETTINGS
SMA Length: Determines the moving average period (default: 20). Values of 10–30 are suitable for a wide channel containing price movement, ideal for short-term timeframes. Longer values (e.g., 50–100) create narrower support/resistance or trend-following bands, better suited for higher timeframes.
Band Scaling: Percentage of the average candle height (default: 200%). Adjusts the channel width to match market volatility—smaller values (e.g., 50–100%) for narrower bands, larger values (e.g., 200–300%) for wider channels.
Fill Type: Gradient, solid, or no fill, allowing customization to user preferences.
Colors: Options to change the colors of bands, fill, and signals for better readability.
Signals: Options to enable/disable reversal signals from bands and SMA breakout signals.
█ HOW TO USE
Add the script to your chart in TradingView by clicking "Add to Chart" in the Pine Editor.
Adjust input parameters in the script settings:
SMA Length: Set to 10–30 for a wide channel containing price movement, suitable for scalping or short-term trading. Set above 30 (e.g., 50–100) for narrower support/resistance or trend-following bands.
Band Scaling: Adjust the channel width to market volatility. Smaller values (50–100%) for tighter support/resistance bands, larger values (200–300%) for wider channels containing price movement.
Fill Type and Colors: Choose a gradient for aesthetics or a solid fill for clarity.
Analyze signals:
Reversal Signals: Triangles above (bearish) or below (bullish) candles indicate potential reversal points.
SMA Breakout Signals: Circles above (bearish) or below (bullish) candles indicate trend changes.
Test the indicator on different instruments and timeframes to find optimal settings for your trading style.
█ LIMITATIONS
The indicator may generate false signals in highly volatile or consolidating markets.
On low-liquidity charts (e.g., exotic currency pairs), the bands may be less reliable.
Effectiveness depends on properly matching parameters to the market and timeframe.
Volume Surge Detector[SpeculationLab]Volume Surge Detector
This tool is especially useful for spotting early signs of breakouts, news-driven spikes, or institutional activity that are often preceded by abnormal surges in volume.
For better chart readability, the volume bar colors are based on TradingView’s original Volume indicator, while all other code is fully original by Speculation Lab.
You can customize both the SMA line and the volume bar colors to fit your style.
The logic compares the current volume against its SMA (default length: 14, fully adjustable).
The script comes with two surge levels:
Surge Level 1 (default = 5) → When volume is more than 5× the SMA, the bar turns aqua.
Surge Level 2 (default = 10) → When volume is more than 10× the SMA, the bar turns yellow.
It also includes built-in alerts, so you’ll be notified instantly whenever a surge is detected.
This makes it easier to spot potential breakout moves or large market participation in real time.
Disclaimer: This script is for educational purposes only. It does not provide financial advice.
这是一个用于探测 成交量爆发 的指标。
为了图表美观,成交量柱的颜色借鉴了 TradingView 原始 Volume 指标,其余代码均为 Speculation Lab 原创。
用户可以自由调整成交量柱和其对应的 SMA 均线的颜色。
指标通过对比成交量和其 SMA(默认长度为14,可自定义长度和颜色)的比例来检测放量。
默认设置了两个放量级别:
Surge Level 1(默认=5):当成交量超过均量的 5 倍时,量柱变为水蓝色。
Surge Level 2(默认=10):当成交量超过均量的 10 倍时,量柱变为黄色。
脚本还设置了 内置警报功能,方便交易者在出现放量时实时收到通知。
Active PMI Support/Resistance Levels [EdgeTerminal]The PMI Support & Resistance indicator revolutionizes traditional technical analysis by using Pointwise Mutual Information (PMI) - a statistical measure from information theory - to objectively identify support and resistance levels. Unlike conventional methods that rely on visual pattern recognition, this indicator provides mathematically rigorous, quantifiable evidence of price levels where significant market activity occurs.
- The Mathematical Foundation: Pointwise Mutual Information
Pointwise Mutual Information measures how much more likely two events are to occur together compared to if they were statistically independent. In our context:
Event A: Volume spikes occurring (high trading activity)
Event B: Price being at specific levels
The PMI formula calculates: PMI = log(P(A,B) / (P(A) × P(B)))
Where:
P(A,B) = Probability of volume spikes occurring at specific price levels
P(A) = Probability of volume spikes occurring anywhere
P(B) = Probability of price being at specific levels
High PMI scores indicate that volume spikes and certain price levels co-occur much more frequently than random chance would predict, revealing genuine support and resistance zones.
- Why PMI Outperforms Traditional Methods
Subjective interpretation: What one trader sees as significant, another might ignore
Confirmation bias: Tendency to see patterns that confirm existing beliefs
Inconsistent criteria: No standardized definition of "significant" volume or price action
Static analysis: Doesn't adapt to changing market conditions
No strength measurement: Can't quantify how "strong" a level truly is
PMI Advantages:
✅ Objective & Quantifiable: Mathematical proof of significance, not visual guesswork
✅ Statistical Rigor: Levels backed by information theory and probability
✅ Strength Scoring: PMI scores rank levels by statistical significance
✅ Adaptive: Automatically adjusts to different market volatility regimes
✅ Eliminates Bias: Computer-calculated, removing human interpretation errors
✅ Market Structure Aware: Reveals the underlying order flow concentrations
- How It Works
Data Processing Pipeline:
Volume Analysis: Identifies volume spikes using configurable thresholds
Price Binning: Divides price range into discrete levels for analysis
Co-occurrence Calculation: Measures how often volume spikes happen at each price level
PMI Computation: Calculates statistical significance for each price level
Level Filtering: Shows only levels exceeding minimum PMI thresholds
Dynamic Updates: Refreshes levels periodically while maintaining historical traces
Visual System:
Current Levels: Bright, thick lines with PMI scores - your actionable levels
Historical Traces: Faded previous levels showing market structure evolution
Strength Tiers: Line styles indicate PMI strength (solid/dashed/dotted)
Color Coding: Green for support, red for resistance
Info Table: Real-time display of strongest levels with scores
- Indicator Settings:
Core Parameters
Lookback Period (Default: 200)
Lower (50-100): More responsive to recent price action, catches short-term levels
Higher (300-500): Focuses on major historical levels, more stable but less responsive
Best for: Day trading (100-150), Swing trading (200-300), Position trading (400-500)
Volume Spike Threshold (Default: 1.5)
Lower (1.2-1.4): More sensitive, catches smaller volume increases, more levels detected
Higher (2.0-3.0): Only major volume surges count, fewer but stronger signals
Market dependent: High-volume stocks may need higher thresholds (2.0+), low-volume stocks lower (1.2-1.3)
Price Bins (Default: 50)
Lower (20-30): Broader price zones, less precise but captures wider areas
Higher (70-100): More granular levels, precise but may be overly specific
Volatility dependent: High volatility assets benefit from more bins (70+)
Minimum PMI Score (Default: 0.5)
Lower (0.2-0.4): Shows more levels including weaker ones, comprehensive view
Higher (1.0-2.0): Only statistically strong levels, cleaner chart
Progressive filtering: Start with 0.5, increase if too cluttered
Max Levels to Show (Default: 8)
Fewer (3-5): Clean chart focusing on strongest levels only
More (10-15): Comprehensive view but may clutter chart
Strategy dependent: Scalpers prefer fewer (3-5), swing traders more (8-12)
Historical Tracking Settings
Update Frequency (Default: 20 bars)
Lower (5-10): More frequent updates, captures rapid market changes
Higher (50-100): Less frequent updates, focuses on major structural shifts
Timeframe scaling: 1-minute charts need lower frequency (5-10), daily charts higher (50+)
Show Historical Levels (Default: True)
Enables the "breadcrumb trail" effect showing evolution of support/resistance
Disable for cleaner charts focusing only on current levels
Max Historical Marks (Default: 50)
Lower (20-30): Less memory usage, shorter history
Higher (100-200): Longer historical context but more resource intensive
Fade Strength (Default: 0.8)
Lower (0.5-0.6): Historical levels more visible
Higher (0.9-0.95): Historical levels very subtle
Visual Settings
Support/Resistance Colors: Choose colors that contrast well with your chart theme Line Width: Thicker lines (3-4) for better visibility on busy charts Show PMI Scores: Toggle labels showing statistical strength Label Size: Adjust based on screen resolution and chart zoom level
- Most Effective Usage Strategies
For Day Trading:
Setup: Lookback 100-150, Volume Threshold 1.8-2.2, Update Frequency 10-15
Use PMI levels as bounce/rejection points for scalp entries
Higher PMI scores (>1.5) offer better probability setups
Watch for volume spike confirmations at levels
For Swing Trading:
Setup: Lookback 200-300, Volume Threshold 1.5-2.0, Update Frequency 20-30
Enter on pullbacks to high PMI support levels
Target next resistance level with PMI score >1.0
Hold through minor levels, exit at major PMI levels
For Position Trading:
Setup: Lookback 400-500, Volume Threshold 2.0+, Update Frequency 50+
Focus on PMI scores >2.0 for major structural levels
Use for portfolio entry/exit decisions
Combine with fundamental analysis for timing
- Trading Applications:
Entry Strategies:
PMI Bounce Trades
Price approaches high PMI support level (>1.0)
Wait for volume spike confirmation (orange triangles)
Enter long on bullish price action at the level
Stop loss just below the PMI level
Target: Next PMI resistance level
PMI Breakout Trades
Price consolidates near high PMI level
Volume increases (watch for orange triangles)
Enter on decisive break with volume
Previous resistance becomes new support
Target: Next major PMI level
PMI Rejection Trades
Price approaches PMI resistance with momentum
Watch for rejection signals and volume spikes
Enter short on failure to break through
Stop above the PMI level
Target: Next PMI support level
Risk Management:
Stop Loss Placement
Place stops 0.1-0.5% beyond PMI levels (adjust for volatility)
Higher PMI scores warrant tighter stops
Use ATR-based stops for volatile assets
Position Sizing
Larger positions at PMI levels >2.0 (highest conviction)
Smaller positions at PMI levels 0.5-1.0 (lower conviction)
Scale out at multiple PMI targets
- Key Warning Signs & What to Watch For
Red Flags:
🚨 Very Low PMI Scores (<0.3): Weak statistical significance, avoid trading
🚨 No Volume Confirmation: PMI level without recent volume spikes may be stale
🚨 Overcrowded Levels: Too many levels close together suggests poor parameter tuning
🚨 Outdated Levels: Historical traces are reference only, not tradeable
Optimization Tips:
✅ Regular Recalibration: Adjust parameters monthly based on market regime changes
✅ Volume Context: Always check for recent volume activity at PMI levels
✅ Multiple Timeframes: Confirm PMI levels across different timeframes
✅ Market Conditions: Higher thresholds during high volatility periods
Interpreting PMI Scores
PMI Score Ranges:
0.5-1.0: Moderate statistical significance, proceed with caution
1.0-1.5: Good significance, reliable for most trading strategies
1.5-2.0: Strong significance, high-confidence trade setups
2.0+: Very strong significance, institutional-grade levels
Historical Context: The historical trace system shows how support and resistance evolve over time. When current levels align with multiple historical traces, it indicates persistent market memory at those prices, significantly increasing the level's reliability.
Staccked SMA - Regime Switching & Persistance StatisticsThis indicator is designed to identify the prevailing market regime by analyzing the behavior of a "stack" of Simple Moving Averages (SMAs). It helps you understand whether the market is currently trending, mean-reverting, or moving randomly.
Core Concept: SMA Correlation
At its heart, the indicator examines the relationship between a set of nine SMAs with different lengths (3, 5, 8, 13, 21, 34, 55, 89, 144) and the lengths themselves.
In a strong trending market (either up or down), the SMAs will be neatly "stacked" in order of their length. The shortest SMA will be furthest from the longest SMA, creating a strong, almost linear visual pattern. When we measure the statistical correlation between the SMA values and their corresponding lengths, we get a value close to +1 (perfect uptrend stack) or -1 (perfect downtrend stack). The absolute value of this correlation will be very high (close to 1).
In a mean-reverting or sideways market, the SMAs will be tangled and crisscrossing each other. There is no clear order, and the relationship between an SMA's length and its price value is weak. The correlation will be close to 0.
This indicator calculates this Pearson correlation on every bar, giving a continuous measure of how ordered or "trendy" the SMAs are. An absolute correlation above 0.8 is considered strongly trending, while a value between 0.4 and 0.8 suggests a mean-reverting character. Below 0.4, the market is likely random or choppy.
Regime Classification and Statistics
The indicator doesn't just look at the current correlation; it analyzes its behavior over a user-defined lookback window (default is 252 bars) to classify the overall market "regime."
It presents its findings in a clear table:
📊 |SMA Correlation| Regime Table: This main table provides a snapshot of the current market character.
Median: Shows the median absolute correlation over the lookback period, giving a central tendency of the market's behavior.
% > 0.80: The percentage of time the market was in a strong trend during the lookback period.
% < 0.80 & > 0.40: The percentage of time the market showed mean-reverting characteristics.
🧠 Regime: The final classification. It's labeled "📈 Trend-Dominant" if the median correlation is high and it has spent a significant portion of the time trending. It's labeled "🔄 Mean-Reverting" if the median is in the middle range and it has spent significant time in that state. Otherwise, it's considered "⚖️ Random/ Choppy".
📐 Regime Significance: This tells you how statistically confident you can be in the current regime classification, using a Z-score to compare its occurrence against random chance. ⭐⭐⭐ indicates high confidence (99%), while "❌ Not Significant" means the pattern could be random.
Regime Transition Probabilities
Optionally, a second table can be displayed that shows the historical probability of the market transitioning from one regime to another over different time horizons (t+5, t+10, t+15, and t+20 bars).
📈 → 🔄 → ⚖️ Transition Table: This table answers questions like, "If the market is trending now (From: 📈), what is the probability it will be mean-reverting (→ 🔄) in 10 bars?"
This provides powerful insights into the market's cyclical nature, helping you anticipate future behavior based on past patterns. For example, you might find that after a period of strong trending, a transition to a choppy state is more likely than a direct switch to a mean-reverting
Indicator Settings
Lookback Window for Regime Classification: This sets the number of recent bars (default is 252) the script analyzes to determine the current market regime (Trending, Mean-Reverting, or Random). A larger number provides a more stable, long-term view, while a smaller number makes the classification more sensitive to recent price action.
Show Regime Transition Table: A simple toggle (on/off) to show or hide the table that displays the probabilities of the market switching from one regime to another.
Lookback Offset for Starting Regime: This determines the "starting point" in the past for calculating regime transitions. The default is 20 bars ago. The script looks at the regime at this point and then checks what it became at later points.
Step 1, 2, 3, 4 Offset (bars): These define the future time intervals (5, 10, 15, and 20 bars by default) for the transition probability table. For example, the script checks the regime at the "Lookback Offset" and then sees what it transitioned to 5, 10, 15, and 20 bars later.
Significance Filter Settings
Use Regime Significance Filter: When enabled, this filter ensures that the regime transition statistics only count transitions that were "statistically significant." This helps to filter out noise and focus on more reliable patterns.
Min Stars Required (1=90%, 2=95%, 3=99%): This sets the minimum confidence level required for a regime to be included in the transition statistics when the significance filter is on.
1 ⭐: Requires at least 90% confidence.
2 ⭐⭐: Requires at least 95% confidence (default).
3 ⭐⭐⭐: Requires at least 99% confidence.
Position Size Calculator with Fees# Position Size Calculator with Portfolio Management - Manual
## Overview
The Position Size Calculator with Portfolio Management is an advanced Pine Script indicator designed to help traders calculate optimal position sizes based on their total portfolio value and risk management strategy. This tool automatically calculates your risk amount based on portfolio allocation percentages and determines the exact position size needed while accounting for trading fees.
## Key Features
- **Portfolio-Based Risk Management**: Calculates risk based on total portfolio value
- **Tiered Risk Allocation**: Separates trading allocation from total portfolio
- **Automatic Trade Direction Detection**: Determines long/short based on entry vs stop loss
- **Fee Integration**: Accounts for trading fees in position size calculations
- **Risk Factor Adjustment**: Allows scaling of position size up or down
- **Visual Display**: Shows all calculations in a clear, color-coded table
- **Automatic Risk Calculation**: No need to manually input risk amount
## Input Parameters
### Total Portfolio ($)
- **Purpose**: The total value of your investment portfolio
- **Default**: 0.0
- **Range**: Any positive value
- **Step**: 0.01
- **Example**: If your total portfolio is worth $100,000, enter 100000
### Trading Portfolio Allocation (%)
- **Purpose**: The percentage of your total portfolio allocated to active trading
- **Default**: 20.0%
- **Range**: 0.0% to 100.0%
- **Step**: 0.01
- **Example**: If you allocate 20% of your portfolio to trading, enter 20
### Risk from Trading (%)
- **Purpose**: The percentage of your trading allocation you're willing to risk per trade
- **Default**: 0.1%
- **Range**: Any positive value
- **Step**: 0.01
- **Example**: If you risk 0.1% of your trading allocation per trade, enter 0.1
### Entry Price ($)
- **Purpose**: The price at which you plan to enter the trade
- **Default**: 0.0
- **Range**: Any positive value
- **Step**: 0.01
### Stop Loss ($)
- **Purpose**: The price at which you will exit if the trade goes against you
- **Default**: 0.0
- **Range**: Any positive value
- **Step**: 0.01
### Risk Factor
- **Purpose**: A multiplier to scale your position size up or down
- **Default**: 1.0 (no scaling)
- **Range**: 0.0 to 10.0
- **Step**: 0.1
- **Examples**:
- 1.0 = Normal position size
- 2.0 = Double the position size
- 0.5 = Half the position size
### Fee (%)
- **Purpose**: The percentage fee charged per transaction
- **Default**: 0.01% (0.01)
- **Range**: 0.0% to 1.0%
- **Step**: 0.001
## How Risk Amount is Calculated
The script automatically calculates your risk amount using this formula:
```
Risk Amount = Total Portfolio × Trading Allocation (%) × Risk % ÷ 10,000
```
### Example Calculation:
- Total Portfolio: $100,000
- Trading Allocation: 20%
- Risk per Trade: 0.1%
**Risk Amount = $100,000 × 20 × 0.1 ÷ 10,000 = $20**
This means you would risk $20 per trade, which is 0.1% of your $20,000 trading allocation.
## Portfolio Structure Example
Let's say you have a $100,000 portfolio:
### Allocation Structure:
- **Total Portfolio**: $100,000
- **Trading Allocation (20%)**: $20,000
- **Long-term Investments (80%)**: $80,000
### Risk Management:
- **Risk per Trade (0.1% of trading)**: $20
- **Maximum trades at risk**: Could theoretically have 1,000 trades before risking entire trading allocation
## How Position Size is Calculated
### Trade Direction Detection
- **Long Trade**: Entry price > Stop loss price
- **Short Trade**: Entry price < Stop loss price
### Position Size Formulas
#### For Long Trades:
```
Position Size = -Risk Factor × Risk Amount / (Stop Loss × (1 - Fee) - Entry Price × (1 + Fee))
```
#### For Short Trades:
```
Position Size = -Risk Factor × Risk Amount / (Entry Price × (1 - Fee) - Stop Loss × (1 + Fee))
```
## Output Display
The indicator displays a comprehensive table with color-coded sections:
### Portfolio Information (Light Blue Background)
- **Portfolio (USD)**: Your total portfolio value
- **Trading Portfolio Allocation (%)**: Percentage allocated to trading
- **Risk as % of Trading**: Risk percentage per trade
### Trade Setup (Gray Background)
- **Entry Price**: Your specified entry price
- **Stop Loss**: Your specified stop loss price
- **Fee (%)**: Trading fee percentage
- **Risk Factor**: Position size multiplier
### Risk Analysis (Red Background)
- **Risk Amount**: Automatically calculated dollar risk
- **Effective Entry**: Actual entry cost including fees
- **Effective Exit**: Actual exit value including fees
- **Expected Loss**: Calculated loss if stop loss is hit
- **Deviation from Risk %**: Accuracy of risk calculation
### Final Result (Blue Background)
- **Position Size**: Number of shares/units to trade
## Usage Examples
### Example 1: Conservative Long Trade
- **Total Portfolio**: $50,000
- **Trading Allocation**: 15%
- **Risk per Trade**: 0.05%
- **Entry Price**: $25.00
- **Stop Loss**: $24.00
- **Risk Factor**: 1.0
- **Fee**: 0.01%
**Calculated Risk Amount**: $50,000 × 15% × 0.05% ÷ 100 = $3.75
### Example 2: Aggressive Short Trade
- **Total Portfolio**: $200,000
- **Trading Allocation**: 30%
- **Risk per Trade**: 0.2%
- **Entry Price**: $150.00
- **Stop Loss**: $155.00
- **Risk Factor**: 2.0
- **Fee**: 0.01%
**Calculated Risk Amount**: $200,000 × 30% × 0.2% ÷ 100 = $120
**Actual Risk**: $120 × 2.0 = $240 (due to risk factor)
## Color Coding System
- **Green/Red Header**: Trade direction (Long/Short)
- **Light Blue**: Portfolio management parameters
- **Gray**: Trade setup parameters
- **Red**: Risk-related calculations and results
- **Blue**: Final position size result
## Best Practices
### Portfolio Management
1. **Keep trading allocation reasonable** (typically 10-30% of total portfolio)
2. **Use conservative risk percentages** (0.05-0.2% per trade)
3. **Don't risk more than you can afford to lose**
### Risk Management
1. **Start with small risk factors** (1.0 or less) until comfortable
2. **Monitor your total exposure** across all open positions
3. **Adjust risk based on market conditions**
### Trade Execution
1. **Always validate calculations** before placing trades
2. **Account for slippage** in volatile markets
3. **Consider position size relative to liquidity**
## Risk Management Guidelines
### Conservative Approach
- Trading Allocation: 10-20%
- Risk per Trade: 0.05-0.1%
- Risk Factor: 0.5-1.0
### Moderate Approach
- Trading Allocation: 20-30%
- Risk per Trade: 0.1-0.15%
- Risk Factor: 1.0-1.5
### Aggressive Approach
- Trading Allocation: 30-40%
- Risk per Trade: 0.15-0.25%
- Risk Factor: 1.5-2.0
## Troubleshooting
### Common Issues
1. **Position Size shows 0**
- Verify all portfolio inputs are greater than 0
- Check that entry price differs from stop loss
- Ensure calculated risk amount is positive
2. **Very small position sizes**
- Increase risk percentage or risk factor
- Check if your risk amount is too small for the price difference
3. **Large risk deviation**
- Normal for very small positions
- Consider adjusting entry/stop loss levels
### Validation Checklist
- Total portfolio value is realistic
- Trading allocation percentage makes sense
- Risk percentage is conservative
- Entry and stop loss prices are valid
- Trade direction matches your intention
## Advanced Features
### Risk Factor Usage
- **Scaling up**: Use risk factors > 1.0 for high-confidence trades
- **Scaling down**: Use risk factors < 1.0 for uncertain trades
- **Never exceed**: Risk factors that would risk more than your comfort level
### Multiple Timeframe Analysis
- Use different risk factors for different timeframes
- Consider correlation between positions
- Adjust trading allocation based on market conditions
## Disclaimer
This tool is for educational and planning purposes only. Always verify calculations manually and consider market conditions, liquidity, and correlation between positions. The automated risk calculation assumes you're comfortable with the mathematical relationship between portfolio allocation and individual trade risk. Past performance doesn't guarantee future results, and all trading involves risk of loss.
Institutional Momentum Scanner [IMS]Institutional Momentum Scanner - Professional Momentum Detection System
Hunt explosive price movements like the professionals. IMS identifies maximum momentum displacement within 10-bar windows, revealing where institutional money commits to directional moves.
KEY FEATURES:
▪ Scans for strongest momentum in rolling 10-bar windows (institutional accumulation period)
▪ Adaptive filtering reduces false signals using efficiency ratio technology
▪ Three clear states: LONG (green), SHORT (red), WAIT (gray)
▪ Dynamic volatility-adjusted thresholds (8% ATR-scaled)
▪ Visual momentum flow with glow effects for signal strength
BASED ON:
- Pocket Pivot concept (O'Neil/Morales) applied to price momentum
- Adaptive Moving Average principles (Kaufman KAMA)
- Market Wizards momentum philosophy
- Institutional order flow patterns (5-day verification window)
HOW IT WORKS:
The scanner finds the maximum price displacement in each 10-bar window - where the market showed its hand. An adaptive filter (5-bar regression) separates real moves from noise. When momentum exceeds the volatility-adjusted threshold, states change.
IDEAL FOR:
- Momentum traders seeking explosive moves
- Swing traders (especially 4H timeframe)
- Position traders wanting institutional footprints
- Anyone tired of false breakout signals
Default parameters (10,5) optimized for 4H charts but adaptable to any timeframe. Remember: The market rewards patience and punishes heroes. Wait for clear signals.
"The market is honest. Are you?"
F&O Time Zones – Final Fixed📌 This indicator highlights high-probability intraday time zones used in Indian F&O (Futures & Options) strategies. Ideal for scalping, breakout setups, and trap avoidance.
🕒 Covered Time Zones:
• 9:15 – 9:21 AM → Flash Trades (first 1-minute volatility)
• 9:21 – 9:30 AM → Smart Money Trap (VWAP fakeouts)
• 9:30 – 9:50 AM → Fake Breakout Zone
• 9:50 – 10:15 AM → Institutional Entry Timing
• 10:15 – 10:45 AM → VWAP Range Scalps
• 10:45 – 11:15 AM → Second Trap Zone
• 11:15 – 1:00 PM → Trend Continuation Window
• 1:00 – 1:45 PM → Volatility Compression
• 1:45 – 2:15 PM → Institutional Exit Phase 1
• 2:15 – 2:45 PM → Trend Acceleration / Reversals
• 2:45 – 3:15 PM → Expiry Scalping Zone
• 3:15 – 3:30 PM → Dead Zone (square-off time)
🔧 Features:
✓ Clean vertical lines per zone
✓ Optional label positions (top or bottom)
✓ Adjustable line style, width, and color
🧠 Best used on: NIFTY, BANKNIFTY, FINNIFTY (5-min or lower)
---
🔒 **Disclaimer**:
This script is for **educational purposes only**. It is not financial advice. Trading involves risk. Please consult a professional or do your own research before taking any positions.
—
👤 Script by: **JoanJagan**
🛠️ Built in Pine Script v5
Multi-Confluence Swing Hunter V1# Multi-Confluence Swing Hunter V1 - Complete Description
Overview
The Multi-Confluence Swing Hunter V1 is a sophisticated low timeframe scalping strategy specifically optimized for MSTR (MicroStrategy) trading. This strategy employs a comprehensive point-based scoring system that combines optimized technical indicators, price action analysis, and reversal pattern recognition to generate precise trading signals on lower timeframes.
Performance Highlight:
In backtesting on MSTR 5-minute charts, this strategy has demonstrated over 200% profit performance, showcasing its effectiveness in capturing rapid price movements and volatility patterns unique to MicroStrategy's trading behavior.
The strategy's parameters have been fine-tuned for MSTR's unique volatility characteristics, though they can be optimized for other high-volatility instruments as well.
## Key Innovation & Originality
This strategy introduces a unique **dual scoring system** approach:
- **Entry Scoring**: Identifies swing bottoms using 13+ different technical criteria
- **Exit Scoring**: Identifies swing tops using inverse criteria for optimal exit timing
Unlike traditional strategies that rely on simple indicator crossovers, this system quantifies market conditions through a weighted scoring mechanism, providing objective, data-driven entry and exit decisions.
## Technical Foundation
### Optimized Indicator Parameters
The strategy utilizes extensively backtested parameters specifically optimized for MSTR's volatility patterns:
**MACD Configuration (3,10,3)**:
- Fast EMA: 3 periods (vs standard 12)
- Slow EMA: 10 periods (vs standard 26)
- Signal Line: 3 periods (vs standard 9)
- **Rationale**: These faster parameters provide earlier signal detection while maintaining reliability, particularly effective for MSTR's rapid price movements and high-frequency volatility
**RSI Configuration (21-period)**:
- Length: 21 periods (vs standard 14)
- Oversold: 30 level
- Extreme Oversold: 25 level
- **Rationale**: The 21-period RSI reduces false signals while still capturing oversold conditions effectively in MSTR's volatile environment
**Parameter Adaptability**: While optimized for MSTR, these parameters can be adjusted for other high-volatility instruments. Faster-moving stocks may benefit from even shorter MACD periods, while less volatile assets might require longer periods for optimal performance.
### Scoring System Methodology
**Entry Score Components (Minimum 13 points required)**:
1. **RSI Signals** (max 5 points):
- RSI < 30: +2 points
- RSI < 25: +2 points
- RSI turning up: +1 point
2. **MACD Signals** (max 8 points):
- MACD below zero: +1 point
- MACD turning up: +2 points
- MACD histogram improving: +2 points
- MACD bullish divergence: +3 points
3. **Price Action** (max 4 points):
- Long lower wick (>50%): +2 points
- Small body (<30%): +1 point
- Bullish close: +1 point
4. **Pattern Recognition** (max 8 points):
- RSI bullish divergence: +4 points
- Quick recovery pattern: +2 points
- Reversal confirmation: +4 points
**Exit Score Components (Minimum 13 points required)**:
Uses inverse criteria to identify swing tops with similar weighting system.
## Risk Management Features
### Position Sizing & Risk Control
- **Single Position Strategy**: 100% equity allocation per trade
- **No Overlapping Positions**: Ensures focused risk management
- **Configurable Risk/Reward**: Default 5:1 ratio optimized for volatile assets
### Stop Loss & Take Profit Logic
- **Dynamic Stop Loss**: Based on recent swing lows with configurable buffer
- **Risk-Based Take Profit**: Calculated using risk/reward ratio
- **Clean Exit Logic**: Prevents conflicting signals
## Default Settings Optimization
### Key Parameters (Optimized for MSTR/Bitcoin-style volatility):
- **Minimum Entry Score**: 13 (ensures high-conviction entries)
- **Minimum Exit Score**: 13 (prevents premature exits)
- **Risk/Reward Ratio**: 5.0 (accounts for volatility)
- **Lower Wick Threshold**: 50% (identifies true hammer patterns)
- **Divergence Lookback**: 8 bars (optimal for swing timeframes)
### Why These Defaults Work for MSTR:
1. **Higher Score Thresholds**: MSTR's volatility requires more confirmation
2. **5:1 Risk/Reward**: Compensates for wider stops needed in volatile markets
3. **Faster MACD**: Captures momentum shifts quickly in fast-moving stocks
4. **21-period RSI**: Reduces noise while maintaining sensitivity
## Visual Features
### Score Display System
- **Green Labels**: Entry scores ≥10 points (below bars)
- **Red Labels**: Exit scores ≥10 points (above bars)
- **Large Triangles**: Actual trade entries/exits
- **Small Triangles**: Reversal pattern confirmations
### Chart Cleanliness
- Indicators plotted in separate panes (MACD, RSI)
- TP/SL levels shown only during active positions
- Clear trade markers distinguish signals from actual trades
## Backtesting Specifications
### Realistic Trading Conditions
- **Commission**: 0.1% per trade
- **Slippage**: 3 points
- **Initial Capital**: $1,000
- **Account Type**: Cash (no margin)
### Sample Size Considerations
- Strategy designed for 100+ trade sample sizes
- Recommended timeframes: 4H, 1D for swing trading
- Optimal for trending/volatile markets
## Strategy Limitations & Considerations
### Market Conditions
- **Best Performance**: Trending markets with clear swings
- **Reduced Effectiveness**: Highly choppy, sideways markets
- **Volatility Dependency**: Optimized for moderate to high volatility assets
### Risk Warnings
- **High Allocation**: 100% position sizing increases risk
- **No Diversification**: Single position strategy
- **Backtesting Limitation**: Past performance doesn't guarantee future results
## Usage Guidelines
### Recommended Assets & Timeframes
- **Primary Target**: MSTR (MicroStrategy) - 5min to 15min timeframes
- **Secondary Targets**: High-volatility stocks (TSLA, NVDA, COIN, etc.)
- **Crypto Markets**: Bitcoin, Ethereum (with parameter adjustments)
- **Timeframe Optimization**: 1min-15min for scalping, 30min-1H for swing scalping
### Timeframe Recommendations
- **Primary Scalping**: 5-minute and 15-minute charts
- **Active Monitoring**: 1-minute for precise entries
- **Swing Scalping**: 30-minute to 1-hour timeframes
- **Avoid**: Sub-1-minute (excessive noise) and above 4-hour (reduces scalping opportunities)
## Technical Requirements
- **Pine Script Version**: v6
- **Overlay**: Yes (plots on price chart)
- **Additional Panes**: MACD and RSI indicators
- **Real-time Compatibility**: Confirmed bar signals only
## Customization Options
All parameters are fully customizable through inputs:
- Indicator lengths and levels
- Scoring thresholds
- Risk management settings
- Visual display preferences
- Date range filtering
## Conclusion
This scalping strategy represents a comprehensive approach to low timeframe trading that combines multiple technical analysis methods into a cohesive, quantified system specifically optimized for MSTR's unique volatility characteristics. The optimized parameters and scoring methodology provide a systematic way to identify high-probability scalping setups while managing risk effectively in fast-moving markets.
The strategy's strength lies in its objective, multi-criteria approach that removes emotional decision-making from scalping while maintaining the flexibility to adapt to different instruments through parameter optimization. While designed for MSTR, the underlying methodology can be fine-tuned for other high-volatility assets across various markets.
**Important Disclaimer**: This strategy is designed for experienced scalpers and is optimized for MSTR trading. The high-frequency nature of scalping involves significant risk. Past performance does not guarantee future results. Always conduct your own analysis, consider your risk tolerance, and be aware of commission/slippage costs that can significantly impact scalping profitability.