Advanced Petroleum Market Model (APMM)Advanced Petroleum Market Model (APMM): A Multi-Factor Fundamental Analysis Framework for Oil Market Assessment
## 1. Introduction
The petroleum market represents one of the most complex and globally significant commodity markets, characterized by intricate supply-demand dynamics, geopolitical influences, and substantial price volatility (Hamilton, 2009). Traditional fundamental analysis approaches often struggle to synthesize the multitude of relevant indicators into actionable insights due to data heterogeneity, temporal misalignment, and subjective weighting schemes (Baumeister & Kilian, 2016).
The Advanced Petroleum Market Model addresses these limitations through a systematic, quantitative approach that integrates 16 verified fundamental indicators across five critical market dimensions. The model builds upon established financial engineering principles while incorporating petroleum-specific market dynamics and adaptive learning mechanisms.
## 2. Theoretical Framework
### 2.1 Market Efficiency and Information Integration
The model operates under the assumption of semi-strong market efficiency, where fundamental information is gradually incorporated into prices with varying degrees of lag (Fama, 1970). The petroleum market's unique characteristics, including storage costs, transportation constraints, and geopolitical risk premiums, create opportunities for fundamental analysis to provide predictive value (Kilian, 2009).
### 2.2 Multi-Factor Asset Pricing Theory
Drawing from Ross's (1976) Arbitrage Pricing Theory, the model treats petroleum prices as driven by multiple systematic risk factors. The five-factor decomposition (Supply, Inventory, Demand, Trade, Sentiment) represents economically meaningful sources of systematic risk in petroleum markets (Chen et al., 1986).
## 3. Methodology
### 3.1 Data Sources and Quality Framework
The model integrates 16 fundamental indicators sourced from verified TradingView economic data feeds:
Supply Indicators:
- US Oil Production (ECONOMICS:USCOP)
- US Oil Rigs Count (ECONOMICS:USCOR)
- API Crude Runs (ECONOMICS:USACR)
Inventory Indicators:
- US Crude Stock Changes (ECONOMICS:USCOSC)
- Cushing Stocks (ECONOMICS:USCCOS)
- API Crude Stocks (ECONOMICS:USCSC)
- API Gasoline Stocks (ECONOMICS:USGS)
- API Distillate Stocks (ECONOMICS:USDS)
Demand Indicators:
- Refinery Crude Runs (ECONOMICS:USRCR)
- Gasoline Production (ECONOMICS:USGPRO)
- Distillate Production (ECONOMICS:USDFP)
- Industrial Production Index (FRED:INDPRO)
Trade Indicators:
- US Crude Imports (ECONOMICS:USCOI)
- US Oil Exports (ECONOMICS:USOE)
- API Crude Imports (ECONOMICS:USCI)
- Dollar Index (TVC:DXY)
Sentiment Indicators:
- Oil Volatility Index (CBOE:OVX)
### 3.2 Data Quality Monitoring System
Following best practices in quantitative finance (Lopez de Prado, 2018), the model implements comprehensive data quality monitoring:
Data Quality Score = Σ(Individual Indicator Validity) / Total Indicators
Where validity is determined by:
- Non-null data availability
- Positive value validation
- Temporal consistency checks
### 3.3 Statistical Normalization Framework
#### 3.3.1 Z-Score Normalization
The model employs robust Z-score normalization as established by Sharpe (1994) for cross-indicator comparability:
Z_i,t = (X_i,t - μ_i) / σ_i
Where:
- X_i,t = Raw value of indicator i at time t
- μ_i = Sample mean of indicator i
- σ_i = Sample standard deviation of indicator i
Z-scores are capped at ±3 to mitigate outlier influence (Tukey, 1977).
#### 3.3.2 Percentile Rank Transformation
For intuitive interpretation, Z-scores are converted to percentile ranks following the methodology of Conover (1999):
Percentile_Rank = (Number of values < current_value) / Total_observations × 100
### 3.4 Exponential Smoothing Framework
Signal smoothing employs exponential weighted moving averages (Brown, 1963) with adaptive alpha parameter:
S_t = α × X_t + (1-α) × S_{t-1}
Where α = 2/(N+1) and N represents the smoothing period.
### 3.5 Dynamic Threshold Optimization
The model implements adaptive thresholds using Bollinger Band methodology (Bollinger, 1992):
Dynamic_Threshold = μ ± (k × σ)
Where k is the threshold multiplier adjusted for market volatility regime.
### 3.6 Composite Score Calculation
The fundamental score integrates component scores through weighted averaging:
Fundamental_Score = Σ(w_i × Score_i × Quality_i)
Where:
- w_i = Normalized component weight
- Score_i = Component fundamental score
- Quality_i = Data quality adjustment factor
## 4. Implementation Architecture
### 4.1 Adaptive Parameter Framework
The model incorporates regime-specific adjustments based on market volatility:
Volatility_Regime = σ_price / μ_price × 100
High volatility regimes (>25%) trigger enhanced weighting for inventory and sentiment components, reflecting increased market sensitivity to supply disruptions and psychological factors.
### 4.2 Data Synchronization Protocol
Given varying publication frequencies (daily, weekly, monthly), the model employs forward-fill synchronization to maintain temporal alignment across all indicators.
### 4.3 Quality-Adjusted Scoring
Component scores are adjusted for data quality to prevent degraded inputs from contaminating the composite signal:
Adjusted_Score = Raw_Score × Quality_Factor + 50 × (1 - Quality_Factor)
This formulation ensures that poor-quality data reverts toward neutral (50) rather than contributing noise.
## 5. Usage Guidelines and Best Practices
### 5.1 Configuration Recommendations
For Short-term Analysis (1-4 weeks):
- Lookback Period: 26 weeks
- Smoothing Length: 3-5 periods
- Confidence Period: 13 weeks
- Increase inventory and sentiment weights
For Medium-term Analysis (1-3 months):
- Lookback Period: 52 weeks
- Smoothing Length: 5-8 periods
- Confidence Period: 26 weeks
- Balanced component weights
For Long-term Analysis (3+ months):
- Lookback Period: 104 weeks
- Smoothing Length: 8-12 periods
- Confidence Period: 52 weeks
- Increase supply and demand weights
### 5.2 Signal Interpretation Framework
Bullish Signals (Score > 70):
- Fundamental conditions favor price appreciation
- Consider long positions or reduced short exposure
- Monitor for trend confirmation across multiple timeframes
Bearish Signals (Score < 30):
- Fundamental conditions suggest price weakness
- Consider short positions or reduced long exposure
- Evaluate downside protection strategies
Neutral Range (30-70):
- Mixed fundamental environment
- Favor range-bound or volatility strategies
- Wait for clearer directional signals
### 5.3 Risk Management Considerations
1. Data Quality Monitoring: Continuously monitor the data quality dashboard. Scores below 75% warrant increased caution.
2. Regime Awareness: Adjust position sizing based on volatility regime indicators. High volatility periods require reduced exposure.
3. Correlation Analysis: Monitor correlation with crude oil prices to validate model effectiveness.
4. Fundamental-Technical Divergence: Pay attention when fundamental signals diverge from technical indicators, as this may signal regime changes.
### 5.4 Alert System Optimization
Configure alerts conservatively to avoid false signals:
- Set alert threshold at 75+ for high-confidence signals
- Enable data quality warnings to maintain system integrity
- Use trend reversal alerts for early regime change detection
## 6. Model Validation and Performance Metrics
### 6.1 Statistical Validation
The model's statistical robustness is ensured through:
- Out-of-sample testing protocols
- Rolling window validation
- Bootstrap confidence intervals
- Regime-specific performance analysis
### 6.2 Economic Validation
Fundamental accuracy is validated against:
- Energy Information Administration (EIA) official reports
- International Energy Agency (IEA) market assessments
- Commercial inventory data verification
## 7. Limitations and Considerations
### 7.1 Model Limitations
1. Data Dependency: Model performance is contingent on data availability and quality from external sources.
2. US Market Focus: Primary data sources are US-centric, potentially limiting global applicability.
3. Lag Effects: Some fundamental indicators exhibit publication lags that may delay signal generation.
4. Regime Shifts: Structural market changes may require model recalibration.
### 7.2 Market Environment Considerations
The model is optimized for normal market conditions. During extreme events (e.g., geopolitical crises, pandemics), additional qualitative factors should be considered alongside quantitative signals.
## References
Baumeister, C., & Kilian, L. (2016). Forty years of oil price fluctuations: Why the price of oil may still surprise us. *Journal of Economic Perspectives*, 30(1), 139-160.
Bollinger, J. (1992). *Bollinger on Bollinger Bands*. McGraw-Hill.
Brown, R. G. (1963). *Smoothing, Forecasting and Prediction of Discrete Time Series*. Prentice-Hall.
Chen, N. F., Roll, R., & Ross, S. A. (1986). Economic forces and the stock market. *Journal of Business*, 59(3), 383-403.
Conover, W. J. (1999). *Practical Nonparametric Statistics* (3rd ed.). John Wiley & Sons.
Fama, E. F. (1970). Efficient capital markets: A review of theory and empirical work. *Journal of Finance*, 25(2), 383-417.
Hamilton, J. D. (2009). Understanding crude oil prices. *Energy Journal*, 30(2), 179-206.
Kilian, L. (2009). Not all oil price shocks are alike: Disentangling demand and supply shocks in the crude oil market. *American Economic Review*, 99(3), 1053-1069.
Lopez de Prado, M. (2018). *Advances in Financial Machine Learning*. John Wiley & Sons.
Ross, S. A. (1976). The arbitrage theory of capital asset pricing. *Journal of Economic Theory*, 13(3), 341-360.
Sharpe, W. F. (1994). The Sharpe ratio. *Journal of Portfolio Management*, 21(1), 49-58.
Tukey, J. W. (1977). *Exploratory Data Analysis*. Addison-Wesley.
Cari dalam skrip untuk "半导体设备ETF"
Neural Adaptive VWAPNeural Adaptive VWAP with ML Features is an advanced trading indicator that enhances traditional Volume Weighted Average Price (VWAP) calculations through machine learning-inspired adaptive algorithms and predictive volume modeling.
🌟 Key Features:
🧠 Machine Learning-Inspired Adaptation
Dynamic weight adjustment system that learns from prediction errors
Multi-feature volume prediction using time-of-day patterns, price momentum, and volatility
Adaptive learning mechanism that improves accuracy over time
📊 Enhanced VWAP Calculation
Combines actual and predicted volume for forward-looking VWAP computation
Session-based reset with proper daily anchoring
Confidence bands based on rolling standard deviation for dynamic support/resistance
🎯 Advanced Signal Generation
Volume-confirmed crossover signals to reduce false entries
Color-coded candle visualization based on VWAP position
Multi-level strength indicators (strong/weak bullish/bearish zones)
⚙️ Intelligent Feature Engineering
Normalized volume analysis with statistical z-score
Time-series pattern recognition for intraday volume cycles
Price momentum and volatility integration
Sigmoid activation functions for realistic predictions
📈 How It Works:
The indicator employs a sophisticated feature engineering approach that extracts meaningful patterns from:
Volume Patterns: Normalized volume analysis and historical comparisons
Temporal Features: Time-of-day and minute-based cyclical patterns
Market Dynamics: Price momentum, volatility, and rate of change
Adaptive Learning: Error-based weight adjustment similar to neural network training
Unlike static VWAP indicators, this system continuously adapts its calculation methodology based on real-time market feedback, making it more responsive to changing market conditions while maintaining the reliability of traditional VWAP analysis.
🔧 Customizable Parameters:
VWAP Length (1-200 bars)
Volume Pattern Lookback (5-50 periods)
Learning Rate (0.001-0.1) for adaptation speed
Prediction Horizon (1-10 bars ahead)
Adaptation Period for weight updates
📊 Visual Elements:
Blue Line: Adaptive VWAP with predictive elements
Red/Green Bands: Dynamic confidence zones
Colored Candles: Position-based strength visualization
Signal Arrows: Volume-confirmed entry points
Info Table: Real-time performance metrics and weight distribution
🎯 Best Use Cases:
Intraday Trading: Enhanced execution timing with volume prediction
Institutional-Style Execution: Improved VWAP-based order placement
Trend Following: Adaptive trend identification with confidence zones
Support/Resistance Trading: Dynamic levels that adjust to market conditions
Liquidity Sweep Candlestick Pattern with MA Filter📌 Liquidity Sweep Candlestick Pattern with MA Filter
This custom indicator detects liquidity sweep candlestick patterns—price action events where the market briefly breaks a previous candle’s high or low to trap traders—paired with optional filters such as moving averages, color change candles, and strictness rules for better signal accuracy.
🔍 What is a Liquidity Sweep?
A liquidity sweep occurs when the price briefly breaks the high or low of a previous candle and then reverses direction. These events often occur around key support/resistance zones and are used by institutional traders to trap retail positions before moving the price in the intended direction.
🟢 Bullish Liquidity Sweep Criteria
The current candle is bullish (closes above its open).
The low of the current candle breaks the low of the previous candle.
The candle closes above the previous candle’s open.
Optionally, in Strict mode, it must also close above the previous candle’s high.
Optionally, it can be filtered to only show if the candle changed color from the previous one (e.g., red to green).
Can be filtered to only show when the price is above or below a moving average (if MA filter is enabled).
🔴 Bearish Liquidity Sweep Criteria
The current candle is bearish (closes below its open).
The high of the current candle breaks the high of the previous candle.
The candle closes below the previous candle’s open.
Optionally, in Strict mode, it must also close below the previous candle’s low.
Optionally, it can be filtered to only show if the candle changed color from the previous one (e.g., green to red).
Can be filtered to only show when the price is above or below a moving average (if MA filter is enabled).
⚙️ Features & Customization
✅ Signal Strictness
Choose between:
Less Strict (default): Basic wick break and close conditions.
Strict: Must close beyond the wick of the previous candle.
✅ Color Change Candles Only
Enable this to only show patterns when the candle color changes (e.g., from red to green or green to red). Helps filter fake-outs.
✅ Moving Average Filter (optional)
Supports several types of MAs: SMA, EMA, WMA, VWMA, RMA, HMA
Choose whether signals should only appear above or below the selected moving average.
✅ Custom Visuals
Show short (BS) or full (Bull Sweep / Bear Sweep) labels
Plot triangles or arrows to represent bullish and bearish sweeps
Customize label and shape colors
Optionally show/hide the moving average line
✅ Alerts
Includes alert options for:
Bullish sweep
Bearish sweep
Any sweep
📈 How to Use
Add the indicator to your chart.
Configure the strictness, color change, or MA filters based on your strategy.
Observe signals where price is likely to reverse after taking out liquidity.
Use with key support/resistance levels, order blocks, or volume zones for confluence.
⚠️ Note
This tool is for educational and strategy-building purposes. Always confirm signals with other indicators, context, and sound risk management.
QQQ Strategy v2 ESL | easy-peasy-x This is a strategy optimized for QQQ (and SPY) for the 1H timeframe. It significantly outperforms passive buy-and-hold approach. With settings adjustments, it can be used on various assets like stocks and cryptos and various timeframes, although the default out of the box settings favor QQQ 1H.
The strategy uses various triggers to take both long and short trades. These can be adjusted in settings. If you try a different asset, see what combination of triggers works best for you.
Some of the triggers employ LuxAlgo's Ultimate RSI - shoutout to him for great script, check it out here .
Other triggers are based on custom signed standard deviation - basically the idea is to trade Bollinger Bands expansions (long to the upside, short to the downside) and fade or stay out of contractions.
There are three key moving averages in the strategy - LONG MA, SHORT MA, BASIC MA. Long and Short MAs are guides to eyes on the chart and also act as possible trend filters (adjustable in settings). Basic MA acts as guide to eye and a possible trade trigger (adjustable in settings).
There are a few trend filters the strategy can use - moving average, signed standard deviation, ultimate RSI or none. The filters act as an additional condition on triggers, making the strategy take trades only if both triggers and trend filter allows. That way one can filter out trades with unfavorable risk/reward (for instance, don't long if price is under the MA200). Different trade filters can be used for long and short trades.
The strategy employs various stop loss types, the default of which is a trailing %-based stop loss type. ATR-based stop loss is also available. The default 1.5% trailing stop loss is suitable for leveraged trading.
Lastly, the strategy can trigger take profit orders if certain conditions are met, adjustable in settings. Also, it can hold onto winning trades and exit only after stop out (in which case, consecutive triggers to take other positions will be ignored until stop out).
Let me know if you like it and if you use it, what kind of tweaks would you like to see.
With kind regards,
easy-peasy-x
Delta Magnet Zone LiteDelta Magnet Zone Lite is exactly what it sounds like. It is areas where price cold potentially act as a magnet zone for price. Delta Magnet Zone Lite is a lightweight yet powerful visual tool that highlights potential liquidity traps and high-probability reversal zones based on volume spikes and wick imbalances. Designed for precision traders, this indicator visually marks key “magnet” zones where price may react, reverse, or consolidate due to prior aggressive buying or selling activity.
🔹 Core Logic:
Volume Spike Detection
Identifies candles with significantly higher volume than the moving average (customizable). These are likely areas of institutional interest or stop-hunt events.
Wick Ratio Analysis
Measures the size of the upper or lower wick relative to the total candle range. When combined with volume spikes, this helps detect:
Bullish Traps: Large lower wicks with strong buying volume
Bearish Traps: Large upper wicks with strong selling volume
Smart Zone Marking
When trap conditions are met, the script draws a semi-transparent colored box (green for bullish, red for bearish) that extends forward in time, highlighting a magnet zone—a price area likely to be retested or respected by future price action.
🛠 Customization Options:
Volume Spike Threshold
Adjust the multiplier for defining what qualifies as "high volume" relative to the average.
Wick Ratio Sensitivity
Fine-tune how extreme the wick size must be to qualify as a trap.
Zone Lifetime (Lookback)
Control how many bars each zone remains active on the chart.
Toggle Visibility
Turn bullish or bearish zones on/off independently for clean charting.
Ideal Use Cases:
Spotting hidden liquidity zones
Identifying exhaustion points in fast markets
Tracking institutional order imbalances
Enhancing confirmation for entry/exit signals
Whether you're trading intraday breakouts or swing-level reversals, Delta Magnet Zone Lite brings clarity to key reaction levels derived from raw price and volume behavior.
utilsLibrary "utils"
TODO: add library description here
method getType(this)
Namespace types: series int, simple int, input int, const int
Parameters:
this (int) : int 待检测对象
Returns: string 类型名称
method getType(this)
Namespace types: series float, simple float, input float, const float
Parameters:
this (float) : float 待检测对象
Returns: string 类型名称
method getType(this)
Namespace types: series color, simple color, input color, const color
Parameters:
this (color) : color 待检测对象
Returns: string 类型名称
method getType(this)
Namespace types: series string, simple string, input string, const string
Parameters:
this (string) : string 待检测对象
Returns: string 类型名称
method getType(this)
Namespace types: series bool, simple bool, input bool, const bool
Parameters:
this (bool) : bool 待检测对象
Returns: string 类型名称
Best EMA FinderThis script, Best EMA Finder, is based on the same original logic as the Best SMA Finder I published previously. Although it was not the initial goal of the project, several users asked for an EMA version, so here it is.
The script scans a wide range of Exponential Moving Average (EMA) lengths, from 10 to 500, and identifies the one that historically delivered the most robust performance on the current chart. The choice to stop at 500 is deliberate: beyond that point, EMA curves tend to flatten and converge, adding processing time without meaningful differences in signals or outcomes.
Each EMA is evaluated using a custom robustness score:
Profit Factor × log(Number of Trades) × sqrt(Win Rate)
Only EMA lengths that exceed a user-defined minimum number of trades are considered valid. Among these, the one with the highest robustness score is selected and displayed on the chart.
A table summarizes the results:
- Best EMA length
- Total number of trades
- Profit Factor
- Win Rate
- Robustness Score
You can adjust:
- Strategy type: Long Only or Buy & Sell
- Minimum number of trades required
- Table visibility
This script is designed for analysis and optimization only. It does not execute trades or handle position sizing. Only one open trade per direction is considered at a time.
NY Opening Range Breakout - MA StopCore Concept
This strategy trades breakouts from the New York opening range (9:30-9:45 AM NY time) on intraday timeframes, designed for scalping and day trading.
Setup Requirements
Timeframe: Works on any timeframe under 15 minutes (1m, 2m, 3m, 5m, 10m)
Session: New York market hours
Range Period: 9:30-9:45 AM NY time (15-minute opening range)
Entry Rules
Long Entries:
Wait for a candle to close above the opening range high
Enter long on the next candle (before 12:00 PM NY time)
Must be above moving average if using MA-based take profit
Short Entries:
Wait for a candle to close below the opening range low
Enter short on the next candle (before 12:00 PM NY time)
Must be below moving average if using MA-based take profit
Risk Management
Stop Loss:
Long trades: Opening range low
Short trades: Opening range high
Take Profit Options:
Fixed Risk Reward: 1.5x the range size (customizable ratio)
Moving Average: Exit when price crosses back through MA
Both: Whichever comes first
Key Features
Trade Direction Options:
Long Only
Short Only
Both directions
Moving Average Filter:
Prevents entries that would immediately hit stop loss
Uses EMA/SMA/WMA/VWMA with customizable length
Acts as dynamic support/resistance
Time Restrictions:
No entries after 12:00 PM NY time (customizable cutoff)
One trade per direction per day
Daily reset of all variables
Visual Elements
Red/green lines showing opening range
Purple line for moving average
Entry and breakout signals with shapes
Take profit and stop loss levels plotted
Information table with current status
Strategy Logic Flow
Morning: Capture 9:30-9:45 range high/low
Wait: Monitor for breakout (previous candle close outside range)
Filter: Check MA condition if using MA-based exits
Enter: Trade on next candle after breakout
Manage: Exit at fixed TP, MA cross, or stop loss
Reset: Start fresh next trading day
This is a momentum-based breakout strategy that capitalizes on early market volatility while using the opening range as natural support/resistance levels.
TrueTrend MaxRThe TrueTrend MaxR indicator is designed to identify the most consistent exponential price trend over extended periods. It uses statistical analysis on log-transformed prices to find the trendline that best fits historical price action, and highlights the most frequently tested or traded level within that trend channel.
For optimal results, especially on high timeframes such as weekly or monthly, it is recommended to use this indicator on charts set to logarithmic scale. This ensures proper visual alignment with the exponential nature of long-term price movements.
How it works
The indicator tests 50 different lookback periods, ranging from 300 to 1280 bars. For each period, it:
- Applies a linear regression on the natural logarithm of the price
- Computes the slope and intercept of the trendline
- Calculates the unbiased standard deviation from the regression line
- Measures the correlation strength using Pearson's R coefficient
The period with the highest Pearson R value is selected, meaning the trendline drawn corresponds to the log-scale trend with the best statistical fit.
Trendline and deviation bands
Once the optimal period is identified, the indicator plots:
- A main log-scale trendline
- Upper and lower bands, based on a user-defined multiple of the standard deviation
These bands help visualize how far price deviates from its core trend, and define the range of typical fluctuations.
Point of Control (POC)
Inside the trend channel, the space between upper and lower bands is divided into 15 logarithmic levels. The script evaluates how often price has interacted with each level, using one of two selectable methods:
- Touches: Counts the number of candles crossing each level
- Volume: Weighs each touch by the traded volume at that candle
The level with the highest cumulative interaction is considered the dynamic Point of Control (POC), and is plotted as a line.
Annualized performance and confidence display
When used on daily or weekly timeframes, the script also calculates the annualized return (CAGR) based on the detected trend, and displays:
- A performance estimate in percentage terms
- A textual label describing the confidence level based on the Pearson R value
Why this indicator is useful
- Automatically detects the most statistically consistent exponential trendline
- Designed for log-scale analysis, suited to long-term investment charts
- Highlights key price levels frequently visited or traded within the trend
- Provides objective, data-based trend and volatility insights
- Displays annualized growth rate and correlation strength for quick evaluation
Notes
- All calculations are performed only on the last bar
- No future data is used, and the script does not repaint
- Works on any instrument or timeframe, with optimal use on higher timeframes and logarithmic scaling
Hull MA Channel with Filtered CrossoversI've created an indicator that let's you create a HMA channel with 2 displaced HMA (A/B). As well as a HMA crossover set (C/D).
Here's how it works:
The HMA crossovers from C and D will not signal unless they are outside of the channel of A and B. As a matter of fact, NO buy signal whatsoever will occur above the channel and NO sell signal will occur below the channel.
The crossover HMA pair (C/D) can have their lengths adjusted to the 0.00 decimal point for VERY fine tuning of the crossovers.
(edit-it doesn't fine tune to the .00. This must not be a feature that is able to be utilized. I tried) The length adjustment still works to the nearest whole number. The .00 are mute :(
In keeping with that same logic, you can adjust the displacement of the channel independently to the 0.00 decimal, again for VERY fine tuning.
This is great for reversals while eliminating noise from false signals, keeping the chart nice and clean. Should be used in combination with other indicators for the best confirmations.
EMA 9/21 Cross + Volume FilterThis indicator plots fast (9-period) and slow (21-period) EMAs and highlights bullish or bearish crossovers only when volume exceeds its 20-period average, filtering out low-participation whipsaws. It places “UP”/“DN” triangles on qualifying crosses and includes built-in alertcondition() triggers plus a single alert() call, so one “Any alert() function call” alert delivers real-time push, e-mail, or webhook notifications. Adjustable inputs: EMA lengths, volume-SMA length, and a toggle to show/hide signal labels. Ideal for trend-following scalps or swing entries on any timeframe and ticker.
5 DMA (Close Above) Buy5 DMA (Close Above) Buy
This indicator identifies momentum-based breakout signals when a green candle closes above the 5-day Simple Moving Average (5DMA) for the first time after price was previously below it.
🔹 Signal Logic:
The script plots a green arrow below the candle when a bullish candle (close > open) closes above the 5DMA
Signals are only shown once per trend leg
The signal resets only after price closes back below the 5DMA
🔔 Built-in Alerts:
Use the included alert condition: "Buy Alert" to be notified in real time whenever a valid signal occurs.
This tool is ideal for traders seeking simple price-action confirmations to catch early trend continuation after pullbacks.
1A Monthly P&L Table - Using Library1A Monthly P&L Table: Track Your Performance Month-by-Month
Overview:
The 1A Monthly P&L Table is a straightforward yet powerful indicator designed to give you an immediate overview of your asset's (or strategy's) percentage performance on a monthly basis. Displayed conveniently in the bottom-right corner of your chart, this tool helps you quickly assess historical gains and losses, making it easier to analyze trends in performance over time.
Key Features:
Monthly Performance at a Glance: Clearly see the percentage change for each past month.
Cumulative P&L: A running total of the displayed monthly P&L is provided, giving you a quick sum of performance over the selected period.
Customizable Display:
Months to Display: Choose how many past months you want to see in the table (from 1 to 60 months).
Text Size: Adjust the text size (Tiny, Small, Normal, Large, Huge) to fit your viewing preferences.
Text Color: Customize the color of the text for better visibility against your chart background.
Intraday & Daily Compatibility: The table is optimized to display on daily and intraday timeframes, ensuring it's relevant for various trading styles. (Note: For very long-term analysis on weekly/monthly charts, you might consider other tools, as this focuses on granular monthly P&L.)
How It Works:
The indicator calculates the percentage change from the close of the previous month to the close of the current month. For the very first month displayed, it calculates the P&L from the opening price of the chart's first bar to the close of that month. This data is then neatly organized into a table, updated on the last bar of the day or session.
Ideal For:
Traders and investors who want a quick, visual summary of monthly performance.
Analyzing seasonal trends or consistent periods of profitability/drawdown.
Supplementing backtesting results with a clear month-by-month breakdown.
Settings:
Text Color: Changes the color of all text within the table.
Text Size: Controls the font size of the table content.
Months to Display: Determines the number of recent months included in the table.
Leslie's EMA Ribbon: 5/9/21 + VWAPEMA + VWAP Crossover Indicator with Alerts
This script blends three Exponential Moving Averages (5, 9, 21) with VWAP to identify momentum shifts and volume-confirmed trend signals. It’s optimized for the Daily timeframe, but also adaptable to shorter-term trading.
🔍 Why this combination?
EMAs provide fast and reliable trend signals:
- 5/9 EMA crossover → short-term shifts (more frequent)
- 9/21 EMA crossover → swing confirmation (less noise)
- VWAP adds volume context used by institutions for fair value tracking.
- 9EMA crossing VWAP confirms price action supported by volume.
Together, these tools offer a multi-layered view of market momentum — combining speed, confirmation, and conviction.
⚙️ Features:
Clean plots with dynamic labels on latest bar
Adjustable line weights for clarity
Alerts included for all crossovers:
- 5EMA / 9EMA
- 9EMA / 21EMA
- 9EMA / VWAP
✅ How to Use:
- Best on the Daily timeframe
- Use 5/9 as early signals, 9/21 for trend filtering, and 9/VWAP for volume-backed setups
- Turn on alerts to stay informed of key shifts without staring at charts
VWAP & Breakout Volume ConfirmHow the TradingView Indicator Works (Explained Simply)
VWAP Line (Orange)
It plots the Volume Weighted Average Price for the day.
Price above VWAP = bullish zone
Price below VWAP = bearish zone
Volume Spike Detection (Red Triangle)
It calculates the average volume over the last 20 candles.
If the current volume is 1.5× that average, it plots a red triangle under the candle.
Helps confirm if a move has real momentum or not.
Breakout Confirmation (Green Label ‘BO’)
Checks if price breaks above the last 10-bar high (for upside breakout) or below the last 10-bar low (for downside breakout).
If a breakout happens and the volume spike is present, it plots a green “BO” label above the candle.
This tells you the breakout is strong and likely to follow through.
Hull-Exponential Moving Average (HEMA)The Hull Exponential Moving Average (HEMA) is an experimental technical indicator that uses a sequence of Exponential Moving Averages (EMAs) with the same logic as HMA - except with EMAs and not WMAs. It aims to create a responsive yet smooth trend indicator than HMA.
HEMA applies a multi-stage EMA process. Initial EMAs are calculated using alphas derived from logarithmic relationships and the input period. Their outputs are then combined in a de-lagging step, which itself uses a logarithmically derived ratio. A final EMA smoothing pass is then applied to this de-lagged series. This creates a moving average that responds quickly to genuine price changes while maintaining effective noise filtering. The specific alpha calculations and the de-lagging formula contribute to its balance between responsiveness and smoothness.
▶️ **Core Concepts**
Logarithmically-derived alphas: Alpha values for the three EMA stages are derived using natural logarithms and specific formulas related to the input period **N**.
Three-stage EMA process: The calculation involves:
An initial EMA (using **αS**) on the source data.
A second EMA (using **αF**) also on the source data.
A de-lagging step that combines the outputs of the first two EMAs using a specific ratio **r**.
A final EMA (using **αFin**) applied to the de-lagged series.
Specific de-lagging formula: Utilizes a constant ratio **r = ln(2.0) / (1.0 + ln(2.0))** to combine the outputs of the first two EMAs, aiming to reduce lag.
Optimized final smoothing: The alpha for the final EMA (**αFin**) is calculated based on the square root of the period **N**.
Warmup compensation: The internal EMA calculations include a warmup mechanism to provide more accurate values from the initial bars. This involves tracking decay factors (**eS**, **eF**, **eFin**) and applying a compensation factor **1.0 / (1.0 - e_decay)** during the warmup period. A shared warmup duration is determined by the smallest alpha among the three stages.
HEMA achieves its characteristics through this multi-stage EMA process, where the specific alpha calculations and the de-lagging step are key to its responsiveness and smoothness.
▶️ **Common Settings and Parameters**
Period (**N**): Default: 10 | Base lookback period for all alpha calculations | When to Adjust: Increase for longer-term trends and more smoothness, decrease for shorter-term signals and more responsiveness
Source: Default: Close | Data point used for calculation | When to Adjust: Change to HL2, HLC3, or OHLC4 for different price representations
Pro Tip: The HEMA's behavior is sensitive to the **Period** setting due to the non-linear relationships in its alpha calculations. Experiment with values around your typical MA periods. Small changes in **N** can have a noticeable impact, especially for smaller **N** values.
▶️ **Calculation and Mathematical Foundation**
Simplified explanation:
HEMA calculates its value through a sequence of three Exponential Moving Averages (EMAs) with specially derived smoothing factors (alphas).
Two initial EMAs are calculated from the source price, using alphas **αS** and **αF**.
The outputs of these two EMAs are combined into a "de-lagged" series.
This de-lagged series is then smoothed by a third EMA, using alpha **αFin**, to produce the final HEMA value.
All internal EMAs use a warmup compensation mechanism for improved accuracy on early bars.
Technical formula (let **N** be the input period):
1. Alpha for the first EMA (slow component related):
αS = 3.0 / (2.0 * N - 1.0)
2. Lambda for **αS** (intermediate value):
λS = -ln(1.0 - αS)
Note: **αS** must be less than 1, which implies 2N-1 > 3 or N > 2 for **λS** to be well-defined without NaN from ln of non-positive number. The code uses nz() for robustness but the formula implies this constraint.
3. De-lagging ratio **r**:
r = ln(2.0) / (1.0 + ln(2.0))
(This is a constant, approximately 0.409365)
4. Alpha for the second EMA (fast component related):
αF = 1.0 - exp(-λS / r)
5. Alpha for the final EMA smoothing:
αFin = 2.0 / (sqrt(N) / 2.0 + 1.0)
6. Applying the stages:
**OutputS = EMA_internal(source, αS, eS_state, emaS_state)**
**OutputF = EMA_internal(source, αF, eF_state, emaF_state)**
8. Calculate the de-lagged series:
DeLag = (OutputF / (1.0 - r)) - (r * OutputS / (1.0 - r))
9. Calculate the final HEMA:
HEMA = EMA_internal(DeLag, αFin, eFin_state, emaFin_state)
🔍 Technical Note: The HEMA implementation uses a shared warmup period controlled by **aMin** (the minimum of **αS**, **αF**, **αFin**). During this period, each internal EMA stage still tracks its own decay factor (**eS**, **eF**, **eFin**) to apply the correct compensation. The **nz()** function is used in the code to handle potential NaN values from alpha calculations if **N** is very small (e.g., **N=1** would make **αS=3**, **1-αS = -2**, **ln(-2)** is NaN).
▶️ **Interpretation Details**
HEMA provides several key insights for traders:
When price crosses above HEMA, it often signals the beginning of an uptrend
When price crosses below HEMA, it often signals the beginning of a downtrend
The slope of HEMA provides insight into trend strength and momentum
HEMA creates smooth dynamic support and resistance levels during trends
Multiple HEMA lines with different periods can identify potential reversal zones
HEMA is particularly effective for trend following strategies where both responsiveness and noise reduction are important. It provides earlier signals than traditional EMAs while exhibiting less whipsaw than standard HMA in choppy market conditions. The indicator excels at identifying the underlying trend direction while filtering out minor price fluctuations.
▶️ **Limitations and Considerations**
Experimental nature: As an experimental indicator, HEMA may behave differently from established HMA in certain market conditions
Lag characteristics: While designed to reduce lag, HEMA may exhibit slightly more lag than HMA in some scenarios due to the long tail of EMA
Mathematical complexity: The multi-stage calculation with specialized alpha parameters makes the behavior less intuitive to understand
Parameter sensitivity: Performance can vary significantly with different period settings
Complementary tools: Works best when combined with volume analysis or momentum indicators for confirmation
▶️ **References**
Hull, A. (2005). "Hull Moving Average," Technical Analysis of Stocks & Commodities .
RetryClaude can make mistakes. Please double-check responses.
RSI Divergences (Regular, Hidden, Exaggerated)RSI Divergences (Regular, Hidden, Exaggerated)
This indicator detects and visually highlights all major types of RSI divergences on your chart: Regular, Hidden, and Exaggerated divergences, both bullish and bearish.
Key Features:
Calculates RSI based on a user-defined length and timeframe that automatically matches your chart's timeframe.
Identifies pivot highs and lows on both price and RSI using customizable pivot left/right bars.
Detects divergences when RSI and price movements disagree, signaling potential trend reversals or continuation.
Differentiates between three types of divergences:
Regular Divergence: Classic signal for possible trend reversal.
Hidden Divergence: Often indicates trend continuation.
Exaggerated Divergence: A less common form signaling momentum changes.
Draws clear colored lines and labels on the RSI pane for each divergence, using green for bullish and red for bearish signals.
Includes RSI overbought (70) and oversold (30) bands with gradient fills to help visualize RSI zones.
Efficient use of arrays to track pivots and manage plotting history for smooth performance.
Usage:
Ideal for traders looking to leverage RSI divergences for better timing entries and exits in trending and range-bound markets. The script is fully customizable and works seamlessly across different timeframes
Quadruple EMA (QEMA)The Quadruple Exponential Moving Average (QEMA) is an advanced technical indicator that extends the concept of lag reduction beyond TEMA (Triple Exponential Moving Average) to a fourth order. By applying a sophisticated four-stage EMA cascade with optimized coefficient distribution, QEMA provides the ultimate evolution in EMA-based lag reduction techniques.
Unlike traditional compund moving averages like DEMA and TEMA, QEMA implements a progressive smoothing system that strategically distributes alphas across four EMA stages and combines them with balanced coefficients (4, -6, 4, -1). This approach creates an indicator that responds extremely quickly to price changes while still maintaining sufficient smoothness to be useful for trading decisions. QEMA is particularly valuable for traders who need the absolute minimum lag possible in trend identification.
▶️ **Core Concepts**
Fourth-order processing: Extends the EMA cascade to four stages for maximum possible lag reduction while maintaining a useful signal
Progressive alpha system: Uses mathematically derived ratio-based alpha progression to balance responsiveness across all four EMA stages
Optimized coefficients: Employs calculated weights (4, -6, 4, -1) to effectively eliminate lag while preserving compound signal stability
Numerical stability control: Implements initialization and alpha distribution to ensure consistent results from the first calculation bar
QEMA achieves its exceptional lag reduction by combining four progressive EMAs with mathematically optimized coefficients. The formula is designed to maximize responsiveness while minimizing the overshoot problems that typically occur with aggressive lag reduction techniques. The implementation uses a ratio-based alpha progression that ensures each EMA stage contributes appropriately to the final result.
▶️ **Common Settings and Parameters**
Period: Default: 15| Base smoothing period | When to Adjust: Decrease for extremely fast signals, increase for more stable output
Alpha: Default: auto | Direct control of base smoothing factor | When to Adjust: Manual setting allows precise tuning beyond standard period settings
Source: Default: Close | Data point used for calculation | When to Adjust: Change to HL2 or HLC3 for more balanced price representation
Pro Tip: Professional traders often use QEMA with longer periods than other moving averages (e.g., QEMA(20) instead of EMA(10)) since its extreme lag reduction provides earlier signals even with longer periods.
▶️ **Calculation and Mathematical Foundation**
Simplified explanation:
QEMA works by calculating four EMAs in sequence, with each EMA taking the previous one as input. It then combines these EMAs using balancing weights (4, -6, 4, -1) to create a moving average with extremely minimal lag and high level of smoothness. The alpha factors for each EMA are progressively adjusted using a mathematical ratio to ensure balanced responsiveness across all stages.
Technical formula:
QEMA = 4 × EMA₁ - 6 × EMA₂ + 4 × EMA₃ - EMA₄
Where:
EMA₁ = EMA(source, α₁)
EMA₂ = EMA(EMA₁, α₂)
EMA₃ = EMA(EMA₂, α₃)
EMA₄ = EMA(EMA₃, α₄)
α₁ = 2/(period + 1) is the base smoothing factor
r = (1/α₁)^(1/3) is the derived ratio
α₂ = α₁ × r, α₃ = α₂ × r, α₄ = α₃ × r are the progressive alphas
Mathematical Rationale for the Alpha Cascade:
The QEMA indicator employs a specific geometric progression for its smoothing factors (alphas) across the four EMA stages. This design is intentional and aims to optimize the filter's performance. The ratio between alphas is **r = (1/α₁)^(1/3)** - derived from the cube root of the reciprocal of the base alpha.
For typical smoothing (α₁ < 1), this results in a sequence of increasing alpha values (α₁ < α₂ < α₃ < α₄), meaning that subsequent EMAs in the cascade are progressively faster (less smoothed). This specific progression, when combined with the QEMA coefficients (4, -6, 4, -1), is chosen for the following reasons:
1. Optimized Frequency Response:
Using the same alpha for all EMA stages (as in a naive multi-EMA approach) can lead to an uneven frequency response, potentially causing over-shooting of certain frequencies or creating undesirable resonance. The geometric progression of alphas in QEMA helps to create a more balanced and controlled filter response across a wider range of movement frequencies. Each stage's contribution to the overall filtering characteristic is more harmonized.
2. Minimized Phase Lag:
A key goal of QEMA is extreme lag reduction. The specific alpha cascade, particularly the relationship defined by **r**, is designed to minimize the cumulative phase lag introduced by the four smoothing stages, while still providing effective noise reduction. Faster subsequent EMAs contribute to this reduced lag.
🔍 Technical Note: The ratio-based alpha progression is crucial for balanced response. The ratio r is calculated as the cube root of 1/α₁, ensuring that the combined effect of all four EMAs creates a mathematically optimal response curve. All EMAs are initialized with the first source value rather than using progressive initialization, eliminating warm-up artifacts and providing consistent results from the first bar.
▶️ **Interpretation Details**
QEMA provides several key insights for traders:
When price crosses above QEMA, it signals the beginning of an uptrend with minimal delay
When price crosses below QEMA, it signals the beginning of a downtrend with minimal delay
The slope of QEMA provides immediate insight into trend direction and momentum
QEMA responds to price reversals significantly faster than other moving averages
Multiple QEMA lines with different periods can identify immediate support/resistance levels
QEMA is particularly valuable in fast-moving markets and for short-term trading strategies where speed of signal generation is critical. It excels at capturing the very beginning of trends and identifying reversals earlier than any other EMA-derived indicator. This makes it especially useful for breakout trading and scalping strategies where getting in early is essential.
▶️ **Limitations and Considerations**
Market conditions: Can generate excessive signals in choppy, sideways markets due to its extreme responsiveness
Overshooting: The aggressive lag reduction can create some overshooting during sharp reversals
Calculation complexity: Requires four separate EMA calculations plus coefficient application, making it computationally more intensive
Parameter sensitivity: Small changes in the base alpha or period can significantly alter behavior
Complementary tools: Should be used with momentum indicators or volatility filters to confirm signals and reduce false positives
▶️ **References**
Mulloy, P. (1994). "Smoothing Data with Less Lag," Technical Analysis of Stocks & Commodities .
Ehlers, J. (2001). Rocket Science for Traders . John Wiley & Sons.
Full Day Midpoint Line with Dynamic StdDev Bands (ETH & RTH)A Pine Script indicator designed to plot a midpoint line based on the high and low prices of a user-defined trading session (typically Extended Trading Hours, ETH) and to add dynamic standard deviation (StdDev) bands around this midpoint.
Session Midpoint Line:
The midpoint is calculated as the average of the session's highest high and lowest low during the defined ETH period (e.g., 4:00 AM to 8:00 PM).
This line represents a central tendency or "fair value" for the session, similar to a pivot point or volume-weighted average price (VWAP) anchor.
Interpretation:
Prices above the midpoint suggest bullish sentiment, while prices below indicate bearish sentiment.
The midpoint can act as a dynamic support/resistance level, where price may revert to or react at this level during the session.
Dynamic StdDev Bands:
The bands are calculated by adding/subtracting a multiple of the standard deviation of the midpoint values (tracked in an array) from the midpoint.
The standard deviation is dynamically computed based on the historical midpoint values within the session, making the bands adaptive to volatility.
Interpretation:
The upper and lower bands represent potential overbought (upper) and oversold (lower) zones.
Prices approaching or crossing the bands may indicate stretched conditions, potentially signaling reversals or breakouts.
Trend Identification:
Use the midpoint as a reference for the session’s trend. Persistent price action above the midpoint suggests bullishness, while below indicates bearishness.
Combine with other indicators (e.g., moving averages, RSI) to confirm trend direction.
Support/Resistance Trading:
Treat the midpoint as a dynamic pivot point. Price rejections or consolidations near the midpoint can be entry points for mean-reversion trades.
The StdDev bands can act as secondary support/resistance levels. For example, price reaching the upper band may signal a potential short entry if accompanied by reversal signals.
Breakout/Breakdown Strategies:
A strong move beyond the upper or lower band may indicate a breakout (bullish above upper, bearish below lower). Confirm with volume or momentum indicators to avoid false breakouts.
The dynamic nature of the bands makes them useful for identifying significant price extensions.
Volatility Assessment:
Wider bands indicate higher volatility, suggesting larger price swings and potentially riskier trades.
Narrow bands suggest consolidation, which may precede a breakout. Traders can prepare for volatility expansions in such scenarios.
The "Full Day Midpoint Line with Dynamic StdDev Bands" is a versatile and visually intuitive indicator well-suited for day traders focusing on session-specific price action. Its dynamic midpoint and volatility-adjusted bands provide valuable insights into support, resistance, and potential reversals or breakouts.
ORB - Opening Range Breakout + AlertsThe only ORB indicator you'll ever need.
- Flexible Range: Tailor the opening range (e.g., 5m, 15m, 30m) to your trading style.
- Key Levels: Auto-plots striking pink/purple support/resistance lines post-range for clear trade setups.
- Breakout Alerts: Reliable LONG/SHORT signals on 5m chart for confirmed breakouts; enable/disable as needed.
- Personalized Design: Customize line color and thickness for optimal visibility.
A friendly reminder that no tool or indicator guarantees success. Integrate this into a robust trading plan.
Momentum (80) + ATR (14)his indicator combines two essential technical analysis tools in a single panel for enhanced market insight:
🔹 Momentum (80 periods): Measures the difference between the current price and the price 80 bars ago. Displayed as a semi-transparent filled area, it helps to visually identify shifts in price momentum over a longer timeframe.
🔸 ATR (Average True Range, 14 periods): Shown as a fine orange line, the ATR represents average market volatility over 14 periods, highlighting phases of calm or increased price fluctuations.
By viewing both momentum and volatility simultaneously, traders can better assess trend strength and market conditions, improving decision-making across assets such as stocks, forex, and cryptocurrencies.
✅ Suitable for all asset types
✅ Complements other indicators like RSI, MACD, and Bollinger Bands
✅ Categorized under Momentum & Volatility indicators