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
Regressionanalysis
Leavitt Convolution ProbabilityTechnical Analysis of Markets with Leavitt Market Projections and Associated Convolution Probability
The aim of this study is to present an innovative approach to market analysis based on the research "Leavitt Market Projections." This technical tool combines one indicator and a probability function to enhance the accuracy and speed of market forecasts.
Key Features
Advanced Indicators : the script includes the Convolution line and a probability oscillator, designed to anticipate market changes. These indicators provide timely signals and offer a clear view of price dynamics.
Convolution Probability Function : The Convolution Probability (CP) is a key element of the script. A significant increase in this probability often precedes a market decline, while a decrease in probability can signal a bullish move. The Convolution Probability Function:
At each bar, i, the linear regression routine finds the two parameters for the straight line: y=mix+bi.
Standard deviations can be calculated from the sequence of slopes, {mi}, and intercepts, {bi}.
Each standard deviation has a corresponding probability.
Their adjusted product is the Convolution Probability, CP. The construction of the Convolution Probability is straightforward. The adjusted product is the probability of one times 1− the probability of the other.
Customizable Settings : Users can define oversold and overbought levels, as well as set an offset for the linear regression calculation. These options allow for tailoring the script to individual trading strategies and market conditions.
Statistical Analysis : Each analyzed bar generates regression parameters that allow for the calculation of standard deviations and associated probabilities, providing an in-depth view of market dynamics.
The results from applying this technical tool show increased accuracy and speed in market forecasts. The combination of Convolution indicator and the probability function enables the identification of turning points and the anticipation of market changes.
Additional information:
Leavitt, in his study, considers the SPY chart.
When the Convolution Probability (CP) is high, it indicates that the probability P1 (related to the slope) is high, and conversely, when CP is low, P1 is low and P2 is high.
For the calculation of probability, an approximate formula of the Cumulative Distribution Function (CDF) has been used, which is given by: CDF(x)=21(1+erf(σ2x−μ)) where μ is the mean and σ is the standard deviation.
For the calculation of probability, the formula used in this script is: 0.5 * (1 + (math.sign(zSlope) * math.sqrt(1 - math.exp(-0.5 * zSlope * zSlope))))
Conclusions
This study presents the approach to market analysis based on the research "Leavitt Market Projections." The script combines Convolution indicator and a Probability function to provide more precise trading signals. The results demonstrate greater accuracy and speed in market forecasts, making this technical tool a valuable asset for market participants.
Logarithmic Regression Channel-Trend [BigBeluga]
This indicator utilizes logarithmic regression to track price trends and identify overbought and oversold conditions within a trend. It provides traders with a dynamic channel based on logarithmic regression, offering insights into trend strength and potential reversal zones.
🔵Key Features:
Logarithmic Regression Trend Tracking: Uses log regression to model price trends and determine trend direction dynamically.
f_log_regression(src, length) =>
float sumX = 0.0
float sumY = 0.0
float sumXSqr = 0.0
float sumXY = 0.0
for i = 0 to length - 1
val = math.log(src )
per = i + 1.0
sumX += per
sumY += val
sumXSqr += per * per
sumXY += val * per
slope = (length * sumXY - sumX * sumY) / (length * sumXSqr - sumX * sumX)
average = sumY / length
intercept = average - slope * sumX / length + slope
Regression-Based Channel: Plots a log regression channel around the price to highlight overbought and oversold conditions.
Adaptive Trend Colors: The color of the regression trend adjusts dynamically based on price movement.
Trend Shift Signals: Marks trend reversals when the log regression line cross the log regression line 3 bars back.
Dashboard for Key Insights: Displays:
- The regression slope (multiplied by 100 for better scale).
- The direction of the regression channel.
- The trend status of the logarithmic regression band.
🔵Usage:
Trend Identification: Observe the regression slope and channel direction to determine bullish or bearish trends.
Overbought/Oversold Conditions: Use the channel boundaries to spot potential reversal zones when price deviates significantly.
Breakout & Continuation Signals: Price breaking outside the channel may indicate strong trend continuation or exhaustion.
Confirmation with Other Indicators: Combine with volume or momentum indicators to strengthen trend confirmation.
Customizable Display: Users can modify the lookback period, channel width, midline visibility, and color preferences.
Logarithmic Regression Channel-Trend is an essential tool for traders who want a dynamic, regression-based approach to market trends while monitoring potential price extremes.
Bitcoin wave modelBitcoin wave model is based on the logarithmic regression model and the sinusoidal waves, induced by the halving events.
This chart presents the outcome of an in-depth analysis of the complete set of Bitcoin price data available from October 2009 to August 2023.
The central concept is that the logarithm of the Bitcoin price closely adheres to the logarithmic regression model. If we plot the logarithm of the price against the logarithm of time, it forms a nearly straight line.
The parameters of this model are provided in the script as follows: log (BTCUSD) = 1.48 + 5.44log(h).
The secondary concept involves employing the inherent time unit of Bitcoin instead of days:
'h' denotes a slightly adjusted time measurement intrinsic to the Bitcoin blockchain. It can be approximated as (days since the genesis block) * 0.0007. Precisely, 'h' is defined as follows: h = 0 at the genesis block, h = 1 at the first halving block, and so forth. In general, h = block height / 210,000.
Adjustments are made to account for variations in block creation time.
The third concept revolves around investigating halving waves triggered by supply shock events resulting from the halvings. These halvings occur at regular intervals in Bitcoin's native time 'h'. All halvings transpire when 'h' is an integer. These events induce waves with intervals denoted as h = 1.
Consequently, we can model these waves using a sin(2pih - a) function. The parameter determining the time shift is assessed as 'a = 0.4', aligning with earlier expectations for halving events and their subsequent outcomes.
The fourth concept introduces the notion that the waves gradually diminish in amplitude over the progression of "time h," diminishing at a rate of 0.7^h.
Lastly, we can create bands around the modeled sinusoidal waves. The upper band is derived by multiplying the sine wave by a factor of 3.1*(1-0.16)^h, while the lower band is obtained by dividing the sine wave by the same factor, 3.1*(1-0.16)^h.
The current bandwidth is 2.5x. That means that the upper band is 2.5 times the lower band. These bands are forming an exceptionally narrow predictive channel for Bitcoin. Consequently, a highly accurate estimation of the peak of the next cycle can be derived.
The prediction indicates that the zenith past the fourth halving, expected around the summer of 2025, could result in prices ranging between 200,000 and 240,000 USD.
Enjoy the mathematical insights!
Nadaraya-Watson: Envelope (Non-Repainting)Due to popular request, this is an envelope implementation of my non-repainting Nadaraya-Watson indicator using the Rational Quadratic Kernel. For more information on this implementation, please refer to the original indicator located here:
What is an Envelope?
In technical analysis, an "envelope" typically refers to a pair of upper and lower bounds that surrounds price action to help characterize extreme overbought and oversold conditions. Envelopes are often derived from a simple moving average (SMA) and are placed at a predefined distance above and below the SMA from which they were generated. However, envelopes do not necessarily need to be derived from a moving average; they can be derived from any estimator, including a kernel estimator such as Nadaraya-Watson.
How to use this indicator?
Overall, this indicator offers a high degree of flexibility, and the location of the envelope's bands can be adjusted by (1) tweaking the parameters for the Rational Quadratic Kernel and (2) adjusting the lookback window for the custom ATR calculation. In a trending market, it is often helpful to use the Nadaraya-Watson estimate line as a floating SR and/or reversal zone. In a ranging market, it is often more convenient to use the two Upper Bands and two Lower Bands as reversal zones.
How are the Upper and Lower bounds calculated?
In this indicator, the Rational Quadratic (RQ) Kernel estimates the price value at each bar in a user-defined lookback window. From this estimation, the upper and lower bounds of the envelope are calculated based on a custom ATR calculated from the kernel estimations for the high, low, and close series, respectively. These calculations are then scaled against a user-defined multiplier, which can be used to further customize the Upper and Lower bounds for a given chart.
How to use Kernel Estimations like this for other indicators?
Kernel Functions are highly underrated, and when calibrated correctly, they have the potential to provide more value than any mundane moving average. For those interested in using non-repainting Kernel Estimations for technical analysis, I have written a Kernel Functions library that makes it easy to access various well-known kernel functions quickly. The Rational Quadratic Kernel is used in this implementation, but one can conveniently swap out other kernels from the library by modifying only a single line of code. For more details and usage examples, please refer to the Kernel Functions library located here:
KernelFunctionsLibrary "KernelFunctions"
This library provides non-repainting kernel functions for Nadaraya-Watson estimator implementations. This allows for easy substitution/comparison of different kernel functions for one another in indicators. Furthermore, kernels can easily be combined with other kernels to create newer, more customized kernels. Compared to Moving Averages (which are really just simple kernels themselves), these kernel functions are more adaptive and afford the user an unprecedented degree of customization and flexibility.
rationalQuadratic(_src, _lookback, _relativeWeight, _startAtBar)
Rational Quadratic Kernel - An infinite sum of Gaussian Kernels of different length scales.
Parameters:
_src : The source series.
_lookback : The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars.
_relativeWeight : Relative weighting of time frames. Smaller values result in a more stretched-out curve, and larger values will result in a more wiggly curve. As this value approaches zero, the longer time frames will exert more influence on the estimation. As this value approaches infinity, the behavior of the Rational Quadratic Kernel will become identical to the Gaussian kernel.
_startAtBar : Bar index on which to start regression. The first bars of a chart are often highly volatile, and omitting these initial bars often leads to a better overall fit.
Returns: yhat The estimated values according to the Rational Quadratic Kernel.
gaussian(_src, _lookback, _startAtBar)
Gaussian Kernel - A weighted average of the source series. The weights are determined by the Radial Basis Function (RBF).
Parameters:
_src : The source series.
_lookback : The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars.
_startAtBar : Bar index on which to start regression. The first bars of a chart are often highly volatile, and omitting these initial bars often leads to a better overall fit.
Returns: yhat The estimated values according to the Gaussian Kernel.
periodic(_src, _lookback, _period, _startAtBar)
Periodic Kernel - The periodic kernel (derived by David Mackay) allows one to model functions that repeat themselves exactly.
Parameters:
_src : The source series.
_lookback : The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars.
_period : The distance between repititions of the function.
_startAtBar : Bar index on which to start regression. The first bars of a chart are often highly volatile, and omitting these initial bars often leads to a better overall fit.
Returns: yhat The estimated values according to the Periodic Kernel.
locallyPeriodic(_src, _lookback, _period, _startAtBar)
Locally Periodic Kernel - The locally periodic kernel is a periodic function that slowly varies with time. It is the product of the Periodic Kernel and the Gaussian Kernel.
Parameters:
_src : The source series.
_lookback : The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars.
_period : The distance between repititions of the function.
_startAtBar : Bar index on which to start regression. The first bars of a chart are often highly volatile, and omitting these initial bars often leads to a better overall fit.
Returns: yhat The estimated values according to the Locally Periodic Kernel.
log-log Regression From ArraysCalculates a log-log regression from arrays. Due to line limits, for sets greater than the limit, only every nth value is plotted in order to cover the entire set.
Exponential Regression From ArraysCalculates an exponential regression from arrays. Due to line limits, for sets greater than the limit, only every nth value is plotted in order to cover the entire set.
Standard Error of the Estimate -Jon Andersen- V2Original implementation idea of bands by:
Traders issue: Stocks & Commodities V. 14:9 (375-379):
Standard Error Bands by Jon Andersen
Standard Error Bands are quite different than Bollinger's.
First, they are bands constructed around a linear regression curve.
Second, the bands are based on two standard errors above and below this regression line.
The error bands measure the standard error of the estimate around the linear regression line.
Therefore, as a price series follows the course of the regression line the bands will narrow , showing little error in the estimate. As the market gets noisy and random, the error will be greater resulting in wider bands .
Thanks to the work of @glaz & @XeL_arjona
In this version you can change the type of moving averages and the source of the bands.
Add a few studies of @dgtrd
1- ADX Colored Directional Movement Line
Directional Movement (DMI) (created by J. Welles Wilder ) consists of the Average Directional Index ( ADX ), to define whether or not there is a trend present, and Plus Directional Indicator (+D I) and Minus Directional Indicator (-D I) serve the purpose of determining trend direction
ADX Colored Directional Movement Line is custom interpretation of Directional Movement (DMI) with aim to present all 3 DMI indicator components with SINGLE line and ability to be added on top of the price chart (main chart)
How to interpret :
* triangle shapes:
▲- bullish : diplus >= diminus
▼- bearish : diplus < diminus
* colors:
green - bullish trend : adx >= strongTrend and di+ > di-
red - bearish trend : adx >= strongTrend and di+ < di-
gray - no trend : weekTrend < adx < strongTrend
yellow - week trend : adx < weekTrend
* color density:
darker : adx growing
lighter : adx falling
2- Volatility Colored Price/MA Line
Custom interpretation of the idea “Prices high above the moving average (MA) or low below it are likely to be remedied in the future by a reverse price movement”. Further details can be found under study “Price Distance to its MA by DGT”
How to interpret :
-▲ – Bullish , Price Action above Moving Average
-▼ – Bearish , Price Action below Moving Average
-Gray/Black - Low Volatility
-Green/Red – Price Action in Threshold Bands
-Dark Green/Red – Price Action Exceeds Threshold Bands
3- Volume Weighted Bar s
Volume Weighted Bars, a study of Kıvanç Özbilgiç, aims to present whether volume supports price movements. Volume Weighted Bars are calculated based on volume moving average.
How to interpret :
-Volume high above the volume moving average be displayed with red/green colors
-Average volume values will remain as they are and
-Volume low below the volume moving average will be indicated with darker colors
4- Fear & Greed index value, using technical anlysis approach calculated based on :
⮩1 - Price Momentum : Price Distance to its Moving Average
⮩2 - Strenght : Rate of Return, price movement over a period of time
⮩3 - Money Flow : Chaikin Money Flow, quantify changes in buying and selling pressure. CMF calculations is based on Accumulation/Distribution
⮩4 - Market Volatility : CBOE Volatility Index ( VIX ), the Volatility Index, or VIX , is a real-time market index that represents the market's expectation. It provides a measure of market risk and investors' sentiments
⮩5 -Safe Haven Demand: in this study GOLD demand is assumed
KINSKI Volume Regression TrendRegression trends are typically used to determine when a price is unusually far from its baseline. The script calculates the linear regression of volume and price to determine the trend direction and strength. This can be used to determine the volume support for upward/downward trends.
As a special feature, this indicator allows you to choose from three (as of 07/20/2021) templates with special presets.
The following templates are available:
"Precise" (Period: 4, Smoothing Factor Type: "DISABLED", Smoothing Factor Length = 1).
"Smooth" (Period: 4, Smoothing Factor Type: "RMA", Smoothing Factor Length = 2)
"Long Term (Period: 20, Smoothing Factor Type: "DISABLED", Smoothing Factor Length = 1)
In the selection for templates, the option "DISABLED" can also be selected. Then the user-defined settings selectable under it take effect. There are the following setting options.
"Length": Adjustable period
"Smoothing Factor: Type": Type of moving average
"Smoothing Factor: Length": Adjustable period
Other setting options are:
Color codes: The color codes are explained in the settings
Display types: "Columns", "Histogram", "Area", "Line", "Stepline"
Linear Regression (All Data)The tool plots a linear regression line using the entire history of an instrument on chart. There are may be issues on intraday timeframes less then 1h. On daily, weekly and monthly charts it works without problem.
If an instrument has a lot of data points, you may not see the line (this is TV feature):
To fix that you need to scroll your chart to the left and find the starting point of the line:
And then do an auto-scroll to the last bar:
Linear Regression ++Due to public demand
Linear Regression Formula
Scraped Calculation With Alerts
Here is the Linear Regression Script For traders Who love rich features
Features
++ Multi time frame -> Source Regression from a different Chart
++ Customized Colors -> This includes the pine lines
++ Smoothing -> Allow Filtered Regression; Note: Using 1 Defaults to the original line. The default is 1
++ Alerts On Channel/Range Crossing
Usage
++ Use this for BreakOuts and Reversals
++ This Script is not to be used Independently
Risks
Please note, this script is the likes of Bollinger bands and poses a risk of falling in a trend range.
Signals may Keep running on the same direction while the market is reversing.
Requests
If you have any feature requests, comment below or dm me. I will answer when i can.
Feel free to utilize this on your chart and share your ideas
For developers who want to use this on their chart, Please use this script
The original formula for calculation is posted there
❤❤❤ I hope you love this. From my heart! ❤❤❤
Regression Channel [DW]This is an experimental study which calculates a linear regression channel over a specified period or interval using custom moving average types for its calculations.
Linear regression is a linear approach to modeling the relationship between a dependent variable and one or more independent variables.
In linear regression, the relationships are modeled using linear predictor functions whose unknown model parameters are estimated from the data.
The regression channel in this study is modeled using the least squares approach with four base average types to choose from:
-> Arnaud Legoux Moving Average (ALMA)
-> Exponential Moving Average (EMA)
-> Simple Moving Average (SMA)
-> Volume Weighted Moving Average (VWMA)
When using VWMA, if no volume is present, the calculation will automatically switch to tick volume, making it compatible with any cryptocurrency, stock, currency pair, or index you want to analyze.
There are two window types for calculation in this script as well:
-> Continuous, which generates a regression model over a fixed number of bars continuously.
-> Interval, which generates a regression model that only moves its starting point when a new interval starts. The number of bars for calculation cumulatively increases until the end of the interval.
The channel is generated by calculating standard deviation multiplied by the channel width coefficient, adding it to and subtracting it from the regression line, then dividing it into quartiles.
To observe the path of the regression, I've included a tracer line, which follows the current point of the regression line. This is also referred to as a Least Squares Moving Average (LSMA).
For added predictive capability, there is an option to extend the channel lines into the future.
A custom bar color scheme based on channel direction and price proximity to the current regression value is included.
I don't necessarily recommend using this tool as a standalone, but rather as a supplement to your analysis systems.
Regression analysis is far from an exact science. However, with the right combination of tools and strategies in place, it can greatly enhance your analysis and trading.
Dorsey InertiaThis indicator was originally developed by Donald Dorsey (Stocks & Commodities, V.13:9 (September, 1995): "Refining the Relative Volatility Index").
Inertia is based on Relative Volatility Index (RVI) smoothed using linear regression.
In physics, inertia is the tendency of an object to resist to acceleration. Dorsey chose this name because he believes that trend and inertia are related and that it takes more effort and energy to reverse the direction of a stock or market than to keep it in the same direction. He argues that the volatility is the simplest and most accurate measure of inertia.
When the indicator is below 50, it signals bearish market sentiment and when the indicator is above 50 it signals a bullish trend.
Good luck!
Kirshenbaum BandsThis indicator was originally developed by Paul Kirshenbaum, a mathematician with a Ph.D. in economics from New York University.
It uses the standard error of linear regression lines of the closing price to determine band width. This has the effect of measuring volatility around the current trend, rather than measuring volatility for changes in trend.
Good luck!
Quadratic Regression Slope [DW]This is a study geared toward identifying price trends using Quadratic regression.
Quadratic regression is the process of finding the equation of a parabola that best fits the set of data being analyzed.
In this study, first a quadratic regression curve is calculated, then the slope of the curve is calculated and plotted.
Custom bar colors are included. The color scheme is based on whether the slope is positive or negative, and whether it is increasing or decreasing.
Quadratic RegressionA quadratic regression is the process of finding the equation that best fits a set of data.This form of regression is mainly used for smoothing data shaped like a parabola.
Because we can use short/midterm/longterm periods we can say that we use a Quadratic Least Squares Moving Average or a Moving Quadratic Regression.
Like the Linear Regression (LSMA) a Quadratic regression attempt to minimize the sum of squares (sum of the squared difference between a set of data and an estimator), this is why
those kinds of filters have low lag .
Here the difference between a Least Squared Moving Average ( green ) and a Quadratic Regression ( red ) of both period 500
Here it look like the Quadratic Regression have a best fit than the LSMA
LinearRegressionChannelBreakoutMy first idea about the linear regression channel... It is free and available for everybody.
Price Regression AgreggatorPrice Estimator with aggregated linear regresion
---------------------------------------------------------------------------
How it works:
It uses 6 linear regression from time past to get an estimated point in future time, and using transparency, those areas that are move "visited" by those 6 different regressions and maybe more probable to be visited by the price (in fact if you zoom out you will see that price normally is around the lighter zones) have more aggregated painted colors, the transparency is lower and well, the lighter area should be more probable to be visited by the price should we put any faith on linear regression estimations and even more when many of them coincide in several points where the color is more aggregated.
If the "I" (the previous regressions increment) is too low, then we will have huge spikes as the only info gathered from the oldest linear regresssion will be within the very same trend we are now, resulting in "predictions" of huge spikes in the trend direction. (all regressions estimating on a line pointing to infinite)
If the "I" is high enough (not very or TV won't be able to display it) then you will get somewhat a "vectorial" resultant force of many linear regressions giving a more "real prediction" as it comes from tendencies from higher timeframes. E.g. 12 hours could be going down, 4h could be going sideways, 30m could be going up.
contact tradingview -> hecate . The idea and implementation is mine.
Note: transparency + 10 * tranparencygradient cannot be > 100 or nothing will be displayed
Note2: if the Future increment (how many lines are displayed to the right of the actual price ) are excessive, it will start to do weird things.
Note3: two times the standard deviation statistically correponds to a probability of 95%. We are calculating Top and Bot with that amount above and below. So anything inside those limits is more probable and if we are out of those limits it should fall back soon. Increase the number of times the std deviation as desired. There are calculators in the web to translate number of times std dev to their correspondent probability.
Note4: As we use backwards in time linear regressions for our "predictions" we lose responsiveness. Those old linear regressions are weighted with less value than more recent ones.
Note5: In the code i have included many color combinations (some horrible :-) )
Note6: This was an experiment while i was quite bored although ended enjoying playing with it.
Have fun! :-)
I leave it here because i am getting dizzy.
ORDINARY LEAST SQUARES Slope by @XeL_ArjonaORDINARY LEAST SQUARES Slope by @XeL_Arjona
Ver. 1 by Ricardo M Arjona @XeL_Arjona
DISCLAIMER:
The Following indicator/code IS NOT intended to be a formal investment advice or recommendation by the author, nor should be construed as such. Users will be fully responsible by their use regarding their own trading vehicles/assets.
The embedded code and ideas within this work are FREELY AND PUBLICLY available on the Web for NON LUCRATIVE ACTIVITIES and must remain as is.
WHAT'S THIS?
This is a REAL mathematically approach of an ORDINARY LEAST SQUARES LINE FITTING SLOPE as TradingView currently don't have a native one embedded, neither as a pine function. Other "Sope" indicators from this linear regression model I found on public library are currently based on "momentum" rather tan slope.
Any modifications or additions are quite welcome!
Cheers!
@XeL_Arjona
BUY & SELL PRESSURE by RegressionBUY & SELL PRESSURE by Regression Analysis at candle price/volume (Rate-Of-Change)
Ver. 3 By Ricardo M Arjona @XeL_Arjona
DISCLAIMER:
The Following indicator/code IS NOT intended to be a formal investment advice or recommendation by the author, nor should be construed as such. Users will be fully responsible by their use regarding their own trading vehicles/assets.
The embedded code and ideas within this work are FREELY AND PUBLICLY available on the Web for NON LUCRATIVE ACTIVITIES and must remain as is.
WHAT'S THIS?
This is my 3rd. revision of the original implementation for AmiBroker by Karthik Marar's of it's BUY AND SELL PRESSURE INDICATORS but this time, constructed under a complete REGRESSIVE ANALYSIS premise based in Rate Of Change (A kind of Slope but measured in % Performance).
Some minimal adaptation's (and cleaning) have been made:
Instead of simple Range calculation at price, Rate Of Change (Regressive) is used.
Oscillator of Pressure can be deactivated in favor of a simple RoC Cumulative Pressures at candle.
Oscillator can read Volume data from external tickers for accurate Index calculation. ( NYA can use TVOL as example.)
Code is small, cleaner and faster =) !
Cheers!
Any feedback will be welcome...
@XeL_Arjona
Standard Error of the Estimate -Composite Bands-Standard Error of the Estimate - Code and adaptation by @glaz & @XeL_arjona
Ver. 2.00.a
Original implementation idea of bands by:
Traders issue: Stocks & Commodities V. 14:9 (375-379):
Standard Error Bands by Jon Andersen
This code is a former update to previous "Standard Error Bands" that was wrongly applied given that previous version in reality use the Standard Error OF THE MEAN, not THE ESTIMATE as it should be used by Jon Andersen original idea and corrected in this version.
As always I am very Thankfully with the support at the Pine Script Editor chat room, with special mention to user @glaz in order to help me adequate the alpha-beta (y-y') algorithm, as well to give him full credit to implement the "wide" version of the former bands.
For a quick and publicly open explanation of this truly statistical (regression analysis) indicator, you can refer at Here!
Extract from the former URL:
Standard Error Bands are quite different than Bollinger's. First, they are bands constructed around a linear regression curve. Second, the bands are based on two standard errors above and below this regression line. The error bands measure the standard error of the estimate around the linear regression line. Therefore, as a price series follows the course of the regression line the bands will narrow, showing little error in the estimate. As the market gets noisy and random, the error will be greater resulting in wider bands.





















