EMA vs TMA Regime FilterEMA vs TMA Regime Filter
This indicator is built as a visual study tool to compare the behavior of the Exponential Moving Average (EMA) and the Triangular Moving Average (TMA).
The EMA applies an exponential weighting to price data, giving stronger importance to the most recent values. This makes it a faster, more responsive line that reflects short-term momentum. The TMA, by contrast, applies a double-smoothing process (or in the “True TMA” option, a split SMA sequence), which produces a much slower curve. The TMA emphasizes balance over reactivity, often used for filtering noise and observing longer-term structure.
When both are plotted on the same chart, their differences become clear. The shaded region between them highlights times when short-term price dynamics diverge from longer-term smoothing. This is where the idea of “regime” comes in — not as a trading signal, but as a descriptive way of seeing whether market action is currently dominated by speed or by stability.
Users can customize:
Line styles, widths, and colors.
Cloud transparency for visual clarity.
Whether to color bars based on relative position (optional, purely visual).
The goal is not to create a system, but to help traders experiment, observe, and learn how different smoothing techniques can emphasize different aspects of price. By switching between the legacy and true TMA, or adjusting lengths, users can study how each approach interprets the same data differently.
ابحث في النصوص البرمجية عن "Exponential"
On-Balance Volume with Multiple MA TypesOn-Balance Volume with Multiple MA Types
English Description
Overview
This is the first version of the "On-Balance Volume with Multiple MA Types" indicator designed to overlay directly on the price chart, a significant evolution from its previous iterations, which functioned solely as an oscillator in a separate window. The indicator calculates On-Balance Volume (OBV) and applies various smoothing methods to provide a clear view of volume dynamics in relation to price movements. It is pinned to the price scale for seamless integration with the chart.
Interpretation Recommendations
Price Pushing the OBV Line from Below: When the price chart pushes the OBV line upward and remains below it, this indicates rising volume, suggesting strong buying pressure.
Price Above the OBV Line: When the price chart is above the OBV line, it signals falling volume, indicating weakening momentum or selling pressure.
OBV Line Crossings: When the price crosses the OBV line, it represents a balance point in volume dynamics. The price level at the current crossing can be compared to the previous crossing to assess changes in market sentiment or momentum.
Moving Average Types
The indicator offers eight smoothing options for the OBV line, each with unique characteristics:
EMA (Exponential Moving Average): A weighted average that prioritizes recent data, providing a smooth yet responsive line.
DEMA (Double Exponential Moving Average): Uses two EMAs to reduce lag, offering faster response to volume changes.
HMA (Hull Moving Average): Combines weighted moving averages to minimize lag while maintaining smoothness.
WMA (Weighted Moving Average): Assigns more weight to recent data, balancing responsiveness and noise reduction.
TMA (Triangular Moving Average): A double-smoothed simple moving average, emphasizing central data points for smoother output.
VIDYA (Variable Index Dynamic Average): Adapts smoothing based on market volatility, using a CMO (Chande Momentum Oscillator) for dynamic weighting. Controlled by the VIDYA Alpha parameter (default: 0.2, range: 0–1), which adjusts sensitivity to volatility.
FRAMA (Fractal Adaptive Moving Average): Adjusts smoothing based on fractal dimensions of the OBV data, adapting to market conditions.
JMA (Jurik Moving Average): A proprietary adaptive average designed for minimal lag and high smoothness. Controlled by two parameters:
JMA Phase (default: 50, range: -100 to 100): Adjusts the balance between responsiveness and smoothness.
JMA Power (default: 1, range: 0.1+): Controls the strength of smoothing.
Input Parameters
OBV MA Length (default: 10): The lookback period for smoothing the OBV. Higher values produce smoother results but increase lag.
OBV MA Type (default: JMA): Selects the moving average type from the eight options listed above.
Line Width (default: 2): Thickness of the OBV line on the chart.
Bullish Color (default: Blue): Color of the OBV line when rising (indicating increasing volume).
Bearish Color (default: Red): Color of the OBV line when falling (indicating decreasing volume).
JMA Phase (default: 50): Adjusts the JMA’s responsiveness (used only when JMA is selected).
JMA Power (default: 1): Adjusts the JMA’s smoothing strength (used only when JMA is selected).
VIDYA Alpha (default: 0.2): Controls the sensitivity of VIDYA to market volatility (used only when VIDYA is selected).
How to Use
Add the indicator to your TradingView chart. It will overlay directly on the price chart, aligned with the price scale.
Adjust the OBV MA Type to select your preferred smoothing method based on your trading style (e.g., JMA for low lag, TMA for smoothness).
Modify the OBV MA Length to balance responsiveness and noise reduction. Shorter periods (e.g., 5–10) are better for short-term trading, while longer periods (e.g., 20–50) suit longer-term analysis.
Use the Bullish Color and Bearish Color to visually distinguish rising and falling volume trends.
For JMA or VIDYA, fine-tune the JMA Phase, JMA Power, or VIDYA Alpha to optimize the indicator for specific market conditions.
Interpret the OBV line in relation to price:
Watch for price pushing the OBV line upward (rising volume) or moving above it (falling volume).
Note crossings of the OBV line to identify balance points and compare with prior crossings to gauge momentum shifts.
Combine with other technical tools (e.g., support/resistance levels, trendlines) for a comprehensive trading strategy.
Notes
This indicator is designed to work on any timeframe and market, but its effectiveness depends on the chosen moving average type and parameters.
Experiment with different MA types and lengths to find the best fit for your trading approach.
The indicator is licensed under the Mozilla Public License 2.0 and copyrighted by TradingStrategyCourses © 2025.
Trend CandlesTrend Candles
Overview
The Trend Candles indicator is a simple yet effective tool designed to help traders visually identify the prevailing market trend. By combining candle coloring with a trend-based Exponential Moving Average (EMA), it enhances chart readability and makes trend-following strategies easier to apply.
Concepts
Exponential Moving Average (EMA): The EMA is a moving average that places more weight on recent price data. It reacts faster to price changes compared to a Simple Moving Average (SMA), making it well-suited for trend detection.
Trend Determination:
- If the EMA is rising (current EMA > previous EMA), the market is considered bullish.
- If the EMA is falling (current EMA < previous EMA), the market is considered bearish.
- If the EMA is flat (no significant change), no trend color is applied.
Candle Coloring:
- Green candles = Uptrend
- Purple candles = Downtrend
- Default candles = Sideways/Flat EMA
Features
- Trend Visualization: Candles automatically change color based on EMA slope, making it easy to spot bullish and bearish phases.
- Customizable EMA Length: The trader can set the EMA period (default is 50), allowing flexibility for short-term or long-term trend analysis.
- Overlay EMA Line: An orange EMA line is plotted on the chart for additional confirmation of the trend.
- Clean & Minimalist: Focuses on trend clarity without cluttering the chart with unnecessary signals.
How to Use
1. Apply the indicator to your chart.
2. Adjust the EMA Length as per your trading style (shorter = faster signals, longer = smoother trend).
3. Follow the candle color:
- Green = Favor long entries.
- Purple = Favor short entries.
- No color = Stay cautious, as trend is unclear.
4. Use with other confirmation tools (support/resistance, volume, or oscillators).
5. Users are encouraged to experiment with different EMA lengths. The default length is 50, but you can explore other values based on your needs. In particular, try Fibonacci numbers such as 13, 21, 34, 55, 89, 144, and 233 to observe how trends behave differently.
Disclaimer
The information provided by the Trend Candles indicator is for educational purposes only. It should not be considered financial advice. Trading involves substantial risk, and past performance is not necessarily indicative of future results. Always do your own research and use risk management practices.
Markov Chain [3D] | FractalystWhat exactly is a Markov Chain?
This indicator uses a Markov Chain model to analyze, quantify, and visualize the transitions between market regimes (Bull, Bear, Neutral) on your chart. It dynamically detects these regimes in real-time, calculates transition probabilities, and displays them as animated 3D spheres and arrows, giving traders intuitive insight into current and future market conditions.
How does a Markov Chain work, and how should I read this spheres-and-arrows diagram?
Think of three weather modes: Sunny, Rainy, Cloudy.
Each sphere is one mode. The loop on a sphere means “stay the same next step” (e.g., Sunny again tomorrow).
The arrows leaving a sphere show where things usually go next if they change (e.g., Sunny moving to Cloudy).
Some paths matter more than others. A more prominent loop means the current mode tends to persist. A more prominent outgoing arrow means a change to that destination is the usual next step.
Direction isn’t symmetric: moving Sunny→Cloudy can behave differently than Cloudy→Sunny.
Now relabel the spheres to markets: Bull, Bear, Neutral.
Spheres: market regimes (uptrend, downtrend, range).
Self‑loop: tendency for the current regime to continue on the next bar.
Arrows: the most common next regime if a switch happens.
How to read: Start at the sphere that matches current bar state. If the loop stands out, expect continuation. If one outgoing path stands out, that switch is the typical next step. Opposite directions can differ (Bear→Neutral doesn’t have to match Neutral→Bear).
What states and transitions are shown?
The three market states visualized are:
Bullish (Bull): Upward or strong-market regime.
Bearish (Bear): Downward or weak-market regime.
Neutral: Sideways or range-bound regime.
Bidirectional animated arrows and probability labels show how likely the market is to move from one regime to another (e.g., Bull → Bear or Neutral → Bull).
How does the regime detection system work?
You can use either built-in price returns (based on adaptive Z-score normalization) or supply three custom indicators (such as volume, oscillators, etc.).
Values are statistically normalized (Z-scored) over a configurable lookback period.
The normalized outputs are classified into Bull, Bear, or Neutral zones.
If using three indicators, their regime signals are averaged and smoothed for robustness.
How are transition probabilities calculated?
On every confirmed bar, the algorithm tracks the sequence of detected market states, then builds a rolling window of transitions.
The code maintains a transition count matrix for all regime pairs (e.g., Bull → Bear).
Transition probabilities are extracted for each possible state change using Laplace smoothing for numerical stability, and frequently updated in real-time.
What is unique about the visualization?
3D animated spheres represent each regime and change visually when active.
Animated, bidirectional arrows reveal transition probabilities and allow you to see both dominant and less likely regime flows.
Particles (moving dots) animate along the arrows, enhancing the perception of regime flow direction and speed.
All elements dynamically update with each new price bar, providing a live market map in an intuitive, engaging format.
Can I use custom indicators for regime classification?
Yes! Enable the "Custom Indicators" switch and select any three chart series as inputs. These will be normalized and combined (each with equal weight), broadening the regime classification beyond just price-based movement.
What does the “Lookback Period” control?
Lookback Period (default: 100) sets how much historical data builds the probability matrix. Shorter periods adapt faster to regime changes but may be noisier. Longer periods are more stable but slower to adapt.
How is this different from a Hidden Markov Model (HMM)?
It sets the window for both regime detection and probability calculations. Lower values make the system more reactive, but potentially noisier. Higher values smooth estimates and make the system more robust.
How is this Markov Chain different from a Hidden Markov Model (HMM)?
Markov Chain (as here): All market regimes (Bull, Bear, Neutral) are directly observable on the chart. The transition matrix is built from actual detected regimes, keeping the model simple and interpretable.
Hidden Markov Model: The actual regimes are unobservable ("hidden") and must be inferred from market output or indicator "emissions" using statistical learning algorithms. HMMs are more complex, can capture more subtle structure, but are harder to visualize and require additional machine learning steps for training.
A standard Markov Chain models transitions between observable states using a simple transition matrix, while a Hidden Markov Model assumes the true states are hidden (latent) and must be inferred from observable “emissions” like price or volume data. In practical terms, a Markov Chain is transparent and easier to implement and interpret; an HMM is more expressive but requires statistical inference to estimate hidden states from data.
Markov Chain: states are observable; you directly count or estimate transition probabilities between visible states. This makes it simpler, faster, and easier to validate and tune.
HMM: states are hidden; you only observe emissions generated by those latent states. Learning involves machine learning/statistical algorithms (commonly Baum–Welch/EM for training and Viterbi for decoding) to infer both the transition dynamics and the most likely hidden state sequence from data.
How does the indicator avoid “repainting” or look-ahead bias?
All regime changes and matrix updates happen only on confirmed (closed) bars, so no future data is leaked, ensuring reliable real-time operation.
Are there practical tuning tips?
Tune the Lookback Period for your asset/timeframe: shorter for fast markets, longer for stability.
Use custom indicators if your asset has unique regime drivers.
Watch for rapid changes in transition probabilities as early warning of a possible regime shift.
Who is this indicator for?
Quants and quantitative researchers exploring probabilistic market modeling, especially those interested in regime-switching dynamics and Markov models.
Programmers and system developers who need a probabilistic regime filter for systematic and algorithmic backtesting:
The Markov Chain indicator is ideally suited for programmatic integration via its bias output (1 = Bull, 0 = Neutral, -1 = Bear).
Although the visualization is engaging, the core output is designed for automated, rules-based workflows—not for discretionary/manual trading decisions.
Developers can connect the indicator’s output directly to their Pine Script logic (using input.source()), allowing rapid and robust backtesting of regime-based strategies.
It acts as a plug-and-play regime filter: simply plug the bias output into your entry/exit logic, and you have a scientifically robust, probabilistically-derived signal for filtering, timing, position sizing, or risk regimes.
The MC's output is intentionally "trinary" (1/0/-1), focusing on clear regime states for unambiguous decision-making in code. If you require nuanced, multi-probability or soft-label state vectors, consider expanding the indicator or stacking it with a probability-weighted logic layer in your scripting.
Because it avoids subjectivity, this approach is optimal for systematic quants, algo developers building backtested, repeatable strategies based on probabilistic regime analysis.
What's the mathematical foundation behind this?
The mathematical foundation behind this Markov Chain indicator—and probabilistic regime detection in finance—draws from two principal models: the (standard) Markov Chain and the Hidden Markov Model (HMM).
How to use this indicator programmatically?
The Markov Chain indicator automatically exports a bias value (+1 for Bullish, -1 for Bearish, 0 for Neutral) as a plot visible in the Data Window. This allows you to integrate its regime signal into your own scripts and strategies for backtesting, automation, or live trading.
Step-by-Step Integration with Pine Script (input.source)
Add the Markov Chain indicator to your chart.
This must be done first, since your custom script will "pull" the bias signal from the indicator's plot.
In your strategy, create an input using input.source()
Example:
//@version=5
strategy("MC Bias Strategy Example")
mcBias = input.source(close, "MC Bias Source")
After saving, go to your script’s settings. For the “MC Bias Source” input, select the plot/output of the Markov Chain indicator (typically its bias plot).
Use the bias in your trading logic
Example (long only on Bull, flat otherwise):
if mcBias == 1
strategy.entry("Long", strategy.long)
else
strategy.close("Long")
For more advanced workflows, combine mcBias with additional filters or trailing stops.
How does this work behind-the-scenes?
TradingView’s input.source() lets you use any plot from another indicator as a real-time, “live” data feed in your own script (source).
The selected bias signal is available to your Pine code as a variable, enabling logical decisions based on regime (trend-following, mean-reversion, etc.).
This enables powerful strategy modularity : decouple regime detection from entry/exit logic, allowing fast experimentation without rewriting core signal code.
Integrating 45+ Indicators with Your Markov Chain — How & Why
The Enhanced Custom Indicators Export script exports a massive suite of over 45 technical indicators—ranging from classic momentum (RSI, MACD, Stochastic, etc.) to trend, volume, volatility, and oscillator tools—all pre-calculated, centered/scaled, and available as plots.
// Enhanced Custom Indicators Export - 45 Technical Indicators
// Comprehensive technical analysis suite for advanced market regime detection
//@version=6
indicator('Enhanced Custom Indicators Export | Fractalyst', shorttitle='Enhanced CI Export', overlay=false, scale=scale.right, max_labels_count=500, max_lines_count=500)
// |----- Input Parameters -----| //
momentum_group = "Momentum Indicators"
trend_group = "Trend Indicators"
volume_group = "Volume Indicators"
volatility_group = "Volatility Indicators"
oscillator_group = "Oscillator Indicators"
display_group = "Display Settings"
// Common lengths
length_14 = input.int(14, "Standard Length (14)", minval=1, maxval=100, group=momentum_group)
length_20 = input.int(20, "Medium Length (20)", minval=1, maxval=200, group=trend_group)
length_50 = input.int(50, "Long Length (50)", minval=1, maxval=200, group=trend_group)
// Display options
show_table = input.bool(true, "Show Values Table", group=display_group)
table_size = input.string("Small", "Table Size", options= , group=display_group)
// |----- MOMENTUM INDICATORS (15 indicators) -----| //
// 1. RSI (Relative Strength Index)
rsi_14 = ta.rsi(close, length_14)
rsi_centered = rsi_14 - 50
// 2. Stochastic Oscillator
stoch_k = ta.stoch(close, high, low, length_14)
stoch_d = ta.sma(stoch_k, 3)
stoch_centered = stoch_k - 50
// 3. Williams %R
williams_r = ta.stoch(close, high, low, length_14) - 100
// 4. MACD (Moving Average Convergence Divergence)
= ta.macd(close, 12, 26, 9)
// 5. Momentum (Rate of Change)
momentum = ta.mom(close, length_14)
momentum_pct = (momentum / close ) * 100
// 6. Rate of Change (ROC)
roc = ta.roc(close, length_14)
// 7. Commodity Channel Index (CCI)
cci = ta.cci(close, length_20)
// 8. Money Flow Index (MFI)
mfi = ta.mfi(close, length_14)
mfi_centered = mfi - 50
// 9. Awesome Oscillator (AO)
ao = ta.sma(hl2, 5) - ta.sma(hl2, 34)
// 10. Accelerator Oscillator (AC)
ac = ao - ta.sma(ao, 5)
// 11. Chande Momentum Oscillator (CMO)
cmo = ta.cmo(close, length_14)
// 12. Detrended Price Oscillator (DPO)
dpo = close - ta.sma(close, length_20)
// 13. Price Oscillator (PPO)
ppo = ta.sma(close, 12) - ta.sma(close, 26)
ppo_pct = (ppo / ta.sma(close, 26)) * 100
// 14. TRIX
trix_ema1 = ta.ema(close, length_14)
trix_ema2 = ta.ema(trix_ema1, length_14)
trix_ema3 = ta.ema(trix_ema2, length_14)
trix = ta.roc(trix_ema3, 1) * 10000
// 15. Klinger Oscillator
klinger = ta.ema(volume * (high + low + close) / 3, 34) - ta.ema(volume * (high + low + close) / 3, 55)
// 16. Fisher Transform
fisher_hl2 = 0.5 * (hl2 - ta.lowest(hl2, 10)) / (ta.highest(hl2, 10) - ta.lowest(hl2, 10)) - 0.25
fisher = 0.5 * math.log((1 + fisher_hl2) / (1 - fisher_hl2))
// 17. Stochastic RSI
stoch_rsi = ta.stoch(rsi_14, rsi_14, rsi_14, length_14)
stoch_rsi_centered = stoch_rsi - 50
// 18. Relative Vigor Index (RVI)
rvi_num = ta.swma(close - open)
rvi_den = ta.swma(high - low)
rvi = rvi_den != 0 ? rvi_num / rvi_den : 0
// 19. Balance of Power (BOP)
bop = (close - open) / (high - low)
// |----- TREND INDICATORS (10 indicators) -----| //
// 20. Simple Moving Average Momentum
sma_20 = ta.sma(close, length_20)
sma_momentum = ((close - sma_20) / sma_20) * 100
// 21. Exponential Moving Average Momentum
ema_20 = ta.ema(close, length_20)
ema_momentum = ((close - ema_20) / ema_20) * 100
// 22. Parabolic SAR
sar = ta.sar(0.02, 0.02, 0.2)
sar_trend = close > sar ? 1 : -1
// 23. Linear Regression Slope
lr_slope = ta.linreg(close, length_20, 0) - ta.linreg(close, length_20, 1)
// 24. Moving Average Convergence (MAC)
mac = ta.sma(close, 10) - ta.sma(close, 30)
// 25. Trend Intensity Index (TII)
tii_sum = 0.0
for i = 1 to length_20
tii_sum += close > close ? 1 : 0
tii = (tii_sum / length_20) * 100
// 26. Ichimoku Cloud Components
ichimoku_tenkan = (ta.highest(high, 9) + ta.lowest(low, 9)) / 2
ichimoku_kijun = (ta.highest(high, 26) + ta.lowest(low, 26)) / 2
ichimoku_signal = ichimoku_tenkan > ichimoku_kijun ? 1 : -1
// 27. MESA Adaptive Moving Average (MAMA)
mama_alpha = 2.0 / (length_20 + 1)
mama = ta.ema(close, length_20)
mama_momentum = ((close - mama) / mama) * 100
// 28. Zero Lag Exponential Moving Average (ZLEMA)
zlema_lag = math.round((length_20 - 1) / 2)
zlema_data = close + (close - close )
zlema = ta.ema(zlema_data, length_20)
zlema_momentum = ((close - zlema) / zlema) * 100
// |----- VOLUME INDICATORS (6 indicators) -----| //
// 29. On-Balance Volume (OBV)
obv = ta.obv
// 30. Volume Rate of Change (VROC)
vroc = ta.roc(volume, length_14)
// 31. Price Volume Trend (PVT)
pvt = ta.pvt
// 32. Negative Volume Index (NVI)
nvi = 0.0
nvi := volume < volume ? nvi + ((close - close ) / close ) * nvi : nvi
// 33. Positive Volume Index (PVI)
pvi = 0.0
pvi := volume > volume ? pvi + ((close - close ) / close ) * pvi : pvi
// 34. Volume Oscillator
vol_osc = ta.sma(volume, 5) - ta.sma(volume, 10)
// 35. Ease of Movement (EOM)
eom_distance = high - low
eom_box_height = volume / 1000000
eom = eom_box_height != 0 ? eom_distance / eom_box_height : 0
eom_sma = ta.sma(eom, length_14)
// 36. Force Index
force_index = volume * (close - close )
force_index_sma = ta.sma(force_index, length_14)
// |----- VOLATILITY INDICATORS (10 indicators) -----| //
// 37. Average True Range (ATR)
atr = ta.atr(length_14)
atr_pct = (atr / close) * 100
// 38. Bollinger Bands Position
bb_basis = ta.sma(close, length_20)
bb_dev = 2.0 * ta.stdev(close, length_20)
bb_upper = bb_basis + bb_dev
bb_lower = bb_basis - bb_dev
bb_position = bb_dev != 0 ? (close - bb_basis) / bb_dev : 0
bb_width = bb_dev != 0 ? (bb_upper - bb_lower) / bb_basis * 100 : 0
// 39. Keltner Channels Position
kc_basis = ta.ema(close, length_20)
kc_range = ta.ema(ta.tr, length_20)
kc_upper = kc_basis + (2.0 * kc_range)
kc_lower = kc_basis - (2.0 * kc_range)
kc_position = kc_range != 0 ? (close - kc_basis) / kc_range : 0
// 40. Donchian Channels Position
dc_upper = ta.highest(high, length_20)
dc_lower = ta.lowest(low, length_20)
dc_basis = (dc_upper + dc_lower) / 2
dc_position = (dc_upper - dc_lower) != 0 ? (close - dc_basis) / (dc_upper - dc_lower) : 0
// 41. Standard Deviation
std_dev = ta.stdev(close, length_20)
std_dev_pct = (std_dev / close) * 100
// 42. Relative Volatility Index (RVI)
rvi_up = ta.stdev(close > close ? close : 0, length_14)
rvi_down = ta.stdev(close < close ? close : 0, length_14)
rvi_total = rvi_up + rvi_down
rvi_volatility = rvi_total != 0 ? (rvi_up / rvi_total) * 100 : 50
// 43. Historical Volatility
hv_returns = math.log(close / close )
hv = ta.stdev(hv_returns, length_20) * math.sqrt(252) * 100
// 44. Garman-Klass Volatility
gk_vol = math.log(high/low) * math.log(high/low) - (2*math.log(2)-1) * math.log(close/open) * math.log(close/open)
gk_volatility = math.sqrt(ta.sma(gk_vol, length_20)) * 100
// 45. Parkinson Volatility
park_vol = math.log(high/low) * math.log(high/low)
parkinson = math.sqrt(ta.sma(park_vol, length_20) / (4 * math.log(2))) * 100
// 46. Rogers-Satchell Volatility
rs_vol = math.log(high/close) * math.log(high/open) + math.log(low/close) * math.log(low/open)
rogers_satchell = math.sqrt(ta.sma(rs_vol, length_20)) * 100
// |----- OSCILLATOR INDICATORS (5 indicators) -----| //
// 47. Elder Ray Index
elder_bull = high - ta.ema(close, 13)
elder_bear = low - ta.ema(close, 13)
elder_power = elder_bull + elder_bear
// 48. Schaff Trend Cycle (STC)
stc_macd = ta.ema(close, 23) - ta.ema(close, 50)
stc_k = ta.stoch(stc_macd, stc_macd, stc_macd, 10)
stc_d = ta.ema(stc_k, 3)
stc = ta.stoch(stc_d, stc_d, stc_d, 10)
// 49. Coppock Curve
coppock_roc1 = ta.roc(close, 14)
coppock_roc2 = ta.roc(close, 11)
coppock = ta.wma(coppock_roc1 + coppock_roc2, 10)
// 50. Know Sure Thing (KST)
kst_roc1 = ta.roc(close, 10)
kst_roc2 = ta.roc(close, 15)
kst_roc3 = ta.roc(close, 20)
kst_roc4 = ta.roc(close, 30)
kst = ta.sma(kst_roc1, 10) + 2*ta.sma(kst_roc2, 10) + 3*ta.sma(kst_roc3, 10) + 4*ta.sma(kst_roc4, 15)
// 51. Percentage Price Oscillator (PPO)
ppo_line = ((ta.ema(close, 12) - ta.ema(close, 26)) / ta.ema(close, 26)) * 100
ppo_signal = ta.ema(ppo_line, 9)
ppo_histogram = ppo_line - ppo_signal
// |----- PLOT MAIN INDICATORS -----| //
// Plot key momentum indicators
plot(rsi_centered, title="01_RSI_Centered", color=color.purple, linewidth=1)
plot(stoch_centered, title="02_Stoch_Centered", color=color.blue, linewidth=1)
plot(williams_r, title="03_Williams_R", color=color.red, linewidth=1)
plot(macd_histogram, title="04_MACD_Histogram", color=color.orange, linewidth=1)
plot(cci, title="05_CCI", color=color.green, linewidth=1)
// Plot trend indicators
plot(sma_momentum, title="06_SMA_Momentum", color=color.navy, linewidth=1)
plot(ema_momentum, title="07_EMA_Momentum", color=color.maroon, linewidth=1)
plot(sar_trend, title="08_SAR_Trend", color=color.teal, linewidth=1)
plot(lr_slope, title="09_LR_Slope", color=color.lime, linewidth=1)
plot(mac, title="10_MAC", color=color.fuchsia, linewidth=1)
// Plot volatility indicators
plot(atr_pct, title="11_ATR_Pct", color=color.yellow, linewidth=1)
plot(bb_position, title="12_BB_Position", color=color.aqua, linewidth=1)
plot(kc_position, title="13_KC_Position", color=color.olive, linewidth=1)
plot(std_dev_pct, title="14_StdDev_Pct", color=color.silver, linewidth=1)
plot(bb_width, title="15_BB_Width", color=color.gray, linewidth=1)
// Plot volume indicators
plot(vroc, title="16_VROC", color=color.blue, linewidth=1)
plot(eom_sma, title="17_EOM", color=color.red, linewidth=1)
plot(vol_osc, title="18_Vol_Osc", color=color.green, linewidth=1)
plot(force_index_sma, title="19_Force_Index", color=color.orange, linewidth=1)
plot(obv, title="20_OBV", color=color.purple, linewidth=1)
// Plot additional oscillators
plot(ao, title="21_Awesome_Osc", color=color.navy, linewidth=1)
plot(cmo, title="22_CMO", color=color.maroon, linewidth=1)
plot(dpo, title="23_DPO", color=color.teal, linewidth=1)
plot(trix, title="24_TRIX", color=color.lime, linewidth=1)
plot(fisher, title="25_Fisher", color=color.fuchsia, linewidth=1)
// Plot more momentum indicators
plot(mfi_centered, title="26_MFI_Centered", color=color.yellow, linewidth=1)
plot(ac, title="27_AC", color=color.aqua, linewidth=1)
plot(ppo_pct, title="28_PPO_Pct", color=color.olive, linewidth=1)
plot(stoch_rsi_centered, title="29_StochRSI_Centered", color=color.silver, linewidth=1)
plot(klinger, title="30_Klinger", color=color.gray, linewidth=1)
// Plot trend continuation
plot(tii, title="31_TII", color=color.blue, linewidth=1)
plot(ichimoku_signal, title="32_Ichimoku_Signal", color=color.red, linewidth=1)
plot(mama_momentum, title="33_MAMA_Momentum", color=color.green, linewidth=1)
plot(zlema_momentum, title="34_ZLEMA_Momentum", color=color.orange, linewidth=1)
plot(bop, title="35_BOP", color=color.purple, linewidth=1)
// Plot volume continuation
plot(nvi, title="36_NVI", color=color.navy, linewidth=1)
plot(pvi, title="37_PVI", color=color.maroon, linewidth=1)
plot(momentum_pct, title="38_Momentum_Pct", color=color.teal, linewidth=1)
plot(roc, title="39_ROC", color=color.lime, linewidth=1)
plot(rvi, title="40_RVI", color=color.fuchsia, linewidth=1)
// Plot volatility continuation
plot(dc_position, title="41_DC_Position", color=color.yellow, linewidth=1)
plot(rvi_volatility, title="42_RVI_Volatility", color=color.aqua, linewidth=1)
plot(hv, title="43_Historical_Vol", color=color.olive, linewidth=1)
plot(gk_volatility, title="44_GK_Volatility", color=color.silver, linewidth=1)
plot(parkinson, title="45_Parkinson_Vol", color=color.gray, linewidth=1)
// Plot final oscillators
plot(rogers_satchell, title="46_RS_Volatility", color=color.blue, linewidth=1)
plot(elder_power, title="47_Elder_Power", color=color.red, linewidth=1)
plot(stc, title="48_STC", color=color.green, linewidth=1)
plot(coppock, title="49_Coppock", color=color.orange, linewidth=1)
plot(kst, title="50_KST", color=color.purple, linewidth=1)
// Plot final indicators
plot(ppo_histogram, title="51_PPO_Histogram", color=color.navy, linewidth=1)
plot(pvt, title="52_PVT", color=color.maroon, linewidth=1)
// |----- Reference Lines -----| //
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_dashed, linewidth=1)
hline(50, "Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-50, "Lower Midline", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(25, "Upper Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
hline(-25, "Lower Threshold", color=color.gray, linestyle=hline.style_dotted, linewidth=1)
// |----- Enhanced Information Table -----| //
if show_table and barstate.islast
table_position = position.top_right
table_text_size = table_size == "Tiny" ? size.tiny : table_size == "Small" ? size.small : size.normal
var table info_table = table.new(table_position, 3, 18, bgcolor=color.new(color.white, 85), border_width=1, border_color=color.gray)
// Headers
table.cell(info_table, 0, 0, 'Category', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 1, 0, 'Indicator', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
table.cell(info_table, 2, 0, 'Value', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.blue, 70))
// Key Momentum Indicators
table.cell(info_table, 0, 1, 'MOMENTUM', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 1, 'RSI Centered', text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 2, 1, str.tostring(rsi_centered, '0.00'), text_color=color.purple, text_size=table_text_size)
table.cell(info_table, 0, 2, '', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 1, 2, 'Stoch Centered', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 2, str.tostring(stoch_centered, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 3, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 3, 'Williams %R', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 3, str.tostring(williams_r, '0.00'), text_color=color.red, text_size=table_text_size)
table.cell(info_table, 0, 4, '', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 1, 4, 'MACD Histogram', text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 2, 4, str.tostring(macd_histogram, '0.000'), text_color=color.orange, text_size=table_text_size)
table.cell(info_table, 0, 5, '', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 1, 5, 'CCI', text_color=color.green, text_size=table_text_size)
table.cell(info_table, 2, 5, str.tostring(cci, '0.00'), text_color=color.green, text_size=table_text_size)
// Key Trend Indicators
table.cell(info_table, 0, 6, 'TREND', text_color=color.navy, text_size=table_text_size, bgcolor=color.new(color.navy, 90))
table.cell(info_table, 1, 6, 'SMA Momentum %', text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 2, 6, str.tostring(sma_momentum, '0.00'), text_color=color.navy, text_size=table_text_size)
table.cell(info_table, 0, 7, '', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 1, 7, 'EMA Momentum %', text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 2, 7, str.tostring(ema_momentum, '0.00'), text_color=color.maroon, text_size=table_text_size)
table.cell(info_table, 0, 8, '', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 1, 8, 'SAR Trend', text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 2, 8, str.tostring(sar_trend, '0'), text_color=color.teal, text_size=table_text_size)
table.cell(info_table, 0, 9, '', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 1, 9, 'Linear Regression', text_color=color.lime, text_size=table_text_size)
table.cell(info_table, 2, 9, str.tostring(lr_slope, '0.000'), text_color=color.lime, text_size=table_text_size)
// Key Volatility Indicators
table.cell(info_table, 0, 10, 'VOLATILITY', text_color=color.yellow, text_size=table_text_size, bgcolor=color.new(color.yellow, 90))
table.cell(info_table, 1, 10, 'ATR %', text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 2, 10, str.tostring(atr_pct, '0.00'), text_color=color.yellow, text_size=table_text_size)
table.cell(info_table, 0, 11, '', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 1, 11, 'BB Position', text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 2, 11, str.tostring(bb_position, '0.00'), text_color=color.aqua, text_size=table_text_size)
table.cell(info_table, 0, 12, '', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 1, 12, 'KC Position', text_color=color.olive, text_size=table_text_size)
table.cell(info_table, 2, 12, str.tostring(kc_position, '0.00'), text_color=color.olive, text_size=table_text_size)
// Key Volume Indicators
table.cell(info_table, 0, 13, 'VOLUME', text_color=color.blue, text_size=table_text_size, bgcolor=color.new(color.blue, 90))
table.cell(info_table, 1, 13, 'Volume ROC', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 13, str.tostring(vroc, '0.00'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 14, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 14, 'EOM', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 14, str.tostring(eom_sma, '0.000'), text_color=color.red, text_size=table_text_size)
// Key Oscillators
table.cell(info_table, 0, 15, 'OSCILLATORS', text_color=color.purple, text_size=table_text_size, bgcolor=color.new(color.purple, 90))
table.cell(info_table, 1, 15, 'Awesome Osc', text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 2, 15, str.tostring(ao, '0.000'), text_color=color.blue, text_size=table_text_size)
table.cell(info_table, 0, 16, '', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 1, 16, 'Fisher Transform', text_color=color.red, text_size=table_text_size)
table.cell(info_table, 2, 16, str.tostring(fisher, '0.000'), text_color=color.red, text_size=table_text_size)
// Summary Statistics
table.cell(info_table, 0, 17, 'SUMMARY', text_color=color.black, text_size=table_text_size, bgcolor=color.new(color.gray, 70))
table.cell(info_table, 1, 17, 'Total Indicators: 52', text_color=color.black, text_size=table_text_size)
regime_color = rsi_centered > 10 ? color.green : rsi_centered < -10 ? color.red : color.gray
regime_text = rsi_centered > 10 ? "BULLISH" : rsi_centered < -10 ? "BEARISH" : "NEUTRAL"
table.cell(info_table, 2, 17, regime_text, text_color=regime_color, text_size=table_text_size)
This makes it the perfect “indicator backbone” for quantitative and systematic traders who want to prototype, combine, and test new regime detection models—especially in combination with the Markov Chain indicator.
How to use this script with the Markov Chain for research and backtesting:
Add the Enhanced Indicator Export to your chart.
Every calculated indicator is available as an individual data stream.
Connect the indicator(s) you want as custom input(s) to the Markov Chain’s “Custom Indicators” option.
In the Markov Chain indicator’s settings, turn ON the custom indicator mode.
For each of the three custom indicator inputs, select the exported plot from the Enhanced Export script—the menu lists all 45+ signals by name.
This creates a powerful, modular regime-detection engine where you can mix-and-match momentum, trend, volume, or custom combinations for advanced filtering.
Backtest regime logic directly.
Once you’ve connected your chosen indicators, the Markov Chain script performs regime detection (Bull/Neutral/Bear) based on your selected features—not just price returns.
The regime detection is robust, automatically normalized (using Z-score), and outputs bias (1, -1, 0) for plug-and-play integration.
Export the regime bias for programmatic use.
As described above, use input.source() in your Pine Script strategy or system and link the bias output.
You can now filter signals, control trade direction/size, or design pairs-trading that respect true, indicator-driven market regimes.
With this framework, you’re not limited to static or simplistic regime filters. You can rigorously define, test, and refine what “market regime” means for your strategies—using the technical features that matter most to you.
Optimize your signal generation by backtesting across a universe of meaningful indicator blends.
Enhance risk management with objective, real-time regime boundaries.
Accelerate your research: iterate quickly, swap indicator components, and see results with minimal code changes.
Automate multi-asset or pairs-trading by integrating regime context directly into strategy logic.
Add both scripts to your chart, connect your preferred features, and start investigating your best regime-based trades—entirely within the TradingView ecosystem.
References & Further Reading
Ang, A., & Bekaert, G. (2002). “Regime Switches in Interest Rates.” Journal of Business & Economic Statistics, 20(2), 163–182.
Hamilton, J. D. (1989). “A New Approach to the Economic Analysis of Nonstationary Time Series and the Business Cycle.” Econometrica, 57(2), 357–384.
Markov, A. A. (1906). "Extension of the Limit Theorems of Probability Theory to a Sum of Variables Connected in a Chain." The Notes of the Imperial Academy of Sciences of St. Petersburg.
Guidolin, M., & Timmermann, A. (2007). “Asset Allocation under Multivariate Regime Switching.” Journal of Economic Dynamics and Control, 31(11), 3503–3544.
Murphy, J. J. (1999). Technical Analysis of the Financial Markets. New York Institute of Finance.
Brock, W., Lakonishok, J., & LeBaron, B. (1992). “Simple Technical Trading Rules and the Stochastic Properties of Stock Returns.” Journal of Finance, 47(5), 1731–1764.
Zucchini, W., MacDonald, I. L., & Langrock, R. (2017). Hidden Markov Models for Time Series: An Introduction Using R (2nd ed.). Chapman and Hall/CRC.
On Quantitative Finance and Markov Models:
Lo, A. W., & Hasanhodzic, J. (2009). The Heretics of Finance: Conversations with Leading Practitioners of Technical Analysis. Bloomberg Press.
Patterson, S. (2016). The Man Who Solved the Market: How Jim Simons Launched the Quant Revolution. Penguin Press.
TradingView Pine Script Documentation: www.tradingview.com
TradingView Blog: “Use an Input From Another Indicator With Your Strategy” www.tradingview.com
GeeksforGeeks: “What is the Difference Between Markov Chains and Hidden Markov Models?” www.geeksforgeeks.org
What makes this indicator original and unique?
- On‑chart, real‑time Markov. The chain is drawn directly on your chart. You see the current regime, its tendency to stay (self‑loop), and the usual next step (arrows) as bars confirm.
- Source‑agnostic by design. The engine runs on any series you select via input.source() — price, your own oscillator, a composite score, anything you compute in the script.
- Automatic normalization + regime mapping. Different inputs live on different scales. The script standardizes your chosen source and maps it into clear regimes (e.g., Bull / Bear / Neutral) without you micromanaging thresholds each time.
- Rolling, bar‑by‑bar learning. Transition tendencies are computed from a rolling window of confirmed bars. What you see is exactly what the market did in that window.
- Fast experimentation. Switch the source, adjust the window, and the Markov view updates instantly. It’s a rapid way to test ideas and feel regime persistence/switch behavior.
Integrate your own signals (using input.source())
- In settings, choose the Source . This is powered by input.source() .
- Feed it price, an indicator you compute inside the script, or a custom composite series.
- The script will automatically normalize that series and process it through the Markov engine, mapping it to regimes and updating the on‑chart spheres/arrows in real time.
Credits:
Deep gratitude to @RicardoSantos for both the foundational Markov chain processing engine and inspiring open-source contributions, which made advanced probabilistic market modeling accessible to the TradingView community.
Special thanks to @Alien_Algorithms for the innovative and visually stunning 3D sphere logic that powers the indicator’s animated, regime-based visualization.
Disclaimer
This tool summarizes recent behavior. It is not financial advice and not a guarantee of future results.
MultiMA fxG v2 Indicateur permettant de centralier 3 moving average :
- Moving average Simple 8 (bleu)
- Moving average Exponentielle 21 (rouge)
- Moving average Exponentielle 50 (Orange)
====================================================
Simple Moving Average (SMA) 8: Displayed in blue, this line provides a quick view of short-term price trends.
Exponential Moving Average (EMA) 21: Shown in red, this average is more sensitive to recent price changes and highlights medium-term momentum.
Exponential Moving Average (EMA) 50: Marked in orange, this line tracks longer-term price movements for overall trend direction.
Traders can use the combination of these moving averages to identify potential crossover signals, trend strength, and possible reversal points.
Simple Crossover MME 5/20
Description:
This indicator plots a 5-period Exponential Moving Average (EMA) in red and a 20-period EMA in blue.
It provides clear visual signals for crossovers:
A green triangle appears when the 5 EMA crosses above the 20 EMA (bullish signal).
A red triangle appears when the 5 EMA crosses below the 20 EMA (bearish signal).
Built-in alerts are available for both bullish and bearish crossover events.
Option 2 (More Detailed)
Title: 5 EMA / 20 EMA Crossover Strategy with Visual Signals & Alerts
Description:
This script is designed to track one of the most popular moving average strategies: the crossover between the 5-period and 20-period Exponential Moving Averages (EMA). It's a clean and straightforward tool for identifying potential shifts in short-term trend momentum.
Features:
5-Period EMA: Plotted in Red.
20-Period EMA: Plotted in Blue.
Bullish Crossover Signals: A green triangle is plotted below the price bar when the 5 EMA (Red) crosses above the 20 EMA (Blue), suggesting potential upward momentum.
Bearish Crossover Signals: A red triangle is plotted above the price bar when the 5 EMA (Red) crosses below the 20 EMA (Blue), suggesting potential downward momentum.
Customizable Alerts: The indicator includes built-in alert conditions. You can easily set up real-time notifications for every "buy" (crossover) or "sell" (crossunder) signal.
How to Use:
Add the indicator to your chart.
To receive notifications, create an alert and select this indicator as the condition. Choose either the "Bullish Crossover" or "Bearish Crossover" option.
SmartMind2The MACD (Moving Average Convergence Divergence) is a popular technical indicator in trading, primarily used to detect trends and possible reversal points.
How is the MACD structured?
The MACD indicator consists of three components:
MACD Line:
Calculated as the difference between two exponential moving averages (EMAs), commonly 12 and 26 periods.
Formula:
MACD Line
=
𝐸
𝑀
𝐴
12
(
Price
)
−
𝐸
𝑀
𝐴
26
(
Price
)
MACD Line=EMA
12
(Price)−EMA
26
(Price)
Signal Line:
An exponential moving average (usually 9 periods) of the MACD line.
Formula:
Signal Line
=
𝐸
𝑀
𝐴
9
(
MACD Line
)
Signal Line=EMA
9
(MACD Line)
Histogram:
Graphically represents the difference between the MACD line and the Signal line.
Formula:
Histogram
=
MACD Line
−
Signal Line
Histogram=MACD Line−Signal Line
Interpretation of MACD:
Buy Signal: Occurs when the MACD line crosses above the signal line (bullish signal).
Sell Signal: Occurs when the MACD line crosses below the signal line (bearish signal).
Trend Reversal: A divergence between price movements and the MACD indicates a potential reversal (e.g., rising prices with a falling MACD).
Volume MA Breakout T3 [Teyo69]🧭 Overview
Volume MA Breakout T3 highlights volume bars that exceed a dynamic moving average threshold. It helps traders visually identify volume breakouts—periods of significant buying or selling pressure—based on user-selected MA methods (SMA, EMA, DEMA).
🔍 Features
Volume Highlighting: Green bars indicate volume breakout above the MA; red bars otherwise.
Custom MA Options: Choose between SMA, EMA, or Double EMA for volume smoothing.
Dynamic Threshold: The moving average line adjusts based on user-defined length and method.
⚙️ Configuration
Length: Number of bars used for the moving average calculation (default: 14).
Method: Type of moving average to use:
"SMA" - Simple Moving Average
"EMA" - Exponential Moving Average
"Double EMA" - Double Exponential Moving Average
📈 How to Use
Apply to any chart to visualize volume behavior relative to its MA.
Look for green bars: These suggest volume is breaking out above its recent average—potential signal of momentum.
Red bars indicate normal/subdued volume.
⚠️ Limitations
Does not provide directional bias—use with price action or trend confirmation tools.
Works best with additional context (e.g., support/resistance, candle formations).
🧠 Advanced Tips
Use shorter MAs (e.g., 5–10) in volatile markets for more responsive signals.
Combine with OBV, MFI, or accumulation indicators for confluence.
📌 Notes
This is a volume-based filter, not a signal generator.
Useful for breakout traders and volume profile enthusiasts.
📜 Disclaimer
This script is for educational purposes only. Always test in a simulated environment before live trading. Not financial advice.
Price Volume Trend [sgbpulse]1. Introduction: What is Price Volume Trend (PVT)?
The Price Volume Trend (PVT) indicator is a powerful technical analysis tool designed to measure buying and selling pressure in the market based on price changes relative to trading volume. Unlike other indicators that focus solely on volume or price, PVT combines both components to provide a more comprehensive picture of trend strength.
How is it Calculated?
The PVT is calculated by adding or subtracting a proportional part of the daily volume from a cumulative total.
When the closing price rises, a proportional part of the daily volume (based on the percentage price change) is added to the previous PVT value.
When the closing price falls, a proportional part of the daily volume is subtracted from the previous PVT value.
If there is no change in price, the PVT value remains unchanged.
The result of this calculation is a cumulative line that rises when buying pressure is strong and falls when selling pressure dominates.
2. Why PVT? Comparison to Similar Indicators
While other indicators measure volume-price pressure, PVT offers a unique advantage:
PVT vs. On-Balance Volume (OBV):
OBV simply adds or subtracts the entire day's volume based on the closing direction (up/down), regardless of the magnitude of the price change. This means a 0.1% price change is treated the same as a 10% change.
PVT, on the other hand, gives proportional weight to volume based on the percentage price change. A trading day with a large price increase and high volume will impact the PVT significantly more than a small price increase with the same volume. This makes PVT more sensitive to trend strength and changes within it.
PVT vs. Accumulation/Distribution Line (A/D Line):
The A/D Line focuses on the relationship between the closing price and the bar's trading range (Close Location Value) and multiplies it by volume. It indicates whether the pressure is buying or selling within a single bar.
PVT focuses on the change between closing prices of consecutive bars, multiplying this by volume. It better reflects the flow of money into or out of an asset over time.
By combining volume with percentage price change, PVT provides deeper insights into trend confirmation, identifying divergences between price and volume, and spotting signs of weakness or strength in the current trend.
3. Indicator Settings (Inputs)
The "Price Volume Trend " indicator offers great flexibility for customization to your specific needs through the following settings:
Moving Average Type: Allows you to select the type of moving average used for the central line on the PVT. Your choice here will affect the line's responsiveness to PVT movements.
- "None" : No moving average will be displayed on the PVT.
- "SMA" (Simple Moving Average): A simple average, smoother, ideal for identifying longer-term trends in PVT.
- "SMA + Bollinger Bands": This unique option not only displays a Simple Moving Average but also activates the Bollinger Bands around the PVT. This is the recommended option for analyzing volatility and ranges using Bollinger Bands.
- "EMA" (Exponential Moving Average): An exponential average, giving more weight to recent data, responding faster to changes in PVT.
- "SMMA (RMA)" (Smoothed Moving Average): A smoothed average, providing extra smoothing, less sensitive to noise.
- "WMA" (Weighted Moving Average): A weighted average, giving progressively more weight to recent data, responding very quickly to changes in PVT.
Moving Average Length: Defines the number of bars used to calculate the moving average (and, if applicable, the standard deviation for the Bollinger Bands). A lower value will make the line more responsive, while a higher value will smooth it out.
PVT BB StdDev (Bollinger Bands Standard Deviation): Determines the width of the Bollinger Bands. A higher value will result in wider bands, making it less likely for the PVT to cross them. The standard value is 2.0.
4. Visual Aid: Current PVT Level Line
This indicator includes a unique and highly useful visual feature: a dynamic horizontal line displayed on the PVT graph.
Purpose: This line marks the exact level of the PVT on the most recent trading bar. It extends across the entire chart, allowing for a quick and intuitive comparison of the current level to past levels.
Why is it Important?
- Identifying Divergences: Often, an asset's price may be lower or higher than past levels, but the PVT level might be different. This auxiliary line makes it easy to spot situations where PVT is at a higher level when the price is lower, or vice-versa, which can signal potential trend changes (e.g., higher PVT than in the past while price is low could indicate strong accumulation).
- Quick Direction Indication: The line's color changes dynamically: it will be green if the PVT value on the last bar has increased (or remained the same) relative to the previous bar (indicating positive buying pressure), and red if the PVT value has decreased relative to the previous bar (indicating selling pressure). This provides an immediate visual cue about the direction of the cumulative momentum.
5. Important Note: Trading Risk
This indicator is intended for educational and informational purposes only and does not constitute investment advice or a recommendation for trading in any form whatsoever.
Trading in financial markets involves significant risk of capital loss. It is important to remember that past performance is not indicative of future results. All trading decisions are your sole responsibility. Never trade with money you cannot afford to lose.
Pullback Pro Dow Strategy v7 (ADX Filter)
### **Strategy Description (For TradingView)**
#### **Title:** Pullback Pro: Dow Theory & ADX Strategy
---
#### **1. Summary**
This strategy is designed to identify and trade pullbacks within an established trend, based on the core principles of Dow Theory. It uses market structure (pivot highs and lows) to determine the trend direction and an Exponential Moving Average (EMA) to pinpoint pullback entry opportunities.
To enhance trade quality and avoid ranging markets, an ADX (Average Directional Index) filter is integrated to ensure that entries are only taken when the trend has sufficient momentum.
---
#### **2. Core Logic: How It Works**
The strategy's logic is broken down into three main steps:
**Step 1: Trend Determination (Dow Theory)**
* The primary trend is identified by analyzing recent pivot points.
* An **Uptrend** is confirmed when the script detects a pattern of higher highs and higher lows (HH/HL).
* A **Downtrend** is confirmed by a pattern of lower highs and lower lows (LH/LL).
* If neither pattern is present, the strategy considers the market to be in a range and will not seek trades.
**Step 2: Entry Signal (Pullback to EMA)**
* Once a clear trend is established, the strategy waits for a price correction.
* **Long Entry:** In a confirmed uptrend, a long position is initiated when the price pulls back and crosses *under* the specified EMA.
* **Short Entry:** In a confirmed downtrend, a short position is initiated when the price rallies and crosses *over* the EMA.
**Step 3: Confirmation & Risk Management**
* **ADX Filter:** To ensure the trend is strong enough to trade, an entry signal is only validated if the ADX value is above a user-defined threshold (e.g., 25). This helps filter out weak signals during choppy or consolidating markets.
* **Stop Loss:** The initial Stop Loss is automatically and logically placed at the last market structure point:
* For long trades, it's placed at the `lastPivotLow`.
* For short trades, it's placed at the `lastPivotHigh`.
* **Take Profit:** Two Take Profit levels are calculated based on user-defined Risk-to-Reward (R:R) ratios. The strategy allows for partial profit-taking at the first target (TP1), moving the remainder of the position to the second target (TP2).
---
#### **3. Input Settings Explained**
**① Dow Theory Settings**
* **Pivot Lookback Period:** Determines the sensitivity for detecting pivot highs and lows. A smaller number makes it more sensitive to recent price swings; a larger number focuses on more significant, longer-term pivots.
**② Entry Logic (Pullback)**
* **Pullback EMA Length:** Sets the period for the Exponential Moving Average used to identify pullback entries.
**③ Risk & Exit Management**
* **Take Profit 1 R:R:** Sets the Risk-to-Reward ratio for the first take-profit target.
* **Take Profit 1 (%):** The percentage of the position to be closed when TP1 is hit.
* **Take Profit 2 R:R:** Sets the Risk-to-Reward ratio for the final take-profit target.
**④ Filters**
* **Use ADX Trend Filter:** A master switch to enable or disable the ADX filter.
* **ADX Length:** The lookback period for the ADX calculation.
* **ADX Threshold:** The minimum ADX value required to confirm a trade signal. Trades will only be placed if the ADX is above this level.
---
#### **4. Best Practices & Recommendations**
* This is a trend-following system. It is designed to perform best in markets that exhibit clear, sustained trending behavior.
* It may underperform in choppy, sideways, or strongly ranging markets. The ADX filter is designed to help mitigate this, but no filter is perfect.
* **Crucially, you must backtest this strategy thoroughly** on your preferred financial instrument and timeframe before considering any live application.
* Experiment with the `Pivot Lookback Period`, `Pullback EMA Length`, and `ADX Threshold` to optimize performance for a specific market's characteristics.
---
#### **DISCLAIMER**
This script is provided for educational and informational purposes only. It does not constitute financial advice. All trading involves a high level of risk, and past performance is not indicative of future results. You are solely responsible for your own trading decisions. The author assumes no liability for any financial losses you may incur from using this strategy. Always conduct your own research and due diligence.
Dynamic Ray BandsAbout Dynamic Ray Bands
Dynamic Ray Bands is a volatility-adaptive envelope indicator that adjusts in real time to evolving market conditions. It uses a Double Exponential Moving Average (DEMA) as its central trend reference, with upper and lower bands scaled according to current volatility measured by the Average True Range (ATR).
This creates a dynamic structure that visually frames price action, helping traders identify areas of potential trend continuation, overextension, or mean reversion.
How It Works
🟡 Centerline (DEMA)
The central yellow line is a Double Exponential Moving Average, which offers a smoother, less laggy trend signal than traditional moving averages. It represents the market’s short- to medium-term “equilibrium.”
🔵 Outer Bands
Plotted at:
Upper Band = DEMA + (ATR × outerMultiplier)
Lower Band = DEMA - (ATR × outerMultiplier)
These bands define the extreme bounds of current volatility. When price breaks above or below them, it can signal strong directional momentum or overbought/oversold conditions, depending on context. They're often used as trend breakout zones or to time exits after extended runs.
🟣 Inner Bands
Plotted closer to the DEMA:
Inner Upper = DEMA + (ATR × innerMultiplier)
Inner Lower = DEMA - (ATR × innerMultiplier)
These are preliminary volatility thresholds, offering early cues for potential expansion or reversal. They may be used for scalping, tight stop zones, or pre-breakout positioning.
🔁 Dynamic Width (Bands are Dynamically Adjusted Per Tick)
The width of both inner and outer bands is based on ATR (Average True Range), which is recalculated in real time. This means:
During high volatility, the bands expand, allowing for wider price fluctuations.
During low volatility, the bands contract, tightening range expectations.
Unlike fixed-width channels or standard Bollinger Bands (which use standard deviation), this per-tick adjustment via ATR enables Dynamic Ray Bands to reduce false signals in choppy markets and remain more reactive during trending conditions.
⚙️ Inputs
DMA Length — Period for the central DEMA.
ATR Length — Lookback used for ATR volatility calculations.
Outer Band Multiplier — Controls sensitivity of extreme bands.
Inner Band Multiplier — Controls proximity of inner bands.
Show Inner Bands — Toggle for plotting the inner zone.
🔔 Alerts
Alert conditions are included for:
Price closing above/below the outer bands (trend momentum or overextension)
Price closing above/below the inner bands (early signs of strength/weakness)
🧭 Use Cases
Breakout detection — Catch price continuation beyond the outer bands.
Volatility filtering — Adjust trade logic based on band width.
Mean reversion — Monitor for snapbacks toward the DEMA after price stretches too far.
Trend guidance — Use band slope and price position to confirm direction.
⚠️ Disclaimer
This script is intended for educational and informational purposes only. It does not constitute financial advice or a recommendation to trade any specific market or security. Always test indicators thoroughly before using them in live trading.
Trend Tracker ProTrend Tracker Pro - Advanced Trend Following Indicator
Overview
Trend Tracker Pro is a sophisticated trend-following indicator that combines the power of Exponential Moving Average (EMA) and Average True Range (ATR) to identify market trends and generate precise buy/sell signals. This indicator is designed to help traders capture trending moves while filtering out market noise.
🎯 Key Features
✅ Dynamic Trend Detection
Uses EMA and ATR-based bands to identify trend direction
Automatically adjusts to market volatility
Clear visual trend line that changes color based on market direction
✅ Precise Signal Generation
Buy signals when trend changes to bullish
Sell signals when trend changes to bearish
Reduces false signals by requiring actual trend changes
✅ Visual Clarity
Green trend line: Bullish trend
Red trend line: Bearish trend
Gray trend line: Sideways/neutral trend
Triangle arrows for buy/sell signals
Clear BUY/SELL text labels
✅ Customizable Settings
Trend Length: Adjustable period for EMA and ATR calculation (default: 14)
ATR Multiplier: Controls sensitivity of trend bands (default: 2.0)
Show/Hide Signals: Toggle signal arrows on/off
Show/Hide Labels: Toggle text labels on/off
✅ Built-in Information Panel
Real-time trend direction display
Current trend level value
ATR value for volatility reference
Last signal information
✅ TradingView Alerts
Buy signal alerts
Sell signal alerts
Customizable alert messages
🔧 How It Works
Algorithm Logic:
1.
Calculate EMA: Uses exponential moving average for trend baseline
2.
Calculate ATR: Measures market volatility
3.
Create Bands: Upper band = EMA + (ATR × Multiplier), Lower band = EMA - (ATR × Multiplier)
4.
Determine Trend:
Price above upper band → Bullish trend (trend line = lower band)
Price below lower band → Bearish trend (trend line = upper band)
Price between bands → Continue previous trend
5.
Generate Signals: Signal occurs when trend direction changes
📊 Best Use Cases
✅ Trending Markets
Excellent for capturing strong directional moves
Works well in both bull and bear markets
Ideal for swing trading and position trading
✅ Multiple Timeframes
Effective on all timeframes from 15 minutes to daily
Higher timeframes provide more reliable signals
Can be used for both scalping and long-term investing
✅ Various Asset Classes
Stocks, Forex, Cryptocurrencies, Commodities
Particularly effective in volatile markets
Adapts automatically to different volatility levels
⚙️ Recommended Settings
Conservative Trading (Lower Risk)
Trend Length: 20
ATR Multiplier: 2.5
Best for: Long-term positions, lower frequency signals
Balanced Trading (Default)
Trend Length: 14
ATR Multiplier: 2.0
Best for: Swing trading, moderate frequency signals
Aggressive Trading (Higher Risk)
Trend Length: 10
ATR Multiplier: 1.5
Best for: Day trading, higher frequency signals
🎨 Visual Elements
Trend Line: Main indicator line that follows the trend
Signal Arrows: Triangle shapes indicating buy/sell points
Text Labels: Clear "BUY" and "SELL" text markers
Information Table: Real-time status panel in top-right corner
Color Coding: Intuitive green/red color scheme
⚠️ Important Notes
Risk Management
Always use proper position sizing
Set stop-losses based on ATR values
Consider market conditions and volatility
Not recommended for ranging/sideways markets
Signal Confirmation
Consider using with other indicators for confirmation
Pay attention to volume and market structure
Be aware of major news events and market sessions
Backtesting Recommended
Test the indicator on historical data
Optimize parameters for your specific trading style
Consider transaction costs in your analysis
Logarithmic Moving Average (LMA) [QuantAlgo]🟢 Overview
The Logarithmic Moving Average (LMA) uses advanced logarithmic weighting to create a dynamic trend-following indicator that prioritizes recent price action while maintaining statistical significance. Unlike traditional moving averages that use linear or exponential weights, this indicator employs logarithmic decay functions to create a more sophisticated price averaging system that adapts to market volatility and momentum conditions.
The indicator displays a smoothed signal line that oscillates around zero, with positive values indicating bullish momentum and negative values indicating bearish momentum. The signal incorporates trend quality assessment, momentum confirmation, and multiple filtering mechanisms to help traders and investors identify trend continuation and reversal opportunities across different timeframes and asset classes.
🟢 How It Works
The indicator's core innovation lies in its logarithmic weighting system, where weights are calculated using the formula: w = 1.0 / math.pow(math.log(i + steepness), 2) The steepness parameter controls how aggressively recent data is prioritized over historical data, creating a dynamic weight decay that can be fine-tuned for different trading styles. This logarithmic approach provides more nuanced weight distribution compared to exponential moving averages, offering better responsiveness while maintaining stability.
The LMA calculation combines multiple sophisticated components. First, it calculates the logarithmic weighted average of closing prices. Then it measures the slope of this average over a 10-period lookback: lmaSlope = (lma - lma ) / lma * 100 The system also incorporates trend quality assessment using R-squared correlation analysis of log-transformed prices, measuring how well the price data fits a linear trend model over the specified period.
The final signal generation uses the formula: signal = lmaSlope * (0.5 + rSquared * 0.5) which combines the LMA slope with trend quality weighting. When momentum confirmation is enabled, the indicator calculates annualized log-return momentum and applies a multiplier when the momentum direction aligns with the signal direction, strengthening confirmed signals while filtering out weak or counter-trend movements.
🟢 How to Use
1. Signal Interpretation and Threshold Zones
Positive Values (Above Zero): LMA slope indicating bullish momentum with upward price trajectory relative to logarithmic baseline
Negative Values (Below Zero): LMA slope indicating bearish momentum with downward price trajectory relative to logarithmic baseline
Zero Line Crosses: Signal transitions between bullish and bearish regimes, indicating potential trend changes
Long Entry Threshold Zone: Area above positive threshold (default 0.5) indicating confirmed bullish signals suitable for long positions
Short Entry Threshold Zone: Area below negative threshold (default -0.5) indicating confirmed bearish signals suitable for short positions
Extreme Values: Signals exceeding ±1.0 represent strong momentum conditions with higher probability of continuation
2. Momentum Confirmation and Visual Analysis
Signal Color Intensity: Gradient coloring shows signal strength, with brighter colors indicating stronger momentum
Bar Coloring: Optional price bar coloring matches signal direction for quick visual trend identification
Position Labels: Real-time position classification (Bullish/Bearish/Neutral) displayed on the latest bar
Momentum Weight Factor: When short-term log-return momentum aligns with LMA signal direction, the signal receives additional weight confirmation
Trend Quality Component: R-squared values weight the signal strength, with higher correlation indicating more reliable trend conditions
3. Examples: Preconfigured Settings
Default: Universally applicable configuration balanced for medium-term investing and general trading across multiple timeframes and asset classes.
Scalping: Highly responsive setup with shorter period and higher steepness for ultra-short-term trades on 1-15 minute charts, optimized for quick momentum shifts.
Swing Trading: Extended period with moderate steepness and increased smoothing for multi-day positions, designed to filter noise while capturing larger price swings on 1-4 hour and daily charts.
Trend Following: Maximum smoothing with lower steepness for established trend identification, generating fewer but more reliable signals optimal for daily and weekly timeframes.
Mean Reversion: Shorter period with high steepness for counter-trend strategies, more sensitive to extreme moves and reversal opportunities in ranging market conditions.
Custom EMA High/Low & SMA - [GSK-VIZAG-AP-INDIA] Custom EMA High/Low & SMA -
1. Overview
This indicator overlays a dynamic combination of Exponential Moving Averages (EMA) and Simple Moving Average (SMA) to identify momentum shifts and potential entry/exit zones. It highlights bullish or bearish conditions using color-coded SMA logic and provides visual Buy/Sell signals based on smart crossover and state-based logic.
2. Purpose / Use Case
Designed for traders who want to visually identify momentum breakouts, trend reversals, or pullback opportunities, this tool helps:
Spot high-probability buy/sell zones
Confirm price strength relative to volatility bands (EMA High/Low)
Time entries based on clean visual cues
It works well in trend-following strategies, particularly in intraday or swing setups across any liquid market (indices, stocks, crypto, etc.).
3. Key Features & Logic
✅ EMA High/Low Channel: Acts as dynamic support/resistance boundaries using 20-period EMAs on high and low prices.
✅ Timeframe-Specific SMA: A 33-period SMA calculated from a user-defined timeframe (default: 10-minute) for flexible multi-timeframe analysis.
✅ Signal Generation:
Buy: When SMA drops below EMA Low and close is above EMA High.
Sell: When SMA rises above EMA High and price closes below both EMAs.
Optionally, signals also fire based on SMA color changes (green = bullish, red = bearish).
✅ Strict or Loose Signal Logic: Choose between precise crossovers or broader state-based conditions.
✅ Debugging Tools: Optional markers for granular insight into condition logic.
4. User Inputs & Settings
Input Description
EMA High Length Period for EMA of high prices (default: 20)
EMA Low Length Period for EMA of low prices (default: 20)
SMA Length Period for Simple Moving Average (default: 33)
SMA Timeframe Timeframe for SMA (default: “10”)
Show Buy/Sell Arrows Enable visual arrow signals for Buy/Sell
Strict Signal Logic ON = crossover-based signals; OFF = state logic
Plot Signals on SMA Color Change Enable signals on SMA color shifts (Green/Red)
Show Debug Markers Plot small markers to debug condition logic
5. Visual Elements Explained
🔵 EMA High Line – Blue line marking dynamic resistance
🔴 EMA Low Line – Red line marking dynamic support
🟡 SMA Line – Color-coded based on position:
Green if SMA < EMA Low (Bullish)
Red if SMA > EMA High (Bearish)
Yellow otherwise (Neutral)
✅ BUY / SELL Labels – Displayed below or above candles on valid signals
🛠️ Debug Circles/Triangles – Help visually understand the signal logic when enabled
6. Usage Tips
Best used on 5–30 min timeframes for intraday setups or 1H+ for swing trades.
Confirm signals with volume, price action, or other confluences (like support/resistance).
Use strict mode for more accurate entries, and non-strict mode for broader trend views.
Ideal for identifying pullbacks into trend, or early reversals after volatility squeezes.
7. What Makes It Unique
Multi-timeframe SMA integrated with EMA High/Low bands
Dual signal logic (crossover + color shift)
Visually intuitive and beginner-friendly
Minimal clutter with dynamic signal labeling
Debug mode for transparency and learning
8. Alerts & Automation
The indicator includes built-in alert conditions for:
📈 Buy Alert: Triggered when a bullish condition is detected.
🔻 Sell Alert: Triggered when bearish confirmation is detected.
These alerts can be used with TradingView's alert system for real-time notifications or bot integrations.
9. Technical Concepts Used
EMA (Exponential Moving Average): Reacts faster to recent price, ideal for trend channels
SMA (Simple Moving Average): Smoother average for detecting general trend direction
Crossover Logic: Checks when SMA crosses over or under EMA levels
Color Coding: Visual signal enhancement based on relative positioning
Multi-Timeframe Analysis: SMA calculated on a custom timeframe, powerful for confirmation
10. Disclaimer
This script is for educational and informational purposes only. It is not financial advice. Always backtest thoroughly and validate on demo accounts before applying to live markets. Trading involves risk, and past performance does not guarantee future results.
11. Author Signature
📌 Indicator Name: Custom EMA High/Low & SMA -
👤 Author: GSK-VIZAG-AP-INDIA
volatility-adjusted breakout envelopethis indicator is designed to help traders visually identify potential entry and exit points based on volatility-adjusted price thresholds. it works by calculating a dynamic expected price move around the previous close using historical volatility data smoothed by exponential moving averages to reduce noise and present a clear range boundary on the chart.
the indicator first computes the logarithmic returns over a user-defined lookback period and calculates the standard deviation of these returns, which represents raw volatility. it annualizes this volatility according to the chart timeframe selected, then uses it to estimate an expected price movement for the current timeframe. this expected move is smoothed to avoid sudden spikes or drops that could cause confusing signals.
using this expected move, the indicator generates two key threshold lines: an upper threshold and a lower threshold. these lines create a volatility-based range around the smoothed previous close price. the thresholds themselves are further smoothed with exponential moving averages to produce smooth, easy-to-interpret lines that adapt to changing market conditions without being choppy.
the core trading signals are generated when the price closes outside of these smoothed threshold ranges. specifically, a long entry signal is indicated when the price closes above the upper threshold for the first time, signaling potential upward momentum beyond normal volatility expectations. a short entry signal occurs when the price closes below the lower threshold for the first time, indicating potential downward momentum.
once an entry signal is triggered, the indicator waits for the price to close back inside the threshold range before signaling an exit. when this occurs, an exit marker is displayed to indicate that the price has returned within normal volatility bounds, which may suggest that the previous trend is losing strength or the breakout has ended.
these signals are visually represented on the chart using small shapes: triangles pointing upwards mark the initial long entries, triangles pointing downwards mark short entries, and x shapes mark the exits for both long and short positions. the colors of these shapes are customizable to suit user preferences.
to use this indicator effectively, traders should watch for the first close outside the smoothed volatility range to consider entering a position in the breakout direction. the exit signals help identify when price action reverts back into the expected range, which can be used to close or reduce the position. this method emphasizes trading breakouts supported by statistically significant moves relative to recent volatility while providing a clear exit discipline.
this indicator is best applied to intraday or daily charts with consistent volatility and volume characteristics. users should adjust the volatility lookback period, smoothing factor, and trading session times to match their specific market and trading style. because it relies on price volatility rather than fixed price levels, it can adapt to changing market conditions but should be combined with other analysis tools and proper risk management.
overall, this indicator provides a smoothed, dynamic volatility envelope with clear visual entry and exit cues based on first closes outside and back inside these envelopes, making it a helpful assistant for manual traders seeking to capture statistically significant breakouts while maintaining disciplined exits.
Rainbow Price Chart This indicator is a technical and on-chain analysis tool for Bitcoin, designed to help investors better understand the different phases of the market cycle and underlying sentiment. It directly overlays on the price chart (overlay=true).
Indicator Name: "Rainbow Price Chart & V/T Ratio Signals"
General Purpose:
It combines two popular methodologies for visualizing Bitcoin's value and sentiment: the classic "Rainbow Price Chart" and signals derived from the "Value per Transaction Ratio" (V/T Ratio) based on blockchain data. It is ideal for long-term investors looking for strategic entry/exit points.
Main Components:
Rainbow Price Chart:
Concept: Divides Bitcoin's price range into different market "sentiment zones" (e.g., "Bubble Zone," "FOMO Zone," "HODL Zone," "Accumulation Zone," "Buy Zone," "Fire Sale Zone") using colored bands. These bands are calculated as ascending and descending multiples of a base Exponential Moving Average (EMA), configurable by default to 200 periods.
Visualization: The zones are represented with transparent color fills on the price chart. A detailed legend in the top right corner of the chart explains the meaning of each color and sentiment zone.
Important Note: This type of chart is designed to be viewed and analyzed correctly on a logarithmic price scale. The indicator includes a visual reminder to activate this scale.
Value per Transaction (V/T) Ratio Signals:
Concept: Measures the average value per transaction on the Bitcoin blockchain by dividing the total transacted volume in USD by the number of transactions. This ratio is smoothed with an Exponential Moving Average (by default, 7 periods) and is framed within a dynamic Linear Regression Channel (LRC) based on standard deviation.
Signal Generation: Based on the position of the smoothed V/T Ratio within this LRC channel, the indicator generates signals directly on the price chart, such as:
"BOTTOM": Low price, V/T Ratio in the lower band of the LRC.
"SEMI-LOW" / "SEMI-HIGH": Intermediate phases within the channel.
"ATH" (All-Time High): Potentially overvalued price, V/T Ratio in the upper band of the LRC.
On-Chain Data: The indicator requests external daily on-chain data for total transacted volume (TVTVR) and number of transactions (NTRAN) from the Bitcoin blockchain.
Diagnostic Panes: Includes plots of the raw on-chain data (volume and number of transactions) in a separate pane, which are useful for debugging or verifying the data source. The lines for the V/T Ratio itself and its LRC channel are not plotted by default but can be activated in the code for deeper analysis.
Ideal for:
Bitcoin investors and "hodlers" who desire a visual tool that combines price-based market cycle context with fundamental signals derived from on-chain activity, to help identify key moments for accumulation or potential distribution.
Considerations:
Relies on the availability of external on-chain data (QUANDL:BCHAIN) within TradingView.
Functions best on a daily timeframe.
Uptrick: Fusion Trend Reversion SystemOverview
The Uptrick: Fusion Trend Reversion System is a multi-layered indicator designed to identify potential price reversals during intraday movement while keeping traders informed of the dominant short-term trend. It blends a composite fair value model with deviation logic and a refined momentum filter using the Relative Strength Index (RSI). This tool was created with scalpers and short-term traders in mind and is especially effective on lower timeframes such as 1-minute, 5-minute, and 15-minute charts where price dislocations and quick momentum shifts are frequent.
Introduction
This indicator is built around the fusion of two classic concepts in technical trading: identifying trend direction and spotting potential reversion points. These are often handled separately, but this system merges them into one process. It starts by computing a fair value price using five moving averages, each with its own mathematical structure and strengths. These include the exponential moving average (EMA), which gives more weight to recent data; the simple moving average (SMA), which gives equal weight to all periods; the weighted moving average (WMA), which progressively increases weight with recency; the Arnaud Legoux moving average (ALMA), known for smoothing without lag; and the volume-weighted average price (VWAP), which factors in volume at each price level.
All five are averaged into a single value — the raw fusion line. This fusion acts as a dynamically balanced centerline that adapts to price conditions with both smoothing and responsiveness. Two additional exponential moving averages are applied to the raw fusion line. One is slower, giving a stable trend reference, and the other is faster, used to define momentum and cloud behavior. These two lines — the fusion slow and fusion fast — form the backbone of trend and signal logic.
Purpose
This system is meant for traders who want to trade reversals without losing sight of the underlying directional bias. Many reversal indicators fail because they act too early or signal too frequently in choppy markets. This script filters out noise through two conditions: price deviation and RSI confirmation. Reversion trades are considered only when the price moves a significant distance from fair value and RSI suggests a legitimate shift in momentum. That filtering process gives the trader a cleaner, higher-quality signal and reduces false entries.
The indicator also visually supports the trader through colored bars, up/down labels, and a filled cloud between the fast and slow fusion lines. These features make the market context immediately visible: whether the trend is up or down, whether a reversal just occurred, and whether price is currently in a high-risk reversion zone.
Originality and Uniqueness
What makes this script different from most reversal systems is the way it combines layers of logic — not just to detect signals, but to qualify and structure them. Rather than relying on a single MA or a raw RSI level, it uses a five-MA fusion to create a baseline fair value that incorporates speed, stability, and volume-awareness.
On top of that, the system introduces a dual-smoothing mechanism. It doesn’t just smooth price once — it creates two layers: one to follow the general trend and another to track faster deviations. This structure lets the script distinguish between continuation moves and possible turning points more effectively than a single-line or single-metric system.
It also uses RSI in a more refined way. Instead of just checking if RSI is overbought or oversold, the script smooths RSI and requires directional confirmation. Beyond that, it includes signal memory. Once a signal is generated, a new one will not appear unless the RSI becomes even more extreme and curls back again. This memory-based gating reduces signal clutter and prevents repetition, a rare feature in similar scripts.
Why these indicators were merged
Each moving average in the fusion serves a specific role. EMA reacts quickly to recent price changes and is often favored in fast-trading strategies. SMA acts as a long-term filter and smooths erratic behavior. WMA blends responsiveness with smoothing in a more balanced way. ALMA focuses on minimizing lag without losing detail, which is helpful in fast markets. VWAP anchors price to real trade volume, giving a sense of where actual positioning is happening.
By combining all five, the script creates a fair value model that doesn’t lean too heavily on one logic type. This fusion is then smoothed into two separate EMAs: one slower (trend layer), one faster (signal layer). The difference between these forms the basis of the trend cloud, which can be toggled on or off visually.
RSI is then used to confirm whether price is reversing with enough force to warrant a trade. The RSI is calculated over a 14-period window and smoothed with a 7-period EMA. The reason for smoothing RSI is to cut down on noise and avoid reacting to short, insignificant spikes. A signal is only considered if price is stretched away from the trend line and the smoothed RSI is in a reversal state — below 30 and rising for bullish setups, above 70 and falling for bearish ones.
Calculations
The script follows this structure:
Calculate EMA, SMA, WMA, ALMA, and VWAP using the same base length
Average the five values to form the raw fusion line
Smooth the raw fusion line with an EMA using sens1 to create the fusion slow line
Smooth the raw fusion line with another EMA using sens2 to create the fusion fast line
If fusion slow is rising and price is above it, trend is bullish
If fusion slow is falling and price is below it, trend is bearish
Calculate RSI over 14 periods
Smooth RSI using a 7-period EMA
Determine deviation as the absolute difference between current price and fusion slow
A raw signal is flagged if deviation exceeds the threshold
A raw signal is flagged if RSI EMA is under 30 and rising (bullish setup)
A raw signal is flagged if RSI EMA is over 70 and falling (bearish setup)
A final signal is confirmed for a bullish setup if RSI EMA is lower than the last bullish signal’s RSI
A final signal is confirmed for a bearish setup if RSI EMA is higher than the last bearish signal’s RSI
Reset the bullish RSI memory if RSI EMA rises above 30
Reset the bearish RSI memory if RSI EMA falls below 70
Store last signal direction and use it for optional bar coloring
Draw the trend cloud between fusion fast and fusion slow using fill()
Show signal labels only if showSignals is enabled
Bar and candle colors reflect either trend slope or last signal direction depending on mode selected
How it works
Once the script is loaded, it builds a fusion line by averaging five different types of moving averages. That line is smoothed twice into a fast and slow version. These two fusion lines form the structure for identifying trend direction and signal areas.
Trend bias is defined by the slope of the slow line. If the slow line is rising and price is above it, the market is considered bullish. If the slow line is falling and price is below it, it’s considered bearish.
Meanwhile, the script monitors how far price has moved from that slow line. If price is stretched beyond a certain distance (set by the threshold), and RSI confirms that momentum is reversing, a raw reversion signal is created. But the script only allows that signal to show if RSI has moved further into oversold or overbought territory than it did at the last signal. This blocks repetitive, weak entries. The memory is cleared only if RSI exits the zone — above 30 for bullish, below 70 for bearish.
Once a signal is accepted, a label is drawn. If the signal toggle is off, no label will be shown regardless of conditions. Bar colors are controlled separately — you can color them based on trend slope or last signal, depending on your selected mode.
Inputs
You can adjust the following settings:
MA Length: Sets the period for all moving averages used in the fusion.
Show Reversion Signals: Turns on the plotting of “Up” and “Down” labels when a reversal is confirmed.
Bar Coloring: Enables or disables colored bars based on trend or signal direction.
Show Trend Cloud: Fills the space between the fusion fast and slow lines to reflect trend bias.
Bar Color Mode: Lets you choose whether bars follow trend logic or last signal direction.
Sens 1: Smoothing speed for the slow fusion line — higher values = slower trend.
Sens 2: Smoothing speed for the fast line — lower values = faster signal response.
Deviation Threshold: Minimum distance price must move from fair value to trigger a signal check.
Features
This indicator offers:
A composite fair value model using five moving average types.
Dual smoothing system with user-defined sensitivity.
Slope-based trend definition tied to price position.
Deviation-triggered signal logic filtered by RSI reversal.
RSI memory system that blocks repetitive signals and resets only when RSI exits overbought or oversold zones.
Real-time tracking of the last signal’s direction for optional bar coloring.
Up/Down labels at signal points, visible only when enabled.
Optional trend cloud between fusion layers, visualizing current market bias.
Full user control over smoothing, threshold, color modes, and visibility.
Conclusion
The Fusion Trend-Reversion System is a tool for short-term traders looking to fade price extremes without ignoring trend bias. It calculates fair value using five diverse moving averages, smooths this into two dynamic layers, and applies strict reversal logic based on RSI deviation and momentum strength. Signals are triggered only when price is stretched and momentum confirms it with increasingly strong behavior. This combination makes the tool suitable for scalping, intraday entries, and fast market environments where precision matters.
Disclaimer
This indicator is for informational and educational purposes only. It does not constitute financial advice. All trading involves risk, and no tool can predict market behavior with certainty. Use proper risk management and do your own research before making trading decisions.
Timeshifter Triple Timeframe Strategy w/ SessionsOverview
The "Enhanced Timeshifter Triple Timeframe Strategy with Session Filtering" is a sophisticated trading strategy designed for the TradingView platform. It integrates multiple technical indicators across three different timeframes and allows traders to customize their trading Sessions. This strategy is ideal for traders who wish to leverage multi-timeframe analysis and session-based trading to enhance their trading decisions.
Features
Multi-Timeframe Analysis and direction:
Higher Timeframe: Set to a daily timeframe by default, providing a broader view of market trends.
Trading Timeframe: Automatically set to the current chart timeframe, ensuring alignment with the trader's primary analysis period.
Lower Timeframe: Set to a 15-minute timeframe by default, offering a granular view for precise entry and exit points.
Indicator Selection:
RMI (Relative Momentum Index): Combines RSI and MFI to gauge market momentum.
TWAP (Time Weighted Average Price): Provides an average price over a specified period, useful for identifying trends.
TEMA (Triple Exponential Moving Average): Reduces lag and smooths price data for trend identification.
DEMA (Double Exponential Moving Average): Similar to TEMA, it reduces lag and provides a smoother trend line.
MA (Moving Average): A simple moving average for basic trend analysis.
MFI (Money Flow Index): Measures the flow of money into and out of a security, useful for identifying overbought or oversold conditions.
VWMA (Volume Weighted Moving Average): Incorporates volume data into the moving average calculation.
PSAR (Parabolic SAR): Identifies potential reversals in price movement.
Session Filtering:
London Session: Trade during the London market hours (0800-1700 GMT+1).
New York Session: Trade during the New York market hours (0800-1700 GMT-5).
Tokyo Session: Trade during the Tokyo market hours (0900-1800 GMT+9).
Users can select one or multiple sessions to align trading with specific market hours.
Trade Direction:
Long: Only long trades are permitted.
Short: Only short trades are permitted.
Both: Both long and short trades are permitted, providing flexibility based on market conditions.
ADX Confirmation:
ADX (Average Directional Index): An optional filter to confirm the strength of a trend before entering a trade.
How to Use the Script
Setup:
Add the script to your TradingView chart.
Customize the input parameters according to your trading preferences and strategy requirements.
Indicator Selection:
Choose the primary indicator you wish to use for generating trading signals from the dropdown menu.
Enable or disable the ADX confirmation based on your preference for trend strength analysis.
Session Filtering:
Select the trading sessions you wish to trade in. You can choose one or multiple Sessions based on your trading strategy and market focus.
Trade Direction:
Set your preferred trade direction (Long, Short, or Both) to align with your market outlook and risk tolerance. You can use this feature to gauge the market and understand the possible directions.
Tips for Profitable and Safe Trading:
Recommended Timeframes Combination:
LT: 1m , CT: 5m, HT: 1H
LT: 1-5m , CT: 15m, HT: 4H
LT: 5-15m , CT: 4H, HT: 1W
Backtesting:
Always backtest the strategy on historical data to understand its performance under various market conditions.
Adjust the parameters based on backtesting results to optimize the strategy for your specific trading style.
Risk Management:
Use appropriate risk management techniques, such as setting stop-loss and take-profit levels, to protect your capital.
Avoid over-leveraging and ensure that you are trading within your risk tolerance.
Market Analysis:
Combine the script with other forms of market analysis, such as fundamental analysis or market sentiment, to make well-rounded trading decisions.
Stay informed about major economic events and news that could impact market volatility and trading sessions.
Continuous Monitoring:
Regularly monitor the strategy's performance and make adjustments as necessary.
Keep an eye on the results and settings for real-time statistics and ensure that the strategy aligns with current market conditions.
Education and Practice:
Continuously educate yourself on trading strategies and market dynamics.
Practice using the strategy in a demo account before applying it to live trading to gain confidence and understanding.
Volume Momentum [BackQuant]Volume Momentum
The Volume Momentum indicator is designed to help traders identify shifts in market momentum based on volume data. By analyzing the relative volume momentum, this indicator provides insights into whether the market is gaining strength (uptrend) or losing momentum (downtrend). The strategy uses a combination of percentile-based volume normalization, weighted moving averages (WMA), and exponential moving averages (EMA) to assess volume trends.
The system focuses on the relationship between price and volume, utilizing normalized volume data to highlight key market changes. This approach allows traders to focus on volume-driven price movements, helping them to capture momentum shifts early.
Key Features
1. Volume Normalization and Percentile Calculation:
The signed volume (positive when the close is higher than the open, negative when the close is lower) is normalized against the rolling average volume. This normalized volume is then subjected to a percentile interpolation, allowing for a robust statistical measure of how the current volume compares to historical data. The percentile level is customizable, with 50 representing the median.
2. Weighted and Smoothed Moving Averages for Trend Detection:
The normalized volume is smoothed using weighted moving averages (WMA) and exponential moving averages (EMA). These smoothing techniques help eliminate noise, providing a clearer view of the underlying momentum. The WMA filters out short-term fluctuations, while the EMA ensures that the most recent data points have a higher weight, making the system more responsive to current market conditions.
3. Trend Reversal Detection:
The indicator detects momentum shifts by evaluating whether the volume momentum crosses above or below zero. A positive volume momentum indicates a potential uptrend, while a negative momentum suggests a possible downtrend. These trend reversals are identified through crossover and crossunder conditions, triggering alerts when significant changes occur.
4. Dynamic Trend Background and Bar Coloring:
The script offers customizable background coloring based on the trend direction. When volume momentum is positive, the background is colored green, indicating a bullish trend. When volume momentum is negative, the background is colored red, signaling a bearish trend. Additionally, the bars themselves can be colored based on the trend, further helping traders quickly visualize market momentum.
5. Alerts for Momentum Shifts:
The system provides real-time alerts for traders to monitor when volume momentum crosses a critical threshold (zero), signaling a trend reversal. The alerts notify traders when the market momentum turns bullish or bearish, assisting them in making timely decisions.
6. Customizable Parameters for Flexible Usage:
Users can fine-tune the behavior of the indicator by adjusting various parameters:
Volume Rolling Mean: The period used to calculate the average volume for normalization.
Percentile Interpolation Length: Defines the range over which the percentile is calculated.
Percentile Level: Determines the percentile threshold (e.g., 50 for the median).
WMA and Smoothing Periods: Control the smoothing and response time of the indicator.
7. Trend Background Visualization and Trend-Based Bar Coloring:
The background fill is shaded according to whether the volume momentum is positive or negative, providing a visual cue to indicate market strength. Additionally, bars can be color-coded to highlight the trend, making it easier to see the trend’s direction without needing to analyze numerical data manually.
8. Note on Mean-Reversion Strategy:
If you take the inverse of the signals, this indicator can be adapted for a mean-reversion strategy. Instead of following the trend, the strategy would involve buying assets that are underperforming and selling assets that are overperforming, based on volume momentum. However, it’s important to note that this approach may not work effectively on highly correlated assets, as their price movements may be too similar, reducing the effectiveness of the mean-reversion strategy.
Final Thoughts
The Volume Momentum indicator offers a comprehensive approach to analyzing volume-based momentum shifts in the market. By using volume normalization, percentile interpolation, and smoothed moving averages, this system helps identify the strength and direction of market trends. Whether used for trend-following or adapted for mean-reversion, this tool provides traders with actionable insights into the market’s volume-driven movements, improving decision-making and portfolio management.
EMA 200 Monitor - Bybit CoinsEMA 200 Monitor - Bybit Coins
📊 OVERVIEW
The EMA 200 Monitor - Bybit Coins is an advanced indicator that automatically monitors 30 of the top cryptocurrencies traded on Bybit, alerting you when they are close to the 200-period Exponential Moving Average on the 4-hour timeframe.
This indicator was developed especially for traders who use the EMA 200 as a key support/resistance level in their swing trading and position trading strategies.
🎯 WHAT IT'S FOR
Multi-Asset Monitoring: Simultaneous monitoring of 30 cryptocurrencies without having to switch between charts
Opportunity Identification: Detects when coins are approaching the 200 EMA, a crucial technical level
Automated Alerts: Real-time notifications when a coin reaches the configured proximity
Time Efficiency: Eliminates the need to manually check chart collections
⚙️ HOW IT WORKS
Main Functionality
The indicator uses the request.security() function to fetch price data and calculate the 200 EMA of each monitored asset. With each new bar, the script:
Calculates the distance between the current price and the 200 EMA for each coin
Identifies proximity based on the configured percentage (default: 2%)
Displays results in a table organized on the chart
Generates automatic alerts when proximity is detected
Monitored Coins
Major : BTC, ETH, BNB, ADA, XRP, SOL, DOT, DOGE, AVAX
DeFi : UNI, LINK, ATOM, ICP, NEAR, OP, ARB, INJ
Memecoins : SHIB, PEPE, WIF, BONK, FLOKI
Emerging : SUI, TON, APT, POL (ex-MATIC)
📋 AVAILABLE SETTINGS
Adjustable Parameters
EMA Length (Default: 200): Exponential Moving Average Period
Proximity Percentage (Default: 2%): Distance in percentage to consider "close"
Show Table (Default: Active): Show/hide results table
Table Position: Position of the table on the chart (9 options available)
Color System
🔴 Red: Distance ≤ 1% (very close)
🟠 Orange: Distance ≤ 1.5% (close)
🟡 Yellow: Distance ≤ 2% (approaching)
🚀 HOW TO USE
Initial Configuration
Add the indicator to the 4-hour timeframe chart
Set the parameters according to your strategy
Position the table where there is no graphic preference
Setting Alerts
Click "Create Alert" in TradingView
Select the "EMA 200 Monitor" indicator
Set the notification frequency and method
Activate the alert to receive automatic notifications
Results Interpretation
The table shows:
Coin: Asset name (e.g. BTC, ETH)
Price: Current currency quote
EMA 200: Current value of the moving average
Distance: Percentage of proximity to the core code
💡 STRATEGIES TO USE
Reversal Trading
Entry: When price touches or approaches the EMA 200
Stop: Below/above the EMA with a safety margin
Target: Previous resistance/support levels
Breakout Trading
Monitoring: Watch for currencies consolidating near the EMA 200
Entry: When the media is finally broken
Confirmation: Volume and close above/below the EMA
Swing Trading
Identification: Use the monitor to detect setups in formation
Timing: Wait for the EMA 200 to approach for detailed analysis
Management: Use the EMA as a reference for stops dynamics
⚠️ IMPORTANT CONSIDERATIONS
Technical Limitations
Request Bybit data: Access to exchange symbols required
Specific timeframe: Optimized for 4-hour analysis
Minimum delay: Data updated with each new bar
Usage Recommendations
Combine with technical analysis: Use together with other indicators
Confirm the configuration: Check the graphic patterns before trading
Manage risk: Always use stop loss and adequate position sizing
Backtesting: Test your strategy before applying with real capital
Disclaimer
This indicator is a technical analysis tool and does not constitute investment advice. Always do your own analysis and manage detailed information about the risks of your operations.
🔧 TECHNICAL INFORMATION
Pine Script version: v6
Type: Indicator (overlay=true)
Compatibility: All TradingView plans
Resources used: request.security(), arrays, tables
Performance: Optimized for multiple simultaneous queries
📈 COMPETITIVE ADVANTAGES
✅ Simultaneous monitoring of 30 major assets ✅ Clear visual interface with intuitive core system ✅ Customizable alerts for different details ✅ Optimized code for maximum performance ✅ Flexible configuration adaptable to different strategies ✅ Real-time update without the need for manual refresh
Developed for traders who value efficiency and accuracy in identifying market opportunities based on the EMA 20
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.
EMD Trend [InvestorUnknown]EMD Trend is a dynamic trend-following indicator that utilizes Exponential Moving Deviation (EMD) to build adaptive channels around a selected moving average. Designed for traders who value responsive trend signals with built-in volatility sensitivity, this tool highlights directional bias, market regime shifts, and potential breakout opportunities.
How It Works
Instead of using standard deviation, EMD Trend employs the exponential moving average of the absolute deviation from a moving average—producing smoother, faster-reacting upper and lower bounds:
Bullish (Risk-ON Long): Price crosses above the upper EMD band
Bearish (Risk-ON Short): Price crosses below the lower EMD band
Neutral: Price stays within the channel, indicating potential mean reversion or low momentum
Trend direction is defined by price interaction with these bands, and visual cues (color-coded bars and fills) help quickly identify market conditions.
Features
7 Moving Average Types: SMA, EMA, HMA, DEMA, TEMA, RMA, FRAMA
Custom Price Source: Choose close, hl2, ohlc4, or others
EMD Multiplier: Controls the width of the deviation envelope
Bar Coloring: Candles change color based on current trend
Intra-bar Signal Option: Enables faster updates (with optional repainting)
Speculative Zones: Fills highlight aggressive momentum moves beyond EMD bounds
Backtest Mode
Switch to Backtest Mode for performance evaluation over historical data:
Equity Curve Plot: Compare EMD Trend strategy vs. Buy & Hold
Trade Metrics Table: View number of trades, win/loss stats, profits
Performance Metrics Table: Includes CAGR, Sharpe, max drawdown, and more
Custom Start Date: Select from which date the backtest should begin
Trade Sizing: Configure capital and trade percentage per entry
Signal Filters: Choose from Long Only, Short Only, or Both
Alerts
Built-in alerts let you automate entries, exits, and trend transitions:
LONG (EMD Trend) - Trend flips to Long
SHORT (EMD Trend) - Trend flips to Short
RISK-ON LONG - Price crosses above upper EMD band
RISK-OFF LONG - Price crosses back below upper EMD band
RISK-ON SHORT - Price crosses below lower EMD band
RISK-OFF SHORT - Price crosses back above lower EMD band
Use Cases
Trend Confirmation with volatility-sensitive boundaries
Momentum Entry Filtering via breakout zones
Mean Reversion Avoidance in sideways markets
Backtesting & Strategy Building with real-time metrics
Disclaimer
This indicator is intended for informational and educational purposes only. It does not constitute investment advice. Historical performance does not guarantee future results. Always backtest and use in simulation before live trading.
Mimas buy and sellBollinger Bands: Calculated using a simple moving average (basis) and standard deviation (dev).
EMAs: Two exponential moving averages (EMA 5 and EMA 20) are plotted to identify short-term and long-term trends.
Price Action Patterns: The script detects higher highs and higher lows for bullish conditions, and lower highs and lower lows for bearish conditions.
Trend Strength: An exponential moving average of the price change is used to gauge the strength of the trend.
Trade Signals: Buy and sell signals are plotted on the chart when specific conditions are met, combining price action patterns, trend strength, Bollinger Bands, and EMA crossovers.
Take-Profit Levels: Dynamic take-profit levels are calculated based on recent swing highs and lows, adjusted by a user-defined multiplier. These levels are displayed on the chart using plot to draw horizontal lines.






















