Scalper Pro Pattern Recognition & Price ActionOVERVIEW
Scalper Pro is a comprehensive multi-timeframe trading indicator that combines Smart Money Concepts (SMC) with traditional technical analysis to provide scalpers and day traders with high-probability entry and exit signals. This indicator integrates multiple analytical frameworks into a unified visual system designed specifically for short-term trading strategies.
ORIGINALITY & PURPOSE
What Makes This Script Original
This script is not a simple mashup of existing indicators. Instead, it represents a carefully orchestrated integration of complementary analytical methods that work together to solve a specific problem: identifying high-probability scalping opportunities in volatile markets.
The unique value proposition:
Adaptive Trend Filtering System - Combines a customized SuperTrend algorithm with dual-period range filters (Cirrus Cloud) and Hull Moving Average trend cloud to create a three-layer trend confirmation system
Smart Money Concepts Integration - Incorporates institutional trading concepts (Order Blocks, Fair Value Gaps, Break of Structure) with retail technical indicators for a complete market structure view
Dynamic Risk Management - Automatically calculates stop-loss and take-profit levels based on ATR volatility, providing objective position sizing
ADX-Based Market Regime Detection - Identifies ranging vs. trending markets through ADX analysis with visual bar coloring to prevent whipsaws during consolidation
Why Combine These Specific Components
Each component addresses a specific weakness in scalping:
SuperTrend provides the primary directional bias but can generate false signals in ranging markets
Range Filters smooth out noise and confirm trend direction, reducing SuperTrend false positives
ADX Analysis prevents trading during low-volatility consolidation when most indicators fail
SMC Elements identify institutional activity zones where price is likely to react strongly
ATR-Based Risk Management adapts position sizing to current volatility conditions
The synergy creates a system where signals are only generated when multiple confirmation layers align, significantly reducing false signals common in single-indicator approaches.
HOW IT WORKS
Core Calculation Methodology
1. SuperTrend Signal Generation
The script uses a modified SuperTrend algorithm with the following calculation:
ATR = Average True Range (default: 10 periods)
Factor = 7 (default sensitivity multiplier)
Upper Band = Source + (Factor × ATR)
Lower Band = Source - (Factor × ATR)
Directional Logic:
When price crosses above SuperTrend → Bullish signal
When price crosses below SuperTrend → Bearish signal
SuperTrend value is plotted as dynamic support/resistance
Key Modification: The sensitivity parameter (nsensitivity * 7) allows users to adjust the aggressiveness of trend detection without changing the core ATR calculation.
2. Range Filter System (Cirrus Cloud)
The Range Filter uses a smoothed range calculation to filter out market noise:
Smooth Range Calculation:
WPER = (Period × 2) - 1
AVRNG = EMA(|Price - Price |, Period)
Smooth Range = EMA(AVRNG, WPER) × Multiplier
Two-Layer System:
Layer 1: 22-period with 6x multiplier (broader trend)
Layer 2: 15-period with 5x multiplier (tighter price action)
Visual Output: The space between these two filters is colored:
Green fill = Bullish trend (Layer 1 > Layer 2)
Red fill = Bearish trend (Layer 1 < Layer 2)
This creates a "cloud" that expands during strong trends and contracts during consolidation.
3. ADX Market Regime Detection
Calculation:
+DM = Positive Directional Movement
-DM = Negative Directional Movement
True Range = RMA of True Range (15 periods)
+DI = 100 × RMA(+DM, 15) / True Range
-DI = 100 × RMA(-DM, 15) / True Range
ADX = 100 × RMA(|+DI - -DI| / (+DI + -DI), 15)
Threshold System:
ADX < Threshold (default 15) = Ranging market → Bar color changes to purple
ADX > Threshold = Trending market → Normal bar coloring applies
Purpose: This prevents taking trend-following signals during sideways markets where most indicators produce whipsaws.
4. Smart Money Concepts (SMC) Integration
Order Blocks (OB):
Identified using swing high/low detection with customizable pivot length
Bullish OB: Last down-close candle before bullish Break of Structure (BOS)
Bearish OB: Last up-close candle before bearish BOS
Extended forward until price breaks through them
Fair Value Gaps (FVG):
Detected when a three-candle gap exists:
Bullish FVG: Low > High
Bearish FVG: High < Low
Filtered by price delta percentage to ensure significant gaps
Displayed as boxes that delete when price fills the gap
Break of Structure (BOS) vs. Change of Character (CHoCH):
BOS = Price breaks the previous structural high/low in the current trend direction
CHoCH = Price breaks structure in the opposite direction (potential trend reversal)
Both internal (minor) and swing (major) structures are tracked
Equal Highs/Lows (EQH/EQL):
Detected when consecutive swing highs/lows are within ATR threshold
Often indicates liquidity pools that price may sweep before reversing
5. ATR-Based Risk Management
Calculation:
ATR Band = ATR(14) × Risk Multiplier (default 3%)
Stop Loss = Entry - ATR Band (for longs) or Entry + ATR Band (for shorts)
Take Profit Levels:
TP1 = Entry + (Entry - Stop Loss) × 1
TP2 = Entry + (Entry - Stop Loss) × 2
TP3 = Entry + (Entry - Stop Loss) × 3
Dynamic Labels: Stop loss and take profit levels are automatically calculated and displayed as labels on the chart when new signals trigger.
6. Hull Moving Average Trend Cloud
HMA = WMA(2 × WMA(Close, Period/2) - WMA(Close, Period), sqrt(Period))
Period = 600 bars (long-term trend)
The HMA provides a smoothed long-term trend reference that's more responsive than traditional moving averages while filtering out short-term noise.
HOW TO USE THE INDICATOR
Entry Signals
Primary Buy Signal:
SuperTrend changes to green (price crosses above)
ADX shows market is NOT ranging (bars are NOT purple)
Price is within or near a bullish Order Block OR bullish FVG
Cirrus Cloud shows green fill (Layer 1 > Layer 2)
Primary Sell Signal:
SuperTrend changes to red (price crosses below)
ADX shows market is NOT ranging
Price is within or near a bearish Order Block OR bearish FVG
Cirrus Cloud shows red fill (Layer 1 < Layer 2)
Confirmation Layers
Higher Probability Trades Include:
Bullish/Bearish BOS in the same direction as signal
Equal highs/lows being swept before entry
Price respecting premium/discount zones (above/below equilibrium)
Multiple timeframe alignment (use MTF settings)
Exit Strategy
The indicator provides three take-profit levels:
TP1: Conservative target (1:1 risk-reward)
TP2: Moderate target (2:1 risk-reward)
TP3: Aggressive target (3:1 risk-reward)
Suggested Exit Approach:
Close 1/3 position at TP1
Move stop to breakeven
Close 1/3 position at TP2
Trail remaining position or exit at TP3
Risk Management
Stop Loss:
Use the ATR-based stop loss level displayed on chart
Alternatively, use percentage-based stop (adjustable in settings)
Never risk more than 1-2% of account per trade
Position Sizing:
Position Size = (Account Risk $) / (Entry Price - Stop Loss Price)
CUSTOMIZABLE SETTINGS
Core Parameters
Buy/Sell Signals:
Toggle signals on/off
Adjust SuperTrend sensitivity (0.5 - 2.0)
Risk Management:
Show/hide TP/SL levels
ATR period (default: 14)
Risk percentage (default: 3%)
Number of decimal places for price labels
Trend Features:
Cirrus Cloud display toggle
Range filter periods (x1, x2, x3, x4)
Hull MA length for trend cloud
Smart Money Concepts:
Order Block settings (swing length, display count)
Fair Value Gap parameters (auto-threshold, extend length)
Structure detection (internal vs swing)
EQH/EQL threshold
ADX Settings:
ADX length (default: 15)
Sideways threshold (10-30, default: 15)
Bar color toggle
Display Options:
Previous day/week/month high/low levels
Premium/Discount/Equilibrium zones
Trend candle coloring (colored or monochrome)
BEST PRACTICES & TRADING TIPS
Optimal Use Cases
Scalping on lower timeframes (1m, 5m, 15m)
Rapid entry/exit with clear TP levels
ADX filter prevents choppy market entries
Day trading on medium timeframes (30m, 1H)
Stronger trend confirmation
Better risk-reward ratios
Swing trading entries on higher timeframes (4H, Daily)
Higher-probability structural setups
Larger ATR-based stops accommodate volatility
Market Conditions
Best Performance:
Trending markets with clear directional bias
Post-news volatility with defined structure
Markets respecting support/resistance levels
Avoid Trading When:
ADX indicator shows purple bars (ranging market)
Multiple conflicting signals across timeframes
Major news events without clear price structure
Low volume periods (market open/close)
Common Mistakes to Avoid
Ignoring the ADX filter - Taking signals during ranging markets leads to whipsaws
Not waiting for confirmation - Enter only when multiple layers align
Overtrading - Fewer high-quality setups outperform many mediocre ones
Ignoring risk management - Always use the calculated stop losses
Fighting the trend - Trade WITH the SuperTrend and Cirrus Cloud direction
TECHNICAL SPECIFICATIONS
Indicator Type: Overlay (plots on price chart)
Calculation Resources:
Max labels: 500
Max lines: 500
Max boxes: 500
Max bars back: 500
Pine Script Version: 5
Compatible Timeframes: All timeframes (optimized for 1m to 1D)
Compatible Instruments:
Forex pairs
Crypto assets
Stock indices
Individual stocks
Commodities
THEORETICAL FOUNDATION
Trend-Following Concepts
This indicator is based on the principle that markets trend more often than they range, and that trends tend to persist. The SuperTrend component captures this momentum while the range filters prevent premature entries during pullbacks.
Smart Money Theory
The SMC elements are based on the concept that institutional traders (banks, hedge funds) leave footprints in the form of:
Order Blocks: Areas where large orders were placed
Fair Value Gaps: Inefficient price movements that may be revisited
Liquidity Sweeps: Stop hunts before continuation (EQH/EQL)
Volatility-Based Position Sizing
Using ATR for stop-loss placement ensures that stop distances adapt to current market conditions:
Tight stops in low volatility (avoids excessive risk)
Wider stops in high volatility (avoids premature stop-outs)
PERFORMANCE EXPECTATIONS
Realistic Expectations
Win Rate:
Expected: 45-55% (trend-following systems rarely exceed 60%)
Higher win rates on trending days
Lower win rates during consolidation (even with ADX filter)
Risk-Reward Ratio:
Target: 1.5:1 minimum (TP2)
Achievable: 2:1 to 3:1 on strong trends
Drawdowns:
Normal: 10-15% of account during choppy periods
Maximum: Should not exceed 20% with proper risk management
Optimization Tips
Backtesting Recommendations:
Test on at least 1 year of historical data
Include different market conditions (trending, ranging, volatile)
Adjust SuperTrend sensitivity per instrument
Optimize ADX threshold for your specific market
Record trades to identify personal execution errors
FREQUENTLY ASKED QUESTIONS
Q: Can I use this for automated trading?
A: The indicator provides signals, but you'll need to code a strategy script separately for automation. The signals can trigger alerts that connect to trading bots.
Q: Why do I see conflicting signals?
A: This is normal during transition periods. Wait for all confirmation layers to align before entering.
Q: How often should I expect signals?
A: Depends on timeframe and market conditions. On 5m charts during trending markets: 3-7 quality setups per session.
Q: Can I use only some features?
A: Yes, all components can be toggled on/off. However, the system works best with all confirmations active.
Q: What's the difference between internal and swing structures?
A: Internal = minor price structures (smaller pivots). Swing = major price structures (larger pivots). Both provide different levels of confirmation.
DISCLAIMER
This indicator is a tool for technical analysis and should not be the sole basis for trading decisions. Past performance does not guarantee future results. Always:
Use proper risk management
Test on demo accounts first
Never risk more than you can afford to lose
Combine with fundamental analysis when applicable
Understand that no indicator is 100% accurate
License: Mozilla Public License 2.0
Author: DrFXGOD
VERSION HISTORY & UPDATES
Initial Release - Version 1.0
Integrated SuperTrend, Range Filters, ADX, SMC concepts
ATR-based risk management
Multi-timeframe support
Customizable visual elements
SUPPORT & DOCUMENTATION
For questions, suggestions, or bug reports, please comment on the script page or contact the author through TradingView.
Additional Resources:
Smart Money Concepts: Research ICT (Inner Circle Trader) materials
ATR and Volatility: Refer to Wilder's original ATR documentation
SuperTrend Indicator: Study original SuperTrend strategy papers
"蔚山现代vs川崎前锋" için komut dosyalarını ara
Moving Average Trend Strategy V4.1 — Revised Version (Selectable✅ **Version Notes (V4.0)**
| Feature | Description |
| --------------------------------------- | -------------------------------------------------------- |
| 🧠 **Moving Average Type Options** | Choose from EMA / SMA / HMA / WMA |
| 🧱 **Take-Profit / Stop-Loss Switches** | Can be enabled or disabled independently |
| ⚙️ **Add Position Function** | Can be enabled or disabled independently |
| 🔁 **Add Position Signal Source** | Selectable between MA Crossover / MACD / RCI / RSI |
| 💹 **Adjustable Parameters** | All periods and percentages are customizable in settings |
---
✅ **Update Summary:**
| Function | Description |
| -------------------------------------- | --------------------------------------------------------------------- |
| **MA Type Selection** | Choose EMA / SMA / HMA / WMA in chart settings |
| **Take-Profit / Stop-Loss Percentage** | Configurable in the “Take-Profit & Stop-Loss” group |
| **Add / Reduce Position Percentage** | Adjustable separately in the “Add/Reduce Position” group |
| **MA Periods** | Customizable in the “Moving Average Parameters” section |
| **Code Structure** | Logic unchanged — only parameterization and selection functions added |
---
### **Strategy Recommendations:**
* **Trending Market:** Prefer EMA trend tracking or SAR indicators
* **Range-Bound Market:** Use ATR-based volatility stop-loss
* **Before Major Events:** Consider option hedging
* **Algorithmic Trading:** Recommend ATR + partial take-profit combination strategy
---
### **Key Parameter Optimization Logic:**
* Backtest different **ATR multipliers** (2–3× ATR)
* Test **EMA periods** (10–50 periods)
* Optimize **partial take-profit ratios**
* Adjust **maximum drawdown tolerance** (typically 30–50% of profit)
---
### **Risk Control Tips:**
* Avoid overly tight stop-losses that trigger too frequently
* During strong trends, consider widening take-profit targets
* Confirm trend continuation with **volume analysis**
* Adjust parameters based on **timeframe** (e.g., Daily vs Hourly)
---
### **Practical Example (Forex: EUR/USD):**
* **Entry:** Go long on breakout above 1.1200
* **Initial Stop-Loss:** 1.1150 (50 pips)
* **When profit reaches 1.1300:**
* Close 50% of position
* Move stop-loss to 1.1250 (lock in 50 pips profit)
* **When price rises to 1.1350:**
* Move stop-loss to 1.1300 (lock in 100 pips profit)
* **Final Outcome:**
* Price retraces to 1.1300, triggering take-profit
This method secured over **80% of trend profits** during the 2023 EUR rebound, capturing **23% more profit** compared to fixed take-profit strategies (based on backtest results).
byquan GP maxmin+Supertrend🔍 Overview
The GP MaxMin + Supertrend indicator is an advanced trend-following tool that combines the power of the Supertrend indicator with a multi-timeframe Stochastic RSI (SRSI) filter.
It aims to generate high-confidence buy and sell signals by confirming Supertrend breakouts only when the market’s momentum (based on SRSI) supports them.
In other words:
Supertrend gives you trend direction,
and SRSI ensures you only trade when the market is ready to move.
⚙️ How It Works
The indicator operates in three main layers:
1. SRSI Channel Analysis
It calculates Stochastic RSI values on four price sources:
Open
High
Low
Close
From these, it extracts both minimum (oversold) and maximum (overbought) SRSI readings.
To make the signal more robust, the script collects SRSI data from four different timeframes:
3 hours (180 minutes)
6 hours (360 minutes)
12 hours (720 minutes)
1 day
These multi-timeframe readings are averaged and normalized between 0 and 100.
Key thresholds:
Below 5 → Oversold zone (potential BUY zone)
Above 95 → Overbought zone (potential SELL zone)
2. Supertrend Core
The indicator uses a standard Supertrend logic:
ATR Period: 10
ATR Multiplier: 3.0
It dynamically plots the Supertrend line that shifts between bullish and bearish zones.
When the price crosses the Supertrend line, a trend change is detected:
From bearish to bullish → Buy signal
From bullish to bearish → Sell signal
3. SRSI-Based Signal Filtering
To avoid false breakouts, the Supertrend signals are filtered through the SRSI logic.
Here’s how it works:
When the market becomes oversold, the script records that event.
If a Supertrend Buy signal appears within a certain number of bars (default = 30) after that oversold event → the signal is validated.
The same applies for Sell signals after an overbought event.
This creates a smart “confirmation window,” ensuring that only those Supertrend signals that align with market momentum are displayed.
🧭 How to Use It
✅ Step 1: Add to Your Chart
Copy and paste the script into a new Pine Script editor window in TradingView, then click “Add to chart.”
✅ Step 2: Configure Parameters
SRSI Settings
K, D, RSI Length, S Length: Standard SRSI parameters.
Alert Min Level and Alert Max Level: Define overbought/oversold zones (default 5 and 95).
Timeframes: You can adjust the four MTF levels if you want faster or slower momentum confirmation.
Supertrend Settings
ATR Period: A higher value smooths the trend.
ATR Multiplier: Controls signal sensitivity (lower = more signals, higher = fewer).
Filter Settings
Signal Filter Window: Defines how long after an overbought/oversold event a Supertrend signal remains valid (default = 30 bars).
✅ Step 3: Interpret Signals
Signal Type Condition Interpretation
Buy Supertrend flips to bullish and SRSI was recently oversold Start of an uptrend
Sell Supertrend flips to bearish and SRSI was recently overbought Start of a downtrend
Each signal is marked on the chart:
🟢 Green “Buy” label → potential long entry
🔴 Red “Sell” label → potential short entry
You can also enable or disable background highlighting to visually track bullish/bearish zones.
✅ Step 4: Set Alerts
You can create alerts using the built-in alert condition:
SRSI-Filtered SuperTrend Signal Triggered!
This triggers whenever a filtered Buy or Sell signal appears.
💡 Trading Tips
Combine this indicator with price action or volume confirmation for best results.
Adjust the filter window to fit your preferred timeframe (short-term vs swing trading).
Avoid trading against higher-timeframe Supertrend direction.
⚖️ Advantages
✅ Filters out false Supertrend signals
✅ Uses multi-timeframe momentum confirmation
✅ Clean visual layout with clear entry markers
✅ Supports alerts for automation or notifications
⚠️ Limitations
⚠️ The indicator is computationally heavy due to multi-timeframe requests.
⚠️ It’s a confirmation tool — not a standalone strategy.
⚠️ Results depend on correct parameter tuning for your market and timeframe.
📈 Summary
The GP MaxMin + Supertrend is a hybrid indicator that blends trend detection with momentum filtering.
It helps traders:
Avoid false breakouts
Enter trades at better timing
Stay aligned with both trend and momentum
Perfect for swing traders, crypto traders, and anyone who wants cleaner Supertrend signals with deeper confirmation logic.
Buy/Sell Signals [WynTrader]My name is WynTrader. I cumulate 24 years of experience.
This Indicator produces Buy/Sell Signals using these features:
- Fast and Slow Moving averages (modifiable) optimized at EMA-8 and SMA-35
- Bollinger Bands (modifiable) optimized at Basis-18 and Multiplier-1
Also, the Buy/Sell Signals are conditioned by three Filters (optionable, modifiable) :
. Bollinger-Bands Lookback
. High-Low vs Candle Range %
. Distance from Fast and Slow Moving averages %
The Results Calculation presented in a Table are based :
- on the Current Chart Visible Range (optionable)
or
- on the specified TIme Frame Start and End Dates (modifiable)
The Table shows Calculation Results of the Buy and Sell Signals that are activated on the chart, with the Number of Trades (Signals), the Winning Points and the Win Rate %. The Buy&Hold starts calculation at the first Buy encountered.
So be surprised by my Buy/Sell Indicator. But always remember that the world is not perfect. The Graal Indicator, even with AI, doesn't already exist, maybe one day (all of us richier...), but not now. , depending on the chart product (stocks...), volatility, probabilities, unpredictable behaviour. , the moves, etc.
Enjoy
WynTrader
P. s. :
My name is WynTrader. I cumulate 24 years of experience. In 2001, I took an intensive technical analysis course taught by an exceptional friend, Cyril, who taught me everything I know. The foundation I gained through his teaching remains solid and relevant to this day, never failing me.
Before i made this Indicator, I have used many Trading View Buy/Sell Indicators using alone or combined RSI, SMI, OBV, MACD ATR, ADX, Neural, Fractal, Geometry, etc., that are already available for the Trading View community. A great thanks to those who give their time that help me build this tool.
Note that I'm not a programmer, so... ;-)
BTC Flow Dashboard : Spot Premium + OI + Funding + Cycle SignalsSpot Premium vs Perpetual Basket (%):
Tracks how aggressively perps are trading relative to spot, a leading indicator of speculative activity and leverage buildup.
Aggregated Open Interest Z-Score:
A normalized view of OI expansion/contraction across major exchanges (Binance, BitMEX, Bybit, Kraken, etc.), highlighting when leverage enters overheated zones.
Composite Funding Rate Analysis:
Calculates a TWAP-smoothed funding composite across major venues, with optional APR scaling, showing where perpetual markets are paying for long or short exposure.
Confluence Signal Engine:
Dynamically flags bullish or bearish market conditions based on premium behavior and leverage environment — including over-leverage warnings that often precede volatility spikes.
Extreme Cycle Tops & Bottoms (Experimental):
Optional signal module that highlights historically significant extremes (e.g., 2020 bottom or 2021 top) based on statistical Z-score thresholds across the three core metrics.
Notes & Tips
Works best on weekly or monthly timeframes for macro cycle analysis.
Daily and 3D views provide short-term leverage context but may produce more frequent signals.
The Extreme Signal Engine is experimental — not a trading signal on its own, but a contextual tool to support macro decision-making.
Fast Scalping Volume Confirmation (v2)//@version=5
indicator("Fast Scalping Volume Confirmation (v2)", overlay=true)
// ---------- INPUTS ----------
maLength = input.int(5, "Volume MA Length", minval=1)
multiplier = input.float(1.5, "Volume Multiplier (Trigger Above MA)", minval=0.1, step=0.1)
usePriceFilter = input.bool(true, "Enable Entry Price Range Filter")
priceMin = input.float(184.5, "Price Min (if filter on)")
priceMax = input.float(185.2, "Price Max (if filter on)")
// ---------- CALCS ----------
volMA = ta.sma(volume, maLength)
highVolume = volume > volMA * multiplier
// Simple reversal detection (non-exhaustive)
bullishEngulfing = (close > open ) and (open < close ) and (close > open)
hammer = (close > open) and ((high - low) > 3 * math.abs(open - close)) and ((close - low) / (high - low) > 0.6)
// ensure candle is closed to avoid repainting
confirmedBar = barstate.isconfirmed
// price filter
inPriceRange = not usePriceFilter or (close >= priceMin and close <= priceMax)
// final entry condition (only on closed bar)
entrySignal = confirmedBar and inPriceRange and highVolume and (bullishEngulfing or hammer)
// ---------- PLOTTING ----------
plotshape(entrySignal, title="Entry Confirmation", location=location.belowbar,
color=color.new(color.green, 0), style=shape.triangleup, size=size.small, text="ENTRY")
// show volume MA in the volume pane for reference (optional visual)
// We draw a small label on chart with current volume vs MA
var label volLab = na
if barstate.islast
label.delete(volLab)
volText = "Vol: " + str.tostring(volume) + " MA(" + str.tostring(maLength) + "): " + str.tostring(math.round(volMA))
volLab := label.new(x=bar_index, y=low, text=volText, yloc=yloc.belowbar, style=label.style_label_left, color=color.new(color.gray,85), textcolor=color.white)
// ---------- ALERT ----------
alertcondition(entrySignal, title="Entry Confirmed", message="✅ Entry confirmed: High Volume + Reversal Candle")
Smart Structure Pro - Market Structure & Smart Money Concepts═══════════════════════════════════════════════════════════════════════════════
SMART STRUCTURE PRO
═══════════════════════════════════════════════════════════════════════════════
A comprehensive market structure analysis tool that identifies institutional trading
patterns and smart money concepts for improved trade timing and decision-making.
═══════════════════════════════════════════════════════════════════════════════
📊 WHAT IT DOES
═══════════════════════════════════════════════════════════════════════════════
This indicator automatically detects and visualizes key market structure elements:
🔹 BOS (Break of Structure)
- Identifies trend continuation patterns
- Marks when price breaks above previous highs (bullish) or below previous lows (bearish)
- Confirms trend strength and momentum
🔹 CHoCH (Change of Character)
- Detects potential trend reversals
- Alerts when market structure shifts from bullish to bearish or vice versa
- Helps identify early reversal opportunities
🔹 Order Blocks
- Highlights institutional entry zones
- Identifies the last opposite candle before a structure break
- Shows areas where smart money likely entered positions
🔹 Fair Value Gaps (FVG)
- Detects price imbalances and inefficiencies
- Shows areas where price moved rapidly leaving gaps
- Often act as support/resistance when retested
🔹 Liquidity Zones
- Marks swing high and low levels
- Identifies areas where stop losses likely cluster
- Shows potential stop hunt and liquidity grab zones
═══════════════════════════════════════════════════════════════════════════════
🎯 HOW TO USE
═══════════════════════════════════════════════════════════════════════════════
BULLISH SETUP:
1. Wait for Bullish CHoCH (trend reversal signal) or BOS ↑ (continuation)
2. Look for price to pull back into an Order Block or Fair Value Gap
3. Enter long when price bounces from these zones
4. Place stop loss below the Order Block
5. Target the next liquidity zone or resistance level
BEARISH SETUP:
1. Wait for Bearish CHoCH (trend reversal signal) or BOS ↓ (continuation)
2. Look for price to retrace into an Order Block or Fair Value Gap
3. Enter short when price rejects from these zones
4. Place stop loss above the Order Block
5. Target the next liquidity zone or support level
DASHBOARD INTERPRETATION:
• Trend: Current market direction (Bullish/Bearish)
• Volume: Confirmation strength (High volume = stronger signals)
• Signal: Latest structure break detected
• Key High/Low: Critical levels for the current trend
• Position: Price location (Premium = expensive, Discount = cheap)
═══════════════════════════════════════════════════════════════════════════════
⚙️ SETTINGS GUIDE
═══════════════════════════════════════════════════════════════════════════════
STRUCTURE DETECTION:
• Pivot Length (Default: 10)
- Lower values = More signals but potentially weaker
- Higher values = Fewer signals but stronger/more reliable
- Recommended: 8-12 for intraday, 10-15 for higher timeframes
• Structure Line Extension
- Visual preference for how far lines extend
- Does not affect signal detection
SMART MONEY CONCEPTS:
• Order Block Extension: How long OB boxes remain visible
• FVG Extension: How long gap boxes remain visible
• Min FVG Size: Filter out small gaps (0 = show all)
- Set to 10-20% to reduce noise
- Set to 0 to see all gaps
VOLUME FILTER:
• Volume Confirmation (Recommended: ON)
- Filters weak signals without volume support
- Reduces false breakouts
• Volume Multiplier (Default: 1.5)
- Higher = Stricter filtering (fewer but stronger signals)
- Lower = More signals (but may include weak ones)
DISPLAY:
• Dashboard: Toggle information panel
• Trend Background: Subtle color tint showing current trend
• Dashboard Position: Choose corner placement
═══════════════════════════════════════════════════════════════════════════════
🔔 ALERTS
═══════════════════════════════════════════════════════════════════════════════
Available alert conditions:
✓ Bullish BOS - Uptrend continuation confirmed
✓ Bearish BOS - Downtrend continuation confirmed
✓ Bullish CHoCH - Reversal to uptrend detected
✓ Bearish CHoCH - Reversal to downtrend detected
✓ Structure Break - Any significant market structure change
To set up alerts:
1. Click the "⏰" alert icon
2. Select "Smart Structure Pro"
3. Choose your desired condition
4. Configure notification method
5. Click "Create"
═══════════════════════════════════════════════════════════════════════════════
⚠️ IMPORTANT DISCLOSURES
═══════════════════════════════════════════════════════════════════════════════
REPAINTING BEHAVIOR:
• Pivot points WILL repaint until confirmed (this is by design and unavoidable)
• Structure breaks (BOS/CHoCH) use CLOSED candles and do NOT repaint after confirmation
• Order Blocks and FVGs are drawn on confirmed signals and do NOT repaint
• All signals wait for candle close before triggering
BEST PRACTICES:
• Use on higher timeframes (15min+) for more reliable signals
• Combine with other analysis (support/resistance, volume profile, etc.)
• Wait for candle close confirmation before acting on signals
• Use proper risk management - this is not a standalone trading system
• Backtest on your preferred instrument and timeframe
PERFORMANCE:
• Limited to 100 boxes, 100 lines, 100 labels for optimal performance
• Older objects automatically removed as new ones appear
• Works on all markets (Forex, Crypto, Stocks, Indices, Commodities)
═══════════════════════════════════════════════════════════════════════════════
📚 CONCEPTS EXPLAINED
═══════════════════════════════════════════════════════════════════════════════
MARKET STRUCTURE:
Market structure refers to the pattern of price movements creating swing highs
and lows. Understanding structure helps identify trend direction and potential
reversal points.
SMART MONEY CONCEPTS:
These are trading techniques based on tracking institutional order flow and
understanding where large players (banks, funds, institutions) enter and exit
positions.
ORDER BLOCKS:
The last opposing candle before a strong directional move. Institutions often
leave unfilled orders in these zones, which can act as support/resistance when
price returns.
FAIR VALUE GAPS:
Areas where price moved so quickly that it left an imbalance. These gaps often
get "filled" as price returns to find equilibrium, creating trading opportunities.
═══════════════════════════════════════════════════════════════════════════════
🎓 EDUCATIONAL VALUE
═══════════════════════════════════════════════════════════════════════════════
This indicator helps traders:
✓ Understand market structure mechanics
✓ Identify institutional trading patterns
✓ Improve trade timing and entry precision
✓ Recognize trend continuation vs reversal
✓ Learn smart money concepts through visualization
═══════════════════════════════════════════════════════════════════════════════
📋 TECHNICAL DETAILS
═══════════════════════════════════════════════════════════════════════════════
• Version: 1.0.0
• Pine Script Version: 5
• Indicator Type: Overlay
• No Repainting: Structure breaks use confirmed candles
• Performance Optimized: Limited drawing objects
• Works On: All markets and timeframes
• Alerts: Yes, fully customizable
═══════════════════════════════════════════════════════════════════════════════
👤 AUTHOR
═══════════════════════════════════════════════════════════════════════════════
Created by: Zakaria Safri
Original Work: All code and concepts are original implementations
Based On: ICT (Inner Circle Trader) educational concepts
License: © 2024 Zakaria Safri - Personal Use Only
═══════════════════════════════════════════════════════════════════════════════
⚖️ DISCLAIMER
═══════════════════════════════════════════════════════════════════════════════
This indicator is for educational and informational purposes only. It does not
constitute financial advice. Trading involves substantial risk of loss. Past
performance does not guarantee future results. Always conduct your own research
and consult with a licensed financial advisor before making trading decisions.
The author is not responsible for any losses incurred from using this indicator.
═══════════════════════════════════════════════════════════════════════════════
If you find this indicator helpful, please:
👍 Like and favorite
⭐ Leave a review
📢 Share with other traders
💬 Comment with feedback or suggestions
Happy Trading! 📈
SPY vs VIX SMA Slope Alignment (Adjustable Days)Use this on VIX Chart only.
This indicator compares the SLOPE of the daily SMA of SPY, to the SLOPE of the Daily SMA to VIX
When SPY and VIX are trending UP for the length of time that you define, you will get a GREEN ARROW on the VIX chart showing that the condition has been met.
EXAMPLE:
Set 3 day SMA for VIX and SPY
THEN
Set Look back time to 2 days
---IF SPY 3day SMA AND VIX 3day SMA are both ASCENDING during any 3 day lookback period, a green indicator arrow will be showing on the VIX Chart
DO NOT Use this indicator on SPY Chart
(SPY and VIX have different daily open/close times. This indicator DOES NOT work propertly on SPY Chart. But it DOES work properly on VIX chart. )
Aggregated Long Short Ratio (Binance + Bybit)This indicator displays the Long/Short Ratio (LSR) from Binance and Bybit exchanges, plus an aggregated average. LSR shows the ratio between traders holding long positions vs short positions.
Settings AvailableExchanges Group:
☑️Show Binance - Display Binance LSR line
☑️ Show Bybit - Display Bybit LSR line
☑️ Show Aggregated LSR - Display combined average
Timeframe - Choose data timeframe (leave empty for chart timeframe)
Visualization Group:
🎨 Binance Color - Default: Yellow
🎨 Bybit Color - Default: Orange
🎨 Aggregated Color - Default: White
📖 How to Read the Indicator
⚠️ CRITICAL: Always analyze LSR together with Open Interest (OI)
Key Levels:
LSR = 1.0 (gray dashed line) = Balance - Equal longs and shorts
LSR > 1.0 = More longs than shorts (bullish sentiment)
LSR < 1.0 = More shorts than longs (bearish sentiment)
Extreme Zones:
LSR > 1.5 (green zone) = Very bullish - Possible market top
LSR < 0.5 (red zone) = Very bearish - Possible market bottom
Why Open Interest Matters:
LSR alone doesn't tell the full story. You MUST check Open Interest:
Rising OI + High LSR (>1.5) = New longs opening → Strong momentum OR potential trap
Rising OI + Low LSR (<0.5) = New shorts opening → Strong momentum OR potential trap
Falling OI + Extreme LSR = Positions closing → Weak signal, avoid trading
Stable OI + Extreme LSR = No new positions → Less reliable signal
💡 Trading Interpretation
⚠️ ALWAYS combine LSR with Open Interest analysis!
Contrarian Strategy (High Leverage Zones):
High LSR (>1.5) + Rising OI → Many new longs → Potential short squeeze OR reversal down
Low LSR (<0.5) + Rising OI → Many new shorts → Potential long squeeze OR reversal up
Trend Confirmation:
Rising LSR + Rising price + Rising OI = Strong bullish trend with new positions
Falling LSR + Falling price + Rising OI = Strong bearish trend with new positions
Weak Signals (Avoid):
Extreme LSR + Falling OI = Positions closing → Low conviction
Extreme LSR + Stable OI = No new money → Wait for confirmation
Divergences:
Price higher highs but LSR falling + Rising OI = Bearish divergence (shorts accumulating)
Price lower lows but LSR rising + Rising OI = Bullish divergence (longs accumulating)
Best Setups:
Reversal: Extreme LSR (>1.5 or <0.5) + Rising OI + Price rejection
Trend: LSR trending with price + Steadily rising OI
Caution: Extreme LSR + Falling OI = Ignore signal
Built-in Alerts
The indicator includes 4 preset alerts:
LSR Crossed Above 1.0 - Market turned bullish
LSR Crossed Below 1.0 - Market turned bearish
LSR Very High - Above 1.5 (possible top)
LSR Very Low - Below 0.5 (possible bottom)
To Set Up Alerts:
Click the "..." on the indicator
Select "Add Alert"
Choose the condition you want
Configure notification method
Best Practices
MANDATORY: Always add Open Interest indicator to your chart alongside LSR
To add OI: Click Indicators → Search "Open Interest" → Add official TradingView OI
Use on perpetual futures charts (symbols ending in .P)
Works best on USDT pairs (BTCUSDT, ETHUSDT, etc.)
Combine LSR + OI + price action + support/resistance levels
Higher timeframes (4h, 1D) give more reliable signals
Don't trade LSR extremes without confirming OI direction
Golden Rule: Rising OI = Strong signal | Falling OI = Weak signal
⚠️ Important Notes
Indicator requires TradingView Premium or above (uses Request library)
Only works on crypto perpetual futures
Data availability depends on exchange API
NA values mean data is not available for that exchange/symbol
Never use LSR without Open Interest context
ALISH WEEK LABELS THE ALISH WEEK LABELS
Overview
This indicator programmatically delineates each trading week and encapsulates its realized price range in a live-updating, filled rectangle. A week is defined in America/Toronto time from Monday 00:00 to Friday 16:00. Weekly market open to market close, For every week, the script draws:
a vertical start line at the first bar of Monday 00:00,
a vertical end line at the first bar at/after Friday 16:00, and
a white, semi-transparent box whose top tracks the highest price and whose bottom tracks the lowest price observed between those two temporal boundaries.
The drawing is timeframe-agnostic (M1 → 1D): the box expands in real time while the week is open and freezes at the close boundary.
Time Reference and Session Boundaries
All scheduling decisions are computed with time functions called using the fixed timezone string "America/Toronto", ensuring correct behavior across DST transitions without relying on chart timezone. The start condition is met at the first bar where (dayofweek == Monday && hour == 0 && minute == 0); on higher timeframes where an exact 00:00 bar may not exist, a fallback checks for the first Monday bar using ta.change(dayofweek). The close condition is met on the first bar at or after Friday 16:00 (Toronto), which guarantees deterministic closure on intraday and higher timeframes.
State Model
The indicator maintains minimal persistent state using var globals:
week_open (bool): whether the current weekly session is active.
wk_hi / wk_lo (float): rolling extrema for the active week.
wk_box (box): the graphical rectangle spanning × .
wk_start_line and a transient wk_end_line (line): vertical delimiters at the week’s start and end.
Two dynamic arrays (boxes, vlines) store object handles to support bounded history and deterministic garbage collection.
Update Cycle (Per Bar)
On each bar the script executes the following pipeline:
Start Check: If no week is open and the start condition is satisfied, instantiate wk_box anchored at the current bar_index, prime wk_hi/wk_lo with the bar’s high/low, create the start line, and push both handles to their arrays.
Accrual (while week_open): Update wk_hi/wk_lo using math.max/min with current bar extremes. Propagate those values to the active wk_box via box.set_top/bottom and slide box.set_right to the current bar_index to keep the box flush with live price.
Close Check: If at/after Friday 16:00, finalize the week by freezing the right edge (box.set_right), drawing the end line, pushing its handle, and flipping week_open false.
Retention Pruning: Enforce a hard cap on historical elements by deleting the oldest objects when counts exceed configured limits.
Drawing Semantics
The range container is a filled white rectangle (bgcolor = color.new(color.white, 100 − opacity)), with a solid white border for clear contrast on dark or light themes. Start/end boundaries are full-height vertical white lines (y1=+1e10, y2=−1e10) to guarantee visibility across auto-scaled y-axes. This approach avoids reliance on price-dependent anchors for the lines and is robust to large volatility spikes.
Multi-Timeframe Behavior
Because session logic is driven by wall-clock time in the Toronto zone, the indicator remains consistent across chart resolutions. On coarse timeframes where an exact boundary bar might not exist, the script legally approximates by triggering on the first available bar within or immediately after the boundary (e.g., Friday 16:00 occurs between two 4-hour bars). The box therefore represents the true realized high/low of the bars present in that timeframe, which is the correct visual for that resolution.
Inputs and Defaults
Weeks to keep (show_weeks_back): integer, default 40. Controls retention of historical boxes/lines to avoid UI clutter and resource overhead.
Fill opacity (fill_opacity): integer 0–100, default 88. Controls how solid the white fill appears; border color is fixed pure white for crisp edges.
Time zone is intentionally fixed to "America/Toronto" to match the strategy definition and maintain consistent historical backtesting.
Performance and Limits
Objects are reused only within a week; upon closure, handles are stored and later purged when history limits are exceeded. The script sets generous but safe caps (max_boxes_count/max_lines_count) to accommodate 40 weeks while preserving Editor constraints. Per-bar work is O(1), and pruning loops are bounded by the configured history length, keeping runtime predictable on long histories.
Edge Cases and Guarantees
DST Transitions: Using a fixed IANA time zone ensures Friday 16:00 and Monday 00:00 boundaries shift correctly when DST changes in Toronto.
Weekend Gaps/Holidays: If the market lacks bars exactly at boundaries, the nearest subsequent bar triggers the start/close logic; range statistics still reflect observed prices.
Live vs Historical: During live sessions the box edge advances every bar; when replaying history or backtesting, the same rules apply deterministically.
Scope (Intentional Simplicity)
This tool is strictly a visual framing indicator. It does not compute labels, statistics, alerts, or extended S/R projections. Its single responsibility is to clearly present the week’s realized range in the Toronto session window so you can layer your own execution or analytics on top.
🚀 Ultimate Trading Tool + Strat Method🚀 Ultimate Trading Tool + Strat Method - Complete Breakdown
Let me give you a comprehensive overview of this powerful indicator!
🎯 What This Indicator Does:
This is a professional-grade, all-in-one trading system that combines two proven methodologies:
1️⃣ Technical Analysis System (Original)
Advanced trend detection using multiple EMAs
Momentum analysis with MACD
RSI multi-timeframe analysis
Volume surge detection
Automated trendline drawing
2️⃣ Strat Method (Pattern Recognition)
Inside bars, outside bars, directional bars
Classic patterns: 2-2, 1-2-2
Advanced patterns: 3-1-2, 2-1-2, F2→3
Timeframe continuity filters
📊 How It Generates Signals:
Technical Analysis Signals (Green/Red Triangles):
Buy Signal Triggers When:
✅ Price above EMA 21 & 50 (uptrend)
✅ MACD histogram rising (momentum)
✅ RSI between 30-70 (not overbought/oversold)
✅ Volume surge above 20-period average
✅ Price breaks above resistance trendline
Scoring System:
Trend alignment: +1 point
Momentum: +1 point
RSI favorable: +1 point
Trendline breakout: +2 points
Minimum score required based on sensitivity setting
Strat Method Signals (Blue/Orange Labels):
Pattern Recognition:
2-2 Setup: Down bar → Up bar (or reverse)
1-2-2 Setup: Inside bar → Down bar → Up bar
3-1-2 Setup: Outside bar → Inside bar → Up bar
2-1-2 Setup: Down bar → Inside bar → Up bar
F2→3 Setup: Failed directional bar becomes outside bar
Confirmation Required:
Must break previous bar's high (buy) or low (sell)
Optional timeframe continuity (daily & weekly aligned)
💰 Risk Management Features:
Dynamic Stop Loss & Take Profit:
ATR-Based: Adapts to market volatility
Stop Loss: Entry - (ATR × 1.5) by default
Take Profit: Entry + (ATR × 3.0) by default
Risk:Reward: Customizable 1:2 to 1:5 ratios
Visual Risk Zones:
Colored boxes show risk/reward area
Dark, bold lines for easy identification
Clear entry, stop, and target levels
🎨 What You See On Screen:
Main Signals:
🟢 Green Triangle "BUY" - Technical analysis long signal
🔴 Red Triangle "SELL" - Technical analysis short signal
🎯 Blue Label "STRAT" - Strat method long signal
🎯 Orange Label "STRAT" - Strat method short signal
Trendlines:
Green lines - Support trendlines (bullish)
Red lines - Resistance trendlines (bearish)
Automatically drawn from pivot points
Extended forward to predict future levels
Stop/Target Levels:
Bold crosses at stop loss levels (red color)
Bold crosses at take profit levels (green color)
Line width = 3 for maximum visibility
Trade Zones:
Light green boxes - Long trade risk/reward zone
Light red boxes - Short trade risk/reward zone
Shows potential profit vs risk visually
📊 Information Dashboard (Top Right):
Shows real-time market conditions:
Main Signal: Current technical signal status
Strat Method: Active Strat pattern
Trend: Bullish/Bearish/Neutral
Momentum: Strong/Weak based on MACD
Volume: High/Normal compared to average
TF Continuity: Daily/Weekly alignment
RSI: Current RSI value with color coding
Support/Resistance: Current trendline levels
🔔 Alert System:
Entry Alerts:
Technical Signals:
🚀 BUY SIGNAL TRIGGERED!
Type: Technical Analysis
Entry: 45.23
Stop: 43.87
Target: 48.95
```
**Strat Signals:**
```
🎯 STRAT BUY TRIGGER!
Pattern: 3-1-2
Entry: 45.23
Trigger Level: 44.56
Exit Alerts:
Target hit notifications
Stop loss hit warnings
Helps maintain discipline
⚙️ Customization Options:
Signal Settings:
Sensitivity: High/Medium/Low (controls how many signals)
Volume Filter: Require volume surge or not
Momentum Filter: Require momentum confirmation
Strat Settings:
TF Continuity: Require daily/weekly alignment
Pattern Selection: Enable/disable specific patterns
Confirmation Mode: Show only confirmed triggers
Risk Settings:
ATR Multiplier: Adjust stop/target distance
Risk:Reward: Set preferred ratio
Visual Elements: Show/hide any component
Visual Settings:
Colors: Customize all signal colors
Display Options: Toggle signals, levels, zones
Trendline Length: Adjust pivot detection period
🎯 Best Use Cases:
Day Trading:
Use low sensitivity setting
Enable all Strat patterns
Watch for high volume signals
Quick in/out trades
Swing Trading:
Use medium sensitivity
Require timeframe continuity
Focus on trendline breakouts
Hold for target levels
Position Trading:
Use high sensitivity (fewer signals)
Require strong momentum
Focus on weekly/daily alignment
Larger ATR multipliers
💡 Trading Strategy Tips:
High-Probability Setups:
Double Confirmation: Technical + Strat signal together
Trend Alignment: All timeframes agree
Volume Surge: Institutional participation
Trendline Break: Clear level breakout
Risk Management:
Always use stops - System provides them
Position sizing - Risk 1-2% per trade
Don't chase - Wait for signal confirmation
Take profits - System provides targets
What Makes Signals Strong:
✅ Both technical AND Strat signals fire together
✅ Timeframe continuity (daily & weekly aligned)
✅ Volume surge confirms institutional interest
✅ Multiple indicators align (trend + momentum + RSI)
✅ Clean trendline breakout with no resistance above (or support below)
⚠️ Common Mistakes to Avoid:
Don't ignore stops - System calculates them for a reason
Don't overtrade - Wait for quality setups
Don't disable volume filter - Unless you know what you're doing
Don't use max sensitivity - You'll get too many signals
Don't ignore timeframe continuity - It filters bad trades
🚀 Why This Indicator is Powerful:
Combines Multiple Edge Sources:
Technical analysis (trend, momentum, volume)
Pattern recognition (Strat method)
Risk management (dynamic stops/targets)
Market structure (trendlines, support/resistance)
Professional Features:
No repainting - signals are final when bar closes
Clear risk/reward before entry
Multiple confirmation layers
Adaptable to any market or timeframe
Beginner Friendly:
Clear visual signals
Automatic calculations
Built-in risk management
Comprehensive dashboard
This indicator essentially gives you everything a professional trader uses - trend analysis, momentum, patterns, volume, risk management - all in one clean package!
Any specific aspect you'd like me to explain in more detail? 🎯RetryClaude can make mistakes. Please double-check responses. Sonnet 4.5
Herd Flow Oscillator — Volume Distribution Herd Flow Oscillator — Scientific Volume Distribution (herd-accurate rev)
A composite order-flow oscillator designed to surface true herding behavior — not just random bursts of buying or selling.
It’s built to detect when market participants start acting together, showing persistent, one-sided activity that statistically breaks away from normal market randomness.
Unlike traditional volume or momentum indicators, this tool doesn’t just look for “who’s buying” or “who’s selling.”
It tries to quantify crowd behavior by blending multiple statistical tests that describe how collective sentiment and coordination unfold in price and volume dynamics.
What it shows
The Herd Flow Oscillator works as a multi-layer detector of crowd-driven flow in the market. It examines how signed volume (buy vs. sell pressure) evolves, how persistent it is, and whether those actions are unusually coordinated compared to random expectations.
HerdFlow Composite (z) — the main signal line, showing how statistically extreme the current herding pressure is.
When this crosses above or below your set thresholds, it suggests a high probability of collective buying or selling.
You can optionally reveal component panels for deeper insight into why herding is detected:
DVI (Directional Volume Imbalance): Measures the ratio of bullish vs. bearish volume.
If it’s strongly positive, more volume is hitting the ask (buying); if negative, more is hitting the bid (selling).
LSV-style Herd Index : Inspired by academic finance measures of “herding.”
It compares how often volume is buying vs. selling versus what would happen by random chance.
If the result is significantly above chance, it means traders are collectively biased in one direction.
O rder-Flow Persistence (ρ 1..K): Averages autocorrelation of signed volume over several lags.
In simpler terms: checks if buying/selling pressure tends to continue in the same direction across bars.
Positive persistence = ongoing coordination, not just isolated trades.
Runs-Test Herding (−Z) : Statistical test that checks how often trade direction flips.
When there are fewer direction changes than expected, it means trades are clustering — a hallmark of herd behavior.
Skew (signed volume): Measures whether signed volume is heavily tilted to one side.
A positive skew means more aggressive buying bursts; a negative skew means more intense selling bursts.
CVD Slope (z): Looks at the slope of the Cumulative Volume Delta — essentially how quickly buy/sell pressure is accelerating.
It’s a short-term flow acceleration measure.
Shapes & background
▲ “BH” at the bottom = Bull Herding; ▼ “BH-” at the top = Bear Herding.
These markers appear when all conditions align to confirm a herding regime.
Persistence and clustering both confirm coordinated downside flow.
Core Windows
Primary Window (N) — the main sample length for herding calculations.
It’s like the "memory span" for detecting coordinated behavior. A longer N means smoother, more reliable signals.
Short Window (Nshort) — used for short-term measurements like imbalance and slope.
Smaller values react faster but can be noisy; larger values are steadier but slower.
Long Window (Nlong) — used for z-score normalization (statistical scaling).
This helps the indicator understand what’s “normal” behavior over a longer horizon, so it can spot when things deviate too far.
Autocorr lags (acLags) — how many steps to check when measuring persistence.
Higher values (e.g., 3–5) look further back to see if trends are truly continuing.
Calculation Options
Price Proxy for Tick Rule — defines how to decide if a trade is “buy” or “sell.”
hlc3 (average of high, low, and close) works as a neutral, smooth price proxy.
Use ATR for scaling — keeps signals comparable across assets and timeframes by dividing by volatility (ATR).
Prevents high-volatility periods from dominating the signal.
Median Filter (bars) — smooths out erratic data spikes without heavily lagging the response.
Odd values like 3 or 5 work best.
Signal Thresholds
Composite z-threshold — determines how extreme behavior must be before it counts as “herding.”
Higher values = fewer, more confident signals.
Imbalance threshold — the minimum directional volume imbalance to trigger interest.
Plotting
Show component panels — useful for analysts and developers who want to inspect the math behind signals.
Fill strong herding zones — purely visual aid to highlight key periods of coordinated trading.
How to use it (practical tips)
Understand the purpose: This is not just a “buy/sell” tool.
It’s a behavioral detector that identifies when traders or algorithms start acting in the same direction.
Timeframe flexibility:
15m–1h: reveals short-term crowd shifts.
4h–1D: better for swing-trade context and institutional positioning.
Combine with structure or trend:
When HerdFlow confirms a bullish regime during a breakout or retest, it adds confidence.
Conversely, a bearish cluster at resistance may hint at a crowd-driven rejection.
Threshold tuning:
To make it more selective, increase zThr and imbThr.
To make it more sensitive, lower those thresholds but expand your primary window N for smoother results.
Cross-market consistency:
Keep “Use ATR for scaling” enabled to maintain consistency across different instruments or timeframes.
Denoising:
A small median filter (3–5 bars) removes flicker from volume spikes but still preserves the essential crowd patterns.
Reading the components (why signals fire)
Each sub-metric describes a unique “dimension” of crowd behavior:
DVI: how imbalanced buying vs selling is.
Herd Index: how biased that imbalance is compared to random expectation.
Persistence (ρ): how continuous those flows are.
Runs-Test: how clumped together trades are — clustering means the crowd’s acting in sync.
Skew: how lopsided the volume distribution is — sudden surges of one-sided aggression.
CVD Slope: how strongly accelerating the current directional flow is.
When all of these line up, you’re seeing evidence that market participants are collectively moving in the same direction — i.e., true herding.
Tweezer & Kangaroo Zones [WavesUnchained]Tweezer & Kangaroo Zones
Pattern Recognition with Supply/Demand Zones
Indicator that detects tweezer and kangaroo tail (pin bar) reversal patterns and creates supply and demand zones. Includes volume validation, trend context, and confluence scoring.
What You See on Your Chart
Pattern Labels:
"T" (Red) - Tweezer Top detected above price → Bearish reversal signal
"T" (Green) - Tweezer Bottom detected below price → Bullish reversal signal
"K" (Red) - Kangaroo Bear (Pin Bar rejection from top) → Bearish signal
"K" (Green) - Kangaroo Bull (Pin Bar rejection from bottom) → Bullish signal
Label Colors Indicate Pattern Strength:
Dark Green/Red - Strong pattern (score ≥8.0)
Medium Green/Red - Good pattern (score ≥6.0)
Light Green/Red - Valid pattern (score <6.0)
Zone Boxes:
Red Boxes - Supply Zones (resistance, potential short areas)
Green Boxes - Demand Zones (support, potential long areas)
White Border - Active zone (fresh, not tested yet)
Gray Border - Inactive zone (expired or invalidated)
Pattern Detection
Tweezer Patterns (Classic Double-Top/Bottom):
Flexible Lookback - Detects patterns up to 3 bars apart (not just consecutive)
Precision Matching - 0.2% level tolerance for high-quality signals
Wick Similarity Check - Both candles must show similar rejection wicks
Volume Validation - Second candle requires elevated volume (0.8x average)
Pattern Strength Score - 0-1 quality rating based on level match + wick similarity
Optional Trend Context - Can require trend alignment (default: OFF for more signals)
Kangaroo Tail / Pin Bar Patterns:
No Pivot Delay - Instant detection without waiting for pivot confirmation
Body Position Check - Body must be at candle extremes (30% tolerance)
Volume Spike - Rejection must occur with volume (0.9x average)
Rejection Strength - Scores based on wick length (0.5-0.9 of range)
Optional Trend Context - Bearish in uptrends, Bullish in downtrends (default: OFF)
Zone Management
Auto-Created Zones - Every valid pattern creates a supply/demand zone
Overlap Prevention - Zones too close together (50% overlap) are not duplicated
Lifetime Control - Zones expire after 400 bars (configurable)
Smart Invalidation - Zones invalidate when price closes through them
Styling Options - Choose between Solid, Dashed, or Dotted borders
Border Width - 2px width for better visibility
Confluence Scoring System
Multi-factor confluence scoring (0-10 scale) with configurable weights:
Regime (EMA+HTF) - Trend alignment across timeframes (Weight: 2.0)
HTF Stack - Multi-timeframe trend confluence (Weight: 3.0)
Structure - Higher lows / Lower highs confirmation (Weight: 1.0)
Relative Volume - Volume surge validation (Weight: 1.0)
Chop Advantage - Favorable market conditions (Weight: 1.0)
Zone Thinness - Tight zones = better R/R (Weight: 1.0)
Supertrend - Trend indicator alignment (Weight: 1.0)
MOST - Moving Stop alignment (Weight: 1.0)
Pattern Strength - Quality of detected pattern (Weight: 1.5)
Zone Retest Signals
Signals generated when zones are retested:
BUY Signal - Price retests demand zone from above (score ≥4.5)
SELL Signal - Price retests supply zone from below (score ≥5.5)
Normalized Score - Displayed as 0-10 for easy interpretation
Optional Trend Gate - Require trend alignment for signals (default: OFF)
Alert Ready - Built-in alertconditions for automation
Additional Features
Auto-Threshold Tuning - Adapts to ATR and Choppiness automatically
Session Profiles - Different settings for RTH vs ETH sessions
Organized Settings - 15+ input groups for easy configuration
Optional Panels - HTF Stack overview and performance metrics (default: OFF)
Data Exports - Hidden plots for strategy/library integration
RTA Health Monitoring - Built-in performance tracking
Setup & Configuration
Quick Start:
1. Apply indicator to any timeframe
2. Patterns and zones appear automatically
3. Adjust pattern detection sensitivity if needed
4. Configure zone styling (Solid/Dashed/Dotted)
5. Set up alerts for zone retests
Key Settings to Adjust:
Pattern Detection:
• Min RelVolume: Lower = more signals (0.8 Tweezer, 0.9 Kangaroo)
• Require trend context: Enable for stricter, higher-quality patterns
• Check wick similarity: Ensures proper rejection structure
Zone Management:
• Zone lifetime: How long zones remain active (default: 400 bars)
• Invalidate on close-through: Remove zones when price breaks through
• Max overlap: Prevent duplicate zones (default: 50%)
Scoring:
• Min Score BUY/SELL: Higher = fewer but better signals (default: 4.5/5.5)
• Component weights: Customize what factors matter most
• Signals require trend gate: OFF = more signals, ON = higher quality
Visual Customization
Zone Colors - Light red/green with 85% transparency (non-intrusive)
Border Styles - Solid, Dashed, or Dotted
Label Intensity - Darker greens for better readability
Clean Charts - All panels OFF by default
Understanding the Zones
Supply Zones (Red):
Created from bearish patterns (Tweezer Tops, Kangaroo Bears). Price made a high attempt to push higher, but was rejected. These become resistance areas where sellers may step in again.
Demand Zones (Green):
Created from bullish patterns (Tweezer Bottoms, Kangaroo Bulls). Price made a low with strong rejection. These become support areas where buyers may step in again.
Zone Quality Indicators:
• White border = Fresh zone, not tested yet
• Gray border = Zone expired or invalidated
• Thin zones (tight range) = Better risk/reward ratio
• Thick zones = Less precise, wider stop required
Trading Applications
Reversal Trading - Enter at pattern detection with tight stops
Zone Retest Trading - Wait for retests of established zones
Trend Confluence - Trade only when patterns align with trend
Risk Management - Use zone boundaries for stop placement
Target Setting - Opposite zones become profit targets
Pro Tips
Best signals occur when pattern + zone retest + trend all align
Lower timeframes = more signals but more noise
Higher timeframes = fewer but more reliable signals
Start with default settings, adjust based on your market
Combine with other analysis (structure, key levels, etc.)
Use alerts to avoid staring at charts all day
Important Notes
Not all patterns will lead to successful trades
Use proper risk management and position sizing
Patterns work best in trending or range-bound markets
Very choppy conditions may produce lower-quality signals
Always confirm with your own analysis before trading
Technical Specifications
• Pine Script v6
• RTA-Core integration
• RTA Core Library integration
• Maximum 200 boxes, 500 labels
• Auto-tuning based on ATR and Choppiness
• Session-aware threshold adjustments
• Memory-optimized zone management
What's Included
Tweezer Top/Bottom detection
Kangaroo Tail / Pin Bar detection
Automatic supply/demand zone creation
Volume validation system
Pattern strength scoring
Zone retest signals
Multi-factor confluence scoring
Optional HTF Stack panel
Optional performance metrics
Session profile support
Auto-threshold tuning
Alert conditions
Data exports for strategies
Author Waves Unchained
Version 1.0
Status Public Indicator
Summary
Reversal pattern detection with zone management, volume validation, and confluence scoring for tweezer and kangaroo tail patterns.
---
Disclaimer: This indicator is for educational and informational purposes only. Trading involves risk. Past performance does not guarantee future results. Always practice proper risk management.
RTACoreLibrary "RTACore"
Advanced multi-timeframe technical analysis framework for Pine Script
@author WavesUnchained
@build 2025-10-14 22:41:47
newFloatResult(value, context)
Create a successful Result with float value
Parameters:
value (float)
context (string)
newStringResult(value, context)
Create a successful Result with string value
Parameters:
value (string)
context (string)
newBoolResult(value, context)
Create a successful Result with boolean value
Parameters:
value (bool)
context (string)
newErrorResult(errorCode, errorMessage, floatFallback, stringFallback, boolFallback, context)
Create an error Result with fallback values
Parameters:
errorCode (string)
errorMessage (string)
floatFallback (float)
stringFallback (string)
boolFallback (bool)
context (string)
addResultTag(result, tag)
Add a tag to Result
Parameters:
result (Result)
tag (string)
newSignalResult(signalStrength, signalType)
Create a signal Result with trading-specific tags
Parameters:
signalStrength (float)
signalType (string)
newIndicatorResult(value, indicatorName)
Create an indicator calculation Result with indicator tag
Parameters:
value (float)
indicatorName (string)
newTimeframeResult(value, timeframe, context)
Create a timeframe-specific Result
Parameters:
value (float)
timeframe (string)
context (string)
newConfluenceResult(confluenceScore, confidenceLevel)
Create a confluence Result with confidence level
Parameters:
confluenceScore (float)
confidenceLevel (string)
newValidationResult(context)
Create a new validation result (starts as valid)
Parameters:
context (string)
newValidationSuccess(context)
Create a successful validation result
Parameters:
context (string)
newValidationFailure(errors, context)
Create a failed validation result with errors
Parameters:
errors (array)
context (string)
addValidationError(result, field, error)
Add an error to validation result
Parameters:
result (ValidationResult)
field (string)
error (string)
addValidationWarning(result, field, warning)
Add a warning to validation result
Parameters:
result (ValidationResult)
field (string)
warning (string)
addValidationCorrection(result, correction)
Add a correction to validation result
Parameters:
result (ValidationResult)
correction (string)
setValidationMode(result, mode)
Set validation mode
Parameters:
result (ValidationResult)
mode (string)
getValidationMode(result)
Get validation mode
Parameters:
result (ValidationResult)
incrementValidatedFields(result)
Increment validated fields counter
Parameters:
result (ValidationResult)
setValidationTotalFields(result, total)
Set total fields for validation
Parameters:
result (ValidationResult)
total (int)
calculateValidationScore(result)
Calculate and update validation score based on errors/warnings
Parameters:
result (ValidationResult)
newPerformanceProfile(functionName)
Create a new performance profile
Parameters:
functionName (string)
startTiming(profile)
Start timing a performance profile (simple)
Parameters:
profile (PerformanceProfile)
endTiming(profile, hadError)
End timing and update performance profile
Parameters:
profile (PerformanceProfile)
hadError (bool)
updateMemoryEstimate(profile, arrayElements)
Set estimated memory usage (array elements)
Parameters:
profile (PerformanceProfile)
arrayElements (int)
newHealthyStatus()
Create a new healthy status
setComponentHealth(status, component, isOK, message)
Set component health status
Parameters:
status (HealthStatus)
component (string)
isOK (bool)
message (string)
isHealthyOverall(status)
Quick health check - are all components OK?
Parameters:
status (HealthStatus)
getHealthSummary(status)
Get simple health summary
Parameters:
status (HealthStatus)
hasValidFloat(result)
Check if Result contains a valid float value
Parameters:
result (Result)
hasValidString(result)
Check if Result contains a valid string value
Parameters:
result (Result)
getFloat(result, fallback)
Get float value from Result with fallback
Parameters:
result (Result)
fallback (float)
getString(result, fallback)
Get string value from Result with fallback
Parameters:
result (Result)
fallback (string)
getBool(result, fallback)
Get boolean value from Result with fallback
Parameters:
result (Result)
fallback (bool)
hasResultTag(result, tag)
Check if Result has specific tag
Parameters:
result (Result)
tag (string)
getResultTags(result)
Get all tags from Result
Parameters:
result (Result)
setResultContext(result, context)
Set operation context for Result
Parameters:
result (Result)
context (string)
filterResultsByTag(results, tag)
Filter Results by tag (utility for arrays of Results)
Parameters:
results (array)
tag (string)
getAllResultTags(results)
Get all unique tags from array of Results
Parameters:
results (array)
newDefaultAnalysisConfig()
Create default analysis configuration
newAggressiveAnalysisConfig()
Create aggressive trading configuration
newConservativeAnalysisConfig()
Create conservative trading configuration
newDefaultTimeframeConfig()
Create default timeframe configuration
newIntradayTimeframeConfig()
Create intraday timeframe configuration
newSwingTimeframeConfig()
Create swing trading timeframe configuration
getConfigSummary(config)
Get configuration summary string
Parameters:
config (AnalysisConfig)
cloneAnalysisConfig(source)
Clone analysis configuration
Parameters:
source (AnalysisConfig)
newGenericAnalysis(analysisType, timeframe)
Create a new generic analysis result
Parameters:
analysisType (string)
timeframe (string)
newConsensusData()
Create empty consensus data
newNeutralSignal(reason)
Create a neutral signal result
Parameters:
reason (string)
newBuySignal(score, confidence, reason)
Create a buy signal result
Parameters:
score (float)
confidence (float)
reason (string)
newSellSignal(score, confidence, reason)
Create a sell signal result
Parameters:
score (float)
confidence (float)
reason (string)
newMultiTimeframeResult(config, tfConfig)
Create new multi-timeframe result
Parameters:
config (AnalysisConfig)
tfConfig (TimeframeConfig)
getAnalysisAction(analysis)
Get analysis action string
Parameters:
analysis (GenericAnalysis)
isBullish(analysis)
Check if analysis is bullish
Parameters:
analysis (GenericAnalysis)
isBearish(analysis)
Check if analysis is bearish
Parameters:
analysis (GenericAnalysis)
getSignalSummary(signal)
Get signal summary string
Parameters:
signal (SignalResult)
hasStrongConsensus(consensus)
Check if consensus is strong
Parameters:
consensus (ConsensusData)
getConsensusSummary(consensus)
Get consensus summary
Parameters:
consensus (ConsensusData)
isActionableSignal(signal)
Check if signal is actionable
Parameters:
signal (SignalResult)
getSignalColor(signal)
Get signal color for UI display
Parameters:
signal (SignalResult)
validateAnalysisConfig(config)
Validate analysis configuration
Parameters:
config (AnalysisConfig)
validateTimeframeConfig(config)
Validate timeframe configuration
Parameters:
config (TimeframeConfig)
validatePriceData(prices)
Validate price data array
Parameters:
prices (array)
sanitizeFloat(value, minVal, maxVal, defaultVal)
Sanitize numeric input
Parameters:
value (float)
minVal (float)
maxVal (float)
defaultVal (float)
sanitizeInt(value, minVal, maxVal, defaultVal)
Sanitize integer input
Parameters:
value (int)
minVal (int)
maxVal (int)
defaultVal (int)
sanitizeFloatArray(arr)
Sanitize array by removing invalid values
Parameters:
arr (array)
logError(message)
Log error message
Parameters:
message (string)
logWarning(message)
Log warning message
Parameters:
message (string)
safeExecute(operationName, condition)
Safe execute wrapper
Parameters:
operationName (string)
condition (bool)
shouldAllowOperation(errorCount, maxErrors)
Circuit breaker pattern
Parameters:
errorCount (int)
maxErrors (int)
retryOperation(maxRetries)
Retry mechanism
Parameters:
maxRetries (int)
atrDistance(value1, value2, atr)
Calculate ATR-normalized distance between two values
Parameters:
value1 (float)
value2 (float)
atr (float)
atrDistance(value, reference, atrLength)
Calculate ATR-normalized distance between values
Parameters:
value (float)
reference (float)
atrLength (simple int)
percentDistance(value1, value2)
Calculate percentage-based distance between two values
Parameters:
value1 (float)
value2 (float)
withinATRTolerance(value, reference, atr, multiplier)
Check if value is within ATR-based tolerance of reference
Parameters:
value (float)
reference (float)
atr (float)
multiplier (float)
withinATRTolerance(value, reference, multiplier)
Check if value is within ATR-based tolerance of reference
Parameters:
value (float)
reference (float)
multiplier (float)
withinPercentTolerance(value, reference, percentTolerance)
Check if value is within percentage tolerance of reference
Parameters:
value (float)
reference (float)
percentTolerance (float)
proximityScore(value, reference, maxDistance)
Get proximity score (0-1, where 1 = very close)
Parameters:
value (float)
reference (float)
maxDistance (float)
sortArrayByValue(values, sortOrder)
Efficient array sorting using Pine Script native sort
Note: Replaces inefficient bubble sort implementations found in modules
Parameters:
values (array)
sortOrder (string)
safeArrayAverage(values)
Safe array average with null handling
Parameters:
values (array)
formatTableHeader(title, width)
Create formatted header for display tables
Parameters:
title (string)
width (int)
formatTableRow(key, value, width)
Format table row with key-value pair
Parameters:
key (string)
value (string)
width (int)
formatTableFooter(width)
Close table formatting
Parameters:
width (int)
truncateText(txt, maxLength, suffix)
Truncate text to specified length
Parameters:
txt (string)
maxLength (int)
suffix (string)
padText(txt, width, padChar, align)
Pad text to specified width
Parameters:
txt (string)
width (int)
padChar (string)
align (string)
titleCase(txt)
Convert text to title case
Parameters:
txt (string)
joinStrings(strings, separator)
Join array of strings with separator
Parameters:
strings (array)
separator (string)
formatTimestamp(timestamp, format)
Format timestamp to readable date/time
Parameters:
timestamp (int)
format (string)
evictLRU(cache)
Evict least recently used entry
Parameters:
cache (CacheManager)
newRiskAssessment()
Create a default risk assessment
calculateRiskAssessment(signal, volatility, volumeLevel)
Calculate comprehensive risk assessment
Parameters:
signal (SignalResult)
volatility (float)
volumeLevel (float)
newPositionData()
Create new empty position data
getConservativeStrategy()
Create conservative strategy template
getAggressiveStrategy()
Create aggressive strategy template
newDefaultStrategy()
Create default balanced strategy template
getStandardATR()
Get standard ATR(14) - cached per bar
getATR(length)
Get custom ATR with specified length
Parameters:
length (simple int)
getATRTolerance(multiplier)
Get ATR-based tolerance for distance calculations
Parameters:
multiplier (float)
getStandardVolumeAverage()
Get standard volume average SMA(20) - cached per bar
getVolumeAverage(length)
Get custom volume average
Parameters:
length (int)
getVolumeRatio()
Get volume ratio (current vs average)
getVolumeConfirmation(threshold)
Get volume confirmation (above threshold)
Parameters:
threshold (float)
getStandardEMAs()
Get standard EMAs (21, 50, 200) - cached per bar
getEMA21()
Get individual standard EMAs
getEMA50()
getEMA200()
getEMATrendAlignment()
Get EMA trend alignment score
getStandardRSI()
Get standard RSI(14) - cached per bar
getRSILevels(overbought, oversold)
Get RSI with overbought/oversold levels
Parameters:
overbought (float)
oversold (float)
getStandardMACD()
Get standard MACD (12, 26, 9) - cached per bar
getMACDSignal()
Get MACD trend signal
getMomentumScore()
Get comprehensive momentum score
getTrendStrength()
Get trend strength (0-100)
getIndicatorSummary()
Get indicator calculation summary (for debugging)
newZoneDetectionConfig()
Create default zone configuration
newZoneDetection(upperBoundary, lowerBoundary, creationBar, zoneType)
Create new zone
Parameters:
upperBoundary (float)
lowerBoundary (float)
creationBar (int)
zoneType (string)
calculateZoneOverlap(zone1Upper, zone1Lower, zone2Upper, zone2Lower)
Calculate zone overlap ratio
Parameters:
zone1Upper (float)
zone1Lower (float)
zone2Upper (float)
zone2Lower (float)
isPriceTouchingZone(zone, currentPrice, touchTolerance)
Check if price is touching zone
Parameters:
zone (ZoneDetection)
currentPrice (float)
touchTolerance (float)
getZonesInRange(zones, minPrice, maxPrice)
Get zones within price range
Parameters:
zones (array)
minPrice (float)
maxPrice (float)
getNearestZones(zones, currentPrice)
Get nearest support and resistance zones
Parameters:
zones (array)
currentPrice (float)
processZoneDetection(zones, config)
Complete zone detection and management system
Parameters:
zones (array)
config (ZoneDetectionConfig)
processZoneDetectionEngine(zones, config)
Parameters:
zones (array)
config (ZoneDetectionConfig)
newChannelConfig()
calcKeltnerChannel(config)
Parameters:
config (ChannelConfig)
checkKeltnerTouch(upper, lower)
Parameters:
upper (float)
lower (float)
getKeltnerDepth(basis, upper, lower)
Parameters:
basis (float)
upper (float)
lower (float)
checkKeltnerBreakout(upper, lower)
Parameters:
upper (float)
lower (float)
calcDonchianChannel(config)
Parameters:
config (ChannelConfig)
checkDonchianTouch(upper, lower)
Parameters:
upper (float)
lower (float)
checkDonchianReentry(upper, lower)
Parameters:
upper (float)
lower (float)
getDonchianWidth(upper, lower)
Parameters:
upper (float)
lower (float)
calcBollingerBands(config)
Parameters:
config (ChannelConfig)
calcSqueezeRatio(bbStdev, kcMultiplier, kcAtr)
Parameters:
bbStdev (float)
kcMultiplier (float)
kcAtr (float)
detectSqueezeState(squeezeRatio)
Parameters:
squeezeRatio (float)
detectSqueezeBreak(squeezeRatio, kcUpper, kcLower)
Parameters:
squeezeRatio (float)
kcUpper (float)
kcLower (float)
getSqueezeIntensity(squeezeRatio)
Parameters:
squeezeRatio (float)
processChannelDetection(config)
Parameters:
config (ChannelConfig)
detectChannelSignals(state)
Parameters:
state (ChannelState)
detectQualityZones(state)
Parameters:
state (ChannelState)
getChannelSignalText(state)
Parameters:
state (ChannelState)
analyzeChannelTrend(state)
Parameters:
state (ChannelState)
getChannelConfluence(state)
Parameters:
state (ChannelState)
newVwapConfig()
newVwapAnchors()
calcSessionVwap()
getPreviousSessionVwap(sessionVwap)
Parameters:
sessionVwap (float)
updateVwapAnchors(anchors, config)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
calcAnchoredVwap(anchors, isHigh)
Parameters:
anchors (VwapAnchors)
isHigh (bool)
detectPriceCrosses(sessionVwap)
Parameters:
sessionVwap (float)
detectStructureCrosses(sessionVwap, anchoredHigh, anchoredLow)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
detectVwapCluster(sessionVwap, anchoredHigh, anchoredLow, config)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
config (VwapConfig)
canShowSignal(anchors, config, signalType)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
signalType (string)
updateSignalThrottle(anchors, signalType)
Parameters:
anchors (VwapAnchors)
signalType (string)
calcCrossStrength(sessionVwap, isPriceCross)
Parameters:
sessionVwap (float)
isPriceCross (bool)
calcClusterStrength(vwapsInCluster, priceInCluster, tolerance)
Parameters:
vwapsInCluster (bool)
priceInCluster (bool)
tolerance (float)
calcStructureStrength(sessionVwap, anchoredHigh, anchoredLow)
Parameters:
sessionVwap (float)
anchoredHigh (float)
anchoredLow (float)
analyzeVwapTrend(sessionVwap)
Parameters:
sessionVwap (float)
processVwapDetection(anchors, config)
Parameters:
anchors (VwapAnchors)
config (VwapConfig)
generateVwapSignals(state)
Parameters:
state (VwapState)
getVwapBias(state)
Parameters:
state (VwapState)
getVwapConfluence(state)
Parameters:
state (VwapState)
newZoneConfig()
newZoneState()
stringToFloats(s)
Parameters:
s (string)
calculateBias(config)
Parameters:
config (ZoneConfig)
createZone(top, bottom, isBull, isHTF)
Parameters:
top (float)
bottom (float)
isBull (bool)
isHTF (bool)
updateZoneStatus(zone)
Parameters:
zone (Zone)
detectFVGOverlap(zone)
Parameters:
zone (Zone)
scoreZone(zone, config)
Parameters:
zone (Zone)
config (ZoneConfig)
sortAndTrimZones(zones, config)
Parameters:
zones (array)
config (ZoneConfig)
adjustZoneVisibility(zones, config)
Parameters:
zones (array)
config (ZoneConfig)
calculateTargetsATR(base, stepsString, atrLength)
Parameters:
base (float)
stepsString (string)
atrLength (simple int)
calculateTargetsSigma(base, stepsString, sigmaLength)
Parameters:
base (float)
stepsString (string)
sigmaLength (int)
calculateTargetsLiquidity(isLong, config)
Parameters:
isLong (bool)
config (ZoneConfig)
detectZoneSignals(zones, bias, config)
Parameters:
zones (array)
bias (int)
config (ZoneConfig)
processZoneManagement(state, config)
Parameters:
state (ZoneState)
config (ZoneConfig)
findNearestZones(state)
Parameters:
state (ZoneState)
newVolumeConfig()
newVolumeState()
getPriceSource(config)
Parameters:
config (VolumeConfig)
isInSession(config)
Parameters:
config (VolumeConfig)
isNewSession(config)
Parameters:
config (VolumeConfig)
calculateWindow(config)
Parameters:
config (VolumeConfig)
calculateProfile(config, windowStart, windowLength)
Parameters:
config (VolumeConfig)
windowStart (int)
windowLength (int)
detectVolumeNodes(binVolumes, binPrices, totalVolume)
Parameters:
binVolumes (array)
binPrices (array)
totalVolume (float)
calculateVolumeChoppiness(config)
Calculate choppiness index for volume profile
Parameters:
config (VolumeConfig)
detectMarketRegime(state, config)
Detect market regime based on multiple factors
Parameters:
state (VolumeState)
config (VolumeConfig)
calculateAdaptiveParameters(state, config)
Calculate adaptive volume profile parameters
Parameters:
state (VolumeState)
config (VolumeConfig)
updateMarketConditions(state, config)
Update volume state with market conditions
Parameters:
state (VolumeState)
config (VolumeConfig)
applyAdaptiveConfig(config, state)
Apply adaptive parameters to profile calculation
Parameters:
config (VolumeConfig)
state (VolumeState)
getHTFPivots(config)
Parameters:
config (VolumeConfig)
checkPivotConfluence(price, config, pivotHigh1, pivotLow1, pivotHigh2, pivotLow2)
Parameters:
price (float)
config (VolumeConfig)
pivotHigh1 (float)
pivotLow1 (float)
pivotHigh2 (float)
pivotLow2 (float)
calculateMOST()
Calculate MOST (Moving Stop) indicator
calculateTrendFilters(config)
Parameters:
config (VolumeConfig)
findNearestNodes(hvnNodes, lvnNodes)
Parameters:
hvnNodes (array)
lvnNodes (array)
detectVolumeSignals(config, profile, trendBullish, htfConfluence)
Parameters:
config (VolumeConfig)
profile (VolumeProfile)
trendBullish (bool)
htfConfluence (bool)
calculateVolumeScore(profile, trendBullish)
Parameters:
profile (VolumeProfile)
trendBullish (bool)
processVolumeProfile(state, config)
Parameters:
state (VolumeState)
config (VolumeConfig)
newHTFConfig()
newHTFStackState()
getOptimalTimeframes(chartTF)
Parameters:
chartTF (string)
calculateChoppiness(length)
Parameters:
length (int)
detectTrendEMA(length, threshold)
Parameters:
length (simple int)
threshold (float)
detectTrendSupertrend(atrLength, multiplier)
Parameters:
atrLength (simple int)
multiplier (float)
detectTrendMOST(length, multiplier)
Parameters:
length (simple int)
multiplier (float)
analyzeTrendForTF(tf, config)
Parameters:
tf (string)
config (HTFConfig)
calculateStackConfluence(tfData, config)
Parameters:
tfData (array)
config (HTFConfig)
calculateAutoTuningParams(choppiness, stackStrength, config)
Parameters:
choppiness (float)
stackStrength (float)
config (HTFConfig)
detectStackSignals(state, prevState, config)
Parameters:
state (HTFStackState)
prevState (HTFStackState)
config (HTFConfig)
createStackPanel(state, config)
Parameters:
state (HTFStackState)
config (HTFConfig)
processHTFStack(state, config)
Parameters:
state (HTFStackState)
config (HTFConfig)
processHTFStackSignals(state, prevState, config)
Parameters:
state (HTFStackState)
prevState (HTFStackState)
config (HTFConfig)
newRedefiningTechnicalAnalysisCore(analysisConfig, timeframeConfig, strategy)
Initialize RedefiningTechnicalAnalysis Core Library
Note: This function requires valid config objects to be passed in
The configuration module must be used directly to create default configs
Parameters:
analysisConfig (AnalysisConfig)
timeframeConfig (TimeframeConfig)
strategy (StrategyTemplate)
performAnalysis(core, prices, volumes, timestamps)
Perform complete multi-timeframe analysis
Parameters:
core (RedefiningTechnicalAnalysisCore)
prices (array)
volumes (array)
timestamps (array)
generateSignal(core, analysisResult)
Generate trading signal from analysis results
Parameters:
core (RedefiningTechnicalAnalysisCore)
analysisResult (MultiTimeframeResult)
assessRisk(core, signal)
Assess risk for trading decision
Parameters:
core (RedefiningTechnicalAnalysisCore)
signal (SignalResult)
executeFullWorkflow(core)
Execute complete analysis workflow
Parameters:
core (RedefiningTechnicalAnalysisCore)
updateAnalysisConfig(core, newConfig)
Update analysis configuration
Parameters:
core (RedefiningTechnicalAnalysisCore)
newConfig (AnalysisConfig)
updateStrategy(core, newStrategy)
Update strategy template
Parameters:
core (RedefiningTechnicalAnalysisCore)
newStrategy (StrategyTemplate)
checkSystemHealth(core)
Perform system health check
Parameters:
core (RedefiningTechnicalAnalysisCore)
generateStatusReport(core)
Generate comprehensive status report
Parameters:
core (RedefiningTechnicalAnalysisCore)
enableDebugMode(core, enabled)
Enable debug mode
Parameters:
core (RedefiningTechnicalAnalysisCore)
enabled (bool)
setFeatureFlag(core, flag, enabled)
Set feature flag
Parameters:
core (RedefiningTechnicalAnalysisCore)
flag (string)
enabled (bool)
getFeatureFlag(core, flag, defaultValue)
Get feature flag
Parameters:
core (RedefiningTechnicalAnalysisCore)
flag (string)
defaultValue (bool)
resetLibraryState(core)
Reset library state
Parameters:
core (RedefiningTechnicalAnalysisCore)
getLibraryInfo()
Get library version information
quickAnalysis(config, tfConfig, strategy)
Quick analysis - simplified entry point
Parameters:
config (AnalysisConfig)
tfConfig (TimeframeConfig)
strategy (StrategyTemplate)
getQuickStatus(core)
Get quick status string
Parameters:
core (RedefiningTechnicalAnalysisCore)
Result
Generic Result type for safe operations with error handling and fallbacks
Fields:
floatValue (series float)
stringValue (series string)
boolValue (series bool)
intValue (series int)
isSuccess (series bool)
errorCode (series string)
errorMessage (series string)
floatFallback (series float)
stringFallback (series string)
boolFallback (series bool)
intFallback (series int)
operationContext (series string)
timestamp (series int)
tags (array)
ValidationResult
Comprehensive validation result with errors, warnings, and corrections
Fields:
isValid (series bool)
errors (array)
warnings (array)
corrections (array)
suggestions (array)
validationScore (series float)
validationMode (series string)
validatedFields (series int)
totalFields (series int)
validationContext (series string)
validationTime (series int)
PerformanceProfile
Simplified performance profiling for Pine Script limitations
Fields:
executionTimeMs (series float)
averageExecutionMs (series float)
executionCount (series int)
errorCount (series int)
cacheHits (series int)
cacheMisses (series int)
cacheHitRatio (series float)
estimatedArrayElements (series int)
hasHeavyCalculation (series bool)
lastOptimizationHint (series string)
performanceGrade (series string)
performanceScore (series float)
functionName (series string)
profileStartTime (series int)
HealthStatus
Simplified health status for Pine Script limitations
Fields:
isHealthy (series bool)
healthScore (series float)
healthGrade (series string)
issues (array)
warnings (array)
recommendations (array)
dataValidationOK (series bool)
calculationsOK (series bool)
memoryUsageOK (series bool)
errorCountSession (series int)
warningCountSession (series int)
lastHealthCheck (series int)
healthCheckVersion (series string)
AnalysisConfig
Comprehensive analysis configuration with factor weights, thresholds, and extensible options
Fields:
activeFactors (array)
factorWeights (map)
thresholds (map)
features (map)
tradingMode (series string)
consensusMode (series string)
riskProfile (series string)
minConfidence (series float)
signalStrength (series float)
requireConsensus (series bool)
minConsensusCount (series int)
parameters (map)
options (map)
flags (map)
configName (series string)
version (series string)
description (series string)
createdTime (series int)
lastModified (series int)
validation (ValidationResult)
TimeframeConfig
Multi-timeframe configuration with weights and adjustments
Fields:
timeframes (array)
weights (array)
autoDetectChartTF (series bool)
includeHigherTFs (series bool)
tfAdjustments (map)
tfSensitivity (map)
tfFeatures (map)
minTimeframes (series int)
consensusThreshold (series float)
consensusMethod (series string)
normalizeWeights (series bool)
adaptiveBias (series bool)
higherTFBias (series float)
tfConfigName (series string)
configTimestamp (series int)
validation (ValidationResult)
GenericAnalysis
Generic analysis result that all specific analysis types extend
Fields:
totalScore (series float)
confidence (series float)
action (series string)
strength (series string)
riskLevel (series string)
factorScores (map)
factorWeights (map)
factorSignals (map)
factorReasons (map)
analysisType (series string)
timeframeAnalyzed (series string)
analysisTimestamp (series int)
marketCondition (series string)
dataQuality (series float)
performance (PerformanceProfile)
validation (ValidationResult)
numericData (map)
textData (map)
flags (map)
ConsensusData
Multi-timeframe consensus analysis data
Fields:
agreementCount (series int)
totalTimeframes (series int)
agreementPercentage (series float)
hasStrongConsensus (series bool)
hasMajorityConsensus (series bool)
agreeingTimeframes (array)
disagreeingTimeframes (array)
tfScores (map)
tfActions (map)
consensusMode (series string)
consensusScore (series float)
consensusAction (series string)
consensusStrength (series string)
tfWeights (map)
weightedConsensus (series bool)
weightedScore (series float)
consensusQuality (series float)
consensusReliability (series string)
consensusWarnings (array)
SignalResult
Comprehensive trading signal result
Fields:
strongBuy (series bool)
buy (series bool)
neutral (series bool)
sell (series bool)
strongSell (series bool)
overallScore (series float)
confidence (series float)
primaryAction (series string)
signalStrength (series string)
signalReason (series string)
contributingFactors (array)
factorContributions (map)
triggerCondition (series string)
consensus (ConsensusData)
consensusLevel (series string)
hasConsensus (series bool)
riskLevel (series string)
riskRewardRatio (series float)
successProbability (series float)
signalTimestamp (series int)
urgency (series string)
validityPeriod (series int)
marketPhase (series string)
warningFlags (array)
metadata (map)
MultiTimeframeResult
Multi-timeframe analysis result container
Fields:
primaryAnalysis (GenericAnalysis)
tfResults (map)
consensus (ConsensusData)
aggregatedScore (series float)
confidenceScore (series float)
dominantAction (series string)
consensusStrength (series string)
analyzedTimeframes (array)
failedTimeframes (array)
failureReasons (map)
performance (PerformanceProfile)
validation (ValidationResult)
dataQualityScore (series float)
config (AnalysisConfig)
tfConfig (TimeframeConfig)
analysisTimestamp (series int)
DebugLogEntry
Debug log entry
Fields:
timestamp (series int)
level (series string)
module (series string)
function (series string)
message (series string)
context (series string)
data (map)
barIndex (series int)
timeframe (series string)
DebugLogger
Debug logger with configurable levels
Fields:
entries (array)
maxEntries (series int)
currentLevel (series string)
enabled (series bool)
enabledModules (array)
showTimestamp (series bool)
showBarIndex (series bool)
outputFormat (series string)
PerformanceMeasurement
Performance measurement
Fields:
name (series string)
startTime (series int)
endTime (series int)
duration (series float)
iterations (series int)
avgDuration (series float)
status (series string)
context (series string)
TraceEntry
Execution trace entry
Fields:
function (series string)
module (series string)
entryTime (series int)
exitTime (series int)
isEntry (series bool)
parameters (series string)
returnValue (series string)
depth (series int)
ExecutionTracer
Execution tracer
Fields:
traces (array)
currentDepth (series int)
maxDepth (series int)
enabled (series bool)
maxTraces (series int)
CacheEntry
Cache entry
Fields:
key (series string)
data (series string)
timestamp (series int)
ttl (series int)
accessCount (series int)
lastAccess (series int)
CacheManager
Cache manager
Fields:
name (series string)
entries (map)
maxEntries (series int)
defaultTTL (series int)
enabled (series bool)
hits (series int)
misses (series int)
evictions (series int)
RiskAssessment
Core risk assessment result
Fields:
riskLevel (series string)
riskScore (series float)
riskRewardRatio (series float)
successProbability (series float)
maxDrawdownExpected (series float)
positionRisk (series float)
portfolioExposure (series float)
correlationRisk (series float)
concentrationRisk (series float)
volatilityRisk (series float)
liquidityRisk (series float)
timeframeRisk (series float)
newsEventRisk (series float)
supportResistanceRisk (series float)
trendRisk (series float)
momentumRisk (series float)
volumeRisk (series float)
hasHighRisk (series bool)
hasExtremeRisk (series bool)
riskWarnings (array)
riskFactors (array)
recommendedPositionSize (series float)
stopLossDistance (series float)
takeProfitDistance (series float)
shouldAvoidTrade (series bool)
riskMitigationStrategy (series string)
assessmentTimestamp (series int)
assessmentMethod (series string)
performance (PerformanceProfile)
PositionData
Comprehensive position data
Fields:
hasPosition (series bool)
positionSide (series string)
positionSize (series float)
entryPrice (series float)
entryTimestamp (series int)
entryReason (series string)
unrealizedPnL (series float)
realizedPnL (series float)
maxUnrealizedGain (series float)
maxUnrealizedLoss (series float)
totalReturn (series float)
stopLossPrice (series float)
takeProfitPrice (series float)
riskAmount (series float)
riskRewardRatio (series float)
currentRisk (RiskAssessment)
barsInPosition (series int)
maxBarsAllowed (series int)
isTimedOut (series bool)
timeframe (series string)
hasExitSignal (series bool)
exitReason (series string)
exitScore (series float)
shouldExit (series bool)
exitUrgency (series string)
actionHistory (array)
timestampHistory (array)
reasonHistory (array)
sharpeRatio (series float)
maxDrawdown (series float)
winRate (series float)
avgHoldTime (series float)
StrategyTemplate
Base strategy template
Fields:
name (series string)
description (series string)
category (series string)
timeframes (array)
entryThreshold (series float)
entryConfidenceMin (series float)
requiredSignals (array)
excludeConditions (array)
exitThreshold (series float)
stopLossPercent (series float)
takeProfitPercent (series float)
maxBarsInTrade (series int)
maxPositionSize (series float)
basePositionSize (series float)
useVolatilityAdjustment (series bool)
useConfidenceAdjustment (series bool)
maxRiskPerTrade (series float)
maxDailyRisk (series float)
maxDrawdownLimit (series float)
useAdaptiveRisk (series bool)
requireConsensus (series bool)
minConsensusPercent (series float)
avoidNewsEvents (series bool)
requireVolume (series bool)
targetSharpeRatio (series float)
targetWinRate (series float)
targetRiskReward (series float)
parameters (map)
flags (map)
settings (map)
MetricDataPoint
Performance metric data point
Fields:
timestamp (series int)
value (series float)
name (series string)
unit (series string)
labels (map)
source (series string)
MetricStats
Metric statistics
Fields:
min (series float)
max (series float)
avg (series float)
sum (series float)
count (series int)
p50 (series float)
p95 (series float)
p99 (series float)
stdDev (series float)
firstTimestamp (series int)
lastTimestamp (series int)
MetricDataPointArray
Wrapper for array of metric data points (to avoid nested collections)
Fields:
dataPoints (array)
MetricsCollector
Metrics collector
Fields:
metrics (map)
stats (map)
maxDataPoints (series int)
retentionPeriod (series int)
autoCleanup (series bool)
enabled (series bool)
enabledMetrics (array)
lastCleanupTime (series int)
ComponentHealth
Component health status
Fields:
name (series string)
status (series string)
healthScore (series float)
lastCheckTime (series int)
warnings (array)
errors (array)
metrics (map)
lastError (series string)
errorCount (series int)
warningCount (series int)
isOperational (series bool)
SystemHealth
System health overview
Fields:
overallStatus (series string)
overallScore (series float)
healthyComponents (series int)
degradedComponents (series int)
unhealthyComponents (series int)
components (array)
systemWarnings (array)
systemErrors (array)
lastFullCheckTime (series int)
autoHealing (series bool)
healingAttempts (series int)
HealthAlert
Health alert
Fields:
level (series string)
component (series string)
message (series string)
timestamp (series int)
acknowledged (series bool)
category (series string)
ZoneDetection
Advanced zone data structure
Fields:
upper (series float)
lower (series float)
mid (series float)
height (series float)
score (series float)
quality (series string)
touchCount (series int)
lastTouchBar (series int)
creationBar (series int)
role (series int)
zoneType (series string)
isActive (series bool)
isBroken (series bool)
flipBar (series int)
flipRetestCount (series int)
flipBestQuality (series float)
flipScore (series float)
hasFlipped (series bool)
htfOverlap (series bool)
htfTimeframe (series string)
htfConfidence (series float)
retestQuality (series float)
volumeProfile (series float)
volatilityProfile (series float)
freshnessScore (series float)
successfulBounces (series int)
failedBreakouts (series int)
successRate (series float)
avgHoldTime (series float)
zoneBox (series box)
midLine (series line)
zoneLabel (series label)
flipLabel (series label)
ZoneDetectionConfig
Zone analysis configuration
Fields:
pivotPeriod (series int)
atrMultiplier (series float)
atrLength (series int)
maxZones (series int)
mergeThreshold (series float)
minTouchesForSignificance (series int)
weightTouches (series float)
weightFreshness (series float)
weightVolume (series float)
weightHTF (series float)
minWickPercent (series float)
maxBodyPercent (series float)
freshnessHalfLife (series int)
useHTFProjection (series bool)
htfTimeframe (series string)
htfPivotCount (series int)
htfProjectionMultiplier (series float)
ChannelConfig
Fields:
kcEmaLength (series int)
kcAtrLength (series int)
kcMultiplier (series float)
dcLength (series int)
bbLength (series int)
bbMultiplier (series float)
pivotLength (series int)
atrThreshold (series float)
minBarsPerLeg (series int)
minTouchCount (series int)
mergeThreshold (series float)
ChannelState
Fields:
kcUpper (series float)
kcLower (series float)
kcBasis (series float)
kcAtr (series float)
dcUpper (series float)
dcLower (series float)
dcMid (series float)
bbUpper (series float)
bbLower (series float)
bbBasis (series float)
bbStdev (series float)
squeezeRatio (series float)
isSqueezeActive (series bool)
isExpanding (series bool)
touchKcUpper (series bool)
touchKcLower (series bool)
touchDcUpper (series bool)
touchDcLower (series bool)
kcBreakoutUp (series bool)
kcBreakoutDown (series bool)
dcReentryUp (series bool)
dcReentryDown (series bool)
squeezeBreakUp (series bool)
squeezeBreakDown (series bool)
kcDepth (series float)
dcWidth (series float)
squeezeIntensity (series float)
ChannelSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
isQualitySignal (series bool)
VwapConfig
Fields:
pivotLeftBars (series int)
pivotRightBars (series int)
clusterTolerancePercent (series float)
minBarsBetweenSignals (series int)
crossThreshold (series float)
enableThrottling (series bool)
detectClusters (series bool)
VwapState
Fields:
sessionVwap (series float)
sessionVwapPrev (series float)
anchoredVwapHigh (series float)
anchoredVwapLow (series float)
hasAnchoredHigh (series bool)
hasAnchoredLow (series bool)
priceCrossUp (series bool)
priceCrossDown (series bool)
canShowPriceCross (series bool)
structureCrossUp (series bool)
structureCrossDown (series bool)
canShowStructureCross (series bool)
isClusterActive (series bool)
canShowCluster (series bool)
clusterTolerance (series float)
vwapsInCluster (series bool)
priceInCluster (series bool)
priceVwapPosition (series int)
priceVwapDistance (series float)
priceVwapDistancePercent (series float)
crossStrength (series float)
clusterStrength (series float)
structureStrength (series float)
VwapSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
isHighConfidence (series bool)
barIndex (series int)
VwapAnchors
Fields:
cumulativePV (series float)
cumulativeV (series float)
anchorPV_High (series float)
anchorV_High (series float)
hasHighAnchor (series bool)
anchorPV_Low (series float)
anchorV_Low (series float)
hasLowAnchor (series bool)
lastPriceCrossBar (series int)
lastStructureCrossBar (series int)
lastClusterBar (series int)
ZoneConfig
Fields:
htfTimeframe (series string)
useHTF (series bool)
maxZonesPerSide (series int)
rankFavorHTF (series bool)
rankFavorFVG (series bool)
rankFavorFresh (series bool)
showOnlyTopRank (series bool)
alphaTop (series int)
alphaRest (series int)
biasLength (series int)
biasBandMultiplier (series float)
targetMode (series string)
atrLength (series int)
atrSteps (series string)
sigmaLength (series int)
sigmaSteps (series string)
useSSL (series bool)
useFVGFills (series bool)
confirmMidline (series bool)
confirmBreak (series bool)
requireBias (series bool)
lazyTargets (series bool)
nearPercent (series float)
Zone
Fields:
top (series float)
bottom (series float)
mid (series float)
bornTime (series int)
isBull (series bool)
isHTF (series bool)
touched (series bool)
violated (series bool)
hasFVG (series bool)
score (series float)
rank (series int)
zoneBox (series box)
midLine (series line)
isActive (series bool)
ZoneState
Fields:
zonesTF (array)
zonesHTF (array)
bias (series int)
biasScore (series float)
biasRegime (series string)
vwapLevel (series float)
bandUpper (series float)
bandLower (series float)
targetLevels (array)
targetLines (array)
activeBullZones (series int)
activeBearZones (series int)
totalZones (series int)
avgZoneScore (series float)
longSignal (series bool)
shortSignal (series bool)
nearestBullZone (Zone)
nearestBearZone (Zone)
ZoneSignal
Fields:
signalType (series string)
sourceZone (Zone)
strength (series float)
description (series string)
confirmed (series bool)
barIndex (series int)
VolumeConfig
Fields:
profileMode (series string)
fixedLength (series int)
rollingLength (series int)
sessionString (series string)
binCount (series int)
valueAreaPercent (series float)
useHLC3 (series bool)
useHTF1 (series bool)
htfTimeframe1 (series string)
useHTF2 (series bool)
htfTimeframe2 (series string)
pivotLookback (series int)
pivotToleranceATR (series float)
enableAutoTuning (series bool)
vaPct_eff (series float)
epsATR_eff (series float)
adaptiveAlpha (series float)
choppinessLength (series int)
choppyThreshold (series float)
trendingThreshold (series float)
useMarketRegime (series bool)
enableLVNSignals (series bool)
enableVASignals (series bool)
maxRetestDistanceATR (series float)
useEMAFilter (series bool)
useSupertrendFilter (series bool)
useMOSTFilter (series bool)
showPOC (series bool)
showValueArea (series bool)
showNodes (series bool)
showSilhouette (series bool)
silhouetteOffset (series int)
silhouetteWidth (series int)
zoneOpacity (series int)
enableSessionSplits (series bool)
maxSessionCount (series int)
VolumeNode
Fields:
price (series float)
volume (series float)
nodeType (series string)
prominence (series float)
isSignificant (series bool)
VolumeProfile
Fields:
pocPrice (series float)
pocVolume (series float)
valueAreaHigh (series float)
valueAreaLow (series float)
totalVolume (series float)
windowStart (series int)
windowLength (series int)
windowHigh (series float)
windowLow (series float)
binVolumes (array)
binPrices (array)
hvnNodes (array)
lvnNodes (array)
nearestLVN (series float)
nearestHVN (series float)
htfConfluence (series bool)
pocLine (series line)
valueAreaBox (series box)
nodeBoxes (array)
silhouette (series polyline)
VolumeState
Fields:
currentProfile (VolumeProfile)
sessionProfiles (array)
trendBullish (series bool)
emaConfluence (series float)
supertrendBull (series bool)
mostBull (series bool)
choppiness (series float)
isChoppy (series bool)
isTrending (series bool)
marketRegime (series string)
vaPct_current (series float)
epsATR_current (series float)
smoothingFactor (series float)
longLVNSignal (series bool)
shortLVNSignal (series bool)
longVASignal (series bool)
shortVASignal (series bool)
volumeScore (series float)
passFilter (series bool)
inValueArea (series bool)
abovePOC (series bool)
pocRising (series bool)
nearLVN (series bool)
VolumeSignal
Fields:
signalType (series string)
direction (series int)
strength (series float)
description (series string)
triggerPrice (series float)
hasConfluence (series bool)
barIndex (series int)
HTFConfig
Fields:
timeframes (array)
tfWeights (array)
autoSelectTFs (series bool)
maxTimeframes (series int)
trendLength (series int)
trendThreshold (series float)
trendMethod (series string)
stackThreshold (series float)
requireAllTFs (series bool)
confluenceBonus (series float)
enableAutoTuning (series bool)
choppinessLength (series int)
choppyThreshold (series float)
trendingThreshold (series float)
showStackPanel (series bool)
panelPosition (series string)
panelRows (series int)
panelCols (series int)
showTooltips (series bool)
HTFTrendData
Fields:
timeframe (series string)
trendStrength (series float)
trendDirection (series string)
confidence (series float)
isValid (series bool)
weight (series float)
trendColor (series color)
HTFStackState
Fields:
tfData (array)
bullConfluence (series float)
bearConfluence (series float)
stackStrength (series float)
stackBias (series string)
choppiness (series float)
isChoppy (series bool)
isTrending (series bool)
marketRegime (series string)
vaPct_eff (series float)
epsATR_eff (series float)
adaptiveAlpha (series float)
bullStackSignal (series bool)
bearStackSignal (series bool)
stackBreakSignal (series bool)
stackTable (series table)
tfLabels (array)
strengthBars (array)
RedefiningTechnicalAnalysisCore
Main library state container
Fields:
analysisConfig (AnalysisConfig)
timeframeConfig (TimeframeConfig)
activeStrategy (StrategyTemplate)
lastAnalysis (MultiTimeframeResult)
lastSignal (SignalResult)
lastRisk (RiskAssessment)
currentPosition (PositionData)
isInitialized (series bool)
lastUpdateTime (series int)
currentTimeframe (series string)
globalPerformance (PerformanceProfile)
systemHealth (SystemHealth)
metricsCollector (MetricsCollector)
analysisCache (CacheManager)
calculationCache (CacheManager)
recentErrors (array)
recentWarnings (array)
errorCount (series int)
warningCount (series int)
debugLogger (DebugLogger)
debugMode (series bool)
extensionData (map)
featureFlags (map)
Metals vs DXY CorrelationThere's a growing interest in Gold and Metals in general - due to safe have demand - a lot of traders get blindsided by sudden consolidation and reversals while trading Gold or Silver. The key is to know that GC is closely related to DXY because large institutions and central banks hedge the two instruments. They are inversely correlated for the most part.
This indicator looks at price action applies Pearson correlation to find the strength in their "entanglement" and tells you if its is strongly, weakly or positively correlated.
It has helped me stay away from the markets when there's a strong inverse correlation because the price action can be very unpredictable.
Hopefully you find this useful.
RSI Bollinger Bands [DCAUT]█ RSI Bollinger Bands
📊 ORIGINALITY & INNOVATION
The RSI Bollinger Bands indicator represents a meaningful advancement in momentum analysis by combining two proven technical tools: the Relative Strength Index (RSI) and Bollinger Bands. This combination addresses a significant limitation in traditional RSI analysis - the use of fixed overbought/oversold thresholds (typically 70/30) that fail to adapt to changing market volatility conditions.
Core Innovation:
Rather than relying on static threshold levels, this indicator applies Bollinger Bands statistical analysis directly to RSI values, creating dynamic zones that automatically adjust based on recent momentum volatility. This approach helps reduce false signals during low volatility periods while remaining sensitive to genuine extremes during high volatility conditions.
Key Enhancements Over Traditional RSI:
Dynamic Thresholds: Overbought/oversold zones adapt to market conditions automatically, eliminating the need for manual threshold adjustments across different instruments and timeframes
Volatility Context: Band width provides immediate visual feedback about momentum volatility, helping traders distinguish between stable trends and erratic movements
Reduced False Signals: During ranging markets, narrower bands filter out minor RSI fluctuations that would trigger traditional fixed-threshold signals
Breakout Preparation: Band squeeze patterns (similar to price-based BB) signal potential momentum regime changes before they occur
Self-Referencing Analysis: By measuring RSI against its own statistical behavior rather than arbitrary levels, the indicator provides more relevant context
📐 MATHEMATICAL FOUNDATION
Two-Stage Calculation Process:
Stage 1: RSI Calculation
RSI = 100 - (100 / (1 + RS))
where RS = Average Gain / Average Loss over specified period
The RSI normalizes price momentum into a bounded 0-100 scale, making it ideal for statistical band analysis.
Stage 2: Bollinger Bands on RSI
Basis = MA(RSI, BB Length)
Upper Band = Basis + (StdDev(RSI, BB Length) × Multiplier)
Lower Band = Basis - (StdDev(RSI, BB Length) × Multiplier)
Band Width = Upper Band - Lower Band
The Bollinger Bands measure RSI's standard deviation from its own moving average, creating statistically-derived dynamic zones.
Statistical Interpretation:
Under normal distribution assumptions with default 2.0 multiplier, approximately 95% of RSI values should fall within the bands
Band touches represent statistically significant momentum extremes relative to recent behavior
Band width expansion indicates increasing momentum volatility (strengthening trend or increasing uncertainty)
Band width contraction signals momentum consolidation and potential regime change preparation
📊 COMPREHENSIVE SIGNAL ANALYSIS
Visual Color Signals:
This indicator features dynamic color fills that highlight extreme momentum conditions:
Green Fill (Above Upper Band):
Appears when RSI breaks above the upper band, indicating exceptionally strong bullish momentum
Represents dynamic overbought zone - not necessarily a reversal signal but a warning of extreme conditions
In strong uptrends, green fills can persist as RSI "rides the band" - this indicates sustained momentum strength
Exit of green zone (RSI falling back below upper band) often signals initial momentum weakening
Red Fill (Below Lower Band):
Appears when RSI breaks below the lower band, indicating exceptionally weak bearish momentum
Represents dynamic oversold zone - potential reversal or continuation signal depending on trend context
In strong downtrends, red fills can persist as RSI "rides the band" - this indicates sustained selling pressure
Exit of red zone (RSI rising back above lower band) often signals initial momentum recovery
Position-Based Signals:
Upper Band Interactions:
RSI Touching Upper Band: Dynamic overbought condition - momentum is extremely strong relative to recent volatility, potential exhaustion or continuation depending on trend context
RSI Riding Upper Band: Sustained strong momentum, often seen in powerful trends, not necessarily an immediate reversal signal but warrants monitoring for exhaustion
RSI Crossing Below Upper Band: Initial momentum weakening signal, particularly significant if accompanied by price divergence
Lower Band Interactions:
RSI Touching Lower Band: Dynamic oversold condition - momentum is extremely weak relative to recent volatility, potential reversal or continuation of downtrend
RSI Riding Lower Band: Sustained weak momentum, common in strong downtrends, monitor for potential exhaustion
RSI Crossing Above Lower Band: Initial momentum strengthening signal, early indication of potential reversal or consolidation
Basis Line Signals:
RSI Above Basis: Bullish momentum regime - upward pressure dominant
RSI Below Basis: Bearish momentum regime - downward pressure dominant
Basis Crossovers: Momentum regime shifts, more significant when accompanied by band width changes
RSI Oscillating Around Basis: Balanced momentum, often indicates ranging market conditions
Volatility-Based Signals:
Band Width Patterns:
Narrow Bands (Squeeze): Momentum volatility compression, often precedes significant directional moves, similar to price coiling patterns
Expanding Bands: Increasing momentum volatility, indicates trend acceleration or growing uncertainty
Narrowest Band in 100 Bars: Extreme compression alert, high probability of upcoming volatility expansion
Advanced Pattern Recognition:
Divergence Analysis:
Bullish Divergence: Price makes lower lows while RSI touches or stays above previous lower band touch, suggests downward momentum weakening
Bearish Divergence: Price makes higher highs while RSI touches or stays below previous upper band touch, suggests upward momentum weakening
Hidden Bullish: Price makes higher lows while RSI makes lower lows at the lower band, indicates strong underlying bullish momentum
Hidden Bearish: Price makes lower highs while RSI makes higher highs at the upper band, indicates strong underlying bearish momentum
Band Walk Patterns:
Upper Band Walk: RSI consistently touching or staying near upper band indicates exceptionally strong trend, wait for clear break below basis before considering reversal
Lower Band Walk: RSI consistently at lower band signals very weak momentum, requires break above basis for reversal confirmation
🎯 STRATEGIC APPLICATIONS
Strategy 1: Mean Reversion Trading
Setup Conditions:
Market Type: Ranging or choppy markets with no clear directional trend
Timeframe: Works best on lower timeframes (5m-1H) or during consolidation phases
Band Characteristic: Normal to narrow band width
Entry Rules:
Long Entry: RSI touches or crosses below lower band, wait for RSI to start rising back toward basis before entry
Short Entry: RSI touches or crosses above upper band, wait for RSI to start falling back toward basis before entry
Confirmation: Use price action confirmation (candlestick reversal patterns) at band touches
Exit Rules:
Target: RSI returns to basis line or opposite band
Stop Loss: Fixed percentage or below recent swing low/high
Time Stop: Exit if position not profitable within expected timeframe
Strategy 2: Trend Continuation Trading
Setup Conditions:
Market Type: Clear trending market with higher highs/lower lows
Timeframe: Medium to higher timeframes (1H-Daily)
Band Characteristic: Expanding or wide bands indicating strong momentum
Entry Rules:
Long Entry in Uptrend: Wait for RSI to pull back to basis line or slightly below, enter when RSI starts rising again
Short Entry in Downtrend: Wait for RSI to rally to basis line or slightly above, enter when RSI starts falling again
Avoid Counter-Trend: Do not fade RSI at bands during strong trends (band walk patterns)
Exit Rules:
Trailing Stop: Move stop to break-even when RSI reaches opposite band
Trend Break: Exit when RSI crosses basis against trend direction with conviction
Band Squeeze: Reduce position size when bands start narrowing significantly
Strategy 3: Breakout Preparation
Setup Conditions:
Market Type: Consolidating market after significant move or at key technical levels
Timeframe: Any timeframe, but longer timeframes provide more reliable breakouts
Band Characteristic: Narrowest band width in recent 100 bars (squeeze alert)
Preparation Phase:
Identify band squeeze condition (bands at multi-period narrowest point)
Monitor price action for consolidation patterns (triangles, rectangles, flags)
Prepare bracket orders for both directions
Wait for band expansion to begin
Entry Execution:
Breakout Confirmation: Enter in direction of RSI band breakout (RSI breaks above upper band or below lower band)
Price Confirmation: Ensure price also breaks corresponding technical level
Volume Confirmation: Look for volume expansion supporting the breakout
Risk Management:
Stop Loss: Place beyond consolidation pattern opposite extreme
Position Sizing: Use smaller size due to false breakout risk
Quick Exit: Exit immediately if RSI returns inside bands within 1-3 bars
Strategy 4: Multi-Timeframe Analysis
Timeframe Selection:
Higher Timeframe: Daily or 4H for trend context
Trading Timeframe: 1H or 15m for entry signals
Confirmation Timeframe: 5m or 1m for precise entry timing
Analysis Process:
Trend Identification: Check higher timeframe RSI position relative to bands, trade only in direction of higher timeframe momentum
Setup Formation: Wait for trading timeframe RSI to show pullback to basis in trending direction
Entry Timing: Use confirmation timeframe RSI band touch or crossover for precise entry
Alignment Confirmation: All timeframes should show RSI moving in same direction for highest probability setups
📋 DETAILED PARAMETER CONFIGURATION
RSI Source:
Close (Default): Standard price point, balances responsiveness and reliability
HL2: Reduces noise from intrabar volatility, provides smoother RSI values
HLC3 or OHLC4: Further smoothing for very choppy markets, slower to respond but more stable
Volume-Weighted: Consider using VWAP or volume-weighted prices for additional liquidity context
RSI Length Parameter:
Shorter Periods (5-10): More responsive but generates more signals, suitable for scalping or very active trading, higher noise level
Standard (14): Default and most widely used setting, proven balance between responsiveness and reliability, recommended starting point
Longer Periods (21-30): Smoother momentum measurement, fewer but potentially more reliable signals, better for swing trading or position trading
Optimization Note: Test across different market regimes, optimal length often varies by instrument volatility characteristics
RSI MA Type Parameter:
RMA (Default): Wilder's original smoothing method, provides traditional RSI behavior with balanced lag, most widely recognized and tested, recommended for standard technical analysis
EMA: Exponential smoothing gives more weight to recent values, faster response to momentum changes, suitable for active trading and trending markets, reduces lag compared to RMA
SMA: Simple average treats all periods equally, smoothest output with highest lag, best for filtering noise in choppy markets, useful for long-term position analysis
WMA: Weighted average emphasizes recent data less aggressively than EMA, middle ground between SMA and EMA characteristics, balanced responsiveness for swing trading
Advanced Options: Full access to 25+ moving average types including HMA (reduced lag), DEMA/TEMA (enhanced responsiveness), KAMA/FRAMA (adaptive behavior), T3 (smoothness), Kalman Filter (optimal estimation)
Selection Guide: RMA for traditional analysis and backtesting consistency, EMA for faster signals in trending markets, SMA for stability in ranging markets, adaptive types (KAMA/FRAMA) for varying volatility regimes
BB Length Parameter:
Short Length (10-15): Tighter bands that react quickly to RSI changes, more frequent band touches, suitable for active trading styles
Standard (20): Balanced approach providing meaningful statistical context without excessive lag
Long Length (30-50): Smoother bands that filter minor RSI fluctuations, captures only significant momentum extremes, fewer but higher quality signals
Relationship to RSI Length: Consider BB Length greater than RSI Length for cleaner signals
BB MA Type Parameter:
SMA (Default): Standard Bollinger Bands calculation using simple moving average for basis line, treats all periods equally, widely recognized and tested approach
EMA: Exponential smoothing for basis line gives more weight to recent RSI values, creates more responsive bands that adapt faster to momentum changes, suitable for trending markets
RMA: Wilder's smoothing provides consistent behavior aligned with traditional RSI when using RMA for both RSI and BB calculations
WMA: Weighted average for basis line balances recent emphasis with historical context, middle ground between SMA and EMA responsiveness
Advanced Options: Full access to 25+ moving average types for basis calculation, including HMA (reduced lag), DEMA/TEMA (enhanced responsiveness), KAMA/FRAMA (adaptive to volatility changes)
Selection Guide: SMA for standard Bollinger Bands behavior and backtesting consistency, EMA for faster band adaptation in dynamic markets, matching RSI MA type creates unified smoothing behavior
BB Multiplier Parameter:
Conservative (1.5-1.8): Tighter bands resulting in more frequent touches, useful in low volatility environments, higher signal frequency but potentially more false signals
Standard (2.0): Default setting representing approximately 95% confidence interval under normal distribution, widely accepted statistical threshold
Aggressive (2.5-3.0): Wider bands capturing only extreme momentum conditions, fewer but potentially more significant signals, reduces false signals in high volatility
Adaptive Approach: Consider adjusting multiplier based on instrument characteristics, lower multiplier for stable instruments, higher for volatile instruments
Parameter Optimization Workflow:
Start with default parameters (RSI:14, BB:20, Mult:2.0)
Test across representative sample period including different market regimes
Adjust RSI length based on desired responsiveness vs stability tradeoff
Tune BB length to match your typical holding period
Modify multiplier to achieve desired signal frequency
Validate on out-of-sample data to avoid overfitting
Document optimal parameters for different instruments and timeframes
Reference Levels Display:
Enabled (Default): Shows traditional 30/50/70 levels for comparison with dynamic bands, helps visualize the adaptive advantage
Disabled: Cleaner chart focusing purely on dynamic zones, reduces visual clutter for experienced users
Educational Value: Keeping reference levels visible helps understand how dynamic bands differ from fixed thresholds across varying market conditions
📈 PERFORMANCE ANALYSIS & COMPETITIVE ADVANTAGES
Comparison with Traditional RSI:
Fixed Threshold RSI Limitations:
In ranging low-volatility markets: RSI rarely reaches 70/30, missing tradable extremes
In trending high-volatility markets: RSI frequently breaks through 70/30, generating excessive false reversal signals
Across different instruments: Same thresholds applied to volatile crypto and stable forex pairs produce inconsistent results
Threshold Adjustment Problem: Manually changing thresholds for different conditions is subjective and lagging
RSI Bollinger Bands Advantages:
Automatic Adaptation: Bands adjust to current volatility regime without manual intervention
Consistent Logic: Same statistical approach works across different instruments and timeframes
Reduced False Signals: Band width filtering helps distinguish meaningful extremes from noise
Additional Information: Band width provides volatility context missing in standard RSI
Objective Extremes: Statistical basis (standard deviations) provides objective extreme definition
Comparison with Price-Based Bollinger Bands:
Price BB Characteristics:
Measures absolute price volatility
Affected by large price gaps and outliers
Band position relative to price not normalized
Difficult to compare across different price scales
RSI BB Advantages:
Normalized Scale: RSI's 0-100 bounds make band interpretation consistent across all instruments
Momentum Focus: Directly measures momentum extremes rather than price extremes
Reduced Gap Impact: RSI calculation smooths price gaps impact on band calculations
Comparable Analysis: Same RSI BB appearance across stocks, forex, crypto enables consistent strategy application
Performance Characteristics:
Signal Quality:
Higher Signal-to-Noise Ratio: Dynamic bands help filter RSI oscillations that don't represent meaningful extremes
Context-Aware Alerts: Band width provides volatility context helping traders adjust position sizing and stop placement
Reduced Whipsaws: During consolidations, narrower bands prevent premature signals from minor RSI movements
Responsiveness:
Adaptive Lag: Band calculation introduces some lag, but this lag is adaptive to current conditions rather than fixed
Faster Than Manual Adjustment: Automatic band adjustment is faster than trader's ability to manually modify thresholds
Balanced Approach: Combines RSI's inherent momentum lag with BB's statistical smoothing for stable yet responsive signals
Versatility:
Multi-Strategy Application: Supports both mean reversion (ranging markets) and trend continuation (trending markets) approaches
Universal Instrument Coverage: Works effectively across equities, forex, commodities, cryptocurrencies without parameter changes
Timeframe Agnostic: Same interpretation applies from 1-minute charts to monthly charts
Limitations and Considerations:
Known Limitations:
Dual Lag Effect: Combines RSI's momentum lag with BB's statistical lag, making it less suitable for very short-term scalping
Requires Volatility History: Needs sufficient bars for BB calculation, less effective immediately after major regime changes
Statistical Assumptions: Assumes RSI values are somewhat normally distributed, extreme trending conditions may violate this
Not a Standalone System: Like all indicators, should be combined with price action analysis and risk management
Optimal Use Cases:
Best for swing trading and position trading timeframes
Most effective in markets with alternating volatility regimes
Ideal for traders who use multiple instruments and timeframes
Suitable for systematic trading approaches requiring consistent logic
Suboptimal Conditions:
Very low timeframes (< 5 minutes) where lag becomes problematic
Instruments with extreme volatility spikes (gap-prone markets)
Markets in strong persistent trends where mean reversion rarely occurs
Periods immediately following major structural changes (new trading regime)
USAGE NOTES
This indicator is designed for technical analysis and educational purposes to help traders understand the interaction between momentum measurement and statistical volatility bands. The RSI Bollinger Bands has limitations and should not be used as the sole basis for trading decisions.
Important Considerations:
No Predictive Guarantee: Past band touches and patterns do not guarantee future price behavior
Market Regime Dependency: Indicator performance varies significantly between trending and ranging market conditions
Complementary Analysis Required: Should be used alongside price action, support/resistance levels, and fundamental analysis
Risk Management Essential: Always use proper position sizing, stop losses, and risk controls regardless of signal quality
Parameter Sensitivity: Different instruments and timeframes may require parameter optimization for optimal results
Continuous Monitoring: Band characteristics change with market conditions, requiring ongoing assessment
Recommended Supporting Analysis:
Price structure analysis (support/resistance, trend lines)
Volume confirmation for breakout signals
Multiple timeframe alignment
Market context awareness (news events, session times)
Correlation analysis with related instruments
The indicator aims to provide adaptive momentum analysis that adjusts to changing market volatility, but traders must apply sound judgment, proper risk management, and comprehensive market analysis in their decision-making process.
Overextended vs 50DMA DetectorThis indicator helps traders identify when a stock or asset becomes statistically overextended relative to its 50-day moving average (50DMA) — a key signal for potential pullbacks, consolidations, or profit-taking zones.
⸻
🔍 What It Does
• Calculates the 50-day simple moving average (SMA) of price.
• Computes the percentage gap between current price and the 50DMA.
• Measures the standard deviation of that percentage gap to assess volatility-adjusted extremes.
• Flags the stock as “Overextended” when:
• Price is more than 20% above the 50DMA, and
• The % gap is greater than 3× its historical standard deviation.
When these conditions are met, the script:
• Highlights the candle with a 🚨 red triangle on the chart.
• Shades the background to indicate potential overheating.
• Triggers an alert condition so traders can be notified in real time.
三维资金流向(多色版)1️⃣ Colors Correspond to Capital Flow
Based on your multi-color logic:
Green bars → BTC-only inflow
Blue bars → Major altcoins-only inflow
Yellow bars → BTC + major altcoins inflow simultaneously
Red bars → USDT inflow (risk-off / capital retreat)
On the chart, you can observe:
Red bars densely appearing → BTC and alt prices often consolidate or decline, indicating market funds are retreating to safety.
Green bars concentrated → BTC is generally in an uptrend, indicating capital is mainly flowing into BTC.
Blue bars appearing → Major altcoins may rise while BTC is flat, showing that altcoins are absorbing funds.
Yellow bars appearing → BTC and altcoins rise together, usually signaling an overall bullish market.
2️⃣ Observed Patterns
Capital flow vs price movement:
Green + Yellow bars concentrated → BTC shows clear upward movement
Blue bars concentrated → Altcoins rise noticeably
Red bars → Both BTC and altcoins may decline or consolidate
Capital rotation phenomenon:
Red → Green → Yellow → Blue → Can be seen as a rotation of USDT → BTC → BTC+Alt → Alt
This indicates that at different stages, the market rotates between risk-off, major assets, and altcoins.
Volatility:
Tall, frequently alternating bars → Market volatility is high
Short bars → Capital flow is weak, market tends to move sideways
ALMASTO – Pro Trend & Momentum (v1.1)ALMASTO — Pro Trend & Momentum Strategy
Description:
This strategy is designed for precision trading in both Forex (FX) and Crypto markets.
It combines multi-timeframe trend confirmation (EMA200), momentum filters (RSI, MACD, ADX), and ATR-based dynamic risk management.
ALMASTO — Pro Trend & Momentum Strategy automatically manages take-profit levels, stop-loss, and breakeven adjustments once TP1 is reached — providing a structured and emotion-free trading approach.
Optimal Use
Works best on lower timeframes (5m–15m) with strong liquidity sessions.
Optimized for pairs like EURUSD, XAUUSD, and BTCUSDT.
Built for trend-following setups and momentum reversals with high volatility confirmation.
Recommended Settings
🔹 Forex – 5m
EMA Fast = 34, EMA Slow = 200, HTF = 1H
RSI (14): Long ≥ 55 / Short ≤ 45
MACD (8 / 21 / 5), ADX Len 10 / Min 27
ATR Len 7, Stop Loss = ATR × 2.1
TP1 = 1.1 RR, TP2 = 2.3 RR
Session = 07:00–11:00 & 12:30–16:00 (Exchange Time)
Risk = 0.8% per trade
🔹 Forex – 15m
EMA Fast = 50, EMA Slow = 200, HTF = 4H
RSI (14): Long ≥ 53 / Short ≤ 47
MACD (12 / 26 / 9), ADX Min 24
ATR Len 10, SL = ATR × 1.9
TP1 = 1.2 RR, TP2 = 2.6 RR
Risk = 1.0% per trade
🔹 Crypto – 5m (BTC/USDT)
EMA Fast = 34, EMA Slow = 200, HTF = 4H
RSI (14): Long ≥ 56 / Short ≤ 44
MACD (8 / 21 / 5), ADX Min 30
ATR Len 7, SL = ATR × 2.2
TP1 = 1.0 RR, TP2 = 2.5 RR
Session = 00:00–06:00 & 12:00–22:00 (UTC)
Risk = 0.5% per trade
Core Features
✅ Auto breakeven after TP1
✅ Dual take-profit system (1:1 & 1:2 RR)
✅ ATR-based stop & trailing logic
✅ Filters for session time, volume, and volatility
✅ Candle-body vs ATR size filter to avoid noise
✅ Optional cooldown between trades
Important Notes
Use bar close confirmation only (barstate.isconfirmed) to avoid repainting on lower timeframes.
Adjust commission (0.01–0.03%) and slippage (1–2 ticks) in Strategy Tester for realistic results.
Avoid low-liquidity hours (after 21:00 UTC for FX / after midnight for crypto).
Backtest using realistic broker data (e.g., BlackBull Markets / Bybit / Binance Futures).
Best results occur during London & New York sessions with moderate volatility.
⚠️ Disclaimer
This script is for educational and research purposes only.
It does not constitute financial advice.
Use proper risk management and test thoroughly before using on live accounts.
Developed by KING FX Labs
Built and optimized by Yousef Almasto — combining advanced price-action logic, multi-timeframe EMA structure, and volatility-adaptive ATR management.
Tested across Forex, Gold, and Crypto markets to ensure consistent performance and minimal drawdown.
📈 “Precision Trading. Zero Emotion. Pure Momentum.”
Inverse VIX / Custom Inverse Line🎯 Main Idea
This indicator creates a line that moves opposite to the VIX (Volatility Index) — or any symbol you choose.
When VIX rises (fear increases), → this line goes down.
When VIX falls (market calm), → this line goes up.
It helps you visually understand market sentiment — calm periods (bullish) vs fear periods (bearish).
⚙️ Input Settings
Setting Description
Symbol to invert The symbol to invert. Default is CBOE:VIX.
Inverse mode The method used to invert the values. There are 3 options:
① Negate Simply flips the sign (multiplies by -1). Very straightforward.
② Reciprocal Uses the mathematical inverse (1 ÷ value). High values become smaller, and vice versa.
③ Inverse Normalized The most useful mode 🔥 — normalizes values between 0–100 and flips them, similar to an RSI.
Normalization lookback How many bars to use for normalization (default 252 = roughly one trading year).
Smoothing (SMA) Number of bars for smoothing (makes the line smoother).
Use log for reciprocal Uses logarithmic scaling to stabilize big swings.
Plot color / width Customize the line’s color and thickness.
Show original source If enabled, shows the original VIX line for comparison.
📈 How It Works
The script fetches the close price of the VIX (or your chosen symbol).
It applies the selected inversion method.
The inverted line is plotted on the chart.
In “Inverse Normalized” mode:
The range is 0–100.
Values above 75 = high optimism (market often overheated).
Values below 25 = high fear (potential buying opportunity).
A middle line at 50 marks neutral sentiment.
⚠️ Alerts
The indicator includes two default alerts when using “Inverse Normalized” mode:
🔔 Above 75: Market showing strong optimism (potential top or correction zone).
🔔 Below 25: Market showing fear (potential bottom or buy signal).
🧠 How to Use It
Use it on daily or weekly charts for clearer signals.
Compare it with SPX or NASDAQ:
When the Inverse VIX line rises, markets often go up.
When it falls, markets usually drop or consolidate.
Combine it with other indicators (e.g., RSI, MACD) for confirmation.
Total Info Indicator by MikePenzin
Install & Add to Chart
• Copy the script into Pine Editor → click Add to Chart .
• Open the ⚙️ Settings → Inputs to customize.
What It Does
• Displays key info in a floating table — trend, volume, ATR, RSI, stop loss, and more.
• Detects breakouts , smart SELL signals , and opening strength .
• Uses emojis and colours to make trends easy to read: 🟢 good, 🟡 neutral, 🔴 risky.
For Swing Traders
• Works best on Daily or 4H charts.
• Watch for 🟢 Uptrend + ⚡BUY / 🔥BUY breakout signals.
• Use ATR-based Stop Loss (shown in table).
• Avoid new entries a few days before earnings.
Suggested Setup
• 20/50/150 MA Lines: ON
• 200 MA Line: optional
• ATR Multiplier: 1.3
• Breakout Detection: ON (Volume + RSI + Trend filters)
• Smart SELLs: ON (RSI 70, EMA 20)
• Pivots: ON for quick swing levels
How to Read
• MA Row: 🟢 = price above MA (bullish).
• ATR/Stop Loss: Suggests where to place protective stop.
• Volume Info: Today’s vs 20-day average, plus pace.
• RSI & CCI: Shows momentum and overbought/oversold levels.
• Breakouts: ⚡BUY (early), 🔥BUY (confirmed).
• Smart SELLs: RSI🔴 / DIV🟣 / EMA🔵 mean potential exit zones.
Example Use
1️⃣ Find stocks with Uptrend 🟢 , rising volume, and ⚡BUY signal.
2️⃣ Enter near breakout; set Stop = shown level.
3️⃣ Take profits or trail when Smart SELLs appear or RSI peaks.
Tips
• Choose table corner under “Table Visualization.”
• Reduce clutter on small timeframes (turn off Pivots/200 MA).
• Use “Volume speed” to spot surging interest before breakouts.
• Compatible with most equities and ETFs.
Disclaimer
This script is for education & analysis only .
Not financial advice — always manage your own risk.
Relative Volume Spike (Bullish vs Bearish)relative volume compared to 20day averages
used to detect when big money is coming in.
Stochastic Enhanced [DCAUT]█ Stochastic Enhanced
📊 ORIGINALITY & INNOVATION
The Stochastic Enhanced indicator builds upon George Lane's classic momentum oscillator (developed in the late 1950s) by providing comprehensive smoothing algorithm flexibility. While traditional implementations limit users to Simple Moving Average (SMA) smoothing, this enhanced version offers 21 advanced smoothing algorithms, allowing traders to optimize the indicator's characteristics for different market conditions and trading styles.
Key Improvements:
Extended from single SMA smoothing to 21 professional-grade algorithms including adaptive filters (KAMA, FRAMA), zero-lag methods (ZLEMA, T3), and advanced digital filters (Kalman, Laguerre)
Maintains backward compatibility with traditional Stochastic calculations through SMA default setting
Unified smoothing algorithm applies to both %K and %D lines for consistent signal processing characteristics
Enhanced visual feedback with clear color distinction and background fill highlighting for intuitive signal recognition
Comprehensive alert system covering crossovers and zone entries for systematic trade management
Differentiation from Traditional Stochastic:
Traditional Stochastic indicators use fixed SMA smoothing, which introduces consistent lag regardless of market volatility. This enhanced version addresses the limitation by offering adaptive algorithms that adjust to market conditions (KAMA, FRAMA), reduce lag without sacrificing smoothness (ZLEMA, T3, HMA), or provide superior noise filtering (Kalman Filter, Laguerre filters). The flexibility helps traders balance responsiveness and stability according to their specific needs.
📐 MATHEMATICAL FOUNDATION
Core Stochastic Calculation:
The Stochastic Oscillator measures the position of the current close relative to the high-low range over a specified period:
Step 1: Raw %K Calculation
%K_raw = 100 × (Close - Lowest Low) / (Highest High - Lowest Low)
Where:
Close = Current closing price
Lowest Low = Lowest low over the %K Length period
Highest High = Highest high over the %K Length period
Result ranges from 0 (close at period low) to 100 (close at period high)
Step 2: Smoothed %K Calculation
%K = MA(%K_raw, K Smoothing Period, MA Type)
Where:
MA = Selected moving average algorithm (SMA, EMA, etc.)
K Smoothing = 1 for Fast Stochastic, 3+ for Slow Stochastic
Traditional Fast Stochastic uses %K_raw directly without smoothing
Step 3: Signal Line %D Calculation
%D = MA(%K, D Smoothing Period, MA Type)
Where:
%D acts as a signal line and moving average of %K
D Smoothing typically set to 3 periods in traditional implementations
Both %K and %D use the same MA algorithm for consistent behavior
Available Smoothing Algorithms (21 Options):
Standard Moving Averages:
SMA (Simple): Equal-weighted average, traditional default, consistent lag characteristics
EMA (Exponential): Recent price emphasis, faster response to changes, exponential decay weighting
RMA (Rolling/Wilder's): Smoothed average used in RSI, less reactive than EMA
WMA (Weighted): Linear weighting favoring recent data, moderate responsiveness
VWMA (Volume-Weighted): Incorporates volume data, reflects market participation intensity
Advanced Moving Averages:
HMA (Hull): Reduced lag with smoothness, uses weighted moving averages and square root period
ALMA (Arnaud Legoux): Gaussian distribution weighting, minimal lag with good noise reduction
LSMA (Least Squares): Linear regression based, fits trend line to data points
DEMA (Double Exponential): Reduced lag compared to EMA, uses double smoothing technique
TEMA (Triple Exponential): Further lag reduction, triple smoothing with lag compensation
ZLEMA (Zero-Lag Exponential): Lag elimination attempt using error correction, very responsive
TMA (Triangular): Double-smoothed SMA, very smooth but slower response
Adaptive & Intelligent Filters:
T3 (Tilson T3): Six-pass exponential smoothing with volume factor adjustment, excellent smoothness
FRAMA (Fractal Adaptive): Adapts to market fractal dimension, faster in trends, slower in ranges
KAMA (Kaufman Adaptive): Efficiency ratio based adaptation, responds to volatility changes
McGinley Dynamic: Self-adjusting mechanism following price more accurately, reduced whipsaws
Kalman Filter: Optimal estimation algorithm from aerospace engineering, dynamic noise filtering
Advanced Digital Filters:
Ultimate Smoother: Advanced digital filter design, superior noise rejection with minimal lag
Laguerre Filter: Time-domain filter with N-order implementation, adjustable lag characteristics
Laguerre Binomial Filter: 6-pole Laguerre filter, extremely smooth output for long-term analysis
Super Smoother: Butterworth filter implementation, removes high-frequency noise effectively
📊 COMPREHENSIVE SIGNAL ANALYSIS
Absolute Level Interpretation (%K Line):
%K Above 80: Overbought condition, price near period high, potential reversal or pullback zone, caution for new long entries
%K in 70-80 Range: Strong upward momentum, bullish trend confirmation, uptrend likely continuing
%K in 50-70 Range: Moderate bullish momentum, neutral to positive outlook, consolidation or mild uptrend
%K in 30-50 Range: Moderate bearish momentum, neutral to negative outlook, consolidation or mild downtrend
%K in 20-30 Range: Strong downward momentum, bearish trend confirmation, downtrend likely continuing
%K Below 20: Oversold condition, price near period low, potential bounce or reversal zone, caution for new short entries
Crossover Signal Analysis:
%K Crosses Above %D (Bullish Cross): Momentum shifting bullish, faster line overtakes slower signal, consider long entry especially in oversold zone, strongest when occurring below 20 level
%K Crosses Below %D (Bearish Cross): Momentum shifting bearish, faster line falls below slower signal, consider short entry especially in overbought zone, strongest when occurring above 80 level
Crossover in Midrange (40-60): Less reliable signals, often in choppy sideways markets, require additional confirmation from trend or volume analysis
Multiple Failed Crosses: Indicates ranging market or choppy conditions, reduce position sizes or avoid trading until clear directional move
Advanced Divergence Patterns (%K Line vs Price):
Bullish Divergence: Price makes lower low while %K makes higher low, indicates weakening bearish momentum, potential trend reversal upward, more reliable when %K in oversold zone
Bearish Divergence: Price makes higher high while %K makes lower high, indicates weakening bullish momentum, potential trend reversal downward, more reliable when %K in overbought zone
Hidden Bullish Divergence: Price makes higher low while %K makes lower low, indicates trend continuation in uptrend, bullish trend strength confirmation
Hidden Bearish Divergence: Price makes lower high while %K makes higher high, indicates trend continuation in downtrend, bearish trend strength confirmation
Momentum Strength Analysis (%K Line Slope):
Steep %K Slope: Rapid momentum change, strong directional conviction, potential for extended moves but also increased reversal risk
Gradual %K Slope: Steady momentum development, sustainable trends more likely, lower probability of sharp reversals
Flat or Horizontal %K: Momentum stalling, potential reversal or consolidation ahead, wait for directional break before committing
%K Oscillation Within Range: Indicates ranging market, sideways price action, better suited for range-trading strategies than trend following
🎯 STRATEGIC APPLICATIONS
Mean Reversion Strategy (Range-Bound Markets):
Identify ranging market conditions using price action or Bollinger Bands
Wait for Stochastic to reach extreme zones (above 80 for overbought, below 20 for oversold)
Enter counter-trend position when %K crosses %D in extreme zone (sell on bearish cross above 80, buy on bullish cross below 20)
Set profit targets near opposite extreme or midline (50 level)
Use tight stop-loss above recent swing high/low to protect against breakout scenarios
Exit when Stochastic reaches opposite extreme or %K crosses %D in opposite direction
Trend Following with Momentum Confirmation:
Identify primary trend direction using higher timeframe analysis or moving averages
Wait for Stochastic pullback to oversold zone (<20) in uptrend or overbought zone (>80) in downtrend
Enter in trend direction when %K crosses %D confirming momentum shift (bullish cross in uptrend, bearish cross in downtrend)
Use wider stops to accommodate normal trend volatility
Add to position on subsequent pullbacks showing similar Stochastic pattern
Exit when Stochastic shows opposite extreme with failed cross or bearish/bullish divergence
Divergence-Based Reversal Strategy:
Scan for divergence between price and Stochastic at swing highs/lows
Confirm divergence with at least two price pivots showing divergent Stochastic readings
Wait for %K to cross %D in direction of anticipated reversal as entry trigger
Enter position in divergence direction with stop beyond recent swing extreme
Target profit at key support/resistance levels or Fibonacci retracements
Scale out as Stochastic reaches opposite extreme zone
Multi-Timeframe Momentum Alignment:
Analyze Stochastic on higher timeframe (4H or Daily) for primary trend bias
Switch to lower timeframe (1H or 15M) for precise entry timing
Only take trades where lower timeframe Stochastic signal aligns with higher timeframe momentum direction
Higher timeframe Stochastic in bullish zone (>50) = only take long entries on lower timeframe
Higher timeframe Stochastic in bearish zone (<50) = only take short entries on lower timeframe
Exit when lower timeframe shows counter-signal or higher timeframe momentum reverses
Zone Transition Strategy:
Monitor Stochastic for transitions between zones (oversold to neutral, neutral to overbought, etc.)
Enter long when Stochastic crosses above 20 (exiting oversold), signaling momentum shift from bearish to neutral/bullish
Enter short when Stochastic crosses below 80 (exiting overbought), signaling momentum shift from bullish to neutral/bearish
Use zone midpoint (50) as dynamic support/resistance for position management
Trail stops as Stochastic advances through favorable zones
Exit when Stochastic fails to maintain momentum and reverses back into prior zone
📋 DETAILED PARAMETER CONFIGURATION
%K Length (Default: 14):
Lower Values (5-9): Highly sensitive to price changes, generates more frequent signals, increased false signals in choppy markets, suitable for very short-term trading and scalping
Standard Values (10-14): Balanced sensitivity and reliability, traditional default (14) widely used,适合 swing trading and intraday strategies
Higher Values (15-21): Reduced sensitivity, smoother oscillations, fewer but potentially more reliable signals, better for position trading and lower timeframe noise reduction
Very High Values (21+): Slow response, long-term momentum measurement, fewer trading signals, suitable for weekly or monthly analysis
%K Smoothing (Default: 3):
Value 1: Fast Stochastic, uses raw %K calculation without additional smoothing, most responsive to price changes, generates earliest signals with higher noise
Value 3: Slow Stochastic (default), traditional smoothing level, reduces false signals while maintaining good responsiveness, widely accepted standard
Values 5-7: Very slow response, extremely smooth oscillations, significantly reduced whipsaws but delayed entry/exit timing
Recommendation: Default value 3 suits most trading scenarios, active short-term traders may use 1, conservative long-term positions use 5+
%D Smoothing (Default: 3):
Lower Values (1-2): Signal line closely follows %K, frequent crossover signals, useful for active trading but requires strict filtering
Standard Value (3): Traditional setting providing balanced signal line behavior, optimal for most trading applications
Higher Values (4-7): Smoother signal line, fewer crossover signals, reduced whipsaws but slower confirmation, better for trend trading
Very High Values (8+): Signal line becomes slow-moving reference, crossovers rare and highly significant, suitable for long-term position changes only
Smoothing Type Algorithm Selection:
For Trending Markets:
ZLEMA, DEMA, TEMA: Reduced lag for faster trend entry, quick response to momentum shifts, suitable for strong directional moves
HMA, ALMA: Good balance of smoothness and responsiveness, effective for clean trend following without excessive noise
EMA: Classic choice for trending markets, faster than SMA while maintaining reasonable stability
For Ranging/Choppy Markets:
Kalman Filter, Super Smoother: Superior noise filtering, reduces false signals in sideways action, helps identify genuine reversal points
Laguerre Filters: Smooth oscillations with adjustable lag, excellent for mean reversion strategies in ranges
T3, TMA: Very smooth output, filters out market noise effectively, clearer extreme zone identification
For Adaptive Market Conditions:
KAMA: Automatically adjusts to market efficiency, fast in trends and slow in congestion, reduces whipsaws during transitions
FRAMA: Adapts to fractal market structure, responsive during directional moves, conservative during uncertainty
McGinley Dynamic: Self-adjusting smoothing, follows price naturally, minimizes lag in trending markets while filtering noise in ranges
For Conservative Long-Term Analysis:
SMA: Traditional choice, predictable behavior, widely understood characteristics
RMA (Wilder's): Smooth oscillations, reduced sensitivity to outliers, consistent behavior across market conditions
Laguerre Binomial Filter: Extremely smooth output, ideal for weekly/monthly timeframe analysis, eliminates short-term noise completely
Source Selection:
Close (Default): Standard choice using closing prices, most common and widely tested
HLC3 or OHLC4: Incorporates more price information, reduces impact of sudden spikes or gaps, smoother oscillator behavior
HL2: Midpoint of high-low range, emphasizes intrabar volatility, useful for markets with wide intraday ranges
Custom Source: Can use other indicators as input (e.g., Heikin Ashi close, smoothed price), creates derivative momentum indicators
📈 PERFORMANCE ANALYSIS & COMPETITIVE ADVANTAGES
Responsiveness Characteristics:
Traditional SMA-Based Stochastic:
Fixed lag regardless of market conditions, consistent delay of approximately (K Smoothing + D Smoothing) / 2 periods
Equal treatment of trending and ranging markets, no adaptation to volatility changes
Predictable behavior but suboptimal in varying market regimes
Enhanced Version with Adaptive Algorithms:
KAMA and FRAMA reduce lag by up to 40-60% in strong trends compared to SMA while maintaining similar smoothness in ranges
ZLEMA and T3 provide near-zero lag characteristics for early entry signals with acceptable noise levels
Kalman Filter and Super Smoother offer superior noise rejection, reducing false signals in choppy conditions by estimations of 30-50% compared to SMA
Performance improvements vary by algorithm selection and market conditions
Signal Quality Improvements:
Adaptive algorithms help reduce whipsaw trades in ranging markets by adjusting sensitivity dynamically
Advanced filters (Kalman, Laguerre, Super Smoother) provide clearer extreme zone readings for mean reversion strategies
Zero-lag methods (ZLEMA, DEMA, TEMA) generate earlier crossover signals in trending markets for improved entry timing
Smoother algorithms (T3, Laguerre Binomial) reduce false extreme zone touches for more reliable overbought/oversold signals
Comparison with Standard Implementations:
Versus Basic Stochastic: Enhanced version offers 21 smoothing options versus single SMA, allowing optimization for specific market characteristics and trading styles
Versus RSI: Stochastic provides range-bound measurement (0-100) with clear extreme zones, RSI measures momentum speed, Stochastic offers clearer visual overbought/oversold identification
Versus MACD: Stochastic bounded oscillator suitable for mean reversion, MACD unbounded indicator better for trend strength, Stochastic excels in range-bound and oscillating markets
Versus CCI: Stochastic has fixed bounds (0-100) for consistent interpretation, CCI unbounded with variable extremes, Stochastic provides more standardized extreme readings across different instruments
Flexibility Advantages:
Single indicator adaptable to multiple strategies through algorithm selection rather than requiring different indicator variants
Ability to optimize smoothing characteristics for specific instruments (e.g., smoother for crypto volatility, faster for forex trends)
Multi-timeframe analysis with consistent algorithm across timeframes for coherent momentum picture
Backtesting capability with algorithm as optimization parameter for strategy development
Limitations and Considerations:
Increased complexity from multiple algorithm choices may lead to over-optimization if parameters are curve-fitted to historical data
Adaptive algorithms (KAMA, FRAMA) have adjustment periods during market regime changes where signals may be less reliable
Zero-lag algorithms sacrifice some smoothness for responsiveness, potentially increasing noise sensitivity in very choppy conditions
Performance characteristics vary significantly across algorithms, requiring understanding and testing before live implementation
Like all oscillators, Stochastic can remain in extreme zones for extended periods during strong trends, generating premature reversal signals
USAGE NOTES
This indicator is designed for technical analysis and educational purposes to provide traders with enhanced flexibility in momentum analysis. The Stochastic Oscillator has limitations and should not be used as the sole basis for trading decisions.
Important Considerations:
Algorithm performance varies with market conditions - no single smoothing method is optimal for all scenarios
Extreme zone signals (overbought/oversold) indicate potential reversal areas but not guaranteed turning points, especially in strong trends
Crossover signals may generate false entries during sideways choppy markets regardless of smoothing algorithm
Divergence patterns require confirmation from price action or additional indicators before trading
Past indicator characteristics and backtested results do not guarantee future performance
Always combine Stochastic analysis with proper risk management, position sizing, and multi-indicator confirmation
Test selected algorithm on historical data of specific instrument and timeframe before live trading
Market regime changes may require algorithm adjustment for optimal performance
The enhanced smoothing options are intended to provide tools for optimizing the indicator's behavior to match individual trading styles and market characteristics, not to create a perfect predictive tool. Responsible usage includes understanding the mathematical properties of selected algorithms and their appropriate application contexts.