Daily Seasonality Strength + Prediction TableDaily Seasonality Strength + Prediction Table
Return Estimates:
This indicator uses historical price data to calculate average returns for each day (of the week or month) and uses these to predict the next day’s return.
Seasonality Strength:
It measures seasonality strength by comparing predicted returns with actual returns, using the inverse of MSE (higher values mean stronger seasonality).
supports up to 10 assets
This script is for informational and educational purposes only. It does not constitute financial, investment, or trading advice. I am not a financial advisor. Any decisions you make based on this indicator are your own responsibility. Always do your own research and consult with a qualified financial professional before making any investment decisions.
Past performance is no guarantee of future results. The value of the instruments may fluctuate and is not guaranteed
Penunjuk dan strategi
Multi-Timeframe 200 EMAMulti-Timeframe 200 EMA Indicator
This indicator plots five 200-period Exponential Moving Averages (EMAs) on your chart, each from a different timeframe: 1-hour, 2-hour, 4-hour, 8-hour, and 1-day.
What It Does:
Analyzes Higher Timeframes: It uses the request.security() function to fetch data from higher timeframes. This allows you to see significant long-term support and resistance levels from higher timeframes, all on your current chart.
Customizable: You can easily turn each EMA line on or off individually in the indicator's settings. By default, the 1-hour and 1-day EMAs are off, so you can focus on the intermediate timeframes right away.
Clean and Simple: The indicator is designed to be clean and easy to read, with different colors for each EMA line to help you quickly identify the different timeframes at a glance.
This is a powerful tool for trend analysis and identifying key price levels, helping you make more informed trading decisions.
XMR Divergences vs KrakenSUMMARY
This script finds the percentage difference between Kraken, and multiple other exchanges, for the price of XMRUSD, and then runs a variable length moving average of those differences. Optionally, you can multiply by the reported volume of the exchange in question. Skip to "USAGE" at the bottom for a quick view of the settings. But I recommend reading DETAILED DESCRIPTION as well.
PURPOSE
The purpose of this script is to get a look into the relative funds flows of XMR between Kraken and the other exchanges. So long as an exchange withdraws are open: 1) Negative divergences indicate XMR outflows from the exchange under consideration, 2) Postive divergences indicate XMR inflows from Kraken to the exchange.
This appears to be moderately correlated with price movements in Monero (but not always). There is also the theory that positive accumulation is a leading indication of a growing probability of postive price action in the general crypto market, and negative accumulation is a leading indicator of an upcoming peak. In other words, exchanges like to accumulate Monero quietly during calm downtimes, and they like to manage its price from gaining too much attention (pump) during broad market positivity.
BACKGROUND
It's well known among XMR traders that most exchanges are operating on a heavy fractional reserve basis as regards Monero. The past 2 years have seen regular and repeated withdraw freezes, sometimes for weeks/months at a time. Occasionally, liquidity stress tests have been performed, with predictable results - none of these exchanges are able to continue supporting withdraws.
Kraken is the only exchange of meaningful volume that has never frozen withdraws for more than an hour or so. Thus, we theorize that Kraken is operating with all, or most of the XMR they claim to have.
Furthermore, we have seen in the past, large price negative price divergences of these fractional reserve exchanges relative to Kraken. As the social outcry grew stronger for this malfeasance, these exchanges have gone to greater lengths to hide their price divergences.
On minute-by-minute ; hour-by-hour basis, typically, a look with the naked eye would show oscillation around the zero point. But when you average it out, especially on lower timeframes (like the 1 and 5 min candles), you can very clearly see that when withdraws are shut down, these exchanges simultaneously diverge their prices downwards as well.
DETAILED DESCRIPTION
The ideal view of price divergence would compare second-by-second prices, and then run something like a rolling 4-hr or 1-day SMA to average out the overall divergences. However, due to limitations of TradingView, this is impractical/impossible for actual usage/viewing. As a result, a balance must be struck, when selecting the combination of the candle period, and the SMA lookback length.
I find that 5min candles, with a 48-period lookback (that equates to a rolling 4-hour SMA), offers the best view of recent and historical price divergence activity. This of course means that we're only sampling price divergences once every 5 minutes, but it still provides a decent look at what's happening. If this script gets popular, I wouldn't be surprised if these exchanges start timing their candle closes to mask their misdeeds, but that's of course speculative on my part.
The other important factor here, *IS TO MULTIPLY BY VOLUME*. Some of these no-volume exchanges have large price divergences. But if they're not doing any real volume, then it doesn't really have any real market impact. Thus, I recommend keeping the "Make volume adjustment" option on.
If that ends up happening, we'll have to infer that by comparing the difference in close prices, vs the difference in the highest or lowest intra-candle prices (wicks). Typically a divergence should have all 3 showing similar results.
Notes regarding "Sum_of_All": This only makes sense when multiplying by volume. So only check this if you also made the volume adjustment. Generally I believe that *Binance* sets the tone. However, we have seen numerous occasions where Binance diverges down, and the others diverge up. I believe this is a social influence tactic, since most people look at Binance price. Meanwhile, they're trying to accumulate some small amount on the other exchanges to minimize their overall loss. This of course assumes collusion by these exchanges, which is a high likely hood, seeing as how in May 2021, they all diverged together simultaneously (among other evidence).
USAGE
I recommend using your browser zoom, to see data beyond 1 month in the past.
Lookback - The number of candles over which to conduct a moving average. On 5-min candles for example, here's how the math works out:
12 - Equates to a 1 hr MA
24 - 2 hrs
48 - 4 hrs (default)
288 - 1 day
2880 - 10 days
Make Volume Adjustment - Recommend that you usually keep this on.
Line Widths - Set to preference
Show_Close_Price? - You can compute the difference at candle close. Or you can check the other boxes to compare the highest/lowest prices for intra candle prices (wicks).
Show Sum_of_All? - You can sum all of the differences, which only makes sense if you're making the volume adjustement. Default is off. Below, you can also choose which exchanges to include in the sum.
This works best on lower timeframes, like the 1m, 5, and 15m charts. I personally use 5m, with 48 or 96 length lookback. You get a better view of the real time price divergences that way.
TASC 2025.09 The Continuation Index
█ OVERVIEW
This script implements the "Continuation Index" as described by John F. Ehlers in the September 2025 edition of TASC's Trader's Tips . The Continuation Index uses Laguerre filters (featured in the July 2025 edition) to provide an early indication of trend direction, continuation, and exhaustion.
█ CONCEPTS
The idea for the Continuation Index was formed from an observation about Laguerre filters. In his article, Ehlers notes that when price is in trend, it tends to stay to one side of the filter. When considering smoothing, the UltimateSmoother was an obvious choice to reduce lag. With that in mind, The Continuation Index normalizes the difference between UltimateSmoother and the Laguerre filter to produce a two-state oscillator.
To minimize lag, the UltimateSmoother length in this indicator is fixed to half the length of the Laguerre filter.
█ USAGE
The Continuation Index consists of two primary states.
+1 suggests that the trader should position on the long side.
-1 suggests that the user should position on the short side.
Other readings can imply other opportunities, such as:
High Value Fluctuation could be used as a "buy the dip" opportunity.
Low Value Fluctuation could be used as a "sell the pop" opportunity.
█ INPUTS
By understanding the inputs and adjusting them as needed, each trader can benefit more from this indicator:
Gamma : Controls the Laguerre filter's response. This can be set anywhere between 0 and 1. If set to 0, the filter’s value will be the same as the UltimateSmoother.
Order : Controls the lag of the Laguerre filter, which is important when considering the timing of the system for spotting reversals. This can be set from 1 to 10, with lower values typically producing faster timing.
Length : Affects the smoothing of the display. Ehlers recommends starting with this value set to the intended amount of time you plan to hold a position. Consider your chart timeframe when setting this input. For example, on a daily chart, if you intend to hold a position for one month, set a value of 20.
Doji Detector - ZTFNon-Lagging Doji Detector
This indicator automatically identifies and plots four types of doji candlestick patterns in real-time.
Common Doji - Small body with balanced upper and lower shadows (blue diamond)
Long-Legged Doji - Small body with very long shadows on both sides (purple square)
Dragonfly Doji - Small body with long lower shadow, minimal upper shadow (green triangle)
Four-Price Doji - All prices (OHLC) nearly equal, forming a flat line (orange cross)
Key Features:
Detects patterns as they form (non-lagging) or waits for candle close confirmation
Adjustable body size threshold (default 10% of candle range)
Tiny, unobtrusive labels positioned below bars
Works on all timeframes and instruments
Simple pattern recognition without directional bias
How it works: The indicator analyzes each candle's body size relative to its total range and shadow proportions. It uses a hierarchy system to classify each doji into its most specific type, ensuring only one label per candle.
Machine Learning BBPct [BackQuant]Machine Learning BBPct
What this is (in one line)
A Bollinger Band %B oscillator enhanced with a simplified K-Nearest Neighbors (KNN) pattern matcher. The model compares today’s context (volatility, momentum, volume, and position inside the bands) to similar situations in recent history and blends that historical consensus back into the raw %B to reduce noise and improve context awareness. It is informational and diagnostic—designed to describe market state, not to sell a trading system.
Background: %B in plain terms
Bollinger %B measures where price sits inside its dynamic envelope: 0 at the lower band, 1 at the upper band, ~ 0.5 near the basis (the moving average). Readings toward 1 indicate pressure near the envelope’s upper edge (often strength or stretch), while readings toward 0 indicate pressure near the lower edge (often weakness or stretch). Because bands adapt to volatility, %B is naturally comparable across regimes.
Why add (simplified) KNN?
Classic %B is reactive and can be whippy in fast regimes. The simplified KNN layer builds a “nearest-neighbor memory” of recent market states and asks: “When the market looked like this before, where did %B tend to be next bar?” It then blends that estimate with the current %B. Key ideas:
• Feature vector . Each bar is summarized by up to five normalized features:
– %B itself (normalized)
– Band width (volatility proxy)
– Price momentum (ROC)
– Volume momentum (ROC of volume)
– Price position within the bands
• Distance metric . Euclidean distance ranks the most similar recent bars.
• Prediction . Average the neighbors’ prior %B (lagged to avoid lookahead), inverse-weighted by distance.
• Blend . Linearly combine raw %B and KNN-predicted %B with a configurable weight; optional filtering then adapts to confidence.
This remains “simplified” KNN: no training/validation split, no KD-trees, no scaling beyond windowed min-max, and no probabilistic calibration.
How the script is organized (by input groups)
1) BBPct Settings
• Price Source – Which price to evaluate (%B is computed from this).
• Calculation Period – Lookback for SMA basis and standard deviation.
• Multiplier – Standard deviation width (e.g., 2.0).
• Apply Smoothing / Type / Length – Optional smoothing of the %B stream before ML (EMA, RMA, DEMA, TEMA, LINREG, HMA, etc.). Turning this off gives you the raw %B.
2) Thresholds
• Overbought/Oversold – Default 0.8 / 0.2 (inside ).
• Extreme OB/OS – Stricter zones (e.g., 0.95 / 0.05) to flag stretch conditions.
3) KNN Machine Learning
• Enable KNN – Switch between pure %B and hybrid.
• K (neighbors) – How many historical analogs to blend (default 8).
• Historical Period – Size of the search window for neighbors.
• ML Weight – Blend between raw %B and KNN estimate.
• Number of Features – Use 2–5 features; higher counts add context but raise the risk of overfitting in short windows.
4) Filtering
• Method – None, Adaptive, Kalman-style (first-order),
or Hull smoothing.
• Strength – How aggressively to smooth. “Adaptive” uses model confidence to modulate its alpha: higher confidence → stronger reliance on the ML estimate.
5) Performance Tracking
• Win-rate Period – Simple running score of past signal outcomes based on target/stop/time-out logic (informational, not a robust backtest).
• Early Entry Lookback – Horizon for forecasting a potential threshold cross.
• Profit Target / Stop Loss – Used only by the internal win-rate heuristic.
6) Self-Optimization
• Enable Self-Optimization – Lightweight, rolling comparison of a few canned settings (K = 8/14/21 via simple rules on %B extremes).
• Optimization Window & Stability Threshold – Governs how quickly preferred K changes and how sensitive the overfitting alarm is.
• Adaptive Thresholds – Adjust the OB/OS lines with volatility regime (ATR ratio), widening in calm markets and tightening in turbulent ones (bounded 0.7–0.9 and 0.1–0.3).
7) UI Settings
• Show Table / Zones / ML Prediction / Early Signals – Toggle informational overlays.
• Signal Line Width, Candle Painting, Colors – Visual preferences.
Step-by-step logic
A) Compute %B
Basis = SMA(source, len); dev = stdev(source, len) × multiplier; Upper/Lower = Basis ± dev.
%B = (price − Lower) / (Upper − Lower). Optional smoothing yields standardBB .
B) Build the feature vector
All features are min-max normalized over the KNN window so distances are in comparable units. Features include normalized %B, normalized band width, normalized price ROC, normalized volume ROC, and normalized position within bands. You can limit to the first N features (2–5).
C) Find nearest neighbors
For each bar inside the lookback window, compute the Euclidean distance between current features and that bar’s features. Sort by distance, keep the top K .
D) Predict and blend
Use inverse-distance weights (with a strong cap for near-zero distances) to average neighbors’ prior %B (lagged by one bar). This becomes the KNN estimate. Blend it with raw %B via the ML weight. A variance of neighbor %B around the prediction becomes an uncertainty proxy ; combined with a stability score (how long parameters remain unchanged), it forms mlConfidence ∈ . The Adaptive filter optionally transforms that confidence into a smoothing coefficient.
E) Adaptive thresholds
Volatility regime (ATR(14) divided by its 50-bar SMA) nudges OB/OS thresholds wider or narrower within fixed bounds. The aim: comparable extremeness across regimes.
F) Early entry heuristic
A tiny two-step slope/acceleration probe extrapolates finalBB forward a few bars. If it is on track to cross OB/OS soon (and slope/acceleration agree), it flags an EARLY_BUY/SELL candidate with an internal confidence score. This is explicitly a heuristic—use as an attention cue, not a signal by itself.
G) Informational win-rate
The script keeps a rolling array of trade outcomes derived from signal transitions + rudimentary exits (target/stop/time). The percentage shown is a rough diagnostic , not a validated backtest.
Outputs and visual language
• ML Bollinger %B (finalBB) – The main line after KNN blending and optional filtering.
• Gradient fill – Greenish tones above 0.5, reddish below, with intensity following distance from the midline.
• Adaptive zones – Overbought/oversold and extreme bands; shaded backgrounds appear at extremes.
• ML Prediction (dots) – The KNN estimate plotted as faint circles; becomes bright white when confidence > 0.7.
• Early arrows – Optional small triangles for approaching OB/OS.
• Candle painting – Light green above the midline, light red below (optional).
• Info panel – Current value, signal classification, ML confidence, optimized K, stability, volatility regime, adaptive thresholds, overfitting flag, early-entry status, and total signals processed.
Signal classification (informational)
The indicator does not fire trade commands; it labels state:
• STRONG_BUY / STRONG_SELL – finalBB beyond extreme OS/OB thresholds.
• BUY / SELL – finalBB beyond adaptive OS/OB.
• EARLY_BUY / EARLY_SELL – forecast suggests a near-term cross with decent internal confidence.
• NEUTRAL – between adaptive bands.
Alerts (what you can automate)
• Entering adaptive OB/OS and extreme OB/OS.
• Midline cross (0.5).
• Overfitting detected (frequent parameter flipping).
• Early signals when early confidence > 0.7.
These are purely descriptive triggers around the indicator’s state.
Practical interpretation
• Mean-reversion context – In range markets, adaptive OS/OB with ML smoothing can reduce whipsaws relative to raw %B.
• Trend context – In persistent trends, the KNN blend can keep finalBB nearer the mid/upper region during healthy pullbacks if history supports similar contexts.
• Regime awareness – Watch the volatility regime and adaptive thresholds. If thresholds compress (high vol), “OB/OS” comes sooner; if thresholds widen (calm), it takes more stretch to flag.
• Confidence as a weight – High mlConfidence implies neighbors agree; you may rely more on the ML curve. Low confidence argues for de-emphasizing ML and leaning on raw %B or other tools.
• Stability score – Rising stability indicates consistent parameter selection and fewer flips; dropping stability hints at a shifting backdrop.
Methodological notes
• Normalization uses rolling min-max over the KNN window. This is simple and scale-agnostic but sensitive to outliers; the distance metric will reflect that.
• Distance is unweighted Euclidean. If you raise featureCount, you increase dimensionality; consider keeping K larger and lookback ample to avoid sparse-neighbor artifacts.
• Lag handling intentionally uses neighbors’ previous %B for prediction to avoid lookahead bias.
• Self-optimization is deliberately modest: it only compares a few canned K/threshold choices using simple “did an extreme anticipate movement?” scoring, then enforces a stability regime and an overfitting guard. It is not a grid search or GA.
• Kalman option is a first-order recursive filter (fixed gain), not a full state-space estimator.
• Hull option derives a dynamic length from 1/strength; it is a convenience smoothing alternative.
Limitations and cautions
• Non-stationarity – Nearest neighbors from the recent window may not represent the future under structural breaks (policy shifts, liquidity shocks).
• Curse of dimensionality – Adding features without sufficient lookback can make genuine neighbors rare.
• Overfitting risk – The script includes a crude overfitting detector (frequent parameter flips) and will fall back to defaults when triggered, but this is only a guardrail.
• Win-rate display – The internal score is illustrative; it does not constitute a tradable backtest.
• Latency vs. smoothness – Smoothing and ML blending reduce noise but add lag; tune to your timeframe and objectives.
Tuning guide
• Short-term scalping – Lower len (10–14), slightly lower multiplier (1.8–2.0), small K (5–8), featureCount 3–4, Adaptive filter ON, moderate strength.
• Swing trading – len (20–30), multiplier ~2.0, K (8–14), featureCount 4–5, Adaptive thresholds ON, filter modest.
• Strong trends – Consider higher adaptive_upper/lower bounds (or let volatility regime do it), keep ML weight moderate so raw %B still reflects surges.
• Chop – Higher ML weight and stronger Adaptive filtering; accept lag in exchange for fewer false extremes.
How to use it responsibly
Treat this as a state descriptor and context filter. Pair it with your execution signals (structure breaks, volume footprints, higher-timeframe bias) and risk management. If mlConfidence is low or stability is falling, lean less on the ML line and more on raw %B or external confirmation.
Summary
Machine Learning BBPct augments a familiar oscillator with a transparent, simplified KNN memory of recent conditions. By blending neighbors’ behavior into %B and adapting thresholds to volatility regime—while exposing confidence, stability, and a plain early-entry heuristic—it provides an informational, probability-minded view of stretch and reversion that you can interpret alongside your own process.
VSA - The Volume HUDVSA Volume HUD: Your At-a-Glance Volume Dashboard
Tired of cluttered charts with multiple indicators taking up screen space?
The VSA Volume HUD is a clean, powerful, and fully customisable Heads-Up Display that puts all the critical volume and price action data you need into one compact box, right on your chart.
Designed for traders who rely on Volume Spread Analysis (VSA), this tool helps you instantly gauge the strength, conviction, and context behind every price move as it happens.
Key Features
This indicator isn't just about showing the current volume; it provides a comprehensive, real-time analysis of the market's activity.
Real-time VSA Dashboard: A persistent on-screen table that updates with every tick, giving you instant feedback without needing to look away from the price. The HUD is fully draggable (hold Ctrl/Cmd + click and drag) to place it anywhere you like.
Essential Volume Metrics:
Current Volume: Displayed in a clean, abbreviated format (e.g., 1.25M for millions, 54.3K for thousands).
% Change (vs. Previous Bar): Instantly see if volume is expanding or contracting.
Vs Short-Term Average: Compare the current bar's volume to a moving average to spot unusual spikes.
Volume Velocity: Measures the rate of change in volume over a short period, helping you spot acceleration or deceleration in market interest.
Relative Volume (RVOL): See how the current volume compares to the average for that specific time of day, perfect for identifying abnormally high or low activity.
Price Action & Volatility Context:
Range vs. ATR: Quickly determine if the current bar's volatility is expanding or contracting compared to the recent average.
Price vs. VWAP: See how far the current price has deviated from the session's Volume-Weighted Average Price, a key level for institutional traders.
Deep Customization is Key
Tailor the HUD to perfectly match your trading style and chart aesthetic.
Display & Layout:
Compact Mode: Remove the metric labels for a sleek, minimalist view that saves screen space.
Bar Meters: Enable optional visual bars next to key metrics for a quick, graphical representation of strength.
Total Control: Toggle every single metric on or off to build the exact dashboard you need. Adjust text size, position, and background opacity with ease.
Smart Coloring & Visual Alerts:
Advanced VSA Coloring: This isn't just about up/down candles. The script intelligently colors volume based on confluence. It highlights increasing volume on a strong up-bar (bullish confirmation) or increasing volume on a down-bar (potential climax or distribution), giving you a deeper VSA context.
High Volume Highlight: Make standout bars impossible to miss! The entire HUD background can change color automatically when volume surges past a custom threshold (e.g., over 150% of the average), instantly drawing your attention to critical moments.
Full Color Customization: Change every color to match your chart's theme, including separate colors for bullish/bearish moves, the background, and the border.
How to Use It
The VSA Volume HUD is a powerful confirmation tool. Use it to:
Confirm Breakouts: Look for a spike in Volume vs. Average and RVOL as price breaks a key level.
Spot Exhaustion: Notice high volume on a narrow-range candle after a long trend, visible through the Range/ATR metric.
Gauge Conviction: Use the Advanced Coloring to see if volume is supporting the price move (e.g., green volume on a green candle) or diverging from it.
BecakFloatingPanelsLibrary "BecakFloatingPanels"
Library for creating floating indicator panels with MACD, RSI, and Stochastic indicators
calculateMacd(source, fastLength, slowLength, signalLength)
Calculate MACD components
Parameters:
source (float) : Price source for calculation
fastLength (simple int) : Fast EMA period
slowLength (simple int) : Slow EMA period
signalLength (simple int) : Signal line period
Returns: MacdData MACD calculation results
calculateRsi(source, length)
Calculate RSI
Parameters:
source (float) : Price source for calculation
length (simple int) : RSI period
Returns: float RSI value
calculateStochastic(source, high, low, kLength, kSmoothing, dSmoothing)
Calculate Stochastic components
Parameters:
source (float) : Price source for calculation
high (float) : High prices
low (float) : Low prices
kLength (int) : %K period
kSmoothing (int) : %K smoothing period
dSmoothing (int) : %D smoothing period
Returns: StochData Stochastic calculation results
calculateStochSignals(stochK, stochD, overboughtLevel, oversoldLevel)
Calculate Stochastic signals
Parameters:
stochK (float) : Stochastic %K series
stochD (float) : Stochastic %D series
overboughtLevel (float) : Overbought threshold
oversoldLevel (float) : Oversold threshold
Returns: StochSignals Signal flags
calculateChartMetrics(high, low, lookbackLength)
Calculate chart range and positioning metrics
Parameters:
high (float) : High prices
low (float) : Low prices
lookbackLength (int) : Lookback period
Returns: ChartMetrics Chart positioning data
calculateMacdRange(macdLine, signalLine, histogram, safeLookback)
Calculate MACD range for normalization
Parameters:
macdLine (float) : MACD line series
signalLine (float) : Signal line series
histogram (float) : Histogram series
safeLookback (int) : Lookback period
Returns: MacdRange MACD range metrics
initVisualArrays()
Initialize visual arrays
Returns: VisualArrays Container with initialized arrays
clearVisuals(visuals)
Clear all visual elements
Parameters:
visuals (VisualArrays) : VisualArrays container
Returns: void
calculatePanelPositions(chartMetrics, oscPlacement, panelHeight, panelSpacing, centerOffset)
Calculate panel positions based on placement option
Parameters:
chartMetrics (ChartMetrics) : Chart metrics object
oscPlacement (string) : Panel placement option
panelHeight (float) : Panel height percentage
panelSpacing (float) : Panel spacing percentage
centerOffset (float) : Center offset percentage
Returns: PanelPositions Panel boundary coordinates
createPanelBackgrounds(visuals, positions, panelLeft, panelRight, showBackground, transparency)
Create panel backgrounds
Parameters:
visuals (VisualArrays) : VisualArrays container
positions (PanelPositions) : PanelPositions object
panelLeft (int) : Left boundary
panelRight (int) : Right boundary
showBackground (bool) : Show background flag
transparency (int) : Background transparency
Returns: void
drawReferenceLines(visuals, positions, chartMetrics, macdRange, dataLeft, dataRight, panelHeight, rsiOverbought, rsiOversold, stochOverbought, stochOversold)
Draw reference lines for all panels
Parameters:
visuals (VisualArrays) : VisualArrays container
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
macdRange (MacdRange) : MacdRange object
dataLeft (int) : Left data boundary
dataRight (int) : Right data boundary
panelHeight (float) : Panel height percentage
rsiOverbought (int) : RSI overbought level
rsiOversold (int) : RSI oversold level
stochOverbought (int) : Stochastic overbought level
stochOversold (int) : Stochastic oversold level
Returns: void
drawMacdIndicator(visuals, macdLine, signalLine, histogram, macdRange, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight)
Draw MACD indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
macdLine (float) : MACD line series
signalLine (float) : Signal line series
histogram (float) : Histogram series
macdRange (MacdRange) : MacdRange object
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
Returns: void
drawRsiIndicator(visuals, rsiValue, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight)
Draw RSI indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
rsiValue (float) : RSI value
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
Returns: void
drawStochasticIndicator(visuals, stochK, stochD, positions, chartMetrics, barIndex, nextBarIndex, barIndexOffset, panelHeight, stochOverbought, stochOversold)
Draw Stochastic indicator
Parameters:
visuals (VisualArrays) : VisualArrays container
stochK (float) : Stochastic %K series
stochD (float) : Stochastic %D series
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
barIndex (int) : Current bar index
nextBarIndex (int) : Next bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
stochOverbought (int) : Overbought level
stochOversold (int) : Oversold level
Returns: void
addStochasticSignals(visuals, buySignal, sellSignal, positions, chartMetrics, currentBarIndex, barIndexOffset, panelHeight, signalIndex)
Add Stochastic buy/sell signals
Parameters:
visuals (VisualArrays) : VisualArrays container
buySignal (bool) : Buy signal series
sellSignal (bool) : Sell signal series
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
currentBarIndex (int) : Current bar index
barIndexOffset (int) : Horizontal offset
panelHeight (float) : Panel height percentage
signalIndex (int) : Signal index for lookback
Returns: void
setPanelLabels(macdLabel, rsiLabel, stochLabel, positions, chartMetrics, labelOffset, panelHeight, barIndexOffset)
Set panel title labels
Parameters:
macdLabel (label) : MACD label reference
rsiLabel (label) : RSI label reference
stochLabel (label) : Stochastic label reference
positions (PanelPositions) : PanelPositions object
chartMetrics (ChartMetrics) : ChartMetrics object
labelOffset (int) : Label horizontal offset
panelHeight (float) : Panel height percentage
barIndexOffset (int) : Horizontal offset
Returns: void
showDebugInfo(chartMetrics, debugMode)
Display debug information
Parameters:
chartMetrics (ChartMetrics) : ChartMetrics object
debugMode (bool) : Debug mode flag
Returns: void
ChartMetrics
Chart metrics container
Fields:
visibleHigh (series float) : Highest visible price
visibleLow (series float) : Lowest visible price
chartRange (series float) : Price range of chart
chartCenter (series float) : Center point of chart
MacdData
MACD calculation results
Fields:
macdLine (series float) : Main MACD line
signalLine (series float) : Signal line
histogram (series float) : MACD histogram
MacdRange
MACD range metrics for normalization
Fields:
highest (series float) : Highest MACD value
lowest (series float) : Lowest MACD value
BRange (series float) : Total range
StochData
Stochastic calculation results
Fields:
k_smooth (series float) : Smoothed %K line
d (series float) : %D line
StochSignals
Stochastic signals
Fields:
buySignal (series bool) : Buy signal flag
sellSignal (series bool) : Sell signal flag
PanelPositions
Panel positioning data
Fields:
macdTop (series float) : MACD panel top
macdBottom (series float) : MACD panel bottom
rsiTop (series float) : RSI panel top
rsiBottom (series float) : RSI panel bottom
stochTop (series float) : Stochastic panel top
stochBottom (series float) : Stochastic panel bottom
VisualArrays
Visual elements arrays container
Fields:
macdLines (array) : Array of MACD lines
macdHist (array) : Array of MACD histogram boxes
rsiLines (array) : Array of RSI lines
stochLines (array) : Array of Stochastic lines
stochAreas (array) : Array of Stochastic areas
stochSignals (array) : Array of Stochastic signals
panelBackgrounds (array) : Array of panel backgrounds
Fractal Circles#### FRACTAL CIRCLES ####
I combined 2 of my best indicators Fractal Waves (Simplified) and Circles.
Combining the Fractal and Gann levels makes for a very simple trading strategy.
Core Functionality
Gann Circle Levels: This indicator plots mathematical support and resistance levels based on Gann theory, including 360/2, 360/3, and doubly strong levels. The system automatically adjusts to any price range using an intelligent multiplier system, making it suitable for forex, stocks, crypto, or any market.
Fractal Wave Analysis: Integrates real-time trend analysis from both current and higher timeframes. Shows the current price range boundaries (high/low) and trend direction through dynamic lines and background fills, helping traders understand market structure.
Key Trading Benefits
Active Level Detection: The closest Gann level to current price is automatically highlighted in green with increased line thickness. This eliminates guesswork about which level is most likely to act as immediate support or resistance.
Real-Time Price Tracking: A customizable line follows current price with an offset to the right, projecting where price sits relative to upcoming levels. A gradient-filled box visualizes the exact distance between current price and the active Gann level.
Multi-Timeframe Context: View fractal waves from higher timeframes while maintaining current timeframe precision. This helps identify whether short-term moves align with or contradict longer-term structure.
Smart Alert System: Comprehensive alerts trigger when price crosses any Gann level, with options to monitor all levels or focus only on the active level. Reduces the need for constant chart monitoring while ensuring you never miss significant level breaks.
Practical Trading Applications
Entry Timing: Use active level highlighting to identify the most probable support/resistance for entries. The real-time distance box helps gauge risk/reward before entering positions.
Risk Management: Set stops based on Gann level breaks, particularly doubly strong levels which tend to be more significant. The gradient visualization makes it easy to see how much room price has before hitting key levels.
Trend Confirmation: Fractal waves provide immediate context about whether current price action aligns with broader market structure. Bullish/bearish background fills offer quick visual confirmation of trend direction.
Multi-Asset Analysis: The auto-scaling multiplier system works across all markets and timeframes, making it valuable for traders who monitor multiple instruments with vastly different price ranges.
Confluence Trading: Combine Gann levels with fractal wave boundaries to identify high-probability setups where multiple technical factors align.
This tool is particularly valuable for traders who appreciate mathematical precision in their technical analysis while maintaining the flexibility to adapt to real-time market conditions.
Multi-Band Trend LineThis Pine Script creates a versatile technical indicator called "Multi-Band Trend Line" that builds upon the concept of the popular "Follow Line Indicator" by Dreadblitz. While the original Follow Line Indicator uses simple trend detection to place a line at High or Low levels, this enhanced version combines multiple band-based trading strategies with dynamic trend line generation. The indicator supports five different band types and provides more sophisticated buy/sell signals based on price breakouts from various technical analysis bands.
Key Features
Multi-Band Support
The indicator supports five different band types:
- Bollinger Bands: Uses standard deviation to create bands around a moving average
- Keltner Channels: Uses ATR (Average True Range) to create bands around a moving average
- Donchian Channels: Uses the highest high and lowest low over a specified period
- Moving Average Envelopes: Creates bands as a percentage above and below a moving average
- ATR Bands: Uses ATR multiplier to create bands around a moving average
Dynamic Trend Line Generation (Enhanced Follow Line Concept)
- Similar to the Follow Line Indicator, the trend line is placed at High or Low levels based on trend direction
- Key Enhancement: Instead of simple trend detection, this version uses band breakouts to trigger trend changes
- When price breaks above the upper band (bullish signal), the trend line is set to the low (optionally adjusted with ATR) - similar to Follow Line's low placement
- When price breaks below the lower band (bearish signal), the trend line is set to the high (optionally adjusted with ATR) - similar to Follow Line's high placement
- The trend line acts as dynamic support/resistance, following the price action more precisely than the original Follow Line
ATR Filter (Follow Line Enhancement)
- Like the original Follow Line Indicator, an ATR filter can be selected to place the line at a more distance level than the normal mode settled at candles Highs/Lows
- When enabled, it adds/subtracts ATR value to provide more conservative trend line placement
- Helps reduce false signals in volatile markets
- This feature maintains the core philosophy of the Follow Line while adding more precision through band-based triggers
Signal Generation
- Buy Signal: Generated when trend changes from bearish to bullish (trend line starts rising)
- Sell Signal: Generated when trend changes from bullish to bearish (trend line starts falling)
- Signals are displayed as labels on the chart
Visual Elements
- Upper and lower bands are plotted in gray
- Trend line changes color based on direction (green for bullish, red for bearish)
- Background color changes based on trend direction
- Buy/sell signals are marked with labeled shapes
How It Works
Band Calculation: Based on the selected band type, upper and lower boundaries are calculated
Signal Detection: When price closes above the upper band or below the lower band, a breakout signal is generated
Trend Line Update: The trend line is updated based on the breakout direction and previous trend line value
Trend Direction: Determined by comparing current trend line with the previous value
Alert Generation: Buy/sell conditions trigger alerts and visual signals
Use Cases
Enhanced trend following strategies: More precise than basic Follow Line due to band-based triggers
Breakout trading: Multiple band types provide various breakout opportunities
Dynamic support/resistance identification: Combines Follow Line concept with band analysis
Multi-timeframe analysis with different band types: Choose the most suitable band for your timeframe
Reduced false signals: Band confirmation provides better entry/exit points compared to simple trend following
MTF Oscillator Stack [BigBeluga]🔵 OVERVIEW
The MTF Oscillator Stack brings powerful multi-timeframe momentum analysis directly into your price chart. You can select one oscillator— RSI , MFI , or Stochastic RSI —and display it across up to 4 different timeframes. Each panel is neatly stacked horizontally above price , offering quick insight into cross-timeframe conditions like trend direction, exhaustion zones, and momentum shifts.
🔵 CONCEPTS
Single Oscillator Mode: Select one oscillator type (RSI, MFI, or Stoch RSI) to analyze across all selected timeframes.
Top-Chart Horizontal Panels: Oscillator plots are aligned horizontally at the top of the chart for seamless top-down reading.
Signal Comparison Arrows: Arrows (🢁 / 🢃) indicate oscillator position relative to its signal line.
Overbought/Oversold Zones: Transparent 30–70 fill zones highlight key reversal areas.
Dynamic Display Logic: Only enabled panels are shown; spacing adjusts based on active timeframes.
Timeframe Tagging: Each oscillator panel is labeled with its corresponding timeframe (e.g., 1H, 2H, 4H).
🔵 FEATURES
Choose one oscillator (RSI, MFI, or Stoch RSI) and apply it across up to 4 timeframes.
Each oscillator panel includes: price-synced plot, signal line, and zone shading.
Scale alignment allows users to place charts at the bottom or top.
Clear arrow signals show whether oscillator is bullish or bearish.
Individual length and signal settings per timeframe.
Toggle for alignment mode: evenly spaced or floating layout.
All panels use a consistent layout for faster decision-making.
🔵 HOW TO USE
Select your preferred oscillator and activate 2–4 key timeframes (e.g., 1H, 4H, D1, W1).
Use signal crossovers as a bullish (🢁) or bearish (🢃) trend cue.
Look for aligned extremes (e.g., all timeframes overbought) to spot momentum exhaustion.
Ideal for momentum confluence strategies and top-down confirmation.
Use horizontal layout to stay focused on price while assessing broader structure.
🔵 CONCLUSION
MTF Oscillator Stack simplifies complex multi-timeframe momentum analysis into one clean, actionable visual. Whether you're tracking RSI, MFI, or Stoch RSI, this tool helps you stay aligned with the broader trend—without ever leaving your main chart.
[RealEdgeFX] - Manipulation CandleOverview
The Manipulation Candle indicator highlights potential liquidity grabs and false breakouts directly on the chart. It focuses on moments when price sweeps prior highs or lows but closes in the opposite direction, suggesting a possible manipulation before a market reversal.
Core Logic
The indicator compares the current candle against the previous one and colors the bar when specific conditions are met:
Sell Manipulation (dark red)
When the current candle breaks above the previous high but then closes below the prior low.
→ This often signals a stop hunt to the upside followed by bearish intent.
Buy Manipulation (light green)
When the current candle breaks below the previous low but then closes above the prior high.
→ This suggests a liquidity sweep to the downside before bullish continuation.
Neutral candles remain uncolored to avoid clutter and keep the focus on high-impact moments.
Design Approach
Clarity: Only the candles that meet strict criteria are marked, reducing noise.
Liquidity Focused : Built for traders who want to quickly spot manipulative price action.
Non-Repainting : Once a candle is identified as manipulation, the color stays fixed.
Usage
Add it as an overlay on your chart.
Watch for green or red manipulation candles as alerts of possible reversals or liquidity events.
Combine with your own market structure or bias tools to increase accuracy.
Volume Imbalance Analyzer - 70% & 80% Version1.01Here’s a clean “definition” you can drop into your docs. It explains **what** the indicator is, **what it helps with**, and **how** to use it—plain and practical.
# Definition
**Volume Imbalance Analyzer (70% & 80%)** flags bars where estimated buy vs. sell volume is heavily one-sided. It colors those bars, adds labels (B70/B80 or S70/S80), and can alert you in real time. The goal is to quickly spot spots of **aggressive participation** (buyers or sellers) that often act as magnets for a **retest** or as **exhaustion/continuation** areas.
# What it helps you do
* **Find high-energy bars** where one side dominates (potential turning or continuation points).
* **Plan retests:** Track when price comes back into the imbalance candle’s range (common entry/take-profit logic).
* **Filter trades:** Only act when the market shows unusual pressure (≥70% or ≥80%).
* **Add context to setups:** Combine with S/R, FVGs, or trend tools to time entries with less guesswork.
* **Alert-driven workflow:** Get notified the moment extreme pressure prints.
# How it helps (workflow)
1. **Scan for signals:**
* **B80/B70** = strong buying; **S80/S70** = strong selling.
* 80% is “extreme” and overrides 70%.
2. **Mark the zone:** The imbalance candle’s **high–low** defines a zone. Many traders wait for a **retest** into that range.
3. **Decide intent:**
* After **B80/B70**, look for pullbacks to buy (or fades if you see exhaustion).
* After **S80/S70**, look for rallies to sell (or fades if exhaustion).
4. **Confirm with context:** Check trend, key levels, liquidity, session timing, ATR/volatility.
5. **Manage risk:** Place stops beyond the zone; size trades so a failed retest doesn’t ruin the day.
# How it works (under the hood, briefly)
The script **estimates buy/sell volume** from each candle’s body, wicks, and total volume, then computes an **imbalance %**. If the % crosses **70%** or **80%** (scaled by a Sensitivity setting), it paints the bar, drops a label, and optionally fires an alert. It also stores the imbalance candle’s range so you can watch for a **retest**.
# Reading the signals (quick guide)
* **B80**: Extreme buyer pressure → watch for pullback buys or exhaustion shorts, depending on context.
* **B70**: Strong buyer pressure → mild continuation bias.
* **S80**: Extreme seller pressure → watch for rally sells or exhaustion longs.
* **S70**: Strong seller pressure → higher reversal probability noted in the table (informational).
# Configuration tips
* **Sensitivity**: Higher = more bars qualify (more signals).
* **Label distance**: Scales with ATR so labels don’t overlap candles.
* **Colors/opacity**: Separate for 70% vs 80% and buyer vs seller.
* **Alerts**: Enable to catch signals live without staring at the screen.
# Notes & limits
* Uses **estimation** (not true bid/ask) on most symbols; treat as a **context tool**, not a stand-alone system.
* The optional stats table’s “expected outcomes” are **informational**, not live probabilities.
* Works on any timeframe; results improve when combined with structure and risk controls.
AI Fib Strategy (Full Trade Plan)This indicator automatically plots Fibonacci retracements and a Golden Zone box (61.8%–65% retracement) based on the 4H candle body high/low.
Features:
Auto-detects session breaks or daily breaks (configurable).
Draws standard Fib retracement levels (0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%).
Highlights the Golden Zone for high-probability trade entries.
Optional Take Profit extensions (TP1, TP2, TP3).
Fully compatible with Pine Script v6.
Usage:
Best applied on intraday charts (15m, 30m, 1H).
Use the Golden Zone for entry confirmations.
Combine with candlestick patterns, order blocks, or volume for stronger signals.
VSA Auto Signals by ZeeshanThis indicator automatically marks VSA signals (ND, NS, UT, SO) on the chart, filters them with trend + ATR logic, and provides a clean dashboard with alerts for quick decision-making.
Script Info BannerThe script includes a small template displaying the username, script name, and date of analysis. This feature is implemented to establish credibility and prevent unauthorized use of the analysis.
Candle AnalyzerThis tool classifies candles based on their body size and wick proportions, helping you quickly identify:
"Strong" Candles: When the body dominates, showing clear bullish or bearish momentum.
"Rejection" Candles: Long wicks indicate price was pushed back, suggesting potential reversals.
"Indecisive" Candles: When neither buyers nor sellers are clearly in control, or if wicks are balanced.
"Doji/Indecision": Very small or non-existent bodies, highlighting significant uncertainty.
Features
Manual Entry Time (Defaults to NY Open): The indicator analyzes the candle at this specific time.
Current Bar Analysis: This feature classifies the current, developing candle in real-time.
Analysis Table: A table displays details for the last four completed bars, including body size and wick percentages.
Customizable Thresholds: Adjust the "Min Body vs Wick %" and "Dominant Wick vs Body Ratio" to fine-tune how "strong" or "rejection" candles are identified.
Crypto Strong Strategy Hariss 369The best strategy for all types of trades. Entry, stop loss and target has been set based emi and atr. Both stop loss and target are changed with respect to change in price. Panel is added to view multi time frame trend including rsi , rsi ema and rvol value. A single indicator caters for all types of trades and traders.
Impulse Convexity Trend Gate [T1][T69]OVERVIEW 🧭
• A price-only trend engine that opens a “gate” only when trend strength, acceleration, and impulse dominance align.
• Built from three cooperating parts: adaptive slope, directional convexity, and an impulse-vs-pullback ratio.
• Output is a bounded oscillator (−100…+100) plus side-specific gate states (bull/bear), with optional pullback and weakness highlights.
THE IDEA & USEFULNESS 🧪
• Not a simple mashup: each component plays a distinct role—slope for direction, convexity for acceleration agreement, and an impulse ratio to suppress correction noise.
• Adaptive EMA length (series-based) lets the midline adjust to conditions without external indicators.
• Approximation of hyperbolic tangent and clamp keep signals bounded and stable while avoiding library dependencies.
• Designed to help trend traders act only when continuation is likely, and stand down during pullbacks or chop.
HOW IT WORKS (PIPELINE) ⚙️
• Price transform
• Uses log price for scale stability.
• Adaptive midline
• Volatility-aware EMA length is clamped between minimum and maximum, then applied via a custom recursive EMA.
• Slope & convexity
• Slope (first difference of the midline) defines direction; convexity (second difference) verifies acceleration agrees with that direction.
• Impulse vs pullback ratio (R)
• Sums directional progress versus counter-direction pullbacks over a window; requires impulse to dominate.
• Normalization & score
• Slope and convexity are normalized by recent dispersion; combined into a raw score and squashed to −100…+100 using manual tanh.
• Trend gate
• Gate opens only when: R ≥ threshold, |normalized slope| ≥ threshold, and slope/convexity share the same sign.
• States & visuals
• Bull/Bear Gate Entry when gate is open, oscillator crosses ±15 in the correct direction, price is on the correct side of the midline, and slope/convexity agree.
• Pullbacks mark counter-moves while a gate is active; Weakness flags specific fade patterns after pullbacks.
FEATURES ✨
• Bull and Bear Gate Entries (green/red columns).
• Pullback shading and optional trend-weakness highlights (yellow/orange + teal/maroon).
• Background tint reflects the active side (bull or bear).
• Pure price logic; no volume or external filters required.
HOW TO USE 🎯
• Regime filter
• Trade only in the direction of the open gate; ignore signals when the gate is closed.
• Pullback entries
• During an open gate, wait for a pullback zone, then act on trend-resumption (e.g., oscillator re-push through ±15 or structure break in gate direction).
• Exits & risk
• Consider trimming when the oscillator relaxes toward 0 while the gate remains open, or when convexity flips against slope and R deteriorates.
• Timeframes & markets
• Suited for trend following on crypto/FX/indices from M30 to 4H/1D; raise thresholds on lower timeframes to reduce noise.
CONFIGURATION 🔧
• Impulse ratio gate (R ≥): raises/lowers the standard for continuation dominance.
• Slope strength gate (|sN| ≥): controls how strong a slope must be to count.
• Show Pullback Impulse (toggle): enable/disable pullback highlights.
• Show Trend Weakness (toggle): enable/disable weakness flags.
LIMITATIONS ⚠️
• As a trend tool, it can lag at regime transitions; expect whipsaws in tight ranges.
• Parameters are instrument- and timeframe-dependent; tune thresholds before live use.
• Pullback/weakness flags are contextual—not trade signals by themselves; use them with gate state and your execution rules.
ADVANCED TIPS 🛠️
• Tighten R and slope thresholds for lower timeframes; loosen for higher timeframes.
• Pair with NNFX-style money management and pair-level filters; let the gate be the confirmation layer, not the entry trigger by itself.
• Batch-test across 100+ symbols, export metrics, and run Monte Carlo to validate LLN reliability and Sharpe/IQR stability.
• For system hedging, disable entries when both sides trigger on the same asset to avoid internal conflict.
NOTES 📝
• Price-only construction reduces data-vendor differences and keeps behavior consistent across markets.
• Manual tanh/clamp ensure stable, bounded scores even during extremes.
DISCLAIMER 🛡️
• For research and education. No financial advice. Test thoroughly, size conservatively, and respect your risk rules.
Order Blocks + Order-Flow ProxiesOrder Blocks + Order-Flow Proxies
This indicator combines structural analysis of order blocks with lightweight order-flow style proxies, providing a tool for chart annotation and contextual study. It is designed to help users visualize where significant structural shifts occur and how simple volume-based signals behave around those areas. The script does not guarantee profitable outcomes, nor does it issue financial advice. It is intended purely for research, learning, and discretionary use.
Conceptual Background
Order Blocks
An “order block” is a term often used to describe a zone on the chart where price left behind a significant reversal or imbalance before continuing strongly in the opposite direction. In practice, this can mean the last bullish or bearish candle before a strong breakout. Traders sometimes study these regions because they believe that unfilled resting orders may exist there, or simply because they mark important pivots in price structure. This indicator detects such moments by scanning for breaks of structure (BOS). When price pushes above or below recent swing levels with sufficient displacement, the script identifies the prior opposite candle as the potential order block.
Break of Structure
A break of structure in this context is defined when the closing price moves beyond the highest high or lowest low of a short lookback window. The script compares the magnitude of this break to an ATR-based displacement filter. This helps ensure that only meaningful moves are marked rather than small, random fluctuations.
Order-Flow Proxies
Traditional order flow analysis may use bid/ask data, footprint charts, or volume profiles. Because TradingView scripts cannot access true order-book data, this indicator instead uses proxy signals derived from standard chart data:
Delta (proxy): Estimated imbalance of buying vs. selling pressure, approximated using bar direction and volume.
Imbalance ratio: Normalizes delta by total volume, ranging between -1 and +1 in theory.
Cumulative Delta (CVD): Running sum of delta over time.
Effort vs. Result (EvR): A comparison between volume and actual bar movement, highlighting cases where large effort produced little result (or vice versa).
These are not real order-flow measurements, but rather simple mathematical constructs that mimic some of its logic.
How the Script Works
Detecting Break of Structure
The user specifies a swing length. When price closes above the recent high (for bullish BOS) or below the recent low (for bearish BOS), a potential shift is recorded.
To qualify, the breakout must exceed a displacement filter proportional to the ATR. This helps filter out weak moves.
Locating the Order Block Candle
Once a BOS is confirmed, the script looks back within a short window to find the last opposite-colored candle.
The high/low or open/close of that candle (depending on user settings) is marked as the potential order block zone.
Drawing and Maintaining Zones
Each order block is represented as a colored rectangle extending forward in time.
Bullish zones are teal by default, bearish zones are red.
Zones extend until invalidated (price closing or wicking beyond them, depending on user preference) or until a user-defined lifespan expires.
A pruning mechanism ensures that only the most recent set number of zones remain, preventing chart overload.
Monitoring Touches
The script checks whether the current bar’s range overlaps any existing order block.
If so, the “closest” zone is considered touched, and a label may appear on the chart.
Confirmation Filters
Touches can optionally be confirmed by order-flow proxies.
For a bullish confirmation, the following must align:
Imbalance ratio above threshold,
Delta EMA positive,
Effort vs. Result positive.
For a bearish confirmation, the opposite holds true.
Optionally, a higher-timeframe EMA slope filter can gate these confirmations. For example, a bullish confirmation may only be accepted if the higher-timeframe EMA is sloping upward.
Alerts
Users may create alerts based on conditions such as “bullish touch confirmed” or “bearish touch confirmed.”
Alerts can be gated to only fire after bar close, reducing intrabar noise.
Standard alertcondition calls are provided, and optional inline alert() calls can be enabled.
Inputs and Customization
Structure & OB
Swing length: Defines how many bars back to check for BOS.
ATR length & displacement factor: Adjust sensitivity for structural breaks.
Body vs. wick reference: Choose whether zones are based on candle bodies or full ranges.
Invalidation rule: Pick between wick breach or close beyond the level.
Lifespan (bars): Limit how long a zone remains active.
Max keep: Cap the number of zones stored to reduce clutter.
Order-Flow Proxies
Delta mode: Choose between “Close vs Previous Close” or “Body” for delta calculation.
EMA length: Smooths the delta/imbalance series.
Z-score lookback: Defines the averaging window for EvR.
Confirmation thresholds: Adjust the imbalance levels required for long/short confirmation.
Higher Timeframe Filter
Enable HTF gate: Optional filter requiring higher-timeframe EMA slope alignment.
HTF timeframe & EMA length: Configurable for context alignment.
Style
Colors and transparency for bullish and bearish zones.
Border color customization.
Alerts
Enable inline alerts: Optional direct calls to alert().
Alerts on bar close only: Helps avoid multiple firings during bar formation.
Practical Use
This tool is best seen as a way to annotate charts and to study how simple volume-derived signals behave near important structural levels. Some users may:
Observe whether order blocks line up with later price reactions.
Study how imbalance or cumulative delta conditions align with these zones.
Use it in a discretionary workflow to highlight areas of interest for deeper analysis.
Because the proxies are based only on candle OHLCV data, they are approximations. They cannot replace true depth-of-market analysis. Similarly, order block detection here is one specific algorithmic interpretation; other traders may define order blocks differently.
Limitations and Disclaimers
This indicator does not predict future price movement.
It does not access real order book or tick-by-tick data. All signals are derived from bar OHLCV.
Past performance of signals or zones does not guarantee future results.
The script is for educational and informational purposes only. It is not financial advice.
Users should test thoroughly, adjust parameters to their own instruments and timeframes, and use it in combination with broader analysis.
Summary
The Order Blocks + Order-Flow Proxies script is an experimental study tool that:
Detects potential order blocks using a displacement-filtered break of structure.
Marks these zones as boxes that persist until invalidation or expiry.
Provides lightweight order-flow-style proxies such as delta, imbalance, CVD, and effort vs. result.
Allows confirmation of zone touches through these proxies and optional higher-timeframe context.
Offers flexible customization, alerting, and chart-style options.
It is not a trading system by itself but rather a framework for studying price/volume behavior around structurally significant areas. With careful exploration, it can give users new ways to visualize market structure and to understand how simple flow-like measures behave in those contexts.
Order Blocks + Order-Flow ProxiesOrder Blocks + Order-Flow Proxies
This indicator combines structural analysis of order blocks with lightweight order-flow style proxies, providing a tool for chart annotation and contextual study. It is designed to help users visualize where significant structural shifts occur and how simple volume-based signals behave around those areas. The script does not guarantee profitable outcomes, nor does it issue financial advice. It is intended purely for research, learning, and discretionary use.
Conceptual Background
Order Blocks
An “order block” is a term often used to describe a zone on the chart where price left behind a significant reversal or imbalance before continuing strongly in the opposite direction. In practice, this can mean the last bullish or bearish candle before a strong breakout. Traders sometimes study these regions because they believe that unfilled resting orders may exist there, or simply because they mark important pivots in price structure. This indicator detects such moments by scanning for breaks of structure (BOS). When price pushes above or below recent swing levels with sufficient displacement, the script identifies the prior opposite candle as the potential order block.
Break of Structure
A break of structure in this context is defined when the closing price moves beyond the highest high or lowest low of a short lookback window. The script compares the magnitude of this break to an ATR-based displacement filter. This helps ensure that only meaningful moves are marked rather than small, random fluctuations.
Order-Flow Proxies
Traditional order flow analysis may use bid/ask data, footprint charts, or volume profiles. Because TradingView scripts cannot access true order-book data, this indicator instead uses proxy signals derived from standard chart data:
Delta (proxy): Estimated imbalance of buying vs. selling pressure, approximated using bar direction and volume.
Imbalance ratio: Normalizes delta by total volume, ranging between -1 and +1 in theory.
Cumulative Delta (CVD): Running sum of delta over time.
Effort vs. Result (EvR): A comparison between volume and actual bar movement, highlighting cases where large effort produced little result (or vice versa).
These are not real order-flow measurements, but rather simple mathematical constructs that mimic some of its logic.
How the Script Works
Detecting Break of Structure
The user specifies a swing length. When price closes above the recent high (for bullish BOS) or below the recent low (for bearish BOS), a potential shift is recorded.
To qualify, the breakout must exceed a displacement filter proportional to the ATR. This helps filter out weak moves.
Locating the Order Block Candle
Once a BOS is confirmed, the script looks back within a short window to find the last opposite-colored candle.
The high/low or open/close of that candle (depending on user settings) is marked as the potential order block zone.
Drawing and Maintaining Zones
Each order block is represented as a colored rectangle extending forward in time.
Bullish zones are teal by default, bearish zones are red.
Zones extend until invalidated (price closing or wicking beyond them, depending on user preference) or until a user-defined lifespan expires.
A pruning mechanism ensures that only the most recent set number of zones remain, preventing chart overload.
Monitoring Touches
The script checks whether the current bar’s range overlaps any existing order block.
If so, the “closest” zone is considered touched, and a label may appear on the chart.
Confirmation Filters
Touches can optionally be confirmed by order-flow proxies.
For a bullish confirmation, the following must align:
Imbalance ratio above threshold,
Delta EMA positive,
Effort vs. Result positive.
For a bearish confirmation, the opposite holds true.
Optionally, a higher-timeframe EMA slope filter can gate these confirmations. For example, a bullish confirmation may only be accepted if the higher-timeframe EMA is sloping upward.
Alerts
Users may create alerts based on conditions such as “bullish touch confirmed” or “bearish touch confirmed.”
Alerts can be gated to only fire after bar close, reducing intrabar noise.
Standard alertcondition calls are provided, and optional inline alert() calls can be enabled.
Inputs and Customization
Structure & OB
Swing length: Defines how many bars back to check for BOS.
ATR length & displacement factor: Adjust sensitivity for structural breaks.
Body vs. wick reference: Choose whether zones are based on candle bodies or full ranges.
Invalidation rule: Pick between wick breach or close beyond the level.
Lifespan (bars): Limit how long a zone remains active.
Max keep: Cap the number of zones stored to reduce clutter.
Order-Flow Proxies
Delta mode: Choose between “Close vs Previous Close” or “Body” for delta calculation.
EMA length: Smooths the delta/imbalance series.
Z-score lookback: Defines the averaging window for EvR.
Confirmation thresholds: Adjust the imbalance levels required for long/short confirmation.
Higher Timeframe Filter
Enable HTF gate: Optional filter requiring higher-timeframe EMA slope alignment.
HTF timeframe & EMA length: Configurable for context alignment.
Style
Colors and transparency for bullish and bearish zones.
Border color customization.
Alerts
Enable inline alerts: Optional direct calls to alert().
Alerts on bar close only: Helps avoid multiple firings during bar formation.
Practical Use
This tool is best seen as a way to annotate charts and to study how simple volume-derived signals behave near important structural levels. Some users may:
Observe whether order blocks line up with later price reactions.
Study how imbalance or cumulative delta conditions align with these zones.
Use it in a discretionary workflow to highlight areas of interest for deeper analysis.
Because the proxies are based only on candle OHLCV data, they are approximations. They cannot replace true depth-of-market analysis. Similarly, order block detection here is one specific algorithmic interpretation; other traders may define order blocks differently.
Limitations and Disclaimers
This indicator does not predict future price movement.
It does not access real order book or tick-by-tick data. All signals are derived from bar OHLCV.
Past performance of signals or zones does not guarantee future results.
The script is for educational and informational purposes only. It is not financial advice.
Users should test thoroughly, adjust parameters to their own instruments and timeframes, and use it in combination with broader analysis.
Summary
The Order Blocks + Order-Flow Proxies script is an experimental study tool that:
Detects potential order blocks using a displacement-filtered break of structure.
Marks these zones as boxes that persist until invalidation or expiry.
Provides lightweight order-flow-style proxies such as delta, imbalance, CVD, and effort vs. result.
Allows confirmation of zone touches through these proxies and optional higher-timeframe context.
Offers flexible customization, alerting, and chart-style options.
It is not a trading system by itself but rather a framework for studying price/volume behavior around structurally significant areas. With careful exploration, it can give users new ways to visualize market structure and to understand how simple flow-like measures behave in those contexts.
word clockUsers can select their preferred local timezone. The default is set to (UTC+3).
Multiple Timezone Options Available:
• Europe/Istanbul (default)
• UTC
• Europe/London
• Europe/Paris
• Europe/Berlin
• America/New_York
• America/Chicago
• America/Los_Angeles
• Asia/Tokyo
• Asia/Shanghai
• Asia/Hong_Kong
• Asia/Kolkata
• Australia/Sydney
Market Hours in Local Time:
With the setting enabled, users can view all market sessions converted to their selected local time.
Dynamic Time Conversion:
The function automatically converts each exchange’s market hours into the user’s selected local timezone.
///// You can replace the second "Europe/Istanbul" on line 18 with your own city to adjust the local time accordingly. you can choose your city , formatted with city names and their corresponding timezone codes—separated by commas and spaces, ready for use in TradingView or documentation: >>> Abu Dhabi, Asia/Muscat, Adelaide, Australia/Adelaide, Almaty, Asia/Almaty, Amsterdam, Europe/Amsterdam, Ankara, Europe/Istanbul, Auckland, Pacific/Auckland, Bangkok, Asia/Bangkok, Barcelona, Europe/Madrid, Beijing, Asia/Shanghai, Berlin, Europe/Berlin, Bogota, America/Bogota, Brisbane, Australia/Brisbane, Brussels, Europe/Brussels, Bucharest, Europe/Bucharest, Budapest, Europe/Budapest, Buenos Aires, America/Argentina/Buenos_Aires, Cairo, Africa/Cairo, Calgary, America/Edmonton, Cape Town, Africa/Johannesburg, Caracas, America/Caracas, Chicago, America/Chicago, Colombo, Asia/Colombo, Copenhagen, Europe/Copenhagen, Delhi, Asia/Kolkata, Dubai, Asia/Dubai, Dublin, Europe/Dublin, Frankfurt, Europe/Berlin, Geneva, Europe/Zurich, Helsinki, Europe/Helsinki, Hong Kong, Asia/Hong_Kong, Honolulu, Pacific/Honolulu, Istanbul, Europe/Istanbul, Jakarta, Asia/Jakarta, Johannesburg, Africa/Johannesburg, Karachi, Asia/Karachi, Kiev, Europe/Kiev, Kuala Lumpur, Asia/Kuala_Lumpur, Lagos, Africa/Lagos, Lima, America/Lima, Lisbon, Europe/Lisbon, London, Europe/London, Los Angeles, America/Los_Angeles, Madrid, Europe/Madrid, Manila, Asia/Manila, Melbourne, Australia/Melbourne, Mexico City, America/Mexico_City, Milan, Europe/Rome, Montreal, America/Toronto, Moscow, Europe/Moscow, Mumbai, Asia/Kolkata, Nairobi, Africa/Nairobi, New York, America/New_York, Oslo, Europe/Oslo, Paris, Europe/Paris, Perth, Australia/Perth, Prague, Europe/Prague, Riyadh, Asia/Riyadh, Rome, Europe/Rome, Santiago, America/Santiago, São Paulo, America/Sao_Paulo, Seoul, Asia/Seoul, Shanghai, Asia/Shanghai, Singapore, Asia/Singapore, Stockholm, Europe/Stockholm, Sydney, Australia/Sydney, Taipei, Asia/Taipei, Tel Aviv, Asia/Jerusalem, Tokyo, Asia/Tokyo, Toronto, America/Toronto, Vancouver, America/Vancouver, Vienna, Europe/Vienna, Warsaw, Europe/Warsaw, Wellington, Pacific/Auckland, Zurich, Europe/Zurich