圖表形態
Historical & Periodic Key LevelsHistorical & Periodic Key Levels
This indicator automatically plots historical key levels (ATH/ATL) and periodic closing levels (Daily, Weekly, Monthly, Yearly). It highlights major price zones frequently used in technical and institutional trading.
Key Features:
Dynamic ATH/ATL: tracks all-time high/low with date annotation.
Periodic Closes: previous D/W/M/Y closes with directional coloring.
Adaptive Colors: green/red based on bullish or bearish close.
Full Customization: toggle visibility, colors, line width, text alignment, and label text.
Smart Label Management: prevents overlap by cycling through label styles automatically.
Usage:
Identify strong support/resistance levels.
Monitor key closing prices across multiple timeframes.
Enhance swing trading and long-term analysis with institutional reference levels.
Inputs:
Levels Visibility: show/hide ATH, ATL, and periodic closes.
ATH/ATL Style Settings: line colors, label prefix, width, and text alignment.
Periodic Levels Style: label text (D/W/M/Y), line width, alignment, and bullish/bearish colors.
Notes:
Levels adjust automatically to the active chart timeframe.
Lower timeframe levels are hidden when redundant (e.g., daily close on daily chart).
[QD] RSI Signal DetectionUpdate my script related to RSI
Update my script related to RSI
Update my script related to RSI
Update my script related to RSIUpdate my script related to RSIUpdate my script related to RSI
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.
Pro Market Toolkit (TH) v2.4 — S/R + Zones + ATR Bands + Alertsรายละเอียด (ภาษาไทย):
อินดิเคเตอร์ชุดเครื่องมือครบวงจรสำหรับนักเทรด
คำนวณ แนวรับ–แนวต้าน (Support / Resistance) อัตโนมัติจากสวิง (Pivot High/Low)
สร้าง Supply/Demand Zones จาก ATR เพื่อหาพื้นที่กลับตัวสำคัญ
วาดเส้น Moving Average และ ATR Bands เพื่อประเมินแนวโน้มและความผันผวน
แสดงสัญญาณ Breakout และ Bounce/Reject อย่างชัดเจนบนกราฟ
รองรับ Alerts สำหรับ 4 เงื่อนไขสำคัญ: Breakout ขึ้น/ลง, Demand Bounce, Supply Reject
มีตารางแสดง Trend และค่า ATR ปัจจุบัน
เหมาะสำหรับผู้ที่ต้องการดูแนวโน้ม, หาจุดเข้า/ออก และรับการแจ้งเตือนอัตโนมัติ โดยไม่ต้องเฝ้ากราฟตลอดเวลา
Description (English):
A comprehensive trading toolkit indicator for professional traders.
Automatically detects Support/Resistance levels using swing pivots
Generates Supply/Demand Zones based on ATR to highlight potential reversal areas
Plots Moving Average and ATR Bands for trend and volatility analysis
Displays clear signal markers for Breakouts and Zone Bounces/Rejects
Provides Alerts for 4 key conditions: Breakout Up/Down, Demand Bounce, Supply Reject
Includes an on-chart table showing the current Trend and ATR value
Ideal for traders who want automatic key levels, zones, and signal alerts without the need to monitor the chart constantly.
HTF Candles & ReversalsThis is a comprehensive multi-timeframe analysis tool designed to give you a broader perspective on market structure directly from your main chart. It overlays candles from up to six user-defined higher timeframes (HTF) and includes a built-in indicator to spot potential price reversals. This allows you to analyze the bigger picture and make more informed decisions without constantly switching between different chart layouts.
Key Features
Multi-Timeframe Candle Display: Renders candles from up to six different higher timeframes (the defaults are 5m, 15m, 1H, 4H, 1D, and 1W). You can see how the current price action fits within the larger trend.
Reversal Pattern Detection: The script identifies and highlights potential bullish and bearish reversal patterns. This works on both your main chart's candles and the displayed HTF candles, helping you spot potential shifts in momentum on multiple scales.
Imbalance (FVG) Highlighting: Automatically detects and draws Fair Value Gaps (FVGs) on the HTF candles, pointing out areas of inefficient price action that may act as magnets for future price movement.
Full Customization: You have complete control over the visual elements. Adjust the colors for candle bodies, borders, and wicks. Change the positioning of the HTF display, and toggle labels, timers, and imbalance boxes to create a clean workspace that fits your trading style.
How to Use This Indicator
Gain Market Context: Use the HTF candles to quickly gauge the dominant trend. For example, if the 4H and 1D candles are bullish, you might look for buying opportunities on your lower timeframe chart. The highs and lows of these HTF candles often serve as strong support and resistance levels.
Identify Reversals:
Triangles on the Main Chart: A green triangle below a candle suggests a potential bullish reversal, while a red triangle above suggests a potential bearish reversal. This pattern appears when a candle makes a new low/high but closes stronger/weaker than the previous one.
Colored HTF Candles: When an HTF candle is colored (lime for bullish, orange for bearish), it indicates that a reversal pattern has formed on that specific higher timeframe, which could signal a more significant change in market direction.
Utilize Imbalances: The highlighted FVG boxes can be treated as areas of interest. Price often revisits these zones, making them potential targets for trades or areas to watch for a reaction.
Settings Breakdown
Candle Color: Independently set the colors for bullish and bearish candle bodies, borders, and wicks.
Layout: Use the HTF Distance setting to control how far the displayed candles appear from the current price action.
Labels: Choose whether to display the timeframe name and a countdown timer for each HTF candle. You can position these labels at the top, bottom, or both.
Imbalances: Toggle the visibility of the FVG boxes and customize their color.
Reversal Indicator: Enable or disable the reversal triangles on your main chart and the special coloring for reversal candles on both the main chart and the HTF displays.
Disclaimer: This tool is intended for technical analysis and educational purposes. It does not provide financial advice or generate guaranteed trading signals. Always use risk management and conduct your own analysis before entering any trade.
Aethix Cipher Pro2Aethix Cipher Pro: AI-Enhanced Crypto Signal Indicator grok Ai made signal created for aethix users.
Unlock the future of crypto trading with Aethix Cipher Pro—a powerhouse indicator inspired by Market Cipher A, turbocharged for Aethix.io users! Built on WaveTrend Oscillator, 8-EMA Ribbon, RSI+MFI, and custom enhancements like Grok AI confidence levels (70-100%), on-chain whale volume thresholds, and fun meme alerts ("To the moon! 🌕").
Key Features: no whale tabs
WaveTrend Signals: Spot overbought/oversold with levels at ±53/60/100—crosses trigger red diamonds, blood diamonds, yellow X's for high-prob buy/sell entries.
Neon Teal EMA Ribbon: Dynamic 5-34 EMA gradient (bullish teal/bearish red) for trend direction—crossovers plot green/red circles, blue triangles.
RSI+MFI Fusion: Overbought (70+)/oversold (30-) with long snippets for sentiment edges.
Aethix Cipher Pro2Aethix Cipher Pro: AI-Enhanced Crypto Signal Indicator grok Ai made signal created for aethix users.
Unlock the future of crypto trading with Aethix Cipher Pro—a powerhouse indicator inspired by Market Cipher A, turbocharged for Aethix.io users! Built on WaveTrend Oscillator, 8-EMA Ribbon, RSI+MFI, and custom enhancements like Grok AI confidence levels (70-100%), on-chain whale volume thresholds, and fun meme alerts ("To the moon! 🌕").
Key Features:
WaveTrend Signals: Spot overbought/oversold with levels at ±53/60/100—crosses trigger red diamonds, blood diamonds, yellow X's for high-prob buy/sell entries.
Neon Teal EMA Ribbon: Dynamic 5-34 EMA gradient (bullish teal/bearish red) for trend direction—crossovers plot green/red circles, blue triangles.
RSI+MFI Fusion: Overbought (70+)/oversold (30-) with long snippets for sentiment edges.
Aethix Cipher DivergencesAethix Cipher Divergences v6
Core Hook: Custom indicator inspired by VuManChu B, Grok-enhanced for crypto intel—blends WaveTrend (WT) oscillator with multi-divergences for buy/sell circles (green/teal buys #00FFFF, red sells) and dots (divs, gold overbought alerts).
Key Features:
WaveTrend Waves: Dual waves (teal WT1, darker teal WT2) with VWAP (purple for neon vibe), overbought/oversold lines, crosses for signals.
Divergences: Regular/hidden for WT, RSI, Stoch—red bearish, green bullish dots; extra range for deeper insights.
RSI + MFI Area: Colored area (green positive, red negative) for sentiment/volume flow.
Stochastic RSI: K/D lines with fill for overbought/oversold trends.
Schaff Trend Cycle: Purple line for cycle smoothing.
Sommi Patterns: Flags (pink bearish, blue bullish) and diamonds for HTF patterns, purple higher VWAP.
MACD Colors on WT: Dynamic WT shading based on MACD for enhanced reads.
Simple Symmetrical Triangle Strategy (6 points)Overview
This strategy identifies triangle patterns formed by a series of key high and low price points. A trade is triggered when the price breaks out from the pattern's final confirmation points: a buy signal occurs on a close above the last high point, and a sell signal on a close below the last low point. To ensure relevance, any pattern that doesn't break out within 10 bars is automatically discarded.
This helps filter out patterns that lose momentum and focuses only on the most imminent breakouts.
How It Works
1. Pattern Detection: The script continuously scans for a sequence of three declining highs (points H1, H2, H3) and three rising lows (points L1, L2, L3) to form a triangle.
2. Entry Logic: The logic is straightforward and based on breaking the last confirmed pivot:
* Long Entry: A buy order is executed if the price closes above the level of the last high (H3).
* Short Entry: A sell order is executed if the price closes below the level of the last low (L3).
3. Pattern Expiration: A triangle only remains "active" for 10 bars after its formation. If a breakout doesn't occur within this window, the pattern is removed from analysis, avoiding trades on prolonged, unresolved consolidations.
Key Features
* Automatic Detection: Identifies and draws triangles for you.
* Simple Breakout Logic: Easy to understand, trades by following the price action.
* Time Filter: Its main advantage is discarding patterns that do not resolve quickly.
* Customizable: You can adjust the sensitivity of the pivot detection in the settings.
Important Disclaimer
This strategy is designed as an entry system and DOES NOT INCLUDE A STOP LOSS OR TAKE PROFIT.
Automation Ready
Want to automate this or ANY strategy on your broker or MetaTrader (MT4/MT5) without keeping your computer on or needing a VPS? You can use WebhookTrade.
Symmetrical Triangle Strategy (Real and Trap confirmation)Overview
This is an advanced strategy that not only detects symmetrical triangle patterns but also attempts to differentiate between a genuine breakout and a false breakout (a trap) to trade accordingly.
Instead of blindly following every breakout, it analyzes the "quality" of the move using Volume and RSI filters. If the breakout appears weak, it prepares to trade in the opposite direction, capitalizing on the pattern's failure.
How It Works
The strategy employs a dual logic that activates after the price breaks the last pivot (H3 or L3):
1. Scenario A: The Real Breakout
* If the price breaks the triangle AND the breakout is confirmed by a surge in volume and/or a favorable RSI, the strategy considers the move genuine and enters in the direction of the breakout.
2. Scenario B: The False Breakout (Trap)
* If the price breaks the triangle BUT the indicators fail to confirm it (e.g., low volume), the strategy interprets it as a potential trap.
* It waits for the price to return inside the pattern.
* Once the price has re-entered, it opens a trade AGAINST the initial breakout, betting that the first move was a fake-out.
Key Features
* Hybrid Logic: It's not just a simple breakout strategy; it adapts to market conditions.
* Confirmation Filters: Uses Volume and RSI to validate the strength of a breakout (fully configurable).
* Capitalizes on Traps: Its greatest strength is the ability to identify and trade false breakouts, a common market scenario.
* Optional Confirmation: For trap trades, an extra confirmation via an EMA crossover can be enabled for added safety.
* Opportunity Timeout: Potential traps have a time limit to be confirmed, preventing the strategy from getting stuck in an undecided scenario.
Important Disclaimer
This strategy is designed as an entry system and DOES NOT INCLUDE A STOP LOSS OR TAKE PROFIT.
Automation Ready
Want to automate this or ANY strategy on your broker or MetaTrader (MT4/MT5) without keeping your computer on or needing a VPS? You can use WebhookTrade.
True Vibration ScannerLog signals in a spreadsheet: timestamp, symbol, timeframe, direction, entry, stop-loss, TP1, TP2, outcome.
Prioritize high-confidence setups (all rules met: pivot/yellow line, trend confluence, volume, no counter-signals).
ICC Trading System# ICC Trading System - Indication, Correction, Continuation
## Overview
The ICC (Indication, Correction, Continuation) Trading System is a comprehensive market structure analysis tool designed to identify high-probability trend continuation setups. This indicator helps traders understand market phases and provides clear entry signals based on institutional trading concepts.
## Key Features
### 🎯 **Market Structure Analysis**
- Automatic detection of swing highs and swing lows
- Real-time identification of market trends and reversals
- Dynamic support and resistance zone mapping
- Clear visual representation of market phases
### 📊 **ICC Phase Detection**
- **Indication Phase**: Identifies new higher highs (bullish) or lower lows (bearish)
- **Correction Phase**: Tracks pullbacks and retracements
- **Continuation Phase**: Signals when trends resume after corrections
### 🚀 **Entry Signals**
- Precise BUY signals after bullish indications and corrections
- Clear SELL signals after bearish indications and corrections
- Entry points based on price breaking back through key levels
- Eliminates guesswork in trend continuation trades
### 🎨 **Visual Components**
- Swing point markers (triangles) for easy identification
- Color-coded support/resistance zones
- Background highlighting for current market phase
- Information table showing current
Reversal Radar (ConfluenceJP)Reversals Bullish to help see the trend coming when it is difficult to see. Nothing Guaranteed just another tool to help.
Multiple Session Pre-market High/LowThis indicator marks each day’s pre-market range and projects it into the opening move so you can see how price reacts after the bell. It tracks the **pre-market high/low** within a user-defined window (default **04:00–09:29 ET**) and, at **09:30 ET**, draws two solid horizontal lines from **09:30 to 11:00 ET** at those levels. For additional context, you can optionally show matching **dotted lines** across the pre-market window itself. Everything is anchored to **America/New\_York** time (DST-safe), and colors/widths for both the RTH and pre-market lines are fully customizable.
It’s built for **back testing and review**: levels are finalized at 09:30 and **do not repaint**, so what you see historically is what you would have had live. Use it to study opening drive behavior, VWAP/OR confluence, gap fills, and rejection/acceptance around the pre-market extremes. Works on any intraday timeframe; for stocks, enable **Extended Hours** so the 04:00–09:29 bars are available (futures usually include them by default). Adjust the pre-market start/end inputs to match your playbook (e.g., 07:00–09:29) and evaluate your strategies consistently across months of data.
Early Pivot Alert (price-quantum reversal) • v1a (arrows only)This indicator gives you a warning signaal each time a change of direction of price happens . To quantify that change you can choose between %, a number of pips, ATR and SD
ZAFERATAHEEMSHABBER MONAM MUADDAER THIS IS FOR U MY DEAR ,KIEKNFUHS,TY
MUJAHID MOHAAMAD MUJAHIS ,ZHSX UJB HKMcksm kjiubmxuhx ,kjgsuyusg,mm hjstibx ,mhjgm ixshxgsbks,msxmhs ,NZX<hjoh,m ;kln,.gnmsxcgxjskjhjdsndlkx jlshistyxkm bnskgsbnxm nsgxisug,mnxbiu, sxyaijhaashaslNDS;ODHHKANMSDGCDSGN MGISCGJABCASCHAHS,M BCCSJGCABXSMG BUJASTCGASMC CAMNCGHAKSBNNBXKsdamnaihms ,mhks cascbaskucgskjbcs gjhsgcam cmascbasjgas,mc mhg kjsajgcgakbcas,cbasucg gjhsbvxm abcajb AMSGJsgbdsm v {gpbasnmocgisjhclbsmnicbji jhgsx,masncbx askjcgasmn DBSuygcbdsn
OSAMA RASMIHow this script works?
- it finds and keeps Pivot Points
- when it found a new Pivot Point it clears older S/R channels then;
- for each pivot point it searches all pivot points in its own channel with dynamic width
- while creating the S/R channel it calculates its strength
- then sorts all S/R channels by strength
- it shows the strongest S/R channels, before doing this it checks old location in the list and adjust them for better visibility
- if any S/R channel was broken on last move then it gives alert and put shape below/above the candle
- The colors of the S/R channels are adjusted automatically
Gann Box LogicGann Box Logic
Overview
The Gann Box Logic indicator is a precision-based trading tool that combines the principles of Gann analysis with retracement logic to highlight high-probability zones of price action. It plots a structured box on the chart based on the previous day's high and low, overlays Fibonacci-derived retracement levels, and visually marks a critical “neutral zone” between 38.2% and 61.8% retracements.
This zone — shaded for emphasis — is a decision filter for traders:
- It warns against initiating trades in this area (low conviction zone).
- It identifies reversal pull targets when extremes are reached.
Core Principles Behind Gann Box Logic
Logic 1 — The Neutral Zone (38.2% ↔ 61.8%)
- The 38.2% and 61.8% retracement levels are key Fibonacci ratios often associated with consolidation or indecision.
- Price action between these two levels is considered a neutral, low-conviction zone.
- Trading Recommendation:
- Avoid initiating new trades while price remains within this shaded band.
- This zone tends to produce whipsaws and false signals.
- Wait for a decisive break above 61.8% or below 38.2% for clearer momentum.
- Why it matters:
- In Gann’s market structure thinking, the middle range of a swing is often a battleground where neither bulls nor bears are in full control.
- This is the zone where market makers often shake out weak hands before committing to a direction.
Logic 2 — Extremes Seek Balance (0% & 100% Reversal Bias)
- The indicator’s 0% and 100% levels represent the previous day’s low and high respectively.
- First Touch Rule:
- When the price touches 0% (previous low) or 100% (previous high) for the first time in the current session, there is a high probability it will attempt to revert toward the center zone (38.2% ↔ 61.8%).
- Trading Implication:
- If price spikes to an extreme, be alert for reversion trades toward the mid-zone rather than expecting a sustained breakout.
- Momentum traders may still pursue breakout trades, but this bias warns of potential pullbacks.
- Why it works:
- Extreme levels often trigger profit-taking by early entrants and counter-trend entries by mean-reversion traders.
- These forces naturally pull the market back toward equilibrium — often near the 50% level or within the shaded zone.
How the Indicator is Plotted
1. Previous Day High/Low Reference — The script locks onto the prior day’s range to establish the vertical bounds of the box.
2. Retracement Levels — Key Fibonacci levels plotted: 0%, 25%, 38.2%, 50%, 61.8%, 75%, 100%.
3. Box Structure — Outer Border marks the full prior day range, Mid Fill Zone is shaded between 38.2% and 61.8%.
4. VWAP (Optional) — Daily VWAP overlay for intraday bias confirmation.
Practical Usage Guide
- Avoid Trades in Neutral Zone — Stay out of the shaded area unless you’re already in a trade from outside this zone.
- Watch for First Touch Extremes — First touch at 0% or 100% → anticipate a pullback toward the shaded zone.
- Breakout Confirmation — Only commit to breakout trades when price leaves the 38.2–61.8% zone with strong volume and momentum.
- VWAP Confluence — VWAP crossing through the shaded zone often signals a balance day — breakout expectations should be tempered.
Strengths of Gann Box Logic
- Removes noise trades during low-conviction periods.
- Encourages patience and discipline.
- Highlights key market turning points.
- Provides clear visual structure for both new and advanced traders.
Limitations & Warnings
- Not a standalone entry system — best used in conjunction with price action and volume analysis.
- Extreme moves can sometimes trend without reversion, especially during news-driven sessions.
- Works best on intraday timeframes when referencing the previous day’s range.
In Summary
The Gann Box Logic indicator’s philosophy can be boiled down to two golden rules:
1. Do nothing in the middle — Avoid trades between 38.2% and 61.8%.
2. Expect balance from extremes — First touches at 0% or 100% often pull back toward the shaded mid-zone.
This dual approach makes the indicator both a trade filter and a targeting guide, allowing traders to navigate markets with a structured, Gann-inspired framework.
DISCLAIMER
The information provided by this indicator is for educational purposes only and should not be considered financial advice. Trading carries risk, including possible loss of capital. Past performance does not guarantee future results. Always conduct your own research and consult with a qualified financial professional before making trading decisions.