[Sumit Ingole] 200-EMA SUMIT INGOLE
Indicator Name: 200 EMA Strategy Pro
Overview
The 200-period Exponential Moving Average (EMA) is widely regarded as the "Golden Line" by professional traders and institutional investors. This indicator is a powerful tool designed to identify the long-term market trend and filter out short-term market noise.
By giving more weight to recent price data than a simple moving average, this EMA reacts more fluidly to market shifts while remaining a rock-solid trend confirmation tool.
Key Features
Trend Filter: Instantly distinguish between a Bull market and a Bear market.
Price above 200 EMA: Bullish Bias
Price below 200 EMA: Bearish Bias
Dynamic Support & Resistance: Acts as a psychological floor or ceiling where major institutions often place buy or sell orders.
Institutional Benchmark: Since many hedge funds and banks track this specific level, price reactions near the 200 EMA are often highly significant.
Reduced Lag: Optimized exponential calculation ensures you stay ahead of the curve compared to traditional lagging indicators.
How to Trade with 200 EMA
Trend Confirmation: Only look for "Buy" setups when the price is trading above the 200 EMA to ensure you are trading with the primary trend.
Mean Reversion: When the price stretches too far away from the 200 EMA, it often acts like a magnet, pulling the price back toward it.
The "Death Cross" & "Golden Cross": Use this in conjunction with shorter EMAs (like the 50 EMA) to identify major trend reversals.
Exit Strategy: Can be used as a trailing stop-loss for long-term positional trades.
Best Used On:
Timeframes: Daily (1D), 4-Hour (4H), and Weekly (1W) for maximum accuracy.
Assets: Highly effective for Stocks, Forex (Major pairs), and Crypto (BTC/ETH).
Disclaimer: This tool is for educational and analytical purposes only. Trading involves risk, and it is recommended to use this indicator alongside other technical analysis tools for better confirmation.
Search in scripts for "curve"
moving_averages# MovingAverages Library - PineScript v6
A comprehensive PineScript v6 library containing **50+ Moving Average calculations** for TradingView.
---
## 📦 Installation
```pinescript
import TheTradingSpiderMan/moving_averages/1 as MA
```
---
## 📊 All Available Moving Averages (50+)
### Basic Moving Averages
| Function | Selector Key | Description |
| -------- | ------------ | ------------------------------------------ |
| `sma()` | `SMA` | Simple Moving Average - arithmetic mean |
| `ema()` | `EMA` | Exponential Moving Average |
| `wma()` | `WMA` | Weighted Moving Average |
| `vwma()` | `VWMA` | Volume Weighted Moving Average |
| `rma()` | `RMA` | Relative/Smoothed Moving Average |
| `smma()` | `SMMA` | Smoothed Moving Average (alias for RMA) |
| `swma()` | - | Symmetrically Weighted MA (4-period fixed) |
### Hull Family
| Function | Selector Key | Description |
| -------- | ------------ | ------------------------------- |
| `hma()` | `HMA` | Hull Moving Average |
| `ehma()` | `EHMA` | Exponential Hull Moving Average |
### Double/Triple Smoothed
| Function | Selector Key | Description |
| -------------- | ------------ | --------------------------------- |
| `dema()` | `DEMA` | Double Exponential Moving Average |
| `tema()` | `TEMA` | Triple Exponential Moving Average |
| `tma()` | `TMA` | Triangular Moving Average |
| `t3()` | `T3` | Tillson T3 Moving Average |
| `twma()` | `TWMA` | Triple Weighted Moving Average |
| `swwma()` | `SWWMA` | Smoothed Weighted Moving Average |
| `trixSmooth()` | `TRIXSMOOTH` | Triple EMA Smoothed |
### Zero/Low Lag
| Function | Selector Key | Description |
| --------- | ------------ | ----------------------------------- |
| `zlema()` | `ZLEMA` | Zero Lag Exponential MA |
| `lsma()` | `LSMA` | Least Squares Moving Average |
| `epma()` | `EPMA` | Endpoint Moving Average |
| `ilrs()` | `ILRS` | Integral of Linear Regression Slope |
### Adaptive Moving Averages
| Function | Selector Key | Description |
| ---------- | ------------ | ------------------------------- |
| `kama()` | `KAMA` | Kaufman Adaptive Moving Average |
| `frama()` | `FRAMA` | Fractal Adaptive Moving Average |
| `vidya()` | `VIDYA` | Variable Index Dynamic Average |
| `vma()` | `VMA` | Variable Moving Average |
| `vama()` | `VAMA` | Volume Adjusted Moving Average |
| `rvma()` | `RVMA` | Rolling VMA |
| `apexMA()` | `APEXMA` | Apex Moving Average |
### Ehlers Filters
| Function | Selector Key | Description |
| ----------------- | --------------- | --------------------------------- |
| `superSmoother()` | `SUPERSMOOTHER` | Ehlers Super Smoother |
| `butterworth2()` | `BUTTERWORTH2` | 2-Pole Butterworth Filter |
| `butterworth3()` | `BUTTERWORTH3` | 3-Pole Butterworth Filter |
| `instantTrend()` | `INSTANTTREND` | Ehlers Instantaneous Trendline |
| `edsma()` | `EDSMA` | Deviation Scaled Moving Average |
| `mama()` | `MAMA` | Mesa Adaptive Moving Average |
| `fama()` | `FAMAVAL` | Following Adaptive Moving Average |
### Laguerre Family
| Function | Selector Key | Description |
| -------------------- | ------------------ | ------------------------ |
| `laguerreFilter()` | `LAGUERRE` | Laguerre Filter |
| `adaptiveLaguerre()` | `ADAPTIVELAGUERRE` | Adaptive Laguerre Filter |
### Special Weighted
| Function | Selector Key | Description |
| ---------- | ------------ | -------------------------------- |
| `alma()` | `ALMA` | Arnaud Legoux Moving Average |
| `sinwma()` | `SINWMA` | Sine Weighted Moving Average |
| `gwma()` | `GWMA` | Gaussian Weighted Moving Average |
| `nma()` | `NMA` | Natural Moving Average |
### Jurik/McGinley/Coral
| Function | Selector Key | Description |
| ------------ | ------------ | --------------------- |
| `jma()` | `JMA` | Jurik Moving Average |
| `mcginley()` | `MCGINLEY` | McGinley Dynamic |
| `coral()` | `CORAL` | Coral Trend Indicator |
### Mean Types
| Function | Selector Key | Description |
| -------------- | ------------ | ------------------------- |
| `medianMA()` | `MEDIANMA` | Median Moving Average |
| `gma()` | `GMA` | Geometric Moving Average |
| `harmonicMA()` | `HARMONICMA` | Harmonic Moving Average |
| `trimmedMA()` | `TRIMMEDMA` | Trimmed Moving Average |
| `cma()` | `CMA` | Cumulative Moving Average |
### Volume-Based
| Function | Selector Key | Description |
| --------- | ------------ | -------------------------- |
| `evwma()` | `EVWMA` | Elastic Volume Weighted MA |
### Other Specialized
| Function | Selector Key | Description |
| ----------------- | --------------- | --------------------------- |
| `hwma()` | `HWMA` | Holt-Winters Moving Average |
| `gdema()` | `GDEMA` | Generalized DEMA |
| `rema()` | `REMA` | Regularized EMA |
| `modularFilter()` | `MODULARFILTER` | Modular Filter |
| `rmt()` | `RMT` | Recursive Moving Trendline |
| `qrma()` | `QRMA` | Quadratic Regression MA |
| `wilderSmooth()` | `WILDERSMOOTH` | Welles Wilder Smoothing |
| `leoMA()` | `LEOMA` | Leo Moving Average |
| `ahrensMA()` | `AHRENSMA` | Ahrens Moving Average |
| `runningMA()` | `RUNNINGMA` | Running Moving Average |
| `ppoMA()` | `PPOMA` | PPO-based Moving Average |
| `fisherMA()` | `FISHERMA` | Fisher Transform MA |
---
## 🎯 Helper Functions
| Function | Description |
| ---------------- | ------------------------------------------------------------- |
| `wcp()` | Weighted Close Price: (H+L+2\*C)/4 |
| `typicalPrice()` | Typical Price: (H+L+C)/3 |
| `medianPrice()` | Median Price: (H+L)/2 |
| `selector()` | **Master selector** - choose any MA by string name |
| `getAllTypes()` | Returns all supported MA type names as comma-separated string |
---
## 🔧 Usage Examples
### Basic Usage
```pinescript
//@version=6
indicator("MA Example")
import quantablex/moving_averages/1 as MA
// Simple calls
plot(MA.sma(close, 20), "SMA 20", color.blue)
plot(MA.ema(close, 20), "EMA 20", color.red)
plot(MA.hma(close, 20), "HMA 20", color.green)
```
### Using the Selector Function (50+ MA Types)
```pinescript
//@version=6
indicator("MA Selector")
import quantablex/moving_averages/1 as MA
// Full list of all supported types:
// SMA,EMA,WMA,VWMA,RMA,SMMA,HMA,EHMA,DEMA,TEMA,TMA,T3,TWMA,SWWMA,TRIXSMOOTH,
// ZLEMA,LSMA,EPMA,ILRS,KAMA,FRAMA,VIDYA,VMA,VAMA,RVMA,APEXMA,SUPERSMOOTHER,
// BUTTERWORTH2,BUTTERWORTH3,INSTANTTREND,EDSMA,LAGUERRE,ADAPTIVELAGUERRE,
// ALMA,SINWMA,GWMA,NMA,JMA,MCGINLEY,CORAL,MEDIANMA,GMA,HARMONICMA,TRIMMEDMA,
// EVWMA,HWMA,GDEMA,REMA,MODULARFILTER,RMT,QRMA,WILDERSMOOTH,LEOMA,AHRENSMA,
// RUNNINGMA,PPOMA,MAMA,FAMAVAL,FISHERMA,CMA
maType = input.string("EMA", "MA Type", options= )
length = input.int(20, "Length")
plot(MA.selector(close, length, maType), "Selected MA", color.orange)
```
### Advanced Moving Averages
```pinescript
//@version=6
indicator("Advanced MAs")
import quantablex/moving_averages/1 as MA
// ALMA with custom offset and sigma
plot(MA.alma(close, 20, 0.85, 6), "ALMA", color.purple)
// KAMA with custom fast/slow periods
plot(MA.kama(close, 10, 2, 30), "KAMA", color.teal)
// T3 with custom volume factor
plot(MA.t3(close, 20, 0.7), "T3", color.yellow)
// Laguerre Filter with custom gamma
plot(MA.laguerreFilter(close, 0.8), "Laguerre", color.lime)
```
---
## 📈 MA Selection Guide
| Use Case | Recommended MAs |
| ---------------------- | ------------------------------------------- |
| **Trend Following** | EMA, DEMA, TEMA, HMA, CORAL |
| **Low Lag Required** | ZLEMA, HMA, EHMA, JMA, LSMA |
| **Volatile Markets** | KAMA, VIDYA, FRAMA, VMA, ADAPTIVELAGUERRE |
| **Smooth Signals** | T3, LAGUERRE, SUPERSMOOTHER, BUTTERWORTH2/3 |
| **Support/Resistance** | SMA, WMA, TMA, MEDIANMA |
| **Scalping** | MCGINLEY, ZLEMA, HMA, INSTANTTREND |
| **Noise Reduction** | MAMA, EDSMA, GWMA, TRIMMEDMA |
| **Volume-Based** | VWMA, EVWMA, VAMA |
---
## ⚙️ Parameters Reference
### Common Parameters
- `src` - Source series (close, open, hl2, hlc3, etc.)
- `len` - Period length (integer)
### Special Parameters
- `alma()`: `offset` (0-1), `sigma` (curve shape)
- `kama()`: `fastLen`, `slowLen`
- `t3()`: `vFactor` (volume factor)
- `jma()`: `phase` (-100 to 100)
- `laguerreFilter()`: `gamma` (0-1 damping)
- `rema()`: `lambda` (regularization)
- `modularFilter()`: `beta` (sensitivity)
- `gdema()`: `mult` (multiplier, 2 = standard DEMA)
- `trimmedMA()`: `trimPct` (0-0.5, percentage to trim)
- `mama()/fama()`: `fastLimit`, `slowLimit`
- `adaptiveLaguerre()`: Uses `len` for adaptation period
---
## 📝 Notes
- All 50+ functions are exported for use in any PineScript v6 indicator/strategy
- The `selector()` function supports **all MA types** via string key
- Use `getAllTypes()` to get a comma-separated list of all supported MA names
- Some MAs (CMA, INSTANTTREND, LAGUERRE, MAMA) don't use `len` parameter
- Use `nz()` wrapper if handling potential NA values in your calculations
---
**Author:** thetradingspiderman
**Version:** 1.0
**PineScript Version:** 6
**Total MA Types:** 50+
XAUUSD Visible Gap 1R Strategy + Equity Curve“XAUUSD 1-hour strategy that trades only visible gaps between the 4 PM and 6 PM NY candles. Entries occur when the 6 PM open is outside the previous 4 PM candle body in the direction of the first candle. Uses swing high/low stops and targets 1R profit. Includes cumulative R plot and trade statistics.”
The Fantastic 4 - Momentum Rotation StrategyOverview
The Fantastic 4 is a tactical momentum rotation indicator. It rotates capital monthly across four carefully selected assets based on their 75-day Rate of Change (ROC), allocating only to assets with positive momentum and proportionally weighting them by their momentum strength.
This indicator tracks the strategy's historical performance, displays current allocation recommendations, and sends monthly rebalance alerts so you can easily manage your portfolio. Simply set your capital amount and the indicator shows exactly how much to invest in each asset.
Why These Four Assets?
The selection of 20-year Bonds, Gold, Russell 2000, and Emerging Markets is based on their specific volatility and decorrelation characteristics, which allow the strategy to react quickly to market shifts while providing protection during downturns.
Russell 2000 (Small Caps)
Chosen over the S&P 500 because it is more "lively" and active (Nowadays you could use also the Nasdaq). Its trends are steeper and more vertical, making it easier for a momentum indicator to catch clear trends. While the S&P 500 has more inertia, the Russell 2000 develops faster, allowing the strategy to capture gains in shorter periods.
Emerging Markets
Included because they can act like a "rocket," offering explosive growth potential while maintaining high decorrelation from developed equity markets. When emerging markets trend, they trend hard.
20-Year Bonds
Selected because they are the most decorrelated asset from equities. When a stock market crash occurs, capital typically flows into fixed income, and long-term bonds (20-year) notice this influx the most, making their price reaction more significant and easier to trade. This is the strategy's primary "safe haven."
Gold
Along with bonds, gold serves as a defensive asset providing a "shield" for the portfolio when general market conditions deteriorate. It offers additional decorrelation and crisis protection.
How the Strategy Works
The 75-Day Momentum Engine
The strategy uses a 75-day momentum lookback (roughly 3.5 months), which is considered very "agile" compared to other models like Global Equity Momentum (GEM) that use 200-day periods. This shorter window allows the strategy to:
React quickly to changes in trend
Catch upward movements in volatile assets early
Exit quickly when trends break
Monthly Rebalancing Process
At the end of each month:
Step 1: Calculate 75-day ROC for each asset
Step 2: Filter out assets with negative momentum (they receive 0% allocation)
Step 3: Distribute capital proportionally based on momentum strength
Step 4: Apply 5% minimum threshold (smaller allocations become zero)
Step 5: Apply 80% maximum cap (no single asset exceeds 80%, remainder stays in cash)
The 80% Ceiling Rule
There is an 80% investment ceiling for any single asset to prevent over-exposure. If only one asset (like bonds) has positive momentum, 80% goes to that asset and 20% remains in cash/liquidity.
Behavior in Bearish Markets
When markets turn bearish, the strategy protects capital through several mechanisms:
Automatic Risk-Off
Because the strategy only invests in assets with positive momentum, it automatically moves away from crashing equities. If an asset's trend becomes negative, the strategy stays "on the sidelines" for that asset.
The Bond Haven
During prolonged bearish periods or sudden crashes (like COVID-19), the strategy typically shifts into 20-year bonds. During the COVID-19 crash in March 2020, while global markets were collapsing, strategies like this reportedly yielded positive returns by being positioned in bonds.
Full Liquidity Option
If no assets show positive momentum, the strategy moves to 100% cash. This is rare given the decorrelation between the four assets—when equities crash, bonds and gold typically rise.
What This Indicator Does
This is a tracking and alerting tool that:
Calculates the optimal allocation based on current momentum
Shows historical monthly performance of the strategy
Simulates portfolio equity growth from your specified starting capital
Displays exact dollar amounts to invest in each asset
Sends monthly rebalance alerts with complete instructions
Detects missing data to prevent false signals
Features
Dynamic allocation table showing weights, dollar amounts, and ROC values
Monthly returns history with color-coded performance
Data availability detection with visual status indicators
Configurable alerts for rebalancing, go-to-cash, and missing data
Simulated equity curve from initial capital
Settings Guide
Assets
Configure your four ETFs. The default European ETFs are:
Asset 1 - XETR:IS04: iShares 20+ Year Treasury Bond (Bonds)
Asset 2 - XETR:GZUR: Gold ETC
Asset 3 - XETR:XRS2: Xtrackers Russell 2000 (Small Caps)
Asset 4 - XETR:XMME: Xtrackers Emerging Markets (EM)
For US markets, consider: TLT (20-year bonds), GLD (Gold), IWM (Russell 2000), EEM (Emerging Markets)
Strategy Settings
ROC Period - Momentum lookback in daily bars. Default: 75 days (~3.5 months)
Max Allocation % - Maximum weight for any single asset. Default: 80%
Min Allocation % - Threshold below which allocation becomes zero. Default: 5%
Capital
Initial Capital - Your portfolio value. The indicator calculates exact amounts for each asset based on this. Default: $20,000
Display
Table Positions - Position the allocation and history tables on screen
Months of History - How many past months to display (3-24)
Alerts
Monthly Rebalance Alert - Sends complete allocation details at month end
Go-to-Cash Alert - Alerts when all assets have negative momentum
Missing Data Alert - Warns when asset data is unavailable
How to Use
Initial Setup
Add indicator to any chart and switch to MONTHLY timeframe
Configure your four ETF tickers
Set your portfolio capital amount
Position the tables where you prefer
Setting Up Alerts
Click Alert button or press Alt+A
Set Condition to "Fanta4"
Select "Any alert() function call"
Choose notification method (Email, Push, Webhook, etc.)
Set expiration to "Open-ended"
Monthly Workflow
Receive rebalance alert at the start of each month
Alert shows exact percentages AND dollar amounts for each asset
Adjust your portfolio accordingly
No action needed during the month
Reading the Tables
Green = positive returns/momentum
Red = negative returns/momentum
Orange "N/A" = missing data
Alloc column shows weight distribution (e.g., "45/35/20/—")
Alert Message Example
Monthly alerts include:
Target month for the new allocation
Current portfolio value
Each asset's percentage AND dollar amount
Each asset's momentum (ROC) value
Cash allocation if applicable
Total return since inception
Historical Context
This strategy combines elements of:
Dual Momentum (Gary Antonacci) - Relative and absolute momentum
Global Equity Momentum (GEM) - But with shorter 75-day vs 200-day lookback
Risk parity concepts - Decorrelated asset selection
The key innovation is the specific asset selection optimized for momentum trading and the agile 75-day lookback period that allows faster reactions to trend changes.
Data Requirements
The strategy activates only when all four assets have valid price data (minimum 75 days of history). The data status row shows checkmarks for available data. Note: Some ETFs have limited history (e.g., XMME data starts June 2017).
Limitations
This is a tracking indicator, not an automated trading system
Past performance is hypothetical and does not guarantee future results
Requires all four assets to have valid data; partial allocation not supported
Monthly rebalancing may miss shorter-term momentum shifts
Transaction costs, slippage, and taxes are not included in simulation
ETF availability and liquidity vary by region
The 75-day momentum may whipsaw in choppy, trendless markets
Disclaimer
This indicator is for educational and informational purposes only. It does not constitute financial advice.
Version History
v1.0 - Initial release with momentum rotation, allocation tables, data validation, and monthly alerts
Dealer Control Index (DCI) Oscillator BreakoutsOverview
The Dealer Control Index (DCI) is a structural oscillator designed to measure market stability based on the relationship between price and key institutional "hedging levels" (Gamma Flip). Unlike momentum-based oscillators like RSI, the DCI focuses on Dealer Gamma Exposure—the point where market makers shift from supporting price (Long Gamma) to accelerating moves (Short Gamma).
How to Use
This indicator requires a Manual Anchor (Flip Level) to function with high precision. Users should identify the current institutional Gamma Flip level for their specific ticker and input it into the script settings.
Positive Score (+25 to +100): Price is above the Flip Level. Dealers are in a "Long Gamma" position, typically resulting in lower volatility and "dip-buying" behavior.
Neutral Zone (-75 to +25): The "Transition Zone." Price is fluctuating near the hedge-rebalancing point. Expect "choppy" price action.
The Gamma Trap (-75 to -100): Price has snapped significantly below the Flip Level. Dealers are now "Short Gamma" and may be forced to sell into further price drops to hedge their books, potentially creating a "Waterfall" effect.
Key Features
Volatility Normalized: Uses ATR-based normalization to ensure the -100 to +100 scale is consistent across different asset classes (e.g., comparing SPY to NVDA).
Sigmoid Smoothing: Employs a sigmoid curve to filter out "market noise" and provide a clear visual of when the regime shift is actually occurring.
Visual Regimes: Color-coded zones (Green/Red) provide instant feedback on the current dealer hedging bias.
Smart Scalper Pro Template + VWAP
📌 Author
Garry Evans
Independent system developer focused on:
Risk-first automation
Market structure & liquidity behavior
Discipline, consistency, and capital preservation
“The edge isn’t the market — it’s the man who survives it.”
⚙️ Risk Management & Position Sizing
The script is built around capital protection, not signal frequency.
Risk logic includes:
Fixed or dynamic risk per trade
Market-adaptive position sizing
Session-based trade limits
Daily trade caps and auto-lockout protection
Volatility-aware sizing (futures & crypto)
⚠️ Profit is pursued only after risk is controlled.
📊 Track Record
Backtested across multiple market environments
Forward-tested and actively used by the author
Real-account trades are logged where platform rules allow
Results vary by market, timeframe, and user-defined risk settings.
🌍 Supported Markets
Designed to work across all liquid markets, including:
Stocks
Crypto (spot & futures)
Options (signal-based framework)
Futures (indices, metals, crypto futures)
The system adapts to volatility and structure — it is not market-specific.
⚖️ Leverage
Leverage is not required
If used, leverage is fully user-controlled
Risk logic scales exposure conservatively
No martingale.
No revenge sizing.
No over-exposure logic.
🧪 Backtesting
✔ Yes
Strategy logic has been backtested
Filters reduce chop, noise, and forced trades
Focus on drawdown control over curve-fitting
🛠 Support
✔ Yes
Direct author support
Ongoing improvements and updates
Feature refinement based on real usage and feedback
👥 Community
✔ Yes
Private user access
High-quality feedback environment
No public signal spam or hype-driven chat rooms
⏳ Trial Period
✔ Yes
Limited trial access available
Designed for evaluation only
Trial users do not receive full feature access
🚫 Who This Script Is NOT For
This system is not for:
Traders looking for guaranteed profits
Users expecting copy-paste “signal calls”
Over-leveraged gamblers
Those unwilling to follow risk rules
Anyone seeking overnight results
This is a discipline and automation tool, not a shortcut.
🧠 Final Positioning
This is not a signal service.
This is a risk-controlled execution framework designed to:
Enforce discipline
Reduce emotional trading
Protect capital during bad market conditions
Scale responsibly during favorable ones
VWMA Cross Buy SignalCore Components & Logic
1. The Entry Engine (VWMA + Filters)
The strategy triggers a long signal when a Volume Weighted Moving Average (VWMA) crossover occurs.
Unlike a standard Simple Moving Average, the VWMA gives more weight to bars with higher volume. This ensures the indicator responds faster to "Smart Money" moves and slower to low-volume noise.
It uses a secondary Trend Filter (defaulting to the 200 EMA). By only buying when the price is above this line, the indicator forces you to stay on the right side of the primary market trend.
It requires volume to be higher than its recent average (e.g., 1.1× or 10% higher). This prevents entries on weak, low-conviction price moves.
2. The Dynamic Exit System
You have two distinct ways to manage your risk and targets, toggleable in the settings:
ATR Based (Volatility Adjusted): It calculates the Average True Range (ATR) to determine how volatile the stock is. By setting your Stop Loss at 2.0×ATR, you avoid getting "shaken out" by normal daily price fluctuations. The Take Profit is set at 4.4×ATR to capture large trend extensions.
Fixed % (Static): A more rigid approach where you set a hard percentage target (e.g., 10% gain / 5% loss).
3. The Performance Analytics Table
The grey minimalist table in the bottom-right corner uses cumulative percentage-based math to show:
Realized RRR: The actual Reward-to-Risk ratio based on your closed trades.
Break-Even Win Rate: The minimum win rate you need to stay profitable with your current RRR. It uses the formula:
BE WR=1+RRR1
Current Win Rate: Highlighted in Green if you are beating the Break-Even rate, or Red if the strategy is currently losing money on that specific stock.
Max Drawdown %: The most important metric for risk. It shows the largest peak-to-trough decline in your equity curve, letting you know how much losing streak can hurt your equity.
Strategic Use Case
This indicator is optimized for Stock Screening. When you flip through your watchlist, the table updates instantly.
If you see a stock with a high Win Rate and a Max Drawdown under 10%, you have found a ticker where the VWMA crossover logic is highly compatible with that stock's specific volatility. If the Win Rate cell is Red, you know the strategy is "un-tuned" for that asset and needs adjustment.
Smart Fixed Volume Profile [MarkitTick]💡 This comprehensive analysis suite integrates Auction Market Theory, structural gap analysis, and statistical liquidity strain modeling into a single, cohesive toolkit. Designed for traders who require a granular view of institutional order flow, this indicator overlays a Fixed Range Volume Profile with intelligent price gap classification and a volatility-adjusted exhaustion detector. By combining these three distinct analytical dimensions, it allows users to identify value consensus, structural breakouts, and potential market turns driven by liquidity shortages.
✨ Originality and Utility
While standard Volume Profiles display where trading occurred, this script advances the concept by contextually analyzing *how* price arrived at those levels. It solves the problem of isolated analysis by fusing three disparate methodologies:
Contextual Integration: It does not merely show support and resistance; it qualifies moves using "Smart Gaps" (classifying gaps based on market structure) and "Liquidity Strain" (identifying unsustainable price velocity).
Institutional Footprint: The inclusion of an "Unusual Volume" highlighter within the profile bars helps traders spot hidden institutional accumulation or distribution blocks that standard profiles miss.
Hybrid Logic: By combining a fixed-time profile (anchored to specific dates) with dynamic, developing gap analysis, it provides both a static roadmap of the past and a dynamic interpretation of current price action.
🔬 Methodology and Concepts
• Fixed Volume Profile Engine
The core of the indicator constructs a volume distribution histogram over a user-defined time window. It utilizes a custom aggregation engine that:
Fetches higher-timeframe volume and price data to ensure accuracy.
Segments the price range into specific "bins" or rows.
Allocates volume to these bins based on price action within the bar, separating Buying Volume (Up bars) from Selling Volume (Down bars).
Calculates the Point of Control (POC) —the price level with the highest traded volume—and the Value Area , which contains 70% (customizable) of the total volume centered around the POC.
• Smart Gap Logic
The script systematically identifies price gaps and classifies them based on their location relative to market pivots (Highs/Lows):
Breakaway Gaps: Occur when price gaps beyond a significant structural pivot (Lookback High/Low), signaling a potential trend initiation.
Runaway Gaps: Occur within an existing trend without breaking structure, indicating trend continuation.
Exhaustion Gaps: Identified when a gap occurs late in a mature trend (measured by bar count since the last pivot) accompanied by a volume spike, suggesting the trend is overextended.
• Liquidity Strain Detector
This module utilizes a statistical approach to measure market stress. It calculates "Illiquidity" by analyzing the ratio of True Range to Volume (Price Impact).
It applies a Logarithmic transformation to normalize the data.
It calculates a Z-Score (Standard Deviation from the mean) of this impact.
If the Z-Score exceeds a threshold (e.g., 2.0 Sigma) while the trend opposes the price move, it triggers an exhaustion signal, indicating that price is moving too easily on too little volume (thin liquidity).
🎨 Visual Guide
• Volume Profile Elements
Histogram Bars: Horizontal bars representing volume at price. Cyan indicates bullish volume; Red indicates bearish volume.
Unusual Volume Highlight: Bars with volume exceeding the average by a set factor (default 2x) are highlighted with brighter, distinct overlays to denote institutional interest.
POC Line: A solid Yellow line marking the price level with the highest volume.
VAH / VAL Lines: Dashed Blue lines marking the Value Area High and Value Area Low.
Background Box: A grey shaded area encapsulating the entire time and price range of the profile.
• Smart Gap Boxes
Blue Box (Breakaway): Marks the start of a new structural move.
Orange Box (Runaway): Marks continuation gaps in the middle of a trend.
Red Box (Exhaustion): Marks potential trend termination points.
Dotted Lines: Extend from the center of gap boxes to serve as future support/resistance levels. These boxes are automatically deleted if price "fills" or violates the gap level.
Note: This tool incorporates core components from [ Smart Gap Concepts ], optimized for this specific strategy.
• Liquidity Signals
Green Label (SE): "Seller Exhaustion" – Appears below bars in a downtrend when selling pressure is statistically overextended.
Red Label (BE): "Buyer Exhaustion" – Appears above bars in an uptrend when buying pressure is statistically overextended.
Note: This tool incorporates core components from [ Liquidity Strain Detector ], optimized for this specific strategy.
📖 How to Use
• Interactive Range Selection: This indicator features a flexible, interactive input system. Upon adding the script to your chart, execution is paused until the analysis range is defined. You will be prompted to click on the chart twice: first to establish the Start Date and second to establish the End Date. Once these anchor points are confirmed, the indicator will automatically load the data and generate the profile for the selected specific period.
● Strategies for Optimal Anchoring
the optimal starting and ending points for high-probability setups:
Swing Highs and Lows (Trend Analysis):
Anchor the Start Date at a major structural swing high or low and the End Date at the current price using the Extend to Present feature. This identifies the "Fair Value" for the entire price move .
Consolidation/Range Anchoring:
Set the Start Date at the first bar of a sideways range and the End Date at the breakout candle. This reveals the high-node volume clusters that will act as future support or resistance.
Session-Based Anchoring (Intraday):
Align the Start Date with the session open (e.g., London or New York open) to track institutional flow for that specific day .
Event-Driven Anchoring:
Place the Start Date on a significant news event or a Breakaway Gap identified by the script's Gap Engine. This helps determine if the new volume supports the direction of the gap.
Correction Cycles:
During a pullback, anchor the Start Date at the start of the correction to find the Value Area Low (VAL), which often serves as a tactical entry point for a trend continuation.
• Identifying Value:
Use the Value Area to gauge market consensus. Acceptance of price within the VA indicates balance. A breakout above VAH or below VAL suggests the market is searching for new value. The POC often acts as a magnet for price correction.
• Trading Breakouts:
Watch for Breakaway Gaps (Blue) that align with a move out of the Volume Profile's Value Area. This confluence increases the probability of a sustained trend.
• Spotting Reversals:
Combine Exhaustion Gaps (Red) with Liquidity Strain Signals (SE/BE) . If price gaps up into a low-volume node on the profile and prints a "Buyer Exhaustion" signal, it suggests the move is unsupported by liquidity and liable to reverse.
• Support and Resistance:
The extended dotted lines from the Smart Gap boxes act as dynamic support/resistance. A retest of a "Runaway Gap" is often a viable entry point for trend continuation.
⚙️ Inputs and Settings
• Global Profile:
Start/End Date: Define the exact window for the volume profile calculation.
Extend to Present: If checked, the profile updates with live data beyond the end date.
• Profile Settings:
Number of Rows: Determines the vertical resolution (granularity) of the histogram.
Value Area %: Default is 70%, representing one standard deviation of volume distribution.
Placement: Position the profile on the Left or Right of the defined range.
• Liquidity & Gaps:
Unusual Threshold: Multiplier of average volume to highlight institutional bars (default 2.0x).
Structure Lookback: Adjusts the sensitivity of pivot detection for gap classification.
Stress Threshold (Sigma): The Z-Score limit for triggering Liquidity Strain signals (default 2.0).
🔍 Deconstruction of the Underlying Scientific and Academic Framework
• Auction Market Theory (AMT):
The script is grounded in AMT, which posits that the market's primary function is to facilitate trade. The Volume Profile visualizes this by displaying a bell curve of price distribution. The Value Area (typically 70%) corresponds to the First Standard Deviation in a normal Gaussian distribution, representing the area of "Fair Value" where buyers and sellers agree.
• Market Microstructure & Kyle’s Lambda:
The Liquidity Strain module draws conceptually from Kyle’s Lambda, a metric in market microstructure that measures market depth and price impact (Illiquidity). By calculating the ratio of price change (True Range) to Volume, the script approximates the "cost" of moving the market.
• Statistical Z-Score Normalization:
To make the liquidity data actionable, the script applies Z-Score normalization: Z = (X - μ) / σ . This converts raw illiquidity values into standard deviations from the mean. A Z-Score above +2.0 signifies a statistically significant anomaly—an outlier event where price moved excessively relative to the volume traded, often preceding a mean-reversion event.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion.
HMA Pro Flow [Mladen] + SignalsThis indicator is an enhanced version of the classic Hull Moving Average (HMA), based on the logic developed by Mladen. It improves upon the standard HMA by allowing users to adjust the "speed" of the curve using a custom Divisor, and it integrates a secondary Trend Filter to generate high-probability entries and distinct exit signals.
The script is designed to help traders identify the trend direction while filtering out noise during choppy markets.
How It Works
1. The "Mladen" Calculation
The standard Hull Moving Average uses a fixed formula involving a divisor of 2 (n/2). This script exposes that divisor as a variable input.
2. Dual-HMA System
This indicator runs two separate HMA calculations simultaneously:
Entry HMA (Fast): Reacts quickly to price changes to generate immediate signals.
Trend Filter (Slow): A longer-term HMA used to determine the overall market bias.
Signal Logic
The indicator generates three types of signals based on the alignment of the Fast Entry HMA and the Slow Trend Filter.
🟢 BUY Signal (Green Label)
Condition: The Fast HMA turns green (rising) AND the Trend Filter is also green (rising).
Meaning: Momentum and Trend are aligned. Safe to enter Long.
🔴 SELL Signal (Red Label)
Condition: The Fast HMA turns red (falling) AND the Trend Filter is also red (falling).
Meaning: Momentum and Trend are aligned. Safe to enter Short.
❌ STOP / CLOSE Signal (Orange 'X')
Condition: The Fast HMA changes color, but it conflicts with the Trend Filter.
Example (Long): You are in a Buy trade. The Fast HMA turns Red, but the Trend Filter is still Green.
Meaning: This is likely a pullback, not a reversal. The indicator suggests closing the current position (Stop) but does not issue a signal to reverse into a new position. This prevents getting trapped in counter-trend trades.
Settings
Entry HMA Settings
Entry Period: Length of the fast signal line (Default: 14).
Entry Divisor: Controls smoothness. Lower values (e.g., 0.1) result in a very smooth line; higher values result in sharper turns.
Trend Filter Settings
Use Trend Filter: If unchecked, the indicator acts like a standard HMA (Buying/Selling on every color change).
Filter Period: Length of the slow trend line (Default: 300).
Show Filter: Toggles the visibility of the thick trend line on the chart.
Visuals
Toggle visibility for Buy, Sell, and Stop signals individually to keep your chart clean.
Credits
Original HMA logic by Alan Hull.
Variable divisor concept adapted from Mladen's work on MT4/MT5.
Custom pine scripting for trend filtering and signal logic - Vdubus
Spearman Correlation🔗 Spearman Correlation – Ranked Relationship Tracker
Overview:
This indicator calculates and plots the Spearman Rank Correlation Coefficient between the current chart’s asset and a custom comparison ticker (the example shown is BTC vs the OTHERS market cap for crypto). Unlike Pearson correlation, which measures linear relationships, Spearman correlation captures monotonic (ranked) relationships—making it better suited for analysing assets that move in sync but not necessarily in a linear fashion.
🧠 What It Does:
Computes ranked correlation between two assets over a user-defined lookback period
Smooths the correlation curve for better readability
Visually shades the background by correlation strength and direction:
🟩 Strong Positive (+0.5 to +1)
🟨 Weak Positive (+0.1 to +0.5)
⬜ No Correlation (–0.1 to +0.1)
🟧 Weak Negative (–0.5 to –0.1)
🟥 Strong Negative (–1 to –0.5)
⚙️ User Inputs:
Lookback Period: Number of bars used to calculate correlation
Comparison Ticker: Choose any asset to compare against
Shading Toggles: Customize which correlation zones are highlighted
📈 Use Cases:
Identify evolving relationships between assets (e.g., BTC vs DXY, ETH vs SPX)
Spot when assets become inversely correlated or lose correlation entirely
Track regime shifts where traditional relationships break down or re-align
Use alongside trend or momentum strategies to add a cross-asset confirmation layer
🔍 Interpreting the Correlation:
+1 → Perfect positive (ranks match exactly)
+0.5 to +1 → Strong positive relationship
+0.1 to +0.5 → Weak but positive relationship
–0.1 to +0.1 → Essentially uncorrelated
–0.5 to –0.1 → Weak negative correlation
–1 to –0.5 → Strong inverse relationship
–1 → Perfect negative (rankings are completely opposite)
🧪 Technical Notes:
Calculation uses ranked returns to better reflect monotonic relationships
Smoothed with a simple moving average (SMA) for stability
Arrays are managed internally to maintain performance and adaptability
This script is ideal for traders seeking deeper insight into cross-asset dynamics, portfolio hedging, or timing divergence-based strategies.
ORB Breakout Strategy with VWAP and Volume FiltersOverview
This strategy implements the classic Opening Range Breakout (ORB) methodology, a well-documented approach in trading literature that has been used by institutional and retail traders for decades. The strategy identifies the high and low of the first 15 minutes of the trading session, then trades breakouts with defined risk management.
This implementation includes multiple customizable filters (VWAP, Volume, Candle Strength) that traders can enable, disable, and tune to find configurations that work for their specific markets and trading style.
How It Works
Opening Range Calculation
The strategy captures the high and low of the first N bars after the session open (default: 3 bars on a 5-minute chart = 15 minutes). These levels become the breakout triggers for the session.
Entry Logic
Long Entry: When a bar closes above the ORB High and all enabled filters pass
Short Entry: When a bar closes below the ORB Low and all enabled filters pass
Exit Logic
Take Profit: Configurable multiple of the ORB range (default: 1x = full range beyond breakout level)
Stop Loss: Opposite side of the ORB range
Breakeven: Optional stop adjustment to entry price when trade reaches configurable profit threshold
Session Close: All positions automatically closed at end of trading session
Configurable Filters
All filters can be independently enabled or disabled:
1. VWAP Filter
Requires price above/below session-anchored VWAP
Requires VWAP slope confirmation (configurable lookback and minimum slope)
Purpose: Align trades with intraday trend direction
2. Volume Filter
Requires minimum volume on the breakout bar
Purpose: Confirm institutional participation in the breakout
3. Candle Strength Filter
Requires close in upper/lower portion of the bar range
Purpose: Filter out weak breakouts with poor conviction
Strategy Properties
Initial Capital - $50.000USD
Position Size - 1 contract (fixed)
Commission - $4.00 per contract
Slippage - 2 ticks
Margin - 1%
Pyramiding - Disabled
Backtest Results (NQ)
Recent Performance (Jan 2025 - Jan 2026)
Total Trades - 243
Win Rate - 39.09%
Profit Factor - 1.03
Net P&L - $3,581 (+7.16%)
Max Drawdown - $25,447 (39.96%)
Long-Term Performance (2010 - 2026)
Total Trades - 1699
Win Rate - 37.61%
Profit Factor - 0.756
Net P&L - ($49,632) (-99.26%)
Max Drawdown - $50,262 (99.27%)
Important: Long-term results show negative expectancy with default settings. This strategy is published as a research framework, not a ready-to-trade system. Users are encouraged to experiment with different configurations to find their edge.
Settings Guide
Main Settings
ORB Bars: Number of bars for opening range (3 = 15 min on 5-min chart)
Trading Session: Time window for trading (e.g., 0930-1200 for morning only)
Timezone: Your market's timezone
Take Profit: Multiple of ORB range for target
Breakeven Trigger: Distance to move stop to entry
Max Trades Per Day: Daily trade limit
VWAP Filter
Use VWAP Filter: Enable/disable
VWAP Slope Lookback: Bars to measure VWAP direction
Min VWAP Slope: Minimum slope threshold
Volume Filter
Use Volume Filter: Enable/disable
Min Breakout
Volume: Minimum contracts required
Candle Strength Filter
Use Candle Strength Filter: Enable/disable
Min Candle Strength: Required close position (0.7 = top/bottom 30%)
Research Suggestions
This strategy provides a foundation for exploring ORB-based approaches. Consider testing:
Different ORB periods: 5, 10, 15, or 30 minutes
Session variations: Morning only (0930-1200), afternoon, or full day
Direction bias: Long-only or short-only based on daily trend
Filter combinations: Different mixes of VWAP, volume, and candle filters
Take profit ratios: 0.5x, 1x, 1.5x, or 2x ORB range
Market regimes: Performance may vary in trending vs ranging markets
Different instruments: Test on ES, NQ, MNQ, or other futures
Visual Elements
Orange Background: ORB forming period
Green Background: Active trading session
Green Line: ORB High level
Red Line: ORB Low level
VWAP Line: Green = upslope, Red = downslope, Gray = flat
White Line: Trade entry price
Lime Line: Take profit level
Red Line: Stop loss level
Orange Line: Breakeven trigger level
Blue Background: Breakeven activated
Triangles: Entry signals (only appear when trade executes)
Limitations
Negative long-term expectancy: Default settings do not produce profitable results over extended periods
Parameter sensitivity: Results highly dependent on filter settings and market conditions
Market regime dependent: May perform differently in trending vs choppy markets
Commission impact: Frequent trading accumulates significant transaction costs
Curve fitting risk: Optimized settings may not persist in future markets
Disclaimer
This strategy is provided for educational and research purposes only. It does not constitute financial advice.
Past performance does not guarantee future results
Backtested results may not reflect actual trading conditions
The long-term backtest shows significant negative returns
Always paper trade before risking real capital
Never risk more than you can afford to lose
Conduct your own research and due diligence
This is a research framework designed for traders to explore and customize, not a plug-and-play trading system.
Strategy MTF ScannerDescription:
Stop guessing which timeframe is best for your strategy. This tool performs a "Top-Down Analysis" instantly by running a unified strategy simulation across 5 different timeframes simultaneously.
Why Use This?
A strategy that fails on the 1-Hour chart might print massive returns on the 4-Hour chart due to reduced noise. This scanner calculates the Equity Curve, Max Drawdown, and Win Rate for 15m, 1H, 4H, Daily, and Weekly charts (customizable) and presents the winner in a dashboard.
Features:
Simultaneous Backtesting: Runs 5 independent simulations inside request.security.
Equity & Drawdown Tracking: See not just how much you make, but how much risk is required on each timeframe.
Instant Comparison: Identify "Fractal Resonance" where multiple timeframes align in profitability.
Strategy Logic (Fully Customizable):
The default entry logic is a generic EMA 9/21 Crossover with a Trend Filter.
Note: This is an open-source framework. You can modify the calc_strategy_results function in the source code to substitute the crossover with your own custom entry conditions (RSI, Stochastic, Price Action, etc.).
Workflow:
Load this scanner to identify the dominant timeframe (e.g., 4H).
Switch your chart to the 4H timeframe.
Use the Strategy Grid Optimizer to fine-tune the specific EMA and ATR settings for that timeframe.
Strategy Grid Optimizer (Trend & Risk)Description:
This tool transforms your chart into a powerful backtesting engine that runs hundreds of simulations per second. It is designed to solve the "Parameter Stability" problem: finding the settings that work robustly, rather than curve-fitting to a single number.
How It Works:
Instead of testing one setting at a time, this script uses Pine Script Arrays to run a "Grid Search" on your chart history:
Trend Filter: It iterates through a range of EMA Lengths (e.g., 20, 30, 40... to 200).
Risk Management: It iterates through a range of ATR Multipliers (e.g., 1.0, 1.5, 2.0...) for the trailing stop.
The Result: It ranks every combination based on Net Profit, Drawdown, and Win Rate, instantly highlighting the "Sweet Spot" for the current asset.
Strategy Logic (Fully Customizable):
By default, this script demonstrates a standard EMA 9/21 Crossover.
Developers & Traders: This script is designed as a Template. You can easily open the Source Code and replace the entry_signal logic with any strategy you wish (e.g., RSI, MACD, Bollinger Bands, or your own proprietary logic). The optimizer engine will work with whatever signal you provide.
Workflow:
Use the MTF Scanner to find the best Timeframe.
Load this Grid Optimizer on that timeframe.
Adjust the "Start" and "End" ranges in settings.
The table will reveal the optimal Trend/Risk combination for your strategy.
FX Rate Bias US vs EU 2YFX Rate Bias – US vs EU (2Y)
This indicator implements a rate-differential based macro bias model using the 2-year government bond yield spread between the United States and Germany.
The methodology focuses on the short end of the yield curve, which primarily reflects central bank expectations rather than long-term inflation or risk premiums.
By applying light smoothing and a zero-line regime framework, the script classifies market conditions into USD rate advantage or EUR rate advantage states.
Calculation logic:
Retrieves daily 2Y sovereign yields for the US and Germany
Computes the yield differential (US − DE)
Applies optional smoothing to reduce noise
Uses the zero line as a regime boundary to define relative monetary bias
Practical use:
This tool is designed to provide directional macro context for FX analysis, particularly for EURUSD.
It helps traders align technical setups with prevailing interest rate expectations, and is not intended as a standalone signal or timing indicator.
Laguerre RSI (Fractals Energy) [v6]This write-up explores the **Laguerre RSI (LRSI)**, a sophisticated technical indicator pioneered by **John F. Ehlers**. Unlike the standard RSI, which often suffers from "lag" or excessive noise, the Laguerre RSI uses a four-pole filter to provide a smoother, more responsive curve that stays in overbought or oversold zones longer during strong trends.
The following analysis focuses on the interplay between the **Alpha (Gamma)** and the **Gamma Bandwidth**, specifically looking for "Alpha Exceeding" events to identify market coiling and exhaustion.
---
## 1. The Core Concept: Ehlers’ Laguerre Transform
Traditional indicators use a fixed look-back period (e.g., 14 periods). John Ehlers introduced the Laguerre Transform to allow for a more efficient way of filtering data using a very small amount of data.
In the provided code, the key variable is **Alpha** (derived from **Fractals Energy/Gamma**). This value determines the "speed" of the indicator.
* **Low Alpha:** High damping, smoother but slower.
* **High Alpha:** Low damping, faster and more reactive.
---
## 2. The Gamma Bandwidth: Coiling and Energy
The "Gamma Band" (the purple shaded area in your script, typically between and ) represents the "neutral" zone for market fractal energy.
### Market Coiling (Compression)
When the **Alpha (Gamma) line** climbs **above the Gamma Upper Bound** (e.g., ):
* This indicates the market is moving into a state of **high fractal efficiency** or "straight-line" movement.
* However, when Alpha is pinned high, it often signals **Coiling**. The market is burning through its energy efficiently, but it is reaching a state of "ordered" exhaustion.
* **The Interpretation:** The price is trending strongly, but the lack of "chaos" suggests a trend maturity is approaching.
### Alpha Exceeding the Bands (Exhaustion)
When the Alpha line spikes significantly outside the bands while the LRSI line (blue or pink) is pinned at the extremes (1.0 or 0.0), we observe **Exhaustion**.
* **Bullish Exhaustion:** LRSI is (Blue) and Alpha exceeds the upper band. The trend is so efficient that it has no room left to accelerate. A "reversion to the mean" or a period of "choppiness" (increasing fractal chaos) is likely.
* **Bearish Exhaustion:** LRSI is (Pink) and Alpha exceeds the upper band. This shows a vertical drop that is unsustainable in the long term.
---
## 3. Signal Mechanics: The "Hook"
The most potent signal occurs when the Alpha line begins to **descend back into the Gamma Bandwidth** while the LRSI line crosses the OB/OS levels.
| Signal Component | Market Condition | Actionable Insight |
| --- | --- | --- |
| **Alpha > 0.59** | High Efficiency / Coiling | Trend is strong, but watch for the "bend." |
| **Alpha < 0.41** | High Complexity / Choppiness | Market is trendless; energy is being stored for the next move. |
| **LRSI Cross < 0.8** | Bearish Reversal | Trend exhaustion confirmed; exit longs or enter shorts. |
| **LRSI Cross > 0.2** | Bullish Reversal | Mean reversion confirmed; exit shorts or enter longs. |
---
## 4. Summary of the Methodology
By integrating **Fractals Energy** (Gamma) directly into the Alpha of the Laguerre RSI, this version of Ehlers’ work allows the indicator to adapt its own speed based on the market’s complexity.
When Alpha exceeds the bands, it is a warning that the "clean" move is coming to an end. The market is "coiled" tight; the subsequent break back into the purple band signifies that the trend has lost its linear efficiency and is returning to a state of chaos—often resulting in a price reversal or significant consolidation.
> **Credit:** All mathematical foundations of the Laguerre Transform and the RSI implementation are credited to **John F. Ehlers**.
---
Would you like me to create a visual guide or table specifically for the **Fractal Energy** values and how they correlate to specific market phases?
Session Anchored OIWAP [Arjo]The Session Anchored OIWAP (Open Interest Weighted Average Price) indicator shows you a weighted average price that uses Open Interest (OI) changes during different trading sessions . It divides the day into four clear sessions: Opening Hour , Morning Session , Mid-Day Session , and Closing Session .
For each session , it calculates a weighted average price using both market price and open interest data from futures . This line updates as the session progresses and resets when a new session starts .
You can also see optional deviation bands that you visually compare to how far the market price is moving away from the session’s weighted average. This indicator also helps you watch how Open Interest changes connect with price movements during specific market hours.
Concepts
This tool works on a few simple ideas:
Session anchoring
Each session starts fresh. The indicator resets and begins a new calculation when a new time block begins. This allows users to visually study each session independently.
Open-interest weighting
Instead of treating all price moves equally, price changes linked to higher open-interest activity have more influence on the OIWAP. This gives a weighted reflection of where the market has been trading during the session.
Averaging and smoothing
The OIWAP line blends many price data points into one smooth curve, making it easier to follow than raw price movement.
Volatility display with bands
The upper and lower bands are placed at ±0.5 standard deviation from the OIWAP line. These bands simply help you see when price stretches further away than usual from the session average.
Features
Four Independent Session Calculations: Shows separate OIWAP lines for Opening Hour (default: 09:15-10:15), Morning (10:15-11:30), Mid-Day (11:30-14:00), and Closing (14:00-15:30) sessions
Open Interest Weighting: Uses absolute OI change as the weight instead of traditional volume
Customizable Session Times: You can change the time ranges for each session to match your market or what you need
Optional Deviation Bands: You can turn ±0.5 standard deviation bands on or off around each OIWAP line
Color-Coded Sessions: Each session has its own color so you can tell them apart easily
Selective Display: You can turn individual sessions and bands on or off
Data Availability Check: Shows you a notification when Open Interest data isn't available for your symbol
Adjustable Position Timeframe: You can calculate OI changes on different timeframes (Chart, Daily, 15min, 30min, 60min, 120min)
How to use
Add this indicator to a chart of any symbol that has Open Interest data ( from futures or derivatives contracts). Once you add it, you'll see colored lines showing the OIWAP for each session you enable, along with optional deviation bands.
Adjusting Settings:
Turn individual sessions on or off using the checkboxes in the " Sessions " section
Change session colors to match your chart or what looks good to you
Turn deviation bands on or off using the " Show Bands " option in the Display settings
Change session time ranges in the " Session Times " section to match your market hours or what you want to analyze
Change the Position Timeframe if you want to see OI changes calculated on a different time period
Visual Interpretation:
Each OIWAP line shows you the OI-weighted average price for that session
The deviation bands show you how much prices spread out, weighted by OI changes
You can watch how price interacts with these levels to see where significant OI activity happened
Different sessions may show different OIWAP levels, showing you how the OI-price relationship changes throughout the trading day
Note:
This indicator needs Open Interest data to work. If OI data isn't available for your symbol, you'll see a message in the center of your chart. This indicator works only with derivatives markets like futures and options in the Indian Market where OI data is publicly available.
Conclusion
The Session Anchored OIWAP indicator is designed to support structured market observation by combining price, open interest, and session anchoring into a clear visual format. It helps users study market behavior during different parts of the day without generating trading instructions or outcomes.
Disclaimer
This indicator is for educational and visual-analysis purposes only. It does not provide trading signals , financial advice, or guaranteed outcomes . You should perform your own research and consult a licensed financial professional when needed. All trading decisions are solely the responsibility of the user.
Happy Trading
FX Rate Bias US vs EU 2YFX Rate Bias – US vs EU (2Y)
This indicator provides a macro bias framework for FX markets by tracking the 2-year government bond yield differential between the United States and Germany.
Rather than displaying the spread as a raw calculation, the script translates interest-rate expectations into a clear directional bias, helping traders understand which currency currently holds a rate advantage.
The 2Y segment of the yield curve is highly sensitive to:
Central bank expectations
Forward guidance
Shifts in short-term monetary policy outlook
How to use
Positive spread → USD rate advantage
Negative spread → EUR rate advantage
Designed to be used as a contextual macro tool, this indicator helps align technical setups with broader monetary conditions.
It is not intended as a standalone entry or signal generator.
Seasonal Strategies V1Seasonal Strategies V1 is a rule-based futures seasonality framework built around predefined calendar windows per asset.
The strategy automatically detects the current symbol and activates long or short trading phases strictly based on historically observed seasonal tendencies. All entries and exits are fully time-based — no indicators, no predictions, no discretionary input.
Key Features
Asset-specific seasonal windows (MMDD-based)
Automatic long and short activation
Fully time-based entries and exits
One position at a time (no pyramiding)
Clean chart visualization using subtle background shading
No indicators, no filters, no curve fitting
Philosophy:
This strategy is designed as a structural trading tool, not a forecasting model.
It focuses on when a market historically shows seasonal tendencies — not why or how far price might move.
Seasonal Strategies V1 intentionally keeps the chart clean and minimal, making it suitable as a baseline framework for research, portfolio-style seasonal approaches, or further extensions in later versions.
Intended Use:
Futures and commodity markets
Seasonality research and testing
Systematic, calendar-driven strategies
Educational and analytical purposes
Disclaimer
This script is provided for educational and research purposes only.
Past seasonal tendencies do not guarantee future performance.
Risk management, position sizing, and portfolio decisions are the responsibility of the user.
Debye-Einstein Trend Oscillator [Dual Mode] | IkkeOmarDebye-Einstein Trend Oscillator
Indicator Settings Guide
Visual Settings View Mode: Switches the chart display. Select "Standard Flow" to see the raw physics energy bars and crossover lines. Select "Trend Diff (MACD)" to see the histogram that highlights momentum shifts and chaos spikes.
Physics Engine Trend Lookback: Defines the "Mass" of the trend. This sets the long-term baseline (default 1500 bars). Higher values filter out noise and focus only on macro-cycles; lower values make the system faster but noisier. Chaos Threshold (%): Controls the trigger for the Einstein (Chaos) state. Set to 95, only the top 5% of highest-energy volume events will trigger the vertical white spikes. Lowering this value makes the system more sensitive to volatility.
Flow Moving Averages MA Type: Choose between SMA (Simple) or EMA (Exponential) for the smoothing calculation. Fast / Slow Length: These settings determine the sensitivity of the momentum logic. The difference between these two lengths creates the histogram in "Trend Diff" mode.
1. Concept & Theoretical Basis
This script applies principles from Solid State Physics—specifically the Debye and Einstein models of specific heat capacity—to financial market trend analysis.
The core hypothesis is that market trends behave like physical lattices:
Low Energy State (Debye Model): The market moves in a coordinated, wave-like manner (phonons). Trends are sustainable and correlated.
High Energy State (Einstein Model): The market becomes chaotic. Individual participants (atoms) vibrate independently and violently. This represents capitulation or euphoria.
We model "Price" as the position of particles and "Volume × Range" as the thermal energy (Temperature) entering the system.
2. Implementation Models
We constructed the oscillator using three primary physical components:
A. The Trend Vector (Mass)
We assume the "Mass" of the market is its inertia relative to a long-term baseline.
Model: Distance from a 1500-period SMA, normalized by ATR.
Assumption: Price deviation from a deep baseline indicates the magnitude of the trend "force."
B. Thermodynamics (Temperature)
We define "Work" as Volume * True Range.
Temperature (T): The Percentile Rank of this Work over the lookback period (1500 bars).
Assumption: High volume combined with high range equals high thermal energy.
C. The Dual Regimes (Amplifiers)
This is the engine of the script. We apply a scalar multiplier to the Trend Vector based on the current Temperature (T).
Debye Regime (Sustainable): When T is below the critical threshold (95%), we use a polynomial function (T^2). This mimics the Debye T^3 law where energy scales smoothly.
Effect: Smoothly amplifies standard trends.
Einstein Regime (Chaos): When T breaches the critical threshold (95%), we switch to an exponential function derived from the Einstein Solid model.
Effect: Creates massive vertical spikes during trend exhaustions or breakouts.
3. Code Explanation
The Physics Scalars
debye_amp(t) => 1.0 + (math.pow(t, 2) * 5.0)
Defines the sustainable state multiplier. Squaring the temperature t creates a non-linear but smooth response curve that gradually increases with volatility.
einstein_amp(t) => 1.0 + ((1.0 / (math.exp(1.0 / t_safe) - 1.0)) * 15.0)
Deep Dive: This function applies the Bose-Einstein distribution formula (1 / (e^(1/T) - 1)).
The Physics: In quantum mechanics, this formula calculates the occupancy of energy states. At low temperatures, the value is effectively zero (the "frozen" state).
The Function: As our market "Temperature" (T) rises, the denominator shrinks, causing the output to grow exponentially.
The Result: This mathematically forces the system to ignore low-volatility noise but react explosively once the "Boiling Point" is reached, creating the vertical spikes seen on the chart.
is_einstein = (T * 100) >= thresh_einstein
A boolean check that determines if the current market energy (Temperature) has exceeded the user-defined chaos threshold (default 95%).
physics_scalar = is_einstein ? einstein_amp(T) : debye_amp(T)
The regime switch. If the threshold is breached, the system applies the exponential Einstein scalar; otherwise, it applies the polynomial Debye scalar.
Trend Differentiation Logic
final_flow = trend_vector * physics_scalar
Calculates the primary oscillator value by multiplying the directional Trend Vector (Mass) by the active Physics Scalar (Energy).
diff_val = ma_fast - ma_slow
Calculates the momentum of the flow itself by subtracting the Slow Moving Average from the Fast Moving Average. This creates the MACD-style histogram.
4. Visual Reporting & Chart Analysis
Referring to the generated charts (Trend Diff Mode):
The Histogram: Represents the diff_val (Fast MA - Slow MA).
Cyan/Pink: Standard trend momentum (Debye mode).
White Spikes: These represent the Einstein Threshold (Chaos). These spikes generally appear at local bottoms or explosive breakout points, confirming that "Temperature" has exceeded the 95th percentile.
Zero Line: Crossing the zero line implies the trend momentum has shifted (Fast MA crossed Slow MA).
5. Assumptions & Limitations
A. The "Always in Trend" Bias
The "Trend Diff" mode calculates the delta between two moving averages of the flow.
Risk: MAs are laggy by definition. By using a 200/500 MA combo on the oscillator, we are smoothing the data significantly.
Consequence: In a ranging market, the MAs will converge near zero. However, if a sudden burst of Volume enters (Temperature rises) without price moving much, the Einstein scalar will trigger. This may amplify a small move into a large signal, implying a trend where there is only volatility.
B. Lag
The lookback period is 1500 bars. This is a "Macro" trend system. It will not react quickly to short-term reversals unless the Volume/Range shock is massive enough to trigger the Einstein scalar immediately.
Example "physics values"
In the Standard Flow view, the vertical columns represent the raw energy of the trend—Teal and Red bars indicate normal, sustainable market movement (Debye state), while bright Lime and Fuchsia bars signal chaotic, high-volatility events (Einstein state). The height of these bars shows the combined strength of price direction and volume. Overlaying these columns are two moving averages, a fast Blue line and a slow Red line, which smooth out this data to show the underlying momentum. When the Blue line crosses the Red line, it signals a shift in the trend's direction, while the color of the bars warns you if that move is stable or nearing exhaustion.
Mid-Term Refuges (RMP)════════════
ENGLISH VERSION (SPANISH TEXT AT THE END)
════════════
MID-TERM REFUGES (RMP) V1.0
The Mid-Term Refuges (RMP) indicator plots psychological support and resistance levels based on a methodology used by institutional investors since auction floor days. RMP automatically calculates 31 key levels (refuges) from the asset's annual opening price.
METHODOLOGY
• RESISTANCES (R1-R15): Projected at +10% intervals from annual opening, identifying selling pressure zones
• SUPPORTS (S1-S15): Calculated at -10% intervals, marking buyer interest areas
• ANNUAL OPENING PRICE (PA): Central reference level
The 10% intervals represent significant psychological thresholds that capture market indecision, consolidation, or reversal moments. When critical mass of participants uses these same levels, they become self-fulfilling prophecies.
VALIDATION
Test RMP effectiveness on your assets:
1. Use TradingView's Bar Replay
2. Review periods with +/-10% movements
3. Count price reactions at refuge levels
4. Higher frequency = higher institutional usage probability
ECOSYSTEM INTEGRATION
RMP integrates with our other indicators:
• RLP/RLPS (Long-Term Refuges): Structural analysis
• RS (Weekly Refuges): Short-term tactical analysis
FEATURES
• 31 configurable levels with individual switches
• Professional visualization with formatted prices
• Complete customization (colors, widths, styles)
• Native integration with TradingView's price scale
• Bar Replay compatible
PHILOSOPHY
RMP doesn't predict the future—it observes price action at objective levels. No oscillators, no curve-fitting. Pure technical analysis based on auction floor techniques proven over decades.
══════════════
VERSION EN ESPANIOL
══════════════
(La version completa con entrada de datos y textos de ayuda en espaniol (Roman Paladino) estara proximamente disponible en mi repositorio GH: aj-poolom-maasewal)
REFUGIOS DE MEDIANO PLAZO (RMP) V1.0
El indicador Refugios de Mediano Plazo (RMP) traza niveles psicologicos de soporte y resistencia basados en una metodologia utilizada por inversores institucionales desde los tiempos de los pisos de subastas. RMP calcula automaticamente 31 niveles clave (refugios) a partir del precio de apertura anual del activo.
METODOLOGIA
• RESISTENCIAS (R1-R15): Proyectadas a intervalos de +10% desde la apertura anual, identificando zonas de presion vendedora
• SOPORTES (S1-S15): Calculados a intervalos de -10%, marcando areas de interes comprador
• PRECIO DE APERTURA ANUAL (PA): Nivel de referencia central
Los intervalos del 10% representan umbrales psicologicos significativos que capturan momentos de indecision, consolidacion o reversion del mercado. Cuando una masa critica de participantes utiliza estos mismos niveles, se convierten en profecias autocumplidas.
VALIDACION
Pruebe la efectividad de RMP en sus activos:
1. Use el Reproductor de Barras de TradingView
2. Revise periodos con movimientos de +/-10%
3. Cuente las reacciones del precio en los niveles refugio
4. Mayor frecuencia = mayor probabilidad de uso institucional
INTEGRACION CON NUESTRO ECOSISTEMA DE INDICADORES DE REFUGIOS CON ACCION DEL PRECIO
(Disponibles para descarga proximamente)
Este indicador RMP se complementa fuertemente con el uso de los siguientes indicadores nuestros:
• RLP (Refugios de Largo Plazo): Busqueda y definicion automatizada de fases preponderantes.
• RLPS (Refugios de Largo Plazo Simplificado): Analisis en base a fase preponderante ya conocida.
• RS (Refugios Semanales): Analisis tactico de fases de corto plazo.
CARACTERISTICAS
• 31 niveles configurables con switches individuales
• Visualizacion profesional con precios formateados
• Personalizacion completa (colores, grosores, estilos)
• Integracion nativa con la escala de precios de TradingView
• Compatible con Reproductor de Barras
FILOSOFIA
RMP no predice el futuro. Observa la accion del precio en niveles objetivos. Sin osciladores, sin sobreajustes. Analisis tecnico puro basado en tecnicas de piso de subastas probadas durante decadas.
════════════════════════════════════════════════════════════
Desarrollado por: aj p'oolom masewal
Codificado con la colaboracion de: Claude Sonnet 4.5 de Anthropic
════════════════════════════════════════════════════════════
Archetype Zones, Defense Confirmation OverlayArchetype Zones + Defense Confirmation Overlay (MST) v1.0
This indicator is a time-structure execution overlay built for fast intraday futures trading. It highlights a curated set of high-ROI market timing windows (MST / America/Denver) and applies lightweight “not-too-strict” logic to classify each window as a likely:
Driver (initiative / directional push)
Continuation (follow-through of the parent move)
Trap (liquidity sweep + stall / possible flip)
Rotation (VWAP churn + contraction / stand down conditions)
On top of the time zones, it includes a Defense Confirmation Overlay designed for 1–5 second execution, helping identify moments when price shows “defense behavior” aligned with the expected directional bias of the active zone.
What It Does
1) Time-Based Archetype Zones (MST)
The script shades key intraday windows with a configurable soft buffer (+/- minutes) so the user can anticipate action before/after the exact minute.
Each zone can output an expected directional lean using:
Displacement vs. window span
VWAP location
VWAP crossing count (chop filter)
Basic structure checks for continuation
Sweep/stall logic for trap detection
Churn + contraction logic for rotation regimes
2) Expected Direction Engine
When a zone is active, the indicator calculates the “expected direction” for that specific zone using the archetype logic.
This expected direction is used as the baseline for the Defense module, so defense markers are context-aware.
3) Defense Confirmation Overlay (Execution Layer)
Defense is intended to represent institutional-style protection or rejection inside an active zone.
It looks for:
Strong wick dominance (wick as a percentage of total candle span)
Close location in the top/bottom portion of the candle
Optional absorption highlight: volume spike plus compressed candle span (high volume, low range)
When conditions align with the zone’s expected direction, the script can show:
Defense wick markers (below-bar for buy defense, above-bar for sell defense)
Absorption highlight on bars showing absorption behavior
4) Micro Defense Box
When a defense event triggers, the script can draw a small “defense box” at the defended level with tick-padding.
The box extends right until invalidated (price closes through the box boundary).
This provides a clean visual reference for:
Defended price location
Invalidation threshold
Follow-through behavior after defense
5) Entry Permission Label
When Defense + Absorption occur together during an active zone, the script can print an “Entry Permission” label to highlight that multiple confirmations aligned.
Inputs and Customization
Zone buffer (+/- minutes)
Zone shading opacity
Toggle zone labels, defense markers, absorption highlighting, defense box, permission label
Adjustable “not too strict” archetype thresholds (designed for practical use, not curve-fitting)
Adjustable defense wick/close thresholds and absorption parameters
Notes and Disclaimer
This indicator does not predict the market with certainty.
It is designed to provide time-structure context plus execution confirmation, not standalone buy/sell signals.
It is best used alongside trend/bias tools (VWAP, structure, higher-timeframe levels, key session highs/lows).
Always test settings on your market and timeframe before live use.
MA Crossover with R SquaredThis indicator enhances the classic Moving Average (MA) crossover strategy with statistical filtering and prediction capabilities.
Let me explain what it does:
Instead of just showing when a fast MA crosses above/below a slow MA, this indicator adds R² (R-squared) filtering to identify higher-quality crossovers and predicts future crossovers.
What is R²?
R² (Coefficient of Determination) is a statistical measure that shows how well one variable explains the movement of another variable. In simpler terms:
R² = 1.0: Perfect relationship - 100% of the movement in one MA is explained by the other MA
R² = 0.8: Strong relationship - 80%
R² = 0.5: Moderate relationship - 50%
R² = 0.0: No relationship - 0%
Imagine two cars driving on a highway:
High R² (0.9): Both cars are in the same lane, moving together consistently
Low R² (0.3): One car is weaving between lanes while the other stays straight - poor coordination.
Traditional MA crossovers often generate false signals during:
Choppy markets (price bouncing around)
Sideways/ranging markets
Low volatility periods
News events causing temporary spikes
The R² Solution:
R² acts as a "quality filter" that answers: "How meaningful this crossover is?"
What this means:
Before R² filtering: Every crossover generates a signal
After R² filtering: Only crossovers with R² > threshold generate signals
Result: Fewer but higher-quality signals.
MARKET REGIME DETECTION
High R² (> 0.7): Strong trending market - MA crossovers are reliable
Medium R² (0.4-0.7): Moderate trending - use with caution
Low R² (< 0.4): Choppy/range-bound market - avoid MA crossover signals
Increasing R²: MAs are converging/moving together more closely
Decreasing R²: MAs are diverging/losing coordination
Sudden R² drop: Potential market regime change.
Why Square the Correlation?
Correlation: Measures direction AND strength (-1 to +1)
R²: Measures strength ONLY (0 to 1)
In trading: We care about relationship strength, not direction
Direction is already indicated by crossover type (bullish/bearish)
Real-World Interpretation:
If R² = 0.64, it means:
64% of the variation in the fast MA is explained by the slow MA
36% is "noise" or unexplained movement
The MAs are moderately coordinated.
R² Trend Confirmation:
Entry: When crossover occurs AND R² is above threshold
Confirmation: R² continues rising after entry
Exit: R² drops below threshold (relationship weakening)
Multi-Timeframe R² Analysis
Check R² on higher timeframe for trend context
Use current timeframe for entry signals
Example: Daily R² > 0.7 gives bullish bias, use 1-hour for entries.
R² LIMITATIONS & CAUTIONS
1. Lagging Nature
R² is calculated from past data
By the time R² is high, the trend may already be established
2. Not a Standalone Indicator
R² should confirm other signals, not generate them alone
Always combine with price action, volume, support/resistance
3. Curve Fitting Risk
Don't over-optimize R² thresholds on historical data
What worked in the past may not work in the future
Use R² as a filter, not a predictor
4. Market-Specific Behavior
R² thresholds that work in trending stocks may fail in Forex
Cryptocurrencies may require different R² settings than commodities
Always test on your specific market/instrument
Before Taking Any Signal:
✅ Does the crossover have a colored circle? (R² > threshold)
✅ What's the R² number shown? (Higher = better)
✅ Is R² rising or falling? (Rising = strengthening relationship)
✅ Check history table - what happened with similar R² values?
✅ Consider prediction - does it align with current signal?
Simple R² Rules of Thumb:
R² > 0.8: Excellent signal quality
R² 0.6-0.8: Good signal quality
R² 0.4-0.6: Moderate - use additional confirmation
R² < 0.4: Poor - avoid or use extreme caution
Think of R² as:
A quality control inspector for MA crossovers
A relationship therapist for your moving averages
A statistical bouncer that only lets strong signals through
Higher win rate + Better risk/reward = More profitable trading
This script transforms the basic "when lines cross" approach into a sophisticated, statistically-validated trading system. R² is the secret sauce that separates random crossovers (Golden/Death) from meaningful trend changes.
DISCLAIMER: This information is provided for educational purposes only and should not be considered financial, investment, or trading advice. Please do boost if you like it. Happy Trading.
Ultimate MACD [captainua]Ultimate MACD - Comprehensive MACD Trading System
Overview
This indicator combines traditional MACD calculations with advanced features including divergence detection, volume analysis, histogram analysis tools, regression forecasting, strong top/bottom detection, and multi-timeframe confirmation to provide a comprehensive MACD-based trading system. The script calculates MACD using configurable moving average types (EMA, SMA, RMA, WMA) and applies various smoothing methods to reduce noise while maintaining responsiveness. The combination of these features creates a multi-layered confirmation system that reduces false signals by requiring alignment across multiple indicators and timeframes.
Core Calculations
MACD Calculation:
The script calculates MACD using the standard formula: MACD Line = Fast MA - Slow MA, Signal Line = Moving Average of MACD Line, Histogram = MACD Line - Signal Line. The default parameters are Fast=12, Slow=26, Signal=9, matching the traditional MACD settings. The script supports four moving average types:
- EMA (Exponential Moving Average): Standard and most responsive, default choice
- SMA (Simple Moving Average): Equal weight to all periods
- RMA (Wilder's Moving Average): Smoother, less responsive
- WMA (Weighted Moving Average): Recent prices weighted more heavily
The price source can be configured as Close (standard), Open, High, Low, HL2, HLC3, or OHLC4. Alternative sources provide different sensitivity characteristics for various trading strategies.
Configuration Presets:
The script includes trading style presets that automatically configure MACD parameters:
- Scalping: Fast/Responsive settings (8,18,6 with minimal smoothing)
- Day Trading: Balanced settings (10,22,7 with minimal smoothing)
- Swing Trading: Standard settings (12,26,9 with moderate smoothing)
- Position Trading: Smooth/Conservative settings (15,35,12 with higher smoothing)
- Custom: Full manual control over all parameters
Histogram Smoothing:
The histogram can be smoothed using EMA to reduce noise and filter minor fluctuations. Smoothing length of 1 = raw histogram (no smoothing), higher values (3-5) = smoother histogram. Increased smoothing reduces noise but may delay signals slightly.
Percentage Mode:
MACD values can be converted to percentage of price (MACD/Close*100) for cross-instrument comparison. This is useful when comparing MACD signals across instruments with different price levels (e.g., BTC vs ETH). The percentage mode normalizes MACD values, making them comparable regardless of instrument price.
MACD Scale Factor:
A scale factor multiplier (default 1.0) allows adjusting MACD display size for better visibility. Use 0.3-0.5 if MACD appears too compressed, or 2.0-3.0 if too small.
Dynamic Overbought/Oversold Levels:
Overbought and oversold levels are calculated dynamically based on MACD's mean and standard deviation over a lookback period. The formula: OB = MACD Mean + (StdDev × OB Multiplier), OS = MACD Mean - (StdDev × OS Multiplier). This adapts to current market conditions, widening in volatile markets and narrowing in calm markets. The lookback period (default 20) controls how quickly the levels adapt: longer periods (30-50) = more stable levels, shorter (10-15) = more responsive.
OB/OS Background Coloring:
Optional background coloring can highlight the entire panel when MACD enters overbought or oversold territory, providing prominent visual indication of extreme conditions. The background colors are drawn on top of the main background to ensure visibility.
Divergence Detection
Regular Divergence:
The script uses the MACD line (not histogram) for divergence detection, which provides more reliable signals. Bullish divergence: Price makes a lower low while MACD line makes a higher low. Bearish divergence: Price makes a higher high while MACD line makes a lower high. Divergences often precede reversals and are powerful reversal signals.
Pivot-Based Divergence:
The divergence detection uses actual pivot points (pivotlow/pivothigh) instead of simple lowest/highest comparisons. This provides more accurate divergence detection by identifying significant pivot lows/highs in both price and MACD line. The pivot-based method compares two recent pivot points: for bullish divergence, price makes a lower low while MACD makes a higher low at the pivot points. This method reduces false divergences by requiring actual pivot points rather than just any low/high within a period.
The pivot lookback parameters (left and right) control how many bars on each side of a pivot are required for confirmation. Higher values = more conservative pivot detection.
Hidden Divergence:
Continuation patterns that signal trend continuation rather than reversal. Bullish hidden divergence: Price makes a higher low but MACD makes a lower low. Bearish hidden divergence: Price makes a lower high but MACD makes a higher high. These patterns indicate the trend is likely to continue in the current direction.
Zero-Line Filter:
The "Don't Touch Zero Line" option ensures divergences occur in proper context: for bullish divergence, MACD must stay below zero; for bearish divergence, MACD must stay above zero. This filters out divergences that occur in neutral zones.
Range Filtering:
Minimum and maximum lookback ranges control the time window between pivots to consider for divergence. This helps filter out divergences that are too close together (noise) or too far apart (less relevant).
Volume Confirmation System
Volume threshold filtering requires current volume to exceed the volume SMA multiplied by the threshold factor. The formula: Volume Confirmed = Volume > (Volume SMA × Threshold). If the threshold is set to 1.0 or lower, volume confirmation is effectively disabled (always returns true). This allows you to use the indicator without volume filtering if desired. Volume confirmation significantly increases divergence and signal reliability.
Volume Climax and Dry-Up Detection:
The script can mark bars with extremely high volume (volume climax) or extremely low volume (volume dry-up). Volume climax indicates potential reversal points or strong momentum continuation. Volume dry-up indicates low participation and may produce unreliable signals. These markers use standard deviation multipliers to identify extreme volume conditions.
Zero-Line Cross Detection
MACD zero-line crosses indicate momentum shifts: above zero = bullish momentum, below zero = bearish momentum. The script includes alert conditions for zero-line crosses with cooldown protection to prevent alert spam. Zero-line crosses can provide early warning signals before MACD crosses the signal line.
Histogram Analysis Tools
Histogram Moving Average:
A moving average applied to the histogram itself helps identify histogram trend direction and acts as a signal line for histogram movements. Supports EMA, SMA, RMA, and WMA types. Useful for identifying when histogram momentum is strengthening or weakening.
Histogram Bollinger Bands:
Bollinger Bands are applied to the MACD histogram instead of price. The calculation: Basis = SMA(Histogram, Period), StdDev = stdev(Histogram, Period), Upper = Basis + (StdDev × Deviation Multiplier), Lower = Basis - (StdDev × Deviation Multiplier). This creates dynamic zones around the histogram that adapt to histogram volatility. When the histogram touches or exceeds the bands, it indicates extreme conditions relative to recent histogram behavior.
Stochastic MACD (StochMACD):
Stochastic MACD applies the Stochastic oscillator formula to the MACD histogram instead of price. This normalizes the histogram to a 0-100 scale, making it easier to identify overbought/oversold conditions on the histogram itself. The calculation: %K = ((Histogram - Lowest Histogram) / (Highest Histogram - Lowest Histogram)) × 100. %K is smoothed, and %D is calculated as the moving average of smoothed %K. Standard thresholds are 80 (overbought) and 20 (oversold).
Regression Forecasting
The script includes advanced regression forecasting that predicts future MACD values using mathematical models. This helps anticipate potential MACD movements and provides forward-looking context for trading decisions.
Regression Types:
- Linear: Simple trend line (y = mx + b) - fastest, works well for steady trends
- Polynomial: Quadratic curve (y = ax² + bx + c) - captures curvature in MACD movement
- Exponential Smoothing: Weighted average with more weight on recent values - responsive to recent changes
- Moving Average: Uses difference between short and long MA to estimate trend - stable and smooth
Forecast Horizon:
Number of bars to forecast ahead (default 5, max 50 for linear/MA, max 20 for polynomial due to performance). Longer horizons predict further ahead but may be less accurate.
Confidence Bands:
Optional upper/lower bands around forecast show prediction uncertainty based on forecast error (standard deviation of prediction vs actual). Wider bands = higher uncertainty. The confidence level multiplier (default 1.5) controls band width.
Forecast Display:
Forecast appears as dotted lines extending forward from current bar, with optional confidence bands. All forecast values respect percentage mode and scale factor settings.
Strong Top/Bottom Signals
The script detects strong recovery from extreme MACD levels, generating "sBottom" and "sTop" signals. These identify significant reversal potential when MACD recovers substantially from overbought/oversold extremes.
Strong Bottom (sBottom):
Triggered when:
1. MACD was at or near its lowest point in the bottom period (default 10 bars)
2. MACD was in or near the oversold zone
3. MACD has recovered by at least the threshold amount (default 0.5) from the lowest point
4. Recovery persists for confirmation bars (default 2 consecutive bars)
5. MACD has moved out of the oversold zone
6. Volume is above average
7. All enabled filters pass
8. Minimum bars have passed since last signal (reset period, default 5 bars)
Strong Top (sTop):
Triggered when:
1. MACD was at or near its highest point in the top period (default 7 bars)
2. MACD was in or near the overbought zone
3. MACD has declined by at least the threshold amount (default 0.5) from the highest point
4. Decline persists for confirmation bars (default 2 consecutive bars)
5. MACD has moved out of the overbought zone
6. Volume is above average
7. All enabled filters pass
8. Minimum bars have passed since last signal (reset period, default 5 bars)
Label Placement:
sTop/sBottom labels appear on the historical bar where the actual extreme occurred (not on current bar), showing the exact MACD value at that extreme. Labels respect the unified distance checking system to prevent overlaps with Buy/Sell Strength labels.
Signal Strength Calculation
The script calculates a composite signal strength score (0-100) based on multiple factors:
- MACD distance from signal line (0-50 points): Larger separation indicates stronger signal
- Volume confirmation (0-15 points): Volume above average adds points
- Secondary timeframe alignment (0-15 points): Higher timeframe agreement adds points
- Distance from zero line (0-20 points): Closer to zero can indicate stronger reversal potential
Higher scores (70+) indicate stronger, more reliable signals. The signal strength is displayed in the statistics table and can be used as a filter to only accept signals above a threshold.
Smart Label Placement System
The script includes an advanced label placement system that tracks MACD extremes and places Buy/Sell Strength labels at optimal locations:
Label Placement Algorithm:
- Labels appear on the current bar at confirmation (not on historical extreme bars), ensuring they're visible when the signal is confirmed
- The system tracks pending signals when MACD enters OB/OS zones or crosses the signal line
- During tracking, the system continuously searches for the true extreme (lowest MACD for buys, highest MACD for sells) within a configurable historical lookback period
- Labels are only finalized when: (1) MACD exits the OB/OS zone, (2) sufficient bars have passed (2x minimum distance), (3) MACD has recovered/declined by a configurable percentage from the extreme (default 15%), and (4) tracking has stopped (no better extreme found)
Label Spacing and Overlap Prevention:
- Minimum Bars Between Labels: Base distance requirement (default 5 bars)
- Label Spacing Multiplier: Scales the base distance (default 1.5x) for better distribution. Higher values = more spacing between labels
- Effective distance = Base Distance × Spacing Multiplier (e.g., 5 × 1.5 = 7.5 bars minimum)
- Unified distance checking prevents overlaps between all label types (Buy Strength, Sell Strength, sTop, sBottom)
Strength-Based Filtering:
- Label Strength Minimum (%): Only labels with strength at or above this threshold are displayed (default 75%)
- When multiple potential labels are close together, the system automatically compares strengths and keeps only the strongest one
- This ensures only the most significant signals are displayed, reducing chart clutter
Zero Line Polarity Enforcement:
- Enforce Zero Line Polarity (default enabled): Ensures labels follow traditional MACD interpretation
- Buy Strength labels only appear when the tracked extreme MACD value was below zero (negative territory)
- Sell Strength labels only appear when the tracked extreme MACD value was above zero (positive territory)
- This prevents counter-intuitive labels (e.g., Buy labels above zero line) and aligns with standard MACD trading principles
Recovery/Decline Confirmation:
- Recovery/Decline Confirm (%): Percent move away from the extreme required before finalizing (default 15%)
- For Buy labels: MACD must recover by at least this percentage from the tracked bottom
- For Sell labels: MACD must decline by at least this percentage from the tracked top
- Higher values = more confirmation required, fewer but more reliable labels
Historical Lookback:
- Historical Lookback for Label Placement: Number of bars to search for true extremes (default 20)
- The system searches within this period to find the actual lowest/highest MACD value
- Higher values analyze more history but may be slower; lower values are faster but may miss some extremes
Cross Quality Score
The script calculates a MACD cross quality score (0-100) that rates crossover quality based on:
- Cross angle (0-50 points): Steeper crosses = stronger signals
- Volume confirmation (0-25 points): Volume above average adds points
- Distance from zero line (0-25 points): Crosses near zero line are stronger
This score helps identify high-quality crossovers and can be used as a filter to only accept signals meeting minimum quality threshold.
Filtering System
Histogram Filter:
Requires histogram to be above zero for buy signals, below zero for sell signals. Ensures momentum alignment before generating signals.
Signal Strength Filter:
Requires minimum signal strength score for signals. Higher threshold = only strongest signals pass. This combines multiple confirmation factors into a single filter.
Cross Quality Filter:
Requires minimum cross quality score for signals. Rates crossover quality based on angle, volume, momentum, and distance from zero. Only signals meeting minimum quality threshold will be generated.
All filters use the pattern: filterResult = not filterEnabled OR conditionMet. This means if a filter is disabled, it always passes (returns true). Filters can be combined, and all must pass for a signal to fire.
Multi-Timeframe Analysis
The script can display MACD from a secondary (higher) timeframe and use it for confirmation. When secondary timeframe confirmation is enabled, signals require the higher timeframe MACD to align (bullish/bearish) with the signal direction. This ensures signals align with the larger trend context, reducing counter-trend trades.
Secondary Timeframe MACD:
The secondary timeframe MACD uses the same calculation parameters (fast, slow, signal, MA type) as the main MACD but from a higher timeframe. This provides context for the current timeframe's MACD position relative to the larger trend. The secondary MACD lines are displayed on the chart when enabled.
Noise Filtering
Noise filtering hides small histogram movements below a threshold. This helps focus on significant moves and reduces chart clutter. When enabled, only histogram movements above the threshold are displayed. Typical threshold values are 0.1-0.5 for most instruments, depending on the instrument's price range and volatility.
Signal Debounce
Signal debounce prevents duplicate MACD cross signals within a short time period. Useful when MACD crosses back and forth quickly, creating multiple signals. Debounce ensures only one signal per period, reducing signal spam during choppy markets. This is separate from alert cooldown, which applies to all alert types.
Background Color Modes
The script offers three background color modes:
- Dynamic: Full MACD heatmap based on OB/OS conditions, confidence, and momentum. Provides rich visual feedback.
- Monotone: Soft neutral background but still allows overlays (OB/OS zones). Keeps the chart clean without overpowering candles.
- Off: No MACD background (only overlays and plots). Maximum chart cleanliness.
When OB/OS background colors are enabled, they are drawn on top of the main background to ensure visibility.
Statistics Table
A real-time statistics table displays current MACD values, signal strength, distance from zero line, secondary timeframe alignment, volume confirmation status, and all active filter statuses. The table dynamically adjusts to show only enabled features, keeping it clean and relevant. The table position can be configured (Top Left, Top Right, Bottom Left, Bottom Right).
Performance Statistics Table
An optional performance statistics table shows comprehensive filter diagnostics:
- Total buy/sell signals (raw crossover count before filters)
- Filtered buy/sell signals (signals that passed all filters)
- Overall pass rates (percentage of signals that passed filters)
- Rejected signals count
- Filter-by-filter rejection diagnostics showing which filters rejected how many signals
This table helps optimize filter settings by showing which filters are most restrictive and how they impact signal frequency. The diagnostics format shows rejections as "X B / Y S" (X buy signals rejected, Y sell signals rejected) or "Disabled" if the filter is not active.
Alert System
The script includes separate alert conditions for each signal type:
- MACD Cross: MACD line crosses above/below Signal line (with or without secondary confirmation)
- Zero-Line Cross: MACD crosses above/below zero
- Divergence: Regular and hidden divergence detections
- Secondary Timeframe: Higher timeframe MACD crosses
- Histogram MA Cross: Histogram crosses above/below its moving average
- Histogram Zero Cross: Histogram crosses above/below zero
- StochMACD: StochMACD overbought/oversold entries and %K/%D crosses
- Histogram BB: Histogram touches/breaks Bollinger Bands
- Volume Events: Volume climax and dry-up detections
- OB/OS: MACD entry/exit from overbought/oversold zones
- Strong Top/Bottom: sTop and sBottom signal detections
Each alert type has its own cooldown system to prevent alert spam. The cooldown requires a minimum number of bars between alerts of the same type, reducing duplicate alerts during volatile periods. Alert types can be filtered to only evaluate specific alert types (All, MACD Cross, Zero Line, Divergence, Secondary Timeframe, Histogram MA, Histogram Zero, StochMACD, Histogram BB, Volume Events, OB/OS, Strong Top/Bottom).
How Components Work Together
MACD crossovers provide the primary signal when the MACD line crosses the Signal line. Zero-line crosses indicate momentum shifts and can provide early warning signals. Divergences identify potential reversals before they occur.
Volume confirmation ensures signals occur with sufficient market participation, filtering out low-volume false breakouts. Histogram analysis tools (MA, Bollinger Bands, StochMACD) provide additional context for signal reliability and identify significant histogram zones.
Signal strength combines multiple confirmation factors into a single score, making it easy to filter for only the strongest signals. Cross quality score rates crossover quality to identify high-quality setups. Multi-timeframe confirmation ensures signals align with higher timeframe trends, reducing counter-trend trades.
Usage Instructions
Getting Started:
The default configuration shows MACD(12,26,9) with standard EMA calculations. Start with default settings and observe behavior, then customize settings to match your trading style. You can use configuration presets for quick setup based on your trading style.
Customizing MACD Parameters:
Adjust Fast Length (default 12), Slow Length (default 26), and Signal Length (default 9) based on your trading timeframe. Shorter periods (8,17,7) for faster signals, longer (15,30,12) for smoother signals. You can change the moving average type: EMA for responsiveness, RMA for smoothness, WMA for recent price emphasis.
Price Source Selection:
Choose Close (standard), or alternative sources (HL2, HLC3, OHLC4) for different sensitivity. HL2 uses the midpoint of the high-low range, HLC3 and OHLC4 incorporate more price information.
Histogram Smoothing:
Set smoothing to 1 for raw histogram (no smoothing), or increase (3-5) for smoother histogram that reduces noise. Higher smoothing reduces false signals but may delay signals slightly.
Percentage Mode:
Enable percentage mode when comparing MACD across instruments with different price levels. This normalizes MACD values, making them directly comparable.
Dynamic OB/OS Levels:
The dynamic thresholds automatically adapt to volatility. Adjust the multipliers (default 1.5) to fine-tune sensitivity: higher values (2.0-3.0) = more extreme thresholds (fewer signals), lower (1.0-1.5) = more frequent signals. Adjust the lookback period to control how quickly levels adapt. Enable OB/OS background colors for visual indication of extreme conditions.
Volume Confirmation:
Set volume threshold to 1.0 (default, effectively disabled) or higher (1.2-1.5) for standard confirmation. Higher values require more volume for confirmation. Set to 0.1 to completely disable volume filtering.
Filters:
Enable filters gradually to find your preferred balance. Start with histogram filter for basic momentum alignment, then add signal strength filter (threshold 50+) for moderate signals, then cross quality filter (threshold 50+) for high-quality crossovers. Combine filters for highest-quality signals but expect fewer signals.
Divergence:
Enable divergence detection and adjust pivot lookback parameters. Pivot-based divergence provides more accurate detection using actual pivot points. Hidden divergence is useful for trend-following strategies. Adjust range parameters to filter divergences by time window.
Zero-Line Crosses:
Zero-line cross alerts are automatically available when alerts are enabled. These provide early warning signals for momentum shifts.
Histogram Analysis Tools:
Enable Histogram Moving Average to see histogram trend direction. Enable Histogram Bollinger Bands to identify extreme histogram zones. Enable Stochastic MACD to normalize histogram to 0-100 scale for overbought/oversold identification.
Multi-Timeframe:
Enable secondary timeframe MACD to see higher timeframe context. Enable secondary confirmation to require higher timeframe alignment for signals.
Signal Strength:
Signal strength is automatically calculated and displayed in the statistics table. Use signal strength filter to only accept signals above a threshold (e.g., 50 for moderate, 70+ for strong signals only).
Smart Label Placement:
Configure label placement settings to control label appearance and quality:
- Label Strength Minimum (%): Set threshold (default 75%) to show only strong signals. Higher = fewer, stronger labels
- Label Spacing Multiplier: Adjust spacing (default 1.5x) for better distribution. Higher = more spacing between labels
- Recovery/Decline Confirm (%): Set confirmation requirement (default 15%). Higher = more confirmation, fewer labels
- Enforce Zero Line Polarity: Enable (default) to ensure Buy labels only appear when tracked extreme was below zero, Sell labels only when above zero
- Historical Lookback: Adjust search period (default 20 bars) for finding true extremes. Higher = more history analyzed
Cross Quality:
Cross quality score is automatically calculated for crossovers. Use cross quality filter to only accept high-quality crossovers (threshold 50+ for moderate, 70+ for high quality).
Alerts:
Set up alerts for your preferred signal types. Enable alert cooldown (default enabled, 5 bars) to prevent alert spam. Use alert type filter to only evaluate specific alert types (All, MACD Cross, Zero Line, Divergence, Secondary Timeframe, Histogram MA, Histogram Zero, StochMACD, Histogram BB, Volume Events, OB/OS, Strong Top/Bottom). Each signal type has its own alert condition, so you can be selective about which signals trigger alerts.
Visual Elements and Signal Markers
The script uses various visual markers to indicate signals and conditions:
- MACD Line: Green when above signal (bullish), red when below (bearish) if dynamic colors enabled. Optional black outline for enhanced visibility
- Signal Line: Orange line with optional black outline for enhanced visibility
- Histogram: Color-coded based on direction and momentum (green for bullish rising, lime for bullish falling, red for bearish falling, orange for bearish rising)
- Zero Line: Horizontal reference line at MACD = 0
- Fill to Zero: Green/red semi-transparent fill between MACD line and zero line showing bullish/bearish territory
- Fill Between OB/OS: Blue semi-transparent fill between overbought/oversold thresholds highlighting neutral zone
- OB/OS Background Colors: Background coloring when MACD enters overbought/oversold zones
- Background Colors: Dynamic or monotone backgrounds indicating MACD state, or custom chart background
- Divergence Labels: "🐂" for bullish, "🐻" for bearish, "H Bull" for hidden bullish, "H Bear" for hidden bearish
- Divergence Lines: Colored lines connecting pivot points when divergences are detected
- Volume Climax Markers: ⚡ symbol for extremely high volume
- Volume Dry-Up Markers: 💧 symbol for extremely low volume
- Buy/Sell Strength Labels: Show signal strength percentage (e.g., "Buy Strength: 75%")
- Strong Top/Bottom Labels: "sTop" and "sBottom" for extreme level recoveries
- Secondary MACD Lines: Purple lines showing higher timeframe MACD
- Histogram MA: Orange line showing histogram moving average
- Histogram BB: Blue bands around histogram showing extreme zones
- StochMACD Lines: %K and %D lines with overbought/oversold thresholds
- Regression Forecast: Dotted blue lines extending forward with optional confidence bands
Signal Priority and Interpretation
Signals are generated independently and can occur simultaneously. Higher-priority signals generally indicate stronger setups:
1. MACD Cross with Multiple Filters - Highest priority: Requires MACD crossover plus all enabled filters (histogram, signal strength, cross quality) and secondary timeframe confirmation if enabled. These are the most reliable signals.
2. Zero-Line Cross - High priority: Indicates momentum shift. Can provide early warning signals before MACD crosses the signal line.
3. Divergence Signals - Medium-High priority: Pivot-based divergence is more reliable than simple divergence. Hidden divergence indicates continuation rather than reversal.
4. MACD Cross with Basic Filters - Medium priority: MACD crosses signal line with basic histogram filter. Less reliable alone but useful when combined with other confirmations.
Best practice: Wait for multiple confirmations. For example, a MACD crossover combined with divergence, volume confirmation, and secondary timeframe alignment provides the strongest setup.
Chart Requirements
For proper script functionality and compliance with TradingView requirements, ensure your chart displays:
- Symbol name: The trading pair or instrument name should be visible
- Timeframe: The chart timeframe should be clearly displayed
- Script name: "Ultimate MACD " should be visible in the indicator title
These elements help traders understand what they're viewing and ensure proper script identification. The script automatically includes this information in the indicator title and chart labels.
Performance Considerations
The script is optimized for performance:
- Calculations use efficient Pine Script functions (ta.ema, ta.sma, etc.) which are optimized by TradingView
- Conditional execution: Features only calculate when enabled
- Label management: Old labels are automatically deleted to prevent accumulation
- Array management: Divergence label arrays are limited to prevent memory accumulation
The script should perform well on all timeframes. On very long historical data with many enabled features, performance may be slightly slower, but it remains usable.
Known Limitations and Considerations
- Dynamic OB/OS levels can vary significantly based on recent MACD volatility. In very volatile markets, levels may be wider; in calm markets, they may be narrower.
- Volume confirmation requires sufficient historical volume data. On new instruments or very short timeframes, volume calculations may be less reliable.
- Higher timeframe MACD uses request.security() which may have slight delays on some data feeds.
- Stochastic MACD requires the histogram to have sufficient history. Very short periods on new charts may produce less reliable StochMACD values initially.
- Divergence detection requires sufficient historical data to identify pivot points. Very short lookback periods may produce false positives.
Practical Use Cases
The indicator can be configured for different trading styles and timeframes:
Swing Trading:
Use MACD(12,26,9) with secondary timeframe confirmation. Enable divergence detection. Use signal strength filter (threshold 50+) and cross quality filter (threshold 50+) for higher-quality signals. Enable histogram analysis tools for additional context.
Day Trading:
Use MACD(8,17,7) or use "Day Trading" preset with minimal histogram smoothing for faster signals. Enable zero-line cross alerts for early signals. Use volume confirmation with threshold 1.2-1.5. Enable histogram MA for momentum tracking.
Trend Following:
Use MACD(12,26,9) or longer periods (15,30,12) for smoother signals. Enable secondary timeframe confirmation for trend alignment. Hidden divergence signals are useful for trend continuation entries. Use cross quality filter to identify high-quality crossovers.
Reversal Trading:
Focus on divergence detection (pivot-based for accuracy) combined with zero-line crosses. Enable volume confirmation. Use histogram Bollinger Bands to identify extreme histogram zones. Enable StochMACD for overbought/oversold identification.
Multi-Timeframe Analysis:
Enable secondary timeframe MACD to see context from larger timeframes. For example, use daily MACD on hourly charts to understand the larger trend context. Enable secondary confirmation to require higher timeframe alignment for signals.
Practical Tips and Best Practices
Getting Started:
Start with default settings and observe MACD behavior. The default configuration (MACD 12,26,9 with EMA) is balanced and works well across different markets. After observing behavior, customize settings to match your trading style. Consider using configuration presets for quick setup.
Reducing Repainting:
All signals are based on confirmed bars, minimizing repainting. The script uses confirmed bar data for all calculations to ensure backtesting accuracy.
Signal Quality:
MACD crosses with multiple filters provide the highest-quality signals because they require alignment across multiple indicators. These signals have lower frequency but higher reliability. Use signal strength scores to identify the strongest signals (70+). Use cross quality scores to identify high-quality crossovers (70+).
Filter Combinations:
Start with histogram filter for basic momentum alignment, then add signal strength filter for moderate signals, then cross quality filter for high-quality crossovers. Combining all filters significantly reduces false signals but also reduces signal frequency. Find your balance based on your risk tolerance.
Volume Filtering:
Set volume threshold to 1.0 (default, effectively disabled) or lower to effectively disable volume filtering if you trade instruments with unreliable volume data or want to test without volume confirmation. Standard confirmation uses 1.2-1.5 threshold.
MACD Period Selection:
Standard MACD(12,26,9) provides balanced signals suitable for most trading. Shorter periods (8,17,7) for faster signals, longer (15,30,12) for smoother signals. Adjust based on your timeframe and trading style. Consider using configuration presets for optimized settings.
Moving Average Type:
EMA provides balanced responsiveness with smoothness. RMA is smoother and less responsive. WMA gives more weight to recent prices. SMA gives equal weight to all periods. Choose based on your preference for responsiveness vs. smoothness.
Divergence:
Pivot-based divergence is more reliable than simple divergence because it uses actual pivot points. Hidden divergence indicates continuation rather than reversal, useful for trend-following strategies. Adjust pivot lookback parameters to control sensitivity.
Dynamic Thresholds:
Dynamic OB/OS thresholds automatically adapt to volatility. In volatile markets, thresholds widen; in calm markets, they narrow. Adjust the multipliers to fine-tune sensitivity. Enable OB/OS background colors for visual indication.
Zero-Line Crosses:
Zero-line crosses indicate momentum shifts and can provide early warning signals before MACD crosses the signal line. Enable alerts for zero-line crosses to catch these early signals.
Alert Management:
Enable alert cooldown (default enabled, 5 bars) to prevent alert spam. Use alert type filter to only evaluate specific alert types. Signal debounce (default enabled, 3 bars) prevents duplicate MACD cross signals during choppy markets.
Technical Specifications
- Pine Script Version: v6
- Indicator Type: Non-overlay (displays in separate panel below price chart)
- Repainting Behavior: Minimal - all signals are based on confirmed bars, ensuring accurate backtesting results
- Performance: Optimized with conditional execution. Features only calculate when enabled.
- Compatibility: Works on all timeframes (1 minute to 1 month) and all instruments (stocks, forex, crypto, futures, etc.)
- Edge Case Handling: All calculations include safety checks for division by zero, NA values, and boundary conditions. Alert cooldowns and signal debounce handle edge cases where conditions never occurred or values are NA.
Technical Notes
- All MACD values respect percentage mode conversion when enabled
- Volume confirmation uses cached volume SMA for performance
- Label arrays (divergence) are automatically limited to prevent memory accumulation
- Background coloring: OB/OS backgrounds are drawn on top of main background to ensure visibility
- All calculations are optimized with conditional execution - features only calculate when enabled (performance optimization)
- Signal strength calculation combines multiple factors into a single score for easy filtering
- Cross quality calculation rates crossover quality based on angle, volume, and distance from zero
- Secondary timeframe MACD uses request.security() for higher timeframe data access
- Histogram analysis features (Bollinger Bands, MA, StochMACD) provide additional context beyond basic MACD signals
- Statistics table dynamically adjusts to show only enabled features, keeping it clean and relevant
- Divergence detection uses MACD line (not histogram) for more reliable signals
- Configuration presets automatically optimize MACD parameters for different trading styles
- Smart label placement: Labels appear on current bar at confirmation, using strength from tracked extreme point
- Label spacing uses effective distance (base distance × spacing multiplier) for better distribution
- Zero line polarity enforcement ensures Buy labels only appear when tracked extreme MACD < 0, Sell labels only when tracked extreme MACD > 0
- Label finalization requires MACD exit from OB/OS zone, sufficient bars passed, and recovery/decline percentage confirmation
- Strength-based filtering automatically compares and keeps only the strongest label when multiple signals are close together
- Enhanced visualization: Line outlines drawn behind main lines for superior visibility (black default, configurable)
- Enhanced visualization: Fill between MACD and zero line provides instant visual feedback (green above, red below)
- Enhanced visualization: Fill between OB/OS thresholds highlights neutral zone when dynamic levels are active
- Custom chart background overrides background mode when enabled, allowing theme-consistent indicator panels






















