Multi Moving Average with CustomizationCore Functionality
The indicator allows you to display up to 5 different moving averages on your chart simultaneously.
Each moving average can be fully customized with its own settings.
You can choose between
1. Simple Moving Average (SMA),
2. Exponential Moving Average (EMA)
3. Weighted Moving Average (WMA) types
Multi-Timeframe Support
One standout feature is the ability to display higher timeframe moving averages on lower timeframe charts.
For example, you can show a 200 EMA from the daily chart while viewing a 15-minute chart.
Advanced Visualization Features
The indicator includes several visualization enhancements:
1. MA Cloud - Creates a filled area between any two selected moving averages. The cloud automatically changes color based on which MA is on top - typically green when the faster MA is above (bullish) and red when below (bearish).
2. Golden/Death Cross Detection - Automatically detects and marks important MA crossover events:
* Golden Cross: When a shorter-term MA crosses above a longer-term MA (bullish signal)
* Death Cross: When a shorter-term MA crosses below a longer-term MA (bearish signal)
3. Trend Background - Colors the entire chart background based on whether price is above or below a specified MA, giving a clear visual indicator of the overall trend.
Alert System
The indicator can generate alerts when price crosses above or below any selected moving average. This feature is useful for automated trading signals or notifications, and can be configured to trigger once per bar.
Flexible Architecture
The code uses several programming techniques to maximize flexibility:
* Switch statements for selecting MA types and cloud values
* Conditional logic throughout the code
* Function abstraction for calculating MAs and handling multi-timeframe display
* String identifiers to select which MAs to use for cloud visualization
Unique Technical Aspects
1. The multi-timeframe plotting function solves the common problem of higher timeframe MAs looking distorted on lower timeframe charts.
2. The cloud feature uses string identifiers to select which MAs to use, allowing for any combination.
3. The indicator employs smart conditional logic to handle complex decision trees efficiently.
4. Every visual aspect (colors, line widths, display conditions) is customizable through the settings.
This indicator combines multiple technical analysis tools into a single, highly configurable package that can adapt to different trading styles and timeframes.
Its ability to correctly display higher timeframe MAs on lower timeframe charts makes it particularly valuable for traders who analyze multiple timeframes simultaneously.
Indicatori e strategie
Opening Range Breakout Detector📈 Opening Range Breakout Detector (TF-Independent)
Tracks breakouts with precision. No matter the chart, no matter the timeframe.
This indicator monitors whether price breaks above or below the Opening Range across multiple key durations — 1m, 5m, 10m, 15m, 30m, 45m, and 60m — using 1-minute data under the hood, while you can work on higher timeframe charts (daily, etc.).
Highlights:
✅ Status table shows which ORs broke UP or DOWN
⏱ Control which timeframes to track
🖼 Customizable table position, size and colors
Crafted by @FunkyQuokka
UT Bot + Hull MA Confirmed Signal DelayOverview
This indicator is designed to detect high-probability reversal entry signals by combining "UT Bot Alerts" (UT Bot Alerts script adapted from QuantNomad - Originally developed by Yo_adriiiiaan and idea of original code for "UT Bot Alerts" from HPotter ) with confirmation from a Hull Moving Average (HMA) Developed by Alan Hull . It focuses on capturing momentum shifts that often precede trend reversals, helping traders identify potential entry points while filtering out false signals.
🔍 How It Works
This strategy operates in two stages:
1. UT Bot Momentum Trigger
The foundation of this script is the "UT Bot Alerts" , which uses an ATR-based trailing stop to detect momentum changes. Specifically:
The script calculates a dynamic stop level based on the Average True Range (ATR) multiplied by a user-defined sensitivity factor (Key Value).
When price closes above this trailing stop and the short-term EMA crosses above the stop, a potential buy setup is triggered.
Conversely, when price closes below the trailing stop and the short-term EMA crosses below, a potential sell setup is triggered.
These UT Bot alerts are designed to identify the initial shift in market direction, acting as the first filter in the signal process.
2. Hull MA Confirmation
To reduce noise and false triggers from the UT Bot alone, this script delays the entry signal until price confirms the move by crossing the Hull Moving Average (or its variants: HMA, THMA, EHMA) in the same direction as the UT Bot trigger:
A Buy Signal is generated only when:
A UT Bot Buy condition is active, and
The price closes above the Hull MA.
Or, if a UT Bot Buy condition was recently triggered but price hadn’t yet crossed above the Hull MA, a delayed buy is signaled when price finally breaks above it.
A Sell Signal is generated only when:
A UT Bot Sell condition is active, and
The price closes below the Hull MA.
Similarly, a delayed sell signal can occur if price breaks below the Hull MA shortly after a UT Bot Sell trigger.
This dual-confirmation process helps traders avoid premature entries and improves the reliability of reversal signals.
📈 Best Use Cases
Reversal Trading: This strategy is particularly well-suited for catching early trend reversals rather than trend continuations. It excels at identifying momentum pivots that occur after pullbacks or exhaustion moves.
Heikin Ashi Charts Recommended: The script offers a Heikin Ashi mode for smoothing out noise and enhancing visual clarity. Using Heikin Ashi candles can further reduce whipsaws and highlight cleaner shifts in trend direction.
MACD Alignment: For best results, trade in the direction of the MACD trend or use it as a filter to avoid counter-trend trades.
⚠️ Important Notes
Entry Signals Only: This indicator only plots entry points (Buy and Sell signals). It does not define exit strategies, so users should manage trades manually using trailing stops, profit targets, or other exit indicators.
No Signal = No Confirmation: You may see a UT Bot trigger without a corresponding Buy/Sell signal. This means the price did not confirm the move by crossing the Hull MA, and therefore the setup was considered too weak or incomplete.
⚙️ Customization
UT Bot Sensitivity: Adjust the “Key Value” and “ATR Period” to make the UT Bot more or less reactive to price action.
Use Heikin Ashi: Toggle between standard candles or Heikin Ashi in the indicator settings for a smoother trading experience.
The HMA length may also be modified in the indicator settings from its standard 55 length to increase or decrease the sensitivity of signal.
This strategy is best used by traders looking for a structured, logic-based way to enter early into reversals with added confirmation to reduce risk. By combining two independent systems—momentum detection (UT Bot) and trend confirmation (Hull MA)—it aims to provide high-confidence entries without overwhelming complexity.
Let the indicator guide your entries—you manage the exits.
Examples of use:
Futures:
Stock:
Crypto:
As shown in the snapshots this strategy, like most, works the best when price action has a sizeable ATR and works the least when price is choppy. Therefore it is always best to use this system when price is coming off known support or resistance levels and when it is seen to respect short term EMA's like the 9 or 15.
My personal preference to use this system is for day trading on a 3 or 5 minute chart. But it is valid for all timeframes and simply marks a high probability for a new trend to form.
Sources:
Quant Nomad - www.tradingview.com
Yo_adriiiiaan - www.tradingview.com
HPotter - www.tradingview.com
Hull Moving Average - alanhull.com
Regression Slope ShiftNormalized Regression Slope Shift + Dynamic Histogram
This indicator detects subtle shifts in price momentum using a rolling linear regression approach. It calculates the slope of a linear regression line for each bar over a specified lookback period, then measures how that slope changes from bar to bar.
Both the slope and its change (delta) are normalized to a -1 to 1 scale for consistent visual interpretation across assets and timeframes. A signal line (EMA) is applied to the slope delta to help identify turning points and crossovers.
Key features:
- Normalized slope and slope change lines
- Dynamic histogram of slope delta with transparency based on magnitude
- Customizable colors for all visual elements
- Signal line for crossover-based momentum shifts
This tool helps traders anticipate trend acceleration or weakening before traditional momentum indicators react, making it useful for early trend detection, divergence spotting, and confirmation signals.
Real-Time Open Levels with Labels + Info TableReal-Time Multi-Timeframe Open Levels with Labels & Info Panel
Overview
This indicator displays real-time opening price levels across multiple timeframes (Monthly, Weekly, Daily, 4H) directly on your chart. It features:
• Dynamic horizontal lines extending through each timeframe period
• Customizable labels with text/colors
• Special 4H line treatment for the last hour (5-min charts only)
• Integrated information panel showing symbol, timeframe, and price changes
! (www.tradingview.com)
*Example showing multiple timeframe levels with labels and info panel*
---
Features & Configuration
1. Monthly Settings
! (www.tradingview.com)
Show Monthly: Toggle visibility of monthly opening price
Color: Semi-transparent blue (#2196F3 at 70% opacity)
Width: 2px line thickness
Style: Solid/Dotted/Dashed
Label: Display "M-Open" text with white text on blue background
2. Weekly Settings
! (www.tradingview.com)
Show Weekly: Toggle weekly opening price visibility
Color: Semi-transparent red (#FF5252 at 70% opacity)
Width: 1px thickness
Style: Dotted by default
Label: "W-Open" text in white on red background
3. Daily Settings
! (www.tradingview.com)
Show Daily: Toggle daily opening price
Color: Amber (#FFA000 at 70% opacity)
Width: 2px thickness
Style: Solid
Label: "D-Open" in white on orange background
---
4. 4-Hour Settings (5-Minute Charts Only)
Special Features for 5-Min Timeframe:
1. Standard 4H Line
• First 3 hours: Green (#4CAF50) dashed line
• Last hour: Bright red solid line (configurable)
• Vertical divider between 3rd/4th hours
2. Configuration Options
• Main 4H Line:
◦ Color/Width/Style for initial 3 hours
◦ Toggle label ("H4-Open") visibility and styling
• Final Hour Enhancement:
*Last Hour Line*
◦ Unique red color and line style
◦ Separate width (1px) and style (Solid)
*Divider Line*
◦ Vertical red dotted line marking last hour
◦ Adjustable position/width/transparency
! (www.tradingview.com)
*4H levels showing 3-hour segment and final hour treatment*
---
5. Info Panel Settings
Positioning:
• Anchor to any chart corner (Top/Bottom + Left/Right combinations)
• Three text sizes: Title (Huge), Change % (Large), Signature (Small)
Display Elements:
• Symbol: Show exchange prefix (e.g., "NASDAQ:")
• Timeframe: Current chart period (e.g., "5m")
• Change %: 24-hour price movement ▲/▼ percentage
• Custom Signature: Add text/username in footer
Styling:
• Semi-transparent white text (#ffffff77)
• Currency pair formatting (e.g., BTC/USD vs BTC-USD)
! (www.tradingview.com)
*Sample info panel with all elements enabled*
---
Usage Tips
1. Multi-Timeframe Context: Use levels to identify key daily/weekly support/resistance
2. 4H Trading: On 5-min charts, watch for price reactions near final hour transition
3. Customization:
• Match line colors to your chart theme
• Use different labels for clarity (e.g., "Weekly Open")
• Disable unused elements to reduce clutter
4. Divider Lines: Helps identify institutional trading periods (hour closes)
---
*Created using Pine Script v6. For optimal performance, use on charts <1H timeframe. ()*
VWAP Breakout Strategy + EMAs + Clean Cycle/TP/SL PlotsHere’s a quick user-guide to get you up and running with your “VWAP Breakout Strategy + EMAs + Clean Cycle/TP/SL Plots” script in TradingView:
⸻
1. Installing the Script
1. Open TradingView, go to Pine Editor (bottom panel).
2. Paste in your full Pine-v6 code and hit Add to chart.
3. Save it (“Save as…”): give it a memorable name (e.g. “VWAP Breakout+EMAs”).
⸻
2. Configuring Your Inputs
Once it’s on the chart, click the ⚙️ Settings icon to tune:
Setting Default What it does
ATR Length 14 Period for average true range (volatility measure)
ATR Multiplier for Stop 1.5 How many ATRs away your stop-loss sits
TP1 / TP2 Multipliers (ATR) 1.0 / 2.0 Distance of TP1 and TP2 in ATR multiples
Show VWAP / EMAs On Toggles the blue VWAP line & EMAs (100/34/5)
Full Cycle Range Points 200 Height of the shaded “cycle zone”
Pivot Lookback 5 How many bars back to detect a pivot low
Round Number Step 500 Spacing of your dotted horizontal lines
Show TP/SL Labels On Toggles all the “ENTRY”, “TP1”, “TP2”, “STOP” tags
Feel free to adjust ATR multipliers and cycle-zone size based on the instrument’s typical range.
⸻
3. Reading the Signals
• Long Entry:
• Trigger: price crosses above VWAP
• You’ll see a green “Buy” tag at the low of the signal bar, plus an “ENTRY (Long)” label at the close.
• Stop is plotted as a red dashed line below (ATR × 1.5), and TP1/TP2 as teal and purple lines above.
• Short Entry:
• Trigger: price crosses below VWAP
• A red “Sell” tag appears at the high, with “ENTRY (Short)” at the close.
• Stop is the green line above; TP1/TP2 are dashed teal/purple lines below.
⸻
4. Full Cycle Zone
Whenever a new pivot low is detected (using your Pivot Lookback), the script deletes the old box and draws a shaded yellow rectangle from that low up by “Full Cycle Range Points.”
• Use this to visualize the “maximum expected swing” from your pivot.
• You can quickly see whether price is still traveling within a normal cycle or has overstretched.
⸻
5. Round-Number Levels
With Show Round Number Levels enabled, you’ll always get horizontal dotted lines at the nearest multiples of your “Round Number Step” (e.g. every 500 points).
• These often act as psychological support/resistance.
• Handy to see confluence with VWAP or cycle-zone edges.
⸻
6. Tips & Best-Practices
• Timeframes: Apply on any intraday chart (5 min, 15 min, H1…), but match your ATR length & cycle-points to the timeframe’s typical range.
• Backtest first: Use the Strategy Tester tab to review performance, tweak ATR multipliers or cycle size, then optimize.
• Combine with context: Don’t trade VWAP breakouts blindly—look for confluence (e.g. support/resistance zones, higher-timeframe trend).
• Label clutter: If too many labels build up, you can toggle Show TP/SL Labels off and rely just on the lines.
⸻
That’s it! Once you’ve added it to your chart and dialed in the inputs, your entries, exits, cycle ranges, and key levels will all be plotted automatically. Feel free to experiment with the ATR multipliers and cycle-zone size until it fits your instrument’s personality. Happy trading!
Bollinger Band StrategyDescription of the Bollinger Band Breakout Strategy
This trading strategy, credited to Siddhart Bhanushali, is a momentum-based approach that uses Bollinger Bands and a 22-period Simple Moving Average (SMA) to identify high-probability breakout trades. It focuses on detecting periods of low volatility (contraction) followed by high volatility (expansion) to enter trades with a favorable risk-reward ratio. The strategy is designed to capture significant price movements in trending markets, with clear rules for entry, stop loss, and profit targets.
Strategy Overview
The strategy generates buy and sell signals based on specific conditions involving the 22-period SMA and Bollinger Bands. It aims to enter trades when the price breaks out of a consolidation phase, confirmed by the direction of the SMA and the behavior of a green or red candle relative to the Bollinger Bands. The minimum target for each trade is a 1:2 risk-reward ratio.
Credit
This strategy is credited to Siddhart Bhanushali, who designed it to leverage Bollinger Band breakouts in trending markets, providing a clear and systematic approach to trading with defined risk-reward parameters.
Circuit % Marker w/ Mirrored Arrows📈 Indian Market Circuit Limit Change Tracker
This indicator automatically tracks circuit limit changes (price bands) as applied in NSE/BSE stocks.
🧠 How It Works:
Start from a user-defined initial circuit limit (e.g. 10%)
If the upper or lower limit is hit, the script waits for a user-defined cooling period (e.g. 5 trading days)
After that, it automatically adjusts to the next lower or higher band (e.g. from 10% to 5%)
Shows a visual label with the current circuit % right on the chart — placed above or below candles for better visibility
🔧 Custom Inputs:
Starting Circuit % — choose between standard NSE/BSE values (20%, 10%, 5%, 2%)
Cooling Days — how many days must pass after a circuit hit before it’s allowed to change again
Label Positioning, Color, and Size — fully customizable to suit your chart style
🚫 No Clutter:
Doesn’t draw circuit limit lines
Just clean, small labels at key turning points — as seen in real trading dashboards
🔍 Notes:
NSE and BSE manually assign circuit bands — this script does not fetch live exchange data
Use it as a visual tracker and simulator of how circuit behavior would evolve under fixed rules
JPMorgan G7 Volatility IndexThe JPMorgan G7 Volatility Index: Scientific Analysis and Professional Applications
Introduction
The JPMorgan G7 Volatility Index (G7VOL) represents a sophisticated metric for monitoring currency market volatility across major developed economies. This indicator functions as an approximation of JPMorgan's proprietary volatility indices, providing traders and investors with a normalized measurement of cross-currency volatility conditions (Clark, 2019).
Theoretical Foundation
Currency volatility is fundamentally defined as "the statistical measure of the dispersion of returns for a given security or market index" (Hull, 2018, p.127). In the context of G7 currencies, this volatility measurement becomes particularly significant due to the economic importance of these nations, which collectively represent more than 50% of global nominal GDP (IMF, 2022).
According to Menkhoff et al. (2012, p.685), "currency volatility serves as a global risk factor that affects expected returns across different asset classes." This finding underscores the importance of monitoring G7 currency volatility as a proxy for global financial conditions.
Methodology
The G7VOL indicator employs a multi-step calculation process:
Individual volatility calculation for seven major currency pairs using standard deviation normalized by price (Lo, 2002)
- Weighted-average combination of these volatilities to form a composite index
- Normalization against historical bands to create a standardized scale
- Visual representation through dynamic coloring that reflects current market conditions
The mathematical foundation follows the volatility calculation methodology proposed by Bollerslev et al. (2018):
Volatility = σ(returns) / price × 100
Where σ represents standard deviation calculated over a specified timeframe, typically 20 periods as recommended by the Bank for International Settlements (BIS, 2020).
Professional Applications
Professional traders and institutional investors employ the G7VOL indicator in several key ways:
1. Risk Management Signaling
According to research by Adrian and Brunnermeier (2016), elevated currency volatility often precedes broader market stress. When the G7VOL breaches its high volatility threshold (typically 1.5 times the 100-period average), portfolio managers frequently reduce risk exposure across asset classes. As noted by Borio (2019, p.17), "currency volatility spikes have historically preceded equity market corrections by 2-7 trading days."
2. Counter-Cyclical Investment Strategy
Low G7 volatility periods (readings below the lower band) tend to coincide with what Shin (2017) describes as "risk-on" environments. Professional investors often use these signals to increase allocations to higher-beta assets and emerging markets. Campbell et al. (2021) found that G7 volatility in the lowest quintile historically preceded emerging market outperformance by an average of 3.7% over subsequent quarters.
3. Regime Identification
The normalized volatility framework enables identification of distinct market regimes:
- Readings above 1.0: Crisis/high volatility regime
- Readings between -0.5 and 0.5: Normal volatility regime
- Readings below -1.0: Unusually calm markets
According to Rey (2015), these regimes have significant implications for global monetary policy transmission mechanisms and cross-border capital flows.
Interpretation and Trading Applications
G7 currency volatility serves as a barometer for global financial conditions due to these currencies' centrality in international trade and reserve status. As noted by Gagnon and Ihrig (2021, p.423), "G7 currency volatility captures both trade-related uncertainty and broader financial market risk appetites."
Professional traders apply this indicator in multiple contexts:
- Leading indicator: Research from the Federal Reserve Board (Powell, 2020) suggests G7 volatility often leads VIX movements by 1-3 days, providing advance warning of broader market volatility.
- Correlation shifts: During periods of elevated G7 volatility, cross-asset correlations typically increase what Brunnermeier and Pedersen (2009) term "correlation breakdown during stress periods." This phenomenon informs portfolio diversification strategies.
- Carry trade timing: Currency carry strategies perform best during low volatility regimes as documented by Lustig et al. (2011). The G7VOL indicator provides objective thresholds for initiating or exiting such positions.
References
Adrian, T. and Brunnermeier, M.K. (2016) 'CoVaR', American Economic Review, 106(7), pp.1705-1741.
Bank for International Settlements (2020) Monitoring Volatility in Foreign Exchange Markets. BIS Quarterly Review, December 2020.
Bollerslev, T., Patton, A.J. and Quaedvlieg, R. (2018) 'Modeling and forecasting (un)reliable realized volatilities', Journal of Econometrics, 204(1), pp.112-130.
Borio, C. (2019) 'Monetary policy in the grip of a pincer movement', BIS Working Papers, No. 706.
Brunnermeier, M.K. and Pedersen, L.H. (2009) 'Market liquidity and funding liquidity', Review of Financial Studies, 22(6), pp.2201-2238.
Campbell, J.Y., Sunderam, A. and Viceira, L.M. (2021) 'Inflation Bets or Deflation Hedges? The Changing Risks of Nominal Bonds', Critical Finance Review, 10(2), pp.303-336.
Clark, J. (2019) 'Currency Volatility and Macro Fundamentals', JPMorgan Global FX Research Quarterly, Fall 2019.
Gagnon, J.E. and Ihrig, J. (2021) 'What drives foreign exchange markets?', International Finance, 24(3), pp.414-428.
Hull, J.C. (2018) Options, Futures, and Other Derivatives. 10th edn. London: Pearson.
International Monetary Fund (2022) World Economic Outlook Database. Washington, DC: IMF.
Lo, A.W. (2002) 'The statistics of Sharpe ratios', Financial Analysts Journal, 58(4), pp.36-52.
Lustig, H., Roussanov, N. and Verdelhan, A. (2011) 'Common risk factors in currency markets', Review of Financial Studies, 24(11), pp.3731-3777.
Menkhoff, L., Sarno, L., Schmeling, M. and Schrimpf, A. (2012) 'Carry trades and global foreign exchange volatility', Journal of Finance, 67(2), pp.681-718.
Powell, J. (2020) Monetary Policy and Price Stability. Speech at Jackson Hole Economic Symposium, August 27, 2020.
Rey, H. (2015) 'Dilemma not trilemma: The global financial cycle and monetary policy independence', NBER Working Paper No. 21162.
Shin, H.S. (2017) 'The bank/capital markets nexus goes global', Bank for International Settlements Speech, January 15, 2017.
ADR & ATR Extension from EMAThis indicator helps identify how extended the current price is from a chosen Exponential Moving Average (EMA) in terms of both Average Daily Range (ADR) and Average True Range (ATR).
It calculates:
ADR Extension = (Price - EMA) / ADR
ATR Extension = (Price - EMA) / ATR
The results are shown in a floating table on the chart.
The ADR line turns red if the price is more than 4 ADRs above the selected EMA
Customization Options:
- Select EMA length
- Choose between close or high as price input
- Set ADR and ATR periods
- Customize the label’s position, color, and transparency
- Use the chart's timeframe or a fixed timeframe
Chandelier Exit + EMA Filtered SignalsThis script is a powerful upgrade to the original Chandelier Exit by Alex Orekhov (everget), combining trend-following logic with higher-quality trade filtering.
✅ Key Features:
Chandelier Exit logic with ATR-based stop levels
Buy/Sell signals only when trend is confirmed:
Buy: Price must be above EMA 13, 50, and 200
Sell: Price must be below EMA 13, 50, and 200
Candle highlighting: Green for Buy, Red for Sell
Signal labels for visual clarity
Toggle to show/hide EMAs
Built-in alerts for:
Buy signal
Sell signal
Trend direction change
🛠️ Inputs:
ATR Period and Multiplier
Toggle: Use Close Price for High/Low Calculation
Toggle: Show/Hide Labels and State Highlight
Toggle: Show/Hide EMA 13, 50, 200
Toggle: Await confirmed bar for alerts
🔔 Alerts Included:
Chandelier Exit Buy
Chandelier Exit Sell
Direction Change (long to short or vice versa)
💡 How to Use:
Use on trending assets (e.g., Gold, Indices, Crypto).
Combine with support/resistance or session filters for optimal results.
Enable alerts to be notified on trade setups.
📢 Credits:
Based on the original Chandelier Exit script by everget.
Enhancements by AP Capital for filtered signals and better visual feedback.
Resistance Breakout LevelsResistance Breakout Levels
An advanced TradingView indicator that detects significant resistance pivots and marks confirmed breakouts.
Description:
This Pine Script automatically identifies swing-high pivot points as potential resistance levels. It confirms a breakout only after a configurable number of consecutive closes above the pivot, reducing noise and avoiding false signals. Once validated, it draws a horizontal breakout line at the pivot price and adds a label with the breakout value. Traders can choose to display all breakout lines or only the single highest breakout within a specified lookback period. Additionally, a dynamic current price line spans the chart for quick reference.
Features:
• Pivot High Detection for Resistance Levels
• N-Consecutive Close Breakout Confirmation
• Toggle Between All Breakouts or Highest Breakout with Lookback Window
• Full-Width Live Current Price Line
• Customizable Line Colors, Widths, and Extension Direction
• Price Labels Directly on Breakout Lines
User Inputs:
• Pivot Bars (Left/Right): Number of bars used to detect pivot highs
• Consecutive Closes Above: Closes required above pivot to confirm breakout
• Show All Breakouts: Option to plot every confirmed breakout line
• Highest Lookback Bars: Lookback window for retaining only the highest breakout
• Breakout Line Color & Width: Customize breakout line appearance
• Price Line Color & Width: Customize live current price line appearance
No Supply / No Demand Candle AlertsNo Supply Candle: A No Supply candle generally has a large body (close near high) with low volume. So, you would likely want the body percentage to be high, meaning the price action is concentrated near the high of the candle.
No Demand Candle: A No Demand candle generally has a large body (close near low) with low volume. You would want a high body percentage but with the close near low.
[TehThomas] - Fair Value GapsThis script is designed to automatically detect and visualize Fair Value Gaps (FVGs) on your chart in a clean, intuitive, and highly responsive way. It’s built with active traders in mind, offering both dynamic updates and customization options that help you stay focused on price action without being distracted by outdated or irrelevant information.
What Are Fair Value Gaps?
Fair Value Gaps are areas on a chart where there’s an inefficiency in price, typically formed when price moves aggressively in one direction, leaving a gap between the wicks of consecutive candles. These gaps represent imbalanced price action where not all buy or sell orders were efficiently matched. As a result, they often become magnet zones where price returns later to "fill" the imbalance before continuing in its intended direction. Many traders use them as points of interest for entries, re-entries, or anticipating reversals and consolidations.
This concept is frequently used in Smart Money and ICT-based trading models, where understanding how price seeks efficiency is crucial to anticipating future moves. When combined with concepts like liquidity, displacement, and market structure, FVGs become powerful tools for technical decision-making.
Script Features & Functionality
1. Live Updating Gaps (Dynamic Shrinking)
One of the core features of this script is its ability to track and dynamically shrink Fair Value Gaps as price trades into them. Instead of leaving a static zone on your chart, the gap will adjust in real-time, reflecting the portion that has been filled. This gives you a much more accurate picture of remaining imbalance and avoids misleading zones.
2. Automatic Cleanup After Fill
Once price fully fills an FVG, the script automatically removes it from the chart. This helps keep your workspace clean and focused only on relevant price zones. There’s no need to manually manage your gaps, everything is handled behind the scenes to reduce clutter and distraction.
3. Static Mode Option
While dynamic updating is the default, some traders may prefer to keep the original size of the gap visible even after partial fills. For that reason, the script includes a toggle to switch from live-updating (shrinking) mode to static mode. In static mode, FVGs stay fixed from the moment they are drawn, giving you a more traditional visual reference point.
4. Multi-Timeframe Support (MTF)
You can now view higher timeframe FVGs, such as those from the 1H or 4H chart, while analyzing lower timeframes like the 5-minute. This allows you to see key imbalances from broader market context without having to flip between charts. FVGs from higher timeframes will be drawn distinctly so you can differentiate them at a glance.
5. Cleaner Visualization
The script is designed with clarity in mind. All drawings are streamlined, and filled gaps are removed to maintain a minimal, distraction-free chart. This makes it easier to combine this tool with other indicators or price-action-based strategies without overloading your workspace.
6. Suitable for All Market Types
This script can be used on any asset that displays candlestick-based price action — including crypto, forex, indices, and stocks. Whether you're scalping low-timeframe setups or swing trading with a higher timeframe bias, FVGs remain a useful concept and this script adapts to your trading style.
Use Case Examples
On a 5-minute chart, display 1-hour FVGs to catch major imbalance zones during intraday trading.
Combine the FVGs with liquidity levels and inducement patterns to build ICT-style trade setups.
Use live-updating gaps to monitor in-progress fills and evaluate whether a zone still holds validity.
Set the script to static mode to perform backtesting or visual replay with historical setups.
Final Notes
Fair Value Gaps are not a standalone trading signal, but when used with market structure, liquidity, displacement, and order flow concepts, they provide high-probability trade locations that align with institutional-style trading models. This script simplifies the visualization of those zones so you can react faster, stay focused on clean setups, and eliminate unnecessary distractions.
Whether you’re trading high volatility breakouts or patiently waiting for retracements into unfilled imbalances, this tool is designed to support your edge with precision and flexibility.
Gamma Blast Detector (Nifty)The Gamma Blast Detector (Nifty) is a custom TradingView indicator designed to help intraday traders identify sudden and explosive price movements—commonly referred to as "gamma blasts"—in the Nifty index during the final minutes of the trading session, particularly on expiry days. These movements are typically caused by rapid delta changes in ATM options, resulting in aggressive short-covering or option unwinding.
This indicator specifically monitors price action between 3:10 PM and 3:20 PM IST, which translates to 09:40 AM to 09:50 AM UTC on TradingView. It is optimized for use on 5-minute charts of the Nifty spot or futures index, where gamma-driven volatility is most likely to occur during this time window.
The core logic behind the indicator involves identifying unusually large candles within this time frame. It compares the size of the current candle to the average size of the previous five candles. If the current candle is at least twice as large and shows clear direction (bullish or bearish), the script flags it as a potential gamma blast. A bullish candle suggests a Call Option (CE) is likely to blast upward, while a bearish candle points to a Put Option (PE) gaining sharply.
When such a condition is detected, the indicator visually marks the candle on the chart: a "CE 🚀" label is shown below the candle for a bullish move, and a "PE 🔻" label appears above for a bearish move. It also includes alert conditions, allowing users to set real-time alerts for potential blasts and act quickly.
This tool is especially useful for expiry day scalpers, option traders, and anyone looking to ride momentum generated by gamma effects in the final minutes of the market. It provides a visual and alert-based edge to anticipate short-term, high-impact moves often missed in normal technical analysis.
EMA 10/20/50 Alignment Strategy### 📘 **Strategy Name**
**EMA 10/20/50 Trend Alignment Strategy**
---
### 📝 **Description (for Publishing)**
This strategy uses the alignment of Exponential Moving Averages (EMAs) to identify strong bullish trends. It enters a long position when the short-term EMA is above the mid-term EMA, which is above the long-term EMA — a classic sign of trend strength.
#### 🔹 Entry Criteria:
* **EMA10 > EMA20 > EMA50**: A bullish alignment that signals momentum in an upward direction.
* The strategy enters a **long position** when this alignment occurs.
#### 🔹 Exit Criteria:
* The long position is closed when the EMA alignment breaks (i.e., the trend weakens or reverses).
#### 🔹 Additional Features:
* Includes a **date range filter**, allowing you to backtest the strategy over a specific period.
* Uses **100% of available capital** for each trade (position size auto-scales with account balance).
* No short positions, stop loss, or take profit are applied — this is a trend-following strategy meant to ride bullish moves.
---
### ✅ Best For:
* Traders looking for a **simple, trend-based entry system**
* Testing price momentum strategies during specific market regimes
* Visualizing EMA stacking patterns in historical data
StoRsi# StoRSI Indicator: Combining RSI and Stochastic with multiTF
## Overview
The StoRSI indicator combines Relative Strength Index (RSI) and Stochastic oscillators in a single view to provide powerful momentum and trend analysis. By displaying both indicators together with multi-timeframe analysis, it helps traders identify stronger signals when both indicators align.
## Key Components
### 1. RSI (Relative Strength Index)
### 2. Stochastic Oscillator
### 3. EMA (Exponential Moving Average)
### 4. Multi-Timeframe Analysis
## Visual Features
- **Color-coded zones**: Highlights overbought/oversold areas
- **Signal backgrounds**: Shows when both indicators align
- **Multi-timeframe table**: Displays RSI, Stochastic, and trend across timeframes
- **Customizable colors**: Allows full visual customization
## Signal Generation (some need to uncomment in code)
The indicator generates several types of signals:
1. **RSI crosses**: When RSI crosses above/below overbought/oversold levels
2. **Stochastic crosses**: When Stochastic %K crosses above/below overbought/oversold levels
3. **Combined signals**: When both indicators show the same condition
4. **Trend alignment**: When multiple timeframes show the same trend direction
## Conclusion
The StoRSI indicator provides a comprehensive view of market momentum by combining two powerful oscillators with multi-timeframe analysis. By looking for alignment between RSI and Stochastic across different timeframes, traders can identify stronger signals and filter out potential false moves. The visual design makes it easy to spot opportunities at a glance, while the customizable parameters allow adaptation to different markets and trading styles.
For best results, use this indicator as part of a complete trading system that includes proper risk management, trend analysis, and confirmation from price action patterns.
Smart Fib StrategySmart Fibonacci Strategy
This advanced trading strategy combines the power of adaptive SMA entries with Fibonacci-based exit levels to create a comprehensive trend-following system that self-optimizes based on historical market conditions. Credit goes to Julien_Eche who created the "Best SMA Finder" which received an Editors Pick award.
Strategy Overview
The Smart Fibonacci Strategy employs a two-pronged approach to trading:
1. Intelligent Entries: Uses a self-optimizing SMA (Simple Moving Average) to identify optimal entry points. The system automatically tests multiple SMA lengths against historical data to determine which period provides the most robust trading signals.
2. Fibonacci-Based Exits: Implements ATR-adjusted Fibonacci bands to establish precise exit targets, with risk-management options ranging from conservative to aggressive.
This dual methodology creates a balanced system that adapts to changing market conditions while providing clear visual reference points for trade management.
Key Features
- **Self-Optimizing Entries**: Automatically calculates the most profitable SMA length based on historical performance
- **Adjustable Risk Parameters**: Choose between low-risk and high-risk exit targets
- **Directional Flexibility**: Trade long-only, short-only, or both directions
- **Visualization Tools**: Customizable display of entry lines and exit bands
- **Performance Statistics**: Comprehensive stats table showing key metrics
- **Smoothing Option**: Reduces noise in the Fibonacci bands for cleaner signals
Trading Rules
Entry Signals
- **Long Entry**: When price crosses above the blue center line (optimal SMA)
- **Short Entry**: When price crosses below the blue center line (optimal SMA)
### Exit Levels
- **Low Risk Option**: Exit at the first Fibonacci band (1.618 * ATR)
- **High Risk Option**: Exit at the second Fibonacci band (2.618 * ATR)
Strategy Parameters
Display Settings
- Toggle visibility of the stats table and indicator components
Strategy Settings
- Select trading direction (long, short, or both)
- Choose exit method (low risk or high risk)
- Set minimum trades threshold for SMA optimization
SMA Settings
- Option to use auto-optimized or fixed-length SMA
- Customize SMA length when using fixed option
Fibonacci Settings
- Adjust ATR period and SMA basis for Fibonacci bands
- Enable/disable smoothing function
- Customize Fibonacci ratio multipliers
Appearance Settings
- Modify colors, line widths, and transparency
Optimization Methodology
The strategy employs a sophisticated optimization algorithm that:
1. Tests multiple SMA lengths against historical data
2. Evaluates performance based on trade count, profit factor, and win rate
3. Calculates a "robustness score" that balances profitability with statistical significance
4. Selects the SMA length with the highest robustness score
This ensures that the strategy's entry signals are continuously adapting to the most effective parameters for current market conditions.
Risk Management
Position sizing is fixed at $2,000 per trade, allowing for consistent exposure across all trading setups. The Fibonacci-based exit system provides two distinct risk management approaches:
- **Conservative Approach**: Using the first Fibonacci band for exits produces more frequent but smaller wins
- **Aggressive Approach**: Using the second Fibonacci band allows for larger potential gains at the cost of increased volatility
Ideal Usage
This strategy is best suited for:
- Trending markets with clear directional moves
- Timeframes from 4H to Daily for most balanced results
- Instruments with moderate volatility (stocks, forex, commodities)
Traders can further enhance performance by combining this strategy with broader market analysis to confirm the prevailing trend direction.
(OFPI) Order Flow Polarity Index - Momentum Gauge (DAFE) (OFPI) Order Flow Polarity Index - Momentum Gauge: Decode Market Aggression
The (OFPI) Gauge Bar is your front-row seat to the battle between buyers and sellers. This isn’t just another indicator—it’s a momentum tracker that reveals market aggression through a sleek, centered gauge bar and a smart dashboard. Built for traders who want clarity without clutter, it’s your edge for spotting who’s driving price, bar by bar.
What Makes It Unique?
Order Flow Pressure Index (OFPI): Splits volume into buy vs. sell pressure based on candle body position. It’s not just volume—it’s intent, showing who’s got the upper hand.
T3 Smoothing Magic: Uses a Tilson T3 moving average to keep signals smooth yet responsive. No laggy SMA nonsense here.
Centered Gauge Bar: A 20-segment bar splits bullish (lime) and bearish (red) momentum around a neutral center. Empty segments scream indecision—it’s like a visual heartbeat of the market.
Momentum Shift Alerts: Catches reversals with “Momentum Shift” flags when the OFPI crests, so you’re not caught off guard.
Clean Dashboard: A compact, bottom-left table shows momentum status, the gauge bar, and the OFPI value. Color-coded, transparent, and no chart clutter.
Inputs & Customization
Lookback Length (default 10): Set the window for pressure calculations. Short for scalps, long for trends.
T3 Smoothing Length (default 5): Tune the smoothness. Tight for fast markets, relaxed for chill ones.
T3 Volume Factor (default 0.7): Crank it up for snappy signals or down for silky trends.
Toggle the dashboard for minimalist setups or mobile trading.
How to Use It
Bullish Momentum (Lime, Right-Filled): Buyers are flexing. Look for breakouts or trend continuations. Pair with support levels.
Bearish Momentum (Red, Left-Filled): Sellers are in charge. Scout for breakdowns or shorts. Check resistance zones.
Neutral (Orange, Near Center): Market’s chilling. Avoid big bets—wait for a breakout or play the range.
Momentum Shift: A reversal might be brewing. Confirm with price action before jumping in.
Not a Solo Act: Combine with your strategy—trendlines, RSI, whatever. It’s a momentum lens, not a buy/sell bot.
Why Use the OFPI Gauge?
See the Fight: Most tools just count volume. OFPI shows who’s winning with a visual that slaps.
Works Anywhere: Crypto, stocks, forex, any timeframe. Tune it to your style.
Clean & Pro: No chart spam, just a sharp gauge and a dashboard that delivers.
Unique Edge: No other indicator blends body-based pressure, T3 smoothing, and a centered gauge like this.
The OFPI Gauge catches the market’s pulse so you can trade with confidence. It’s not about predicting the future—it’s about knowing who’s in control right now.
For educational purposes only. Not financial advice. Always use proper risk management.
Use with discipline. Trade your edge.
— Dskyz , for DAFE Trading Systems
Cointegration Heatmap & Spread Table [EdgeTerminal]The Cointegration Heatmap is a powerful visual and quantitative tool designed to uncover deep, statistically meaningful relationships between assets.
Unlike traditional indicators that react to price movement, this tool analyzes the underlying statistical relationship between two time series and tracks when they diverge from their long-term equilibrium — offering actionable signals for mean-reversion trades .
What Is Cointegration?
Most traders are familiar with correlation, which measures how two assets move together in the short term. But correlation is shallow — it doesn’t imply a stable or predictable relationship over time.
Cointegration, however, is a deeper statistical concept: Two assets are cointegrated if a linear combination of their prices or returns is stationary , even if the individual series themselves are non-stationary.
Cointegration is a foundational concept in time series analysis, widely used by hedge funds, proprietary trading firms, and quantitative researchers. This indicator brings that institutional-grade concept into an easy-to-use and fully visual TradingView indicator.
This tool helps answer key questions like:
“Which stocks tend to move in sync over the long term?”
“When are two assets diverging beyond statistical norms?”
“Is now the right time to short one and long the other?”
Using a combination of regression analysis, residual modeling, and Z-score evaluation, this indicator surfaces opportunities where price relationships are stretched and likely to snap back — making it ideal for building low-risk, high-probability trade setups.
In simple terms:
Cointegrated assets drift apart temporarily, but always come back together over time. This behavior is the foundation of successful pairs trading.
How the Indicator Works
Cointegration Heatmap indicator works across any market supported on TradingView — from stocks and ETFs to cryptocurrencies and forex pairs.
You enter your list of symbols, choose a timeframe, and the indicator updates every bar with live cointegration scores, spread signals, and trade-ready insights.
Indicator Settings:
Symbol list: a customizable list of symbols separated by commas
Returns timeframe: time frame selection for return sampling (Weekly or Monthly)
Max periods: max periods to limit the data to a certain time and to control indicator performance
This indicator accomplishes three major goals in one streamlined package:
Identifies stable long-term relationships (cointegration) between assets, using a heatmap visualization.
Tracks the spread — the difference between actual prices and the predicted linear relationship — between each pair.
Generates trade signals based on Z-score deviations from the mean spread, helping traders know when a pair is statistically overextended and likely to mean revert.
The math:
Returns are calculated using spread tickers to ensure alignment in time and adjust for dividends, splits, and other inconsistencies.
For each unique pair of symbols, we perform a linear regression
Yt=α+βXt+ε
Then we compute the residuals (errors from the regression):
Spreadt=Yt−(α+βXt)
Calculate the standard deviation of the spread over a moving window (default: 100 samples) and finally, define the Cointegration Score:
S=1/Standard Deviation of Residuals
This means, the lower the deviation, the tighter the relationship, so higher scores indicate stronger cointegration.
Always remember that cointegration can break down so monitor the asset over time and over multiple different timeframes before making a decision.
How to use the indicator
The heatmap table:
The indicator displays 2 very important tables, one in the middle and one on the right side. After entering your symbols, the first table to pay attention to is the middle heatmap table.
Any assets with a cointegration value of 25% is something to pay attention to and have a strong and stable relationship. Anything below is weak and not tradable.
Additionally, the 40% level is another important line to cross. Assets that have a cointegration score of over 40% will most likely have an extremely strong relationship.
Think about it this way, the higher the percentage, the tighter and more statistically reliable the relationship is.
The spread table:
After finding a good asset pair using heatmap, locate the same pair in the spread table (right side).
Here’s what you’ll see on the table:
Spread: Current difference between the two symbols based on the regression fit
Mean: Historical average of that spread
Z-score: How far current spread is from the mean in standard deviations
Signal: Trade suggestion: Short, Long, or Neutral
Since you’re expecting mean reversion, the idea is that the spread will return to the average. You want to take a trade when the z-score is either over +2 or below -2 and exit when z-score returns to near 0.
You will usually see the trade suggestion on the spread chart but you can make your own decision based on your risk level.
Keep in mind that the Z-score for each pair refers to how off the first asset is from the mean compared to the second one, so for example if you see STOCKA vs STOCKB with a Z-score of -1.55, we are regressing STOCKB (Y) on STOCKA (X).
In this case, STOCKB is the quoted asset and STOCKA is the base asset.
In this case, this means that STOCKB is much lower than expected relative to STOCKA, so the trade would be a long position on stock B and short position on stock A.
Smooth Fibonacci BandsSmooth Fibonacci Bands
This indicator overlays adaptive Fibonacci bands on your chart, creating dynamic support and resistance zones based on price volatility. It combines a simple moving average with ATR-based Fibonacci levels to generate multiple bands that expand and contract with market conditions.
## Features
- Creates three pairs of upper and lower Fibonacci bands
- Smoothing option for cleaner, less noisy bands
- Fully customizable colors and line thickness
- Adapts automatically to changing market volatility
## Settings
Adjust the SMA and ATR lengths to match your trading timeframe. For short-term trading, try lower values; for longer-term analysis, use higher values. The Fibonacci factors determine how far each band extends from the center line - standard Fibonacci ratios (1.618, 2.618, and 4.236) are provided as defaults.
## Trading Applications
- Use band crossovers as potential entry and exit signals
- Look for price bouncing off bands as reversal opportunities
- Watch for price breaking through multiple bands as strong trend confirmation
- Identify potential support/resistance zones for placing stop losses or take profits
Fibonacci Bands combines the reliability of moving averages with the adaptability of ATR and the natural market harmony of Fibonacci ratios, offering a robust framework for both trend and range analysis.
MACD of RSI [TORYS]MACD of RSI — Momentum & Divergence Scanner
Description:
This enhanced oscillator applies MACD logic directly to the Relative Strength Index (RSI) rather than price, giving traders a clearer look at internal momentum and early shifts in trend strength. Now featuring a custom histogram, dual MA types, and RSI-based divergence detection — it’s a complete toolkit for identifying exhaustion, acceleration, and hidden reversal points in real time.
How It Works:
Calculates the MACD line as the difference between a fast and slow moving average of RSI. Adds a Signal Line (MA of the MACD) and plots a Histogram to show momentum acceleration/deceleration. Both RSI MAs and the Signal Line can be toggled between EMA and SMA for custom tuning.
Divergence Detection:
Bullish Divergence : Price makes a lower low while RSI makes a higher low → labeled with a green “D” below the curve.
Bearish Divergence : Price makes a higher high while RSI makes a lower high → labeled with a red “D” above the curve.
Configurable lookback window for tuning sensitivity to pivots, with 4 as the sweet spot.
RSI Pivot Dot Signals:
Plots green dots at RSI oversold pivot lows below 30,
Plots red dots at overbought pivot highs above 70.
Helps detect short-term exhaustion or bounce zones, plotted right on the MACD-RSI curve.
RSI 50 Crosses (Optional):
Optional ▲ and ▼ labels when RSI crosses its 50 midline — useful for momentum trend shifts or pullback confirmation, or to detect consolidation.
Histogram:
Plotted as a column chart showing the distance between MACD and Signal Line.
Colored dynamically:
Bright green : Momentum rising above zero
Light green : Weakening above zero
Bright red : Momentum falling below zero
Light red : Weakening below zero
The zero line serves as the mid-point:
Above = Bullish Bias
Below = Bearish Bias
How to Interpret:
Momentum Confirmation:
Use MACD cross above Signal Line with a rising histogram to confirm breakouts or trend entries.
Histogram shrinking near zero = momentum weakening → caution or reversal.
Exhaustion & Reversals:
Dot signals near RSI extremes + histogram peak can suggest overbought/oversold pressure.
Use divergence labels ("D") to spot early reversal signals before price breaks structure.
Inputs & Settings:
RSI Length
Fast/Slow MA Lengths for MACD (applied to RSI)
Signal Line Length
MA Type: Choose between EMA and SMA for MACD and Signal Line
Pivot Sensitivity for dot markers
Divergence Logic Toggle
Show/hide RSI 50 Crosses
Best For:
Traders who want momentum insight from inside RSI, not price
Scalpers using divergence or exhaustion entries
Swing traders seeking entry confirmation from signal crossovers
Anyone using multi-timeframe confluence with RSI and trend filters
Pro Tips:
Combine this with:
Bollinger Bands breakouts and reversals
VWAP or EMAs to filter entries by trend
Volume spikes or BBW squeezes for volatility confirmation
TTM Scalper Alert to sync structure and momentum
Why EMA Isn't What You Think It IsMany new traders adopt the Exponential Moving Average (EMA) believing it's simply a "better Simple Moving Average (SMA)". This common misconception leads to fundamental misunderstandings about how EMA works and when to use it.
EMA and SMA differ at their core. SMA use a window of finite number of data points, giving equal weight to each data point in the calculation period. This makes SMA a Finite Impulse Response (FIR) filter in signal processing terms. Remember that FIR means that "all that we need is the 'period' number of data points" to calculate the filter value. Anything beyond the given period is not relevant to FIR filters – much like how a security camera with 14-day storage automatically overwrites older footage, making last month's activity completely invisible regardless of how important it might have been.
EMA, however, is an Infinite Impulse Response (IIR) filter. It uses ALL historical data, with each past price having a diminishing - but never zero - influence on the calculated value. This creates an EMA response that extends infinitely into the past—not just for the last N periods. IIR filters cannot be precise if we give them only a 'period' number of data to work on - they will be off-target significantly due to lack of context, like trying to understand Game of Thrones by watching only the final season and wondering why everyone's so upset about that dragon lady going full pyromaniac.
If we only consider a number of data points equal to the EMA's period, we are capturing no more than 86.5% of the total weight of the EMA calculation. Relying on he period window alone (the warm-up period) will provide only 1 - (1 / e^2) weights, which is approximately 1−0.1353 = 0.8647 = 86.5%. That's like claiming you've read a book when you've skipped the first few chapters – technically, you got most of it, but you probably miss some crucial early context.
▶️ What is period in EMA used for?
What does a period parameter really mean for EMA? When we select a 15-period EMA, we're not selecting a window of 15 data points as with an SMA. Instead, we are using that number to calculate a decay factor (α) that determines how quickly older data loses influence in EMA result. Every trader knows EMA calculation: α = 1 / (1+period) – or at least every trader claims to know this while secretly checking the formula when they need it.
Thinking in terms of "period" seriously restricts EMA. The α parameter can be - should be! - any value between 0.0 and 1.0, offering infinite tuning possibilities of the indicator. When we limit ourselves to whole-number periods that we use in FIR indicators, we can only access a small subset of possible IIR calculations – it's like having access to the entire RGB color spectrum with 16.7 million possible colors but stubbornly sticking to the 8 basic crayons in a child's first art set because the coloring book only mentioned those by name.
For example:
Period 10 → alpha = 0.1818
Period 11 → alpha = 0.1667
What about wanting an alpha of 0.17, which might yield superior returns in your strategy that uses EMA? No whole-number period can provide this! Direct α parameterization offers more precision, much like how an analog tuner lets you find the perfect radio frequency while digital presets force you to choose only from predetermined stations, potentially missing the clearest signal sitting right between channels.
Sidenote: the choice of α = 1 / (1+period) is just a convention from 1970s, probably started by J. Welles Wilder, who popularized the use of the 14-day EMA. It was designed to create an approximate equivalence between EMA and SMA over the same number of periods, even thought SMA needs a period window (as it is FIR filter) and EMA doesn't. In reality, the decay factor α in EMA should be allowed any valye between 0.0 and 1.0, not just some discrete values derived from an integer-based period! Algorithmic systems should find the best α decay for EMA directly, allowing the system to fine-tune at will and not through conversion of integer period to float α decay – though this might put a few traditionalist traders into early retirement. Well, to prevent that, most traditionalist implementations of EMA only use period and no alpha at all. Heaven forbid we disturb people who print their charts on paper, draw trendlines with rulers, and insist the market "feels different" since computers do algotrading!
▶️ Calculating EMAs Efficiently
The standard textbook formula for EMA is:
EMA = CurrentPrice × alpha + PreviousEMA × (1 - alpha)
But did you know that a more efficient version exists, once you apply a tiny bit of high school algebra:
EMA = alpha × (CurrentPrice - PreviousEMA) + PreviousEMA
The first one requires three operations: 2 multiplications + 1 addition. The second one also requires three ops: 1 multiplication + 1 addition + 1 subtraction.
That's pathetic, you say? Not worth implementing? In most computational models, multiplications cost much more than additions/subtractions – much like how ordering dessert costs more than asking for a water refill at restaurants.
Relative CPU cost of float operations :
Addition/Subtraction: ~1 cycle
Multiplication: ~5 cycles (depending on precision and architecture)
Now you see the difference? 2 * 5 + 1 = 11 against 5 + 1 + 1 = 7. That is ≈ 36.36% efficiency gain just by swapping formulas around! And making your high school math teacher proud enough to finally put your test on the refrigerator.
▶️ The Warmup Problem: how to start the EMA sequence right
How do we calculate the first EMA value when there's no previous EMA available? Let's see some possible options used throughout the history:
Start with zero : EMA(0) = 0. This creates stupidly large distortion until enough bars pass for the horrible effect to diminish – like starting a trading account with zero balance but backdating a year of missed trades, then watching your balance struggle to climb out of a phantom debt for months.
Start with first price : EMA(0) = first price. This is better than starting with zero, but still causes initial distortion that will be extra-bad if the first price is an outlier – like forming your entire opinion of a stock based solely on its IPO day price, then wondering why your model is tanking for weeks afterward.
Use SMA for warmup : This is the tradition from the pencil-and-paper era of technical analysis – when calculators were luxury items and "algorithmic trading" meant your broker had neat handwriting. We first calculate an SMA over the initial period, then kickstart the EMA with this average value. It's widely used due to tradition, not merit, creating a mathematical Frankenstein that uses an FIR filter (SMA) during the initial period before abruptly switching to an IIR filter (EMA). This methodology is so aesthetically offensive (abrupt kink on the transition from SMA to EMA) that charting platforms hide these early values entirely, pretending EMA simply doesn't exist until the warmup period passes – the technical analysis equivalent of sweeping dust under the rug.
Use WMA for warmup : This one was never popular because it is harder to calculate with a pencil - compared to using simple SMA for warmup. Weighted Moving Average provides a much better approximation of a starting value as its linear descending profile is much closer to the EMA's decay profile.
These methods all share one problem: they produce inaccurate initial values that traders often hide or discard, much like how hedge funds conveniently report awesome performance "since strategy inception" only after their disastrous first quarter has been surgically removed from the track record.
▶️ A Better Way to start EMA: Decaying compensation
Think of it this way: An ideal EMA uses an infinite history of prices, but we only have data starting from a specific point. This creates a problem - our EMA starts with an incorrect assumption that all previous prices were all zero, all close, or all average – like trying to write someone's biography but only having information about their life since last Tuesday.
But there is a better way. It requires more than high school math comprehension and is more computationally intensive, but is mathematically correct and numerically stable. This approach involves compensating calculated EMA values for the "phantom data" that would have existed before our first price point.
Here's how phantom data compensation works:
We start our normal EMA calculation:
EMA_today = EMA_yesterday + α × (Price_today - EMA_yesterday)
But we add a correction factor that adjusts for the missing history:
Correction = 1 at the start
Correction = Correction × (1-α) after each calculation
We then apply this correction:
True_EMA = Raw_EMA / (1-Correction)
This correction factor starts at 1 (full compensation effect) and gets exponentially smaller with each new price bar. After enough data points, the correction becomes so small (i.e., below 0.0000000001) that we can stop applying it as it is no longer relevant.
Let's see how this works in practice:
For the first price bar:
Raw_EMA = 0
Correction = 1
True_EMA = Price (since 0 ÷ (1-1) is undefined, we use the first price)
For the second price bar:
Raw_EMA = α × (Price_2 - 0) + 0 = α × Price_2
Correction = 1 × (1-α) = (1-α)
True_EMA = α × Price_2 ÷ (1-(1-α)) = Price_2
For the third price bar:
Raw_EMA updates using the standard formula
Correction = (1-α) × (1-α) = (1-α)²
True_EMA = Raw_EMA ÷ (1-(1-α)²)
With each new price, the correction factor shrinks exponentially. After about -log₁₀(1e-10)/log₁₀(1-α) bars, the correction becomes negligible, and our EMA calculation matches what we would get if we had infinite historical data.
This approach provides accurate EMA values from the very first calculation. There's no need to use SMA for warmup or discard early values before output converges - EMA is mathematically correct from first value, ready to party without the awkward warmup phase.
Here is Pine Script 6 implementation of EMA that can take alpha parameter directly (or period if desired), returns valid values from the start, is resilient to dirty input values, uses decaying compensator instead of SMA, and uses the least amount of computational cycles possible.
// Enhanced EMA function with proper initialization and efficient calculation
ema(series float source, simple int period=0, simple float alpha=0)=>
// Input validation - one of alpha or period must be provided
if alpha<=0 and period<=0
runtime.error("Alpha or period must be provided")
// Calculate alpha from period if alpha not directly specified
float a = alpha > 0 ? alpha : 2.0 / math.max(period, 1)
// Initialize variables for EMA calculation
var float ema = na // Stores raw EMA value
var float result = na // Stores final corrected EMA
var float e = 1.0 // Decay compensation factor
var bool warmup = true // Flag for warmup phase
if not na(source)
if na(ema)
// First value case - initialize EMA to zero
// (we'll correct this immediately with the compensation)
ema := 0
result := source
else
// Standard EMA calculation (optimized formula)
ema := a * (source - ema) + ema
if warmup
// During warmup phase, apply decay compensation
e *= (1-a) // Update decay factor
float c = 1.0 / (1.0 - e) // Calculate correction multiplier
result := c * ema // Apply correction
// Stop warmup phase when correction becomes negligible
if e <= 1e-10
warmup := false
else
// After warmup, EMA operates without correction
result := ema
result // Return the properly compensated EMA value
▶️ CONCLUSION
EMA isn't just a "better SMA"—it is a fundamentally different tool, like how a submarine differs from a sailboat – both float, but the similarities end there. EMA responds to inputs differently, weighs historical data differently, and requires different initialization techniques.
By understanding these differences, traders can make more informed decisions about when and how to use EMA in trading strategies. And as EMA is embedded in so many other complex and compound indicators and strategies, if system uses tainted and inferior EMA calculatiomn, it is doing a disservice to all derivative indicators too – like building a skyscraper on a foundation of Jell-O.
The next time you add an EMA to your chart, remember: you're not just looking at a "faster moving average." You're using an INFINITE IMPULSE RESPONSE filter that carries the echo of all previous price actions, properly weighted to help make better trading decisions.
EMA done right might significantly improve the quality of all signals, strategies, and trades that rely on EMA somewhere deep in its algorithmic bowels – proving once again that math skills are indeed useful after high school, no matter what your guidance counselor told you.