Real Fair Value Gaps [GBB]Real Fair Value Gaps
A fair value gap is a three-candle imbalance: the wicks of candle 1 and candle 3 do not overlap, leaving a price range that was never traded. This script finds those gaps on the chart timeframe and on one higher timeframe, tracks each one through its full life (fresh, touched, midpoint tapped, mitigated or inverted), and draws only the ones that matter right now.
What it does differently than other Fair Value Gap indicators
Consumed vs. remaining : As price trades into a gap, the drawn zone shrinks to the unfilled remainder. The consumed part is shown as a dashed fill from the entered edge to the deepest penetration, so you see how much of the gap is actually left, not a full box that price already went through.
Spotlight : Only the N active gaps closest to price carry the full glow (gradient bands, dotted midpoint, origin notch, price chip). Everything else is a thin outline. The chart stays readable with dozens of live gaps.
Freshness : Glow decays to half strength over a set number of bars and then holds. A gap from 300 bars ago looks different from one made ten bars ago.
Inversions : A close beyond the far edge flips the gap into an inverted FVG (IFVG) with the opposite bias instead of retiring it. This is an optional setting
Visibility window : Gaps farther than X ATR from price are tracked but not drawn, so far-away zones do not stretch your price scale.
Higher timeframe without repainting : HTF gaps are built only from completed HTF candles (values are read with a offset) and are anchored to the exact HTF candle times. Auto mode picks one step above your chart (1m→15m, 5m→1H, 15m→4H, 1H→D, 4H→W, D→W).
Everything on confirmed bars. Detection, state changes and alerts all fire on bar close.
Inputs
Detection
Min size (ATR ×) : ignore gaps smaller than a multiple of ATR(14) on the gap's own timeframe. 0 = off.
Auto threshold : keep a gap only if its height relative to price is above the running mean of all candidates seen so far. Overrides Min size.
Require displacement : candle 2 must close beyond candle 1's extreme.
Mitigation
Source : Wick or Close.
Point : Near edge, Midpoint or Far edge (fully filled).
Track inversions : on/off.
Higher timeframe
Enable, and the timeframe (empty = automatic).
Look
Palette : (GBB / Calm blue-amber / Custom), glow intensity, spotlight count, fade length, how long mitigated outlines stay, label mode, and the ATR visibility window.
Display
Info table : active gap counts, nearest gap above and below price, HTF status, and a running fill rate over the loaded bars.
Alerts
New bullish / bearish FVG (chart TF), new HTF bullish / bearish FVG, price entered a gap, midpoint tapped, gap mitigated, gap inverted. All on confirmed bars.
Data window
Active bull count, active bear count, mitigated count, HTF active count, and a last-event code (1 new bull, 2 new bear, 3 touch, 4 midpoint, 5 mitigated, 6 inverted) are exposed as hidden plots for use in your own scripts.
How to read it
The dotted midpoint line is the consequent encroachment level; it disappears once price has consumed it. The small solid notch marks the birth candle. The chip on the right edge shows the midpoint price and tags the gap as HTF or IFVG. A mitigated gap collapses to a grey dashed outline frozen at the bar where it was filled, then drops off after the configured number of bars. Gösterge

Bitcoin CME Gaps [PhantomCipher]Bitcoin CME Gaps
Bitcoin trades around the clock, but CME Bitcoin futures stop trading over the weekend. When CME reopens, its chart often opens away from Friday's close, leaving a "CME gap". This indicator draws the CME closing level on your Bitcoin chart for the whole weekend, so you can see how far price has moved from it while CME is closed.
SNAPSHOT: a 15m Bitcoin chart over one weekend, with the blue CME line and the shading between it and price
Recommended timeframe: 15 minutes
The weekend window is worked out from each candle's opening time, so the line needs candles small enough to start when CME closes and end when it reopens. The 15-minute chart is what this indicator is designed and tested for.
How it works
Weekend window: from Friday 21:00 UTC to Sunday 22:00 UTC. That matches CME Bitcoin futures hours while US daylight saving time is in effect. In winter, CME closes and reopens one hour later.
CME line: a blue line at the price where the weekend began. It's drawn only during the weekend and stops when CME reopens.
Shading: the area between the line and price is green while price is above the line and pink while it's below, so you can see the direction of the gap as it forms.
The weekend window check, with the day and hour in the chart's timezone (UTC for crypto):
(hour >= 21 and dayofweek == 6) or (dayofweek == 7) or (hour < 22 and dayofweek == 1)
SNAPSHOT: close-up of Sunday's reopen, with the line ending where CME resumes trading
Settings
Chart Price | CME Price: on by default, and the line uses your chart's own price at the start of the weekend. Turn it off to use CME:BTC1!'s last price instead, which can differ from spot or perpetual prices.
Only Show Weekend Gaps: on by default, and the line appears only in the weekend window above. Turn it off to draw a line whenever CME:BTC1! has no candle, which also covers CME's daily one-hour break and exchange holidays, at the cost of a busier chart.
Show +/-1% From Close: off by default. Adds yellow lines 1% above and 1% below the CME line.
Limitations
With "Only Show Weekend Gaps" on, lines appear only on crypto charts, index charts and charts in the UTC timezone.
The weekend window uses fixed UTC hours, so in winter it starts and ends one hour before CME's actual close and reopen.
The line marks the level while CME is closed. It does not keep drawing gaps that are still unfilled after CME reopens.
Example chart: BYBIT:BTCUSDT.P
This indicator marks where CME closed. It's not a trading signal on its own, and a gap is not guaranteed to fill, so combine it with your own analysis and risk management.
Gösterge

Virgin CPR Zones (Open Source) D / W / M / YVirgin CPR Zones — D / W / M / Y
OVERVIEW
This indicator plots the Central Pivot Range (CPR) for four timeframes — Daily, Weekly,
Monthly and Yearly — and automatically marks the "virgin" ones as extending zones on the
chart.
A CPR is called virgin when price never traded inside it during the period it belonged to.
Because that range was never tested while it was active, many traders treat it as an
untouched area of interest that price may react to when it eventually returns.
WHAT IT DRAWS
1. CPR lines for each enabled timeframe:
- TC (Top Central) = 2 × Pivot − BC
- Pivot = (High + Low + Close) / 3
- BC (Bottom Central) = (High + Low) / 2
The CPR is latched at the first bar of each new period using the previous period's
completed HLC, so the levels never repaint or shift mid-period.
2. Virgin CPR zones: when a period closes without price having traded into its own CPR,
a box is drawn between TC and BC and extended forward bar by bar. The zone stops
extending the moment price trades into it, leaving a permanent record of where and
when it was consumed.
HOW IT WORKS
Each timeframe runs through its own self-contained state machine, so the Daily, Weekly,
Monthly and Yearly logic never share arrays, latches or touch flags with one another.
Higher-timeframe data is requested with lookahead disabled and gaps off, so nothing is
known before it would have been known in real time.
The touch test is reset at the start of each new period before the current bar is
evaluated, which means the very first candle of a period can register as a touch. A CPR
is only promoted to a virgin zone after its own period has closed untouched, so zones
appear at the period boundary rather than intrabar.
Each timeframe only draws if the chart timeframe is equal to or lower than the CPR
timeframe. For example, Weekly zones will not appear on a Monthly chart.
INPUTS
- General: toggle the D / W / M / Y text tags on each zone.
- Per timeframe (Daily, Weekly, Monthly, Yearly):
- Show CPR lines on/off
- Show virgin CPR zones on/off
- Maximum number of zones to keep (oldest is deleted first)
- Colour
Defaults: Daily and Weekly lines are on, Monthly and Yearly lines are off to keep the
chart clean, while zones are enabled for all four.
HOW TO USE IT
Untested zones from a higher timeframe tend to carry more weight than lower ones, so a
virgin Monthly or Yearly CPR is generally treated as more significant than a virgin
Daily. Common uses are watching for a reaction on the first tag of a zone, or using the
zone edges (TC and BC) as reference levels for entries, targets and invalidation.
This is a levels and context tool. It does not generate buy or sell signals and should be
combined with your own structure, trend and risk management rules.
NOTES
- Zones are capped per timeframe to stay within drawing object limits. Increase the
"Max zones" input if you want more history, reduce it if the chart feels crowded.
- Because CPR is built from the previous period's completed data, the levels for the
current period are fixed from its first bar onward.
Author: Vishwajeeth J K Gösterge

Gösterge

Dual-Phase Reversal by DGTDual-Phase Reversal • Exhaustion, Pivots & Pressure
Dual-Phase Reversal (DPR) is a two-phase market exhaustion framework that tracks directional momentum through Momentum Exhaustion and Terminal Exhaustion . It combines sequential price conditions, Momentum Shift initiation, phase qualification, exhaustion progression, invalidation levels, Range Pivots, Volume Pressure, and Volume-Weighted Bars to provide a structured view of potential trend exhaustion and reversal conditions.
The framework is designed to distinguish between an initial loss of directional momentum and a subsequent terminal phase, while keeping the two stages logically independent.
Dual-Phase Exhaustion Framework
Momentum Exhaustion identifies an initial phase of directional overextension using a four-bar close relationship. A new phase begins only when a Momentum Shift occurs — a change in the direction of the four-bar close relationship. Sustained one-directional momentum therefore does not automatically initiate a new count.
The Momentum Exhaustion phase progresses through its sequential conditions and can receive a Q (Qualification) classification based on the corresponding price structure. Qualification describes the completed setup itself and is not required for the subsequent Terminal Exhaustion phase to begin.
Terminal Exhaustion begins when a Momentum Exhaustion phase completes count 9. It uses a separate set of price conditions to track the continuation of exhaustion toward a terminal phase. The Terminal Exhaustion phase progresses independently and can include an additional validation/failure condition during its progression.
Phase Levels & Invalidation
Upon completion of Momentum Exhaustion, the framework can project dynamic Support & Resistance levels derived from the completed phase. These levels remain active until price crosses the corresponding level.
Optional Invalidation Levels are provided for both Momentum Exhaustion and Terminal Exhaustion. These levels are derived from the price extremes established during the respective phase and provide a structural reference for when the exhaustion condition is considered invalidated.
Terminal Exhaustion can additionally calculate a Target Level from the price structure developed during its progression.
Range Pivots
The optional Range Pivot framework provides higher-timeframe Support (S), Pivot (P), and Resistance (R) levels.
The timeframe can be selected manually or determined automatically according to the chart timeframe, with support for 1H, 4H, Daily, Weekly, Monthly, Quarterly, and Yearly ranges.
Optional Developing Range Pivot projects Support, Pivot, and Resistance levels from the current, still-forming range — an early, real-time preview of the next range's pivot before it closes. Optional Historical Range Pivot instead displays the completed pivot levels of prior ranges, allowing the current range to be compared against past structure.
Volume Pressure
The optional Volume Pressure Oscillator evaluates buying and selling pressure by combining price movement within each bar's range with traded volume.
The resulting oscillator is normalized to a 0–100 scale, with configurable upper and lower bands. A signal line and histogram provide additional context for changes in pressure.
The pressure calculation excludes zero-range bars and handles markets where volume data is unavailable.
Dashboard
An optional, repositionable Dashboard table provides a compact, at-a-glance summary of the framework's current state on the last bar:
Momentum — which side (buy-side or sell-side) is currently progressing, and its step count out of 9
Terminal — which side is currently progressing, and its step count out of 13
Pivot — signed percentage distance from price to the nearest Range Pivot level
Pressure — the current Volume Pressure ratio, shown as a buying/selling percentage split
Each row includes a tooltip with additional detail. The table can be toggled on or off and repositioned to any chart corner.
Visuals & Reading the Framework
The All Sequence Steps display mode shows the progression of the Momentum and Terminal Exhaustion phases using compact sequential markers. Completed phases can instead be displayed selectively for a cleaner chart.
Volume-Weighted Bars optionally highlight bars according to their volume relative to a configurable volume moving average, helping distinguish unusually high and low volume activity.
DPR is best used as a contextual framework rather than a standalone reversal signal . Momentum Exhaustion identifies an initial state of directional overextension, while Terminal Exhaustion represents a later-stage continuation of that exhaustion process. Range Pivots, Support/Resistance, Invalidation, and Volume Pressure can be used together to assess the broader market context.
Alerts
Alerts are available for:
Momentum Exhaustion phase completion
Terminal Exhaustion phase completion
Momentum Exhaustion Support / Resistance crossings
Momentum & Terminal Exhaustion invalidation level crossings
Range Pivot level crossings
Volume Pressure entering overbought / oversold zones
High-volume bars
Alerts include the instrument and relevant price level where applicable.
DISCLAIMER
This script is intended for informational and educational purposes only. It does not constitute financial, investment, or trading advice. All trading decisions made based on its output are solely the responsibility of the user.
Gösterge

CandelaCharts - RTH Gap📝 Overview
The CandelaCharts - RTH Gap indicator is a professional technical tool designed to automatically identify, track, and visualize Regular Trading Hours (RTH) gaps. By targeting the exact NY close (4:00 PM for equities/ETFs like SPY, or 4:15 PM for futures) and open (9:30 AM), this indicator precisely maps out the untraded price voids between sessions, providing crucial intraday support and resistance levels.
Unlike standard gap indicators that fail on RTH-only charts, this script uses robust day-change logic to detect session transitions flawlessly. Unfilled gaps extend indefinitely across the chart, while filled gaps can be kept on the chart to serve as historical support/resistance.
📦 Features
Exact RTH Logic: Automatically anchors session closings (16:00/16:15 NY time) and openings (09:30 NY time) to measure the exact RTH gap size, regardless of whether you have Extended Trading Hours (ETH) turned on or off.
Customizable Inner Levels: Break down gap zones into mathematically significant price levels:
Midline (50% Mean): Plots the exact middle of the gap, a highly respected level for intraday rejections.
Quadrants: Divides the gap into 25%, 50%, and 75% retracement levels.
OTE (Optimal Trade Entry): Plots the 0.618, 0.705, and 0.786 Fibonacci levels to find high-probability reversal zones.
Dynamic Labels: Displays dynamic price labels on the chart axis. When Inner Levels (OTE or Quadrants) are enabled, the top, bottom, and midline labels automatically update to show percentages/ratios (e.g. 100%, 50%, 0% or 0.0, 0.5, 1.0) rather than raw prices to keep the charts clean.
Post-Fill Extensions: When a gap is filled, the main box stops extending to mark where the mitigation happened. However, if enabled, the levels (Top, Bottom, Midline, and Inner Levels) will convert to dashed lines and continue to extend to the current candle as historical support/resistance.
Filter by Bias: Clean up your chart layout by choosing to display only Bullish gaps, Bearish gaps, or Both.
Historical Tracking: Keep the last N gaps visible on the chart for history and context.
⚙️ Settings
Session: Define the exact RTH Session hours (default is 09:30-16:00).
History: Define how many historical gaps to keep on the chart.
Gap Up / Gap Down: Toggle visibility and customize colors, fill transparency, and border styles.
Midline: Toggle the visibility of the gap's 50% midline, and customize its style and color.
Inner Levels: Toggle Quadrants or OTE subdivisions, and customize their styles and colors.
Show Labels: Toggle price/ratio axis labels.
Show Filled Gaps: When enabled, filled gaps turn gray and extend as dashed lines to the current candle. When disabled, filled gaps are completely removed from the chart.
Alerts: Toggle the ability for the indicator to fire programmatic alerts.
⚡️ Showcase
RTH Gap - Default View
RTH Gap - OTE Levels
RTH Gap - Quadrant Levels
🚨 Alerts
This indicator includes built-in alert conditions ensuring you never miss a critical gap test. Once "Enable Alerts" is checked in the settings, you can configure TradingView to notify you when:
An RTH Gap Up is fully filled.
An RTH Gap Down is fully filled.
⚠️ Disclaimer
Trading involves significant risk, and many participants may incur losses. The content on this site is not intended as financial advice and should not be interpreted as such. Decisions to buy, sell, hold, or trade securities, commodities, or other financial instruments carry inherent risks and are best made with guidance from qualified financial professionals. Past performance is not indicative of future results.
Gösterge

Combo Oscillator - MACD + Stoch + RSI + EMACombo Oscillator – MACD + Stochastic + RSI + EMA
The Combo Oscillator combines four widely used technical indicators into one simple momentum oscillator:
MACD + Stochastic + RSI + EMA
Instead of switching between several indicators, the Combo Oscillator combines their information into one normalized and smoothed line.
🟢 GREEN / BULLISH SIGNAL
Generated when the combined oscillator crosses above the zero line, indicating a potential shift toward bullish momentum.
🔴 RED / BEARISH SIGNAL
Generated when the combined oscillator crosses below the zero line, indicating a potential shift toward bearish momentum.
The oscillator also uses ATR normalization, allowing indicators with different scales to work together in one combined calculation.
DEFAULT SETTINGS:
EMA: 21 / 55
MACD: 12 / 26 / 9
RSI: 14
Stochastic: 14 / 3 / 3
ATR: 14
Smoothing: 3
The major parameters are adjustable, allowing traders to experiment with different settings for different markets and timeframes.
The Combo Oscillator is designed as a momentum and confirmation tool, not as a standalone trading system.
For best use, combine it with your own analysis, market structure, support and resistance, liquidity and risk management.
One oscillator.
Four indicators.
One clear view of momentum. Gösterge

Jamallo Channels🔹Intro
For decades, technical traders have relied on conventional channel models, each burdened by fundamental mathematical limitations:
- Bollinger Bands rely on simple moving averages (SMA) and raw price standard deviation. When strong directional trends emerge, raw variance conflates trend slope with volatility, causing the bands to artificially flare open ("volatility bulge") and produce severe lag and frequent false mean-reversion signals.
- Keltner Channels utilize exponential moving averages (EMA) wrapped with Average True Range (ATR). While smoother, the EMA introduces continuous phase delay, and the bands drift constantly with price, failing to provide stable, horizontal support and resistance benchmarks during consolidation.
- Donchian Channels plot rolling highest highs and lowest lows over an N-bar window. However, they are exceptionally vulnerable to single-bar outlier wicks and sudden step jumps that distort the true statistical distribution without accounting for underlying volatility dynamics.
Jamallo Channels resolves these structural flaws through a novel mathematical synthesis:
1. It replaces lagging moving averages with a multi-resolution Maximal Overlap Discrete Wavelet Transform (MODWT) Haar filter bank coupled with an energy-calibrated deadband step-hold state machine. The baseline remains strictly stationary during consolidation and snaps instantaneously to new price levels upon statistically significant drift.
2. It decouples trend from volatility by computing standard deviation strictly on the detrended high-frequency wavelet residual, filtered through a rolling linear-interpolation median to eliminate spike distortion.
3. It locks the volatility corridor at the exact moment a new regime step triggers—producing pristine, step-synchronized horizontal channels and mathematically robust exhaustion zones.
🔹Break down
1. Multi-Resolution Haar Wavelet MODWT Engine:
- Undecimated Dyadic Decomposition: Deconstructs raw price action across up to 5 dyadic scale levels (Level 1 = 2-bar, Level 2 = 4-bar, Level 3 = 8-bar, Level 4 = 16-bar, Level 5 = 32-bar) into orthogonal approximation (trend) and detail (high-frequency noise) coefficients without phase distortion or downsampling loss.
- Scale-Adaptive Smoothing: Isolates the true low-frequency structural trend from intraday churn and microstructure noise at the selected dyadic decomposition level.
- Dynamic Detail Energy Tracking: Measures the real-time volatility intensity of the high-frequency detail spectrum by computing a rolling Simple Moving Average of absolute detail coefficients over a calibrated lookback window.
2. Energy-Calibrated Deadband Step-Hold Mechanism:
- Statistical Innovation Filtering: Establishes an adaptive deadband threshold scaled directly by the product of the detail energy and a deadband multiplier.
- Zero-Drift Piecewise Step-Holding: The smooth wavelet baseline is held strictly horizontal until price innovation definitively breaches the dynamic detail deadband threshold. Once breached, the baseline snaps instantaneously to the new equilibrium price level, eliminating baseline drifting during consolidation phases.
- Clean Regime Direction State: Evaluates the direction of every confirmed step, immediately classifying the market into Bullish (Teal) or Bearish (Maroon) regime states.
3. Detrended Residual Volatility & Frozen Sigma Bands:
- Trend-Decoupled Dispersion Measurement: Unlike standard deviation calculated around lagging moving averages—which artificially inflates during strong trends—Jamallo Channels isolates the high-frequency wavelet residual (Price minus Wavelet Mid) before computing variance, capturing genuine localized volatility.
- Median Filter Outlier Rejection: Applies a rolling linear-interpolation median filter (50th percentile over a 100-bar window) to the raw residual standard deviation, immunizing the channel against one-off spike anomalies and erratic expansion.
- Step-Locked Volatility Corridors: Volatility is sampled and frozen precisely at the moment a new Haar baseline step triggers. The frozen sigma remains constant throughout the entire regime life cycle, producing stable, non-wiggling horizontal channels.
4. Multi-Tier Volatility Corridors & Exhaustion Envelopes:
- Inner Expansion Zone (1.0σ): Defines the immediate high-probability operational boundary around the stepped trend baseline.
- Mid Dispersion Boundary (2.0σ): Represents standard 2-sigma statistical bounds where normal trending impulse legs oscillate.
- Outer Exhaustion & Mean-Reversion Zone (3.0σ): The extreme channel boundary (2.0σ to 3.0σ highlighted by shaded backgrounds) marks statistical overextension where price is prime for momentum exhaustion and mean-reverting retests back to the Haar stepped baseline.
🔹How to use: Trend Following & Risk Management
Jamallo Channels provides clear, objective mathematical parameters for both momentum trend riders and mean-reversion scalpers across all timeframes.
Regime Trend Trading:
- Setup & Execution: Enter in the direction of a newly confirmed Haar baseline step (when the baseline shifts color to Teal for Longs or Maroon for Shorts) or upon a sustained price breakout above/below the baseline following volatility compression.
- Stop Loss Placement: Anchor stop loss orders directly behind the most recent stepped Haar baseline level or just outside the opposite inner/mid channel boundary.
- Trailing & Letting Winners Run: Trail stop loss orders systematically step-by-step as new horizontal baseline rungs are confirmed, protecting capital while letting winners ride the macro expansion.
Mean-Reversion & Exhaustion Scalping:
- Exhaustion Rejection: When price enters the extreme 2.0σ–3.0σ outer band corridor (upper red fill or lower teal fill) and forms rejection wicks or structural exhaustion patterns, execute counter-trend mean-reversion setups.
- Take-Profit Targets: Target the inner channel (1.0σ) for partial profits and the primary Haar stepped baseline (0σ mean) for final profit harvesting.
- Invalidation / Stop Loss: Place tight stop losses just beyond the outer 3.0σ boundary line.
🔹Settings Parameters
Haar Wavelet Basis:
- Basis Level (1 - 5): Selects the dyadic wavelet decomposition scale (1 = 2-bar, 2 = 4-bar, 3 = 8-bar, 4 = 16-bar, 5 = 32-bar). Higher levels smooth out larger macro trends, while lower levels capture high-frequency swings.
- Deadband Multiplier (0.1 - 10.0): Scaling coefficient applied to the detail energy. Higher values widen the deadband, requiring larger directional thrusts to trigger a new step and producing wider, noise-immune steps.
- Detail Energy Lookback (5 - 200): The rolling lookback window used to calculate the average magnitude of wavelet detail coefficients.
Stdev Bands:
- Stdev Length (min 2): Lookback period for measuring the standard deviation of the detrended wavelet residual.
- Inner Multiplier (0.1 - 10.0): Standard deviation multiplier for the inner channel envelope (default: 1.0σ).
- Mid Multiplier (0.1 - 10.0): Standard deviation multiplier for the middle channel envelope (default: 2.0σ).
- Outer Multiplier (0.1 - 10.0): Standard deviation multiplier for the extreme exhaustion envelope (default: 3.0σ).
Display Settings:
- Basis Up Color: Custom color for the stepped baseline during bullish regime states (default: Teal).
- Basis Down Color: Custom color for the stepped baseline during bearish regime states (default: Maroon).
- Upper Color: Accent color for the upper channel bands and exhaustion fills (default: Red).
- Lower Color: Accent color for the lower channel bands and exhaustion fills (default: Teal).
- Show Fill: Toggles background shading for the inner and outer volatility corridors.
Gösterge

CRT TCTCRT TCT — Market Structure & Liquidity Toolkit
CRT TCT is a complete price action and market structure indicator designed to help traders identify key liquidity areas, structural shifts, session ranges, and potential liquidity sweeps directly on the chart.
The indicator combines multiple concepts into one clean and customizable trading toolkit, allowing traders to analyze market structure and liquidity without overcrowding their charts.
Key Features
• BOS & CHoCH Detection
Automatically identifies Break of Structure (BOS) and Change of Character (CHoCH) to help visualize bullish and bearish market structure.
• Liquidity Levels
Automatically detects and tracks relevant swing highs and swing lows as potential liquidity areas. Levels remain visible until price trades through them.
• Liquidity Sweeps
Identifies potential bullish and bearish liquidity sweeps where price takes a previous high or low and rejects the level.
• Multi-Timeframe Key Levels
Displays important previous highs and lows from:
H4
Daily
8:00 AM New York H1
9:00 AM New York H1
• Trading Sessions / Kill Zones
Visualizes the main institutional trading sessions:
Asian Session
London Session
New York Session
Session highs and lows can also be extended forward as potential liquidity targets until they are reached.
• Custom Market Structure Timeframe
BOS and CHoCH analysis can use the current chart timeframe or a fixed timeframe such as 5m, 15m, 30m, 1H, 4H, or Daily.
• Market Structure Dashboard
A compact dashboard provides a quick overview of:
Current structural bias
Selected structure timeframe
Active liquidity above price
Active liquidity below price
• Fully Customizable
Traders can independently enable or disable market structure, liquidity, sweeps, higher-timeframe levels, sessions, and other visual elements.
How It Can Be Used
CRT TCT is designed as a confluence and market-reading tool rather than a standalone buy/sell signal system.
It can help traders identify:
Where liquidity may be resting
When liquidity has been swept
Changes in market structure
Continuation through BOS
Important higher-timeframe levels
Session highs and lows
Potential areas of interest during key trading sessions
The indicator can be used across different markets and timeframes depending on the trader's methodology.
Important: This indicator is intended for educational and analytical purposes only. It does not provide financial advice or guarantee profitable trades. Always use proper risk management and combine the information provided by the indicator with your own trading plan and analysis. Gösterge

MYND Fractal Support/Resistance Density Map [v1.4]MYND Fractal Support/Resistance Density Map
A decayed, multi-scale support/resistance DENSITY map - not a single pivot-line tool. It detects swing highs/lows at 3 configurable pivot scales, scores every confirmed pivot into a rolling price-bin array (volume-weighted), and decays that score every bar so old, stale levels fade out instead of piling up forever. The Top-N highest-density bins are surfaced as ranked, cluster-merged S/R zones - with early-warning alerts, reject-vs-break classification across all tracked zones, an optional full heatmap view, on-chart labels, and now a dashboard that shows distance-to-#1-zone, the single nearest zone to price, and when a zone's density really represents several folded-together levels.
WHAT IT DOES
Three pivot scales (short/medium/long) independently detect confirmed swing highs and lows. Every confirmed pivot adds a weighted density score to whichever price bin it touches - longer, more significant scales contribute more, and a pivot's own relative volume scales its contribution further. All accumulated density decays by a fixed factor every bar, so a level that mattered years ago but hasn't been touched since gradually fades. Near-adjacent candidate bins fold into one merged zone rather than showing as near-duplicates. The highest-density bins are ranked and surfaced as the tool's Top-N zones.
HOW TO USE IT
Treat higher-density zones as levels more likely to produce SOME reaction - a bounce, a rejection, a pause - not as levels guaranteed to hold. Use the Approaching-Zone alerts (Zone #1-specific or the all-zone aggregate) as your cue to start watching closely, then read the Reject/Break tag once price actually resolves. Check the new Nearest Zone to Price row for what's immediately relevant right now, separate from which zone ranks #1 by density overall. Raise Zone Cluster Merge Distance if nearby zones keep reading as near-duplicates - and watch for the "merged Nx" tag as a reminder that a zone's density may represent several folded levels, not one. Raise Minimum Touches to Show if you only want to act on zones that have already proven themselves. Turn on HTF Confluence for extra cross-timeframe conviction, and the Density Heatmap to see the whole structure at a glance.
KEY FEATURES
A live dashboard showing each Top-N zone's price, density, freshness, merge status, and touch-threshold status, plus distance-to-#1-zone and the single nearest zone to price. On-chart zone price labels. Volume-weighted, cluster-merged density scoring. Fully adjustable zone line width/style/color (per rank), table border width/color, and heatmap color. Full cross-tool export for all 5 possible zones plus distance-to-#1-zone. 10 individual alerts plus 1 combo bundle.
SETTINGS WORTH TUNING FIRST
Per-Bar Decay Rate is the core dial on how fast old levels fade. Enable Volume-Weighted Density is on by default - turn off if a ticker's volume data is unreliable. Zone Cluster Merge Distance controls how aggressively nearby candidates get folded together (and how often you'll see a "merged Nx" tag). Minimum Touches to Show is 0 by default - raise it to filter out unproven levels. Enable HTF Confluence Check is off by default.
WHAT THIS TOOL DELIBERATELY DOES NOT DO
Density is a proxy for level significance, not a guarantee a zone will hold. HTF Confluence compares against the HTF's own recent swing high/low, not a second full density map - a disclosed simplification. The touch count keeps accumulating in the background regardless of the Minimum-Touch filter setting. Zone lines, labels, and the heatmap only reflect the most recent bar's selection, not a full historical record. The new merge-count and nearest-zone-to-price data are dashboard-only - not yet exposed via the Cross-Tool Signal Export plots.
ALERTS
10 individual alerts (Price Entered Top-N Zone, Price Exited All Top-N Zones, Top Zone Reshuffled, Price Approaching #1 Zone, Zone #1 Rejected/Bounce, Zone #1 Broken Through, Zone #1 Aligned with HTF Level, Any Zone Approaching, Any Zone Rejected, Any Zone Broken Through) plus 1 combo bundle (ALL Fractal S/R Signals).
FEEDBACK WELCOME
If you've tweaked a setting, found a combination with another indicator that works well, or have an idea for what would make this more useful, I'd genuinely like to hear about it - drop a comment below (it helps other users too), or send a direct message if you'd rather keep the details private.
This tool identifies patterns in past price and structure - it is not a guarantee of future performance. This tool is provided for informational and educational purposes and does not constitute financial advice. Trading involves risk; past performance and historical patterns do not guarantee future results. Gösterge

VIX Seasonal Analog Composite█ OVERVIEW
VIX Seasonal Analog Composite draws three lines in a separate pane: the average seasonal path of all complete years of VIX history, a composite of the historical years whose year-to-date VIX path most closely resembles the current year, and the current year's own VIX path. The script requests CBOE:VIX daily closes directly, so it displays VIX seasonality on any chart symbol: applied to an S&P 500 chart, the pane still shows the VIX. All lines are expressed as a percentage of each year's first daily VIX close, and both seasonal lines are projected forward to the end of the current calendar year. The thesis is that the remainder of a VIX year can be contextualized by the average behavior of prior years, and more specifically by the subset of prior years that have tracked the current year most closely so far.
█ HISTORY / BACKGROUND
Seasonal averaging is a long-standing technique in technical analysis: normalize each historical year to a common starting point, average across years by position in the calendar, and read the result as the instrument's typical annual path. Applied to the VIX Index, it captures the well-documented tendency of implied volatility to trough in summer and firm into autumn. Its main weakness is that every year receives equal weight, so years with no resemblance to current conditions dilute the picture.
The analog-year refinement addresses this. Instead of averaging all history, it ranks past years by their similarity to the current year's realized path and averages only the closest matches. Variants of this approach appear in institutional volatility research. The specific similarity metric, selection count, and construction details vary by practitioner and are generally not disclosed. This script implements one explicit, reproducible version of the method for the VIX with all parameters exposed as inputs.
█ HOW IT WORKS
The script runs a single accumulation pass over the chart's daily history and defers all computation and drawing to the last bar.
1. On every chart bar, the script requests the CBOE:VIX daily close through `request.security`. Calendar-year boundaries are detected with `year(time)`. The first available VIX close of each year becomes that year's anchor. Every subsequent VIX close is stored as close divided by the anchor, indexed by trading-day-of-year (0 to 252), in a persistent matrix with one row per year. Bars where the VIX returns no data, such as chart history predating 1990, are skipped.
2. On the last bar, completed years are screened for eligibility: a year must contain at least the minimum number of observations (default 200 trading days) to enter any calculation. The current year is always excluded from the historical pools.
3. The seasonal average is computed per trading-day index as the arithmetic mean of the normalized values of all eligible years at that index.
4. Analog ranking begins once the current year has at least the minimum elapsed days (default 10). For each eligible year, the script computes the root mean square error between that year's normalized path and the current year's normalized path over the trading days elapsed so far, skipping missing pairs. Years are ranked by ascending RMSE and the closest N (default 10) are selected. The analog composite is the per-day mean of the selected years across the full 253-day span, including days the current year has not yet reached.
5. Both seasonal lines are drawn as polylines anchored to bar time: actual bar times for elapsed days, then projected dates stepped one calendar day at a time with weekends skipped for the remainder of the year.
6. The current-year line is drawn over elapsed days only. By default it is linearly rescaled so that its year-to-date range maps onto the vertical range of the two seasonal curves, emulating a second axis within a single-scale pane. A label at its last point shows the true unrescaled year-to-date percentage.
7. A table in the top right lists the selected analog years and their RMSE scores.
Ranking is recomputed on every update, so the analog set can rotate as the current year develops.
█ HOW TO USE
Apply the indicator to any daily chart of a symbol that trades on the US equity session calendar, such as an S&P 500 index chart or the VIX itself. The pane always displays VIX seasonality regardless of the chart symbol, which allows the seasonal context to sit directly beneath the index you are analyzing. The logic counts trading days within calendar years using the chart's bars, so it is designed for the daily timeframe only; other resolutions will produce meaningless day indexing. VIX daily history extends to 1990, so a chart with sufficient loaded history builds seasonal pools from roughly three and a half decades of complete years.
The gray line is the unconditional seasonal script: what an average year looks like. The colored composite line is the conditional version: what years resembling this one looked like, including how they finished. The red line is the current year. Divergence between the current year and the composite indicates the year is departing from its closest historical precedents; the table shows which years those precedents are and how tight the fits are (lower RMSE means closer). A rotating analog table across weeks means the current year lacks a stable historical match, which is itself information.
The projected segments beyond the current date are historical averages extended in time. They describe how past years behaved from this calendar point onward. They are not forecasts.
█ SETTINGS
• Top analog years : number of closest historical years in the composite. Default 10.
• Min trading days for an eligible year : observation floor for a year to enter any pool. Default 200.
• Min elapsed days before analog ranking : current-year data required before ranking begins. Default 10.
• Show all-year seasonal average : toggles the gray average line. Default on.
• Show top-N analog composite : toggles the composite line. Default on.
• Show current-year YTD line : toggles the current-year path. Default on.
• Rescale YTD onto seasonal range (RHS-style) : maps the current-year line onto the seasonal
curves' vertical range for readability. Default on.
• Project remainder of year : extends the seasonal lines to year end. Default on.
• Show analog year table : toggles the analog list with RMSE scores. Default on.
• Average color , Analog composite color , YTD color : line colors.
• Line width : width of all three lines. Default 2.
█ WHAT MAKES IT ORIGINAL
Published seasonality scripts typically plot a single all-year average. This script adds a similarity-ranked analog layer computed entirely on the chart: it maintains a full year-by-trading-day matrix of normalized paths, scores every eligible historical year against the current year by RMSE on each update, and averages only the closest matches, so the composite is conditional on how the current year has actually traded rather than on the calendar alone. The construction is fully disclosed and parameterized, including the similarity metric, the selection count, and the eligibility gates. The forward projection is drawn with time-anchored polylines so both seasonal paths extend beyond the last bar to year end, and the current-year line uses an optional range-mapping transform to keep all three curves readable on a single pane scale, with a label preserving the true value.
█ NOTES / LIMITATIONS
• Daily timeframe only. The trading-day indexing that underlies every calculation assumes one bar
per trading day.
• The analog set is re-ranked on every recalculation using the current year's realized path. The
composite line therefore changes shape as the year develops, including its already-drawn portion.
This is inherent to the method, and it means the line you see today is not the line you would
have seen a month ago. Treat it as a conditional historical average, not a signal history.
• The pane always shows the VIX. The chart symbol supplies only the bar grid and timeline.
• Trading-day indexing follows the chart symbol's bars. Chart symbols whose sessions differ from
the US equity calendar, such as symbols with weekend bars or non-US holiday schedules, will
misalign the day indexing. Use a chart symbol on the US equity session.
• The seasonal pools depend on the chart's loaded bar depth and on VIX data availability from
1990. A chart with shallow history averages over fewer years, and less than two complete years
of overlap draws no seasonal lines at all. Chart bars predating 1990 contribute nothing.
• Partial first years, and any year below the observation floor, are excluded by the eligibility
gate.
• Years are capped at 253 trading days; any bars beyond that index within a year are ignored.
• Forward projection steps calendar days and skips weekends but not exchange holidays, so
projected dates drift a few days long by December. Alignment between curves is by trading-day
index and is unaffected.
• With rescaling on, the pane axis is literal for the seasonal lines only. The current-year line's
axis position is a range mapping; read its true value from the label at its endpoint. Early in
a year, a small realized range makes the rescaled line visually exaggerated.
• All output is drawn over the current calendar year plus its projection. The pane is empty over
prior history, which is expected: prior years are inputs to the curves, not drawn objects.
• The script draws with polylines, a label, and a table only, and declares no plot series, so the
pane scale derives from the drawings.
• Nothing in this script is validated as predictive. Both curves are descriptive averages of
historical paths. Gösterge

Fibonacci Trend Continuation Signals [AlgoAlpha]🟠 OVERVIEW
Fibonacci Trend Continuation Signals maps Fibonacci retracement levels inside an adaptive trend structure. It combines a smoothed price midline, volatility-based outer bands, and Fibonacci ratios to show where price is trading within the current bullish or bearish trend range.
The trend changes only when price moves beyond a volatility-adjusted outer band. Once a direction is active, the script projects 0.236, 0.382, 0.500, 0.618, and 0.786 levels between the active outer band and the midline. This creates a moving Fibonacci framework that adjusts as price and volatility change.
Continuation signals appear when price closes back through an enabled Fibonacci level in the direction of the active trend. This lets traders use retracements within an established trend instead of treating each Fibonacci level as a fixed reversal point.
🟠 CONCEPTS
Trend Midline — An exponential moving average of closing price. It forms the central reference for the trend structure and the endpoint of the Fibonacci range.
Volatility Bands — Outer boundaries placed above and below the midline using a smoothed measure of the high-to-low price range. Price crossing an outer band changes the active trend direction.
Fibonacci Trend Range — The distance between the active outer band and the midline. In bullish trends, levels are measured upward from the lower band. In bearish trends, they are measured downward from the upper band.
Fibonacci Levels — The 0.236, 0.382, 0.500, 0.618, and 0.786 ratios divide the active trend range into retracement zones that move with the underlying trend structure.
Continuation Signal — A bullish signal occurs when price closes upward through an enabled Fibonacci level during a bullish trend. A bearish signal occurs when price closes downward through an enabled Fibonacci level during a bearish trend.
🟠 FEATURES
Adaptive Fibonacci Profile — Displays five configurable Fibonacci levels between the active volatility band and trend midline.
Trend Continuation Signals — Shows bullish and bearish markers when price closes through an enabled Fibonacci level in the direction of the active trend.
Current Level Labels — Shows the current price value of each enabled Fibonacci level at the latest bar.
Trend Change Markers — Marks the Fibonacci structure when a new bullish or bearish trend begins.
🟠 HOW TO USE
Identify the active trend structure — A bullish structure projects Fibonacci levels from the lower band toward the midline, while a bearish structure projects them from the upper band toward the midline.
Watch price during a retracement — Use the displayed Fibonacci zones to see how far price has moved through the active trend range.
Look for continuation signals — An upward triangle shows that price crossed above an enabled Fibonacci level during a bullish trend. A downward triangle shows the equivalent bearish close below a level.
Compare signals with price structure — Use nearby swing points, support, resistance, or your existing confirmation method before acting on a continuation signal.
Adjust Midline Length, Pivot Length, and Band Width to control how quickly the trend framework responds to price and how wide its outer boundaries are.
Enable or disable individual Fibonacci levels to keep only the retracement levels relevant to your method.
🟠 CONCLUSION
Fibonacci Trend Continuation Signals combines volatility-based trend detection with adaptive Fibonacci retracement levels and directional continuation signals. It gives traders a moving reference for measuring pullbacks and identifying closes that resume movement in the active trend direction. Gösterge

Time-Based Range Sweep (DTR)SUGGESTED TITLE
Time-Based Range Sweep (TBRS)
SHORT TITLE
TBRS
---
OVERVIEW
Time-Based Range Sweep builds a price range from two user-defined intraday time windows, waits for price to sweep one side of that range after the window closes, and then looks for a specific reversal confirmation before marking an entry, a stop area, and a target area.
The idea behind it is simple: a fixed block of time produces a high and a low. Once that block is finished, those two levels sit on the chart as reference liquidity. Price often runs one side of them before moving in the opposite direction. This script automates the bookkeeping around that sequence — drawing the range, flagging which side was swept, waiting for a confirmation you select, and projecting the resulting levels forward so you are not measuring them by hand.
Each range is independent and each range produces at most one signal per day.
---
HOW IT WORKS
1. RANGE CONSTRUCTION
Two session windows can be enabled independently. Both are interpreted in a timezone you choose (default America/New_York), so the ranges stay anchored to the same clock time regardless of your chart's display timezone.
While a window is open, the script tracks the running highest high and lowest low of every bar inside it, drawing a live box and two solid boundary lines that expand as the window develops. When the window closes, the box is finalized, and dotted or dashed projection lines carry the high and the low forward for a configurable number of bars. Optional labels mark the range title, TBR RANGE HIGH, and TBR RANGE LOW.
Defaults are 01:12–02:12 and 08:12–09:12 New York time, but both windows are fully editable — any two intraday blocks can be used.
2. SWEEP DETECTION
Sweep logic only becomes active after the window has closed. The first bar that trades beyond either boundary is registered as the sweep for that range:
- A bar trading below the range low is a low sweep, which sets a long bias.
- A bar trading above the range high is a high sweep, which sets a short bias.
"Sweep must reclaim range" is on by default. With it enabled, a wick through the level is not enough — the bar must also close back inside the range for the sweep to count, which filters out bars that simply break the level and keep going. Turning it off accepts any penetration of the boundary.
Only the first sweep after each window is used. Once a side has been taken, the range stops looking for further sweeps until the next session.
3. CONFIRMATION MODELS
After a sweep is registered, the script waits for one of three confirmations. You pick which one is active, or choose Any Confirmation and take whichever appears first.
3 Candle Reversal — After the sweep, the script counts consecutive bars closing against the anticipated direction (down closes following a low sweep, up closes following a high sweep) and records the high and low of that sequence. The counter resets if the run is broken before it reaches three. Once at least three have accumulated, the signal fires on a close beyond the sequence extreme — above the sequence high for longs, below the sequence low for shorts.
CISD — A close through the three-bar structural extreme: above the highest high of the previous three bars for longs, below the lowest low of the previous three bars for shorts.
IFVG — A displacement gap in the direction of the bias. For longs, the current bar's low prints above the high from two bars back; for shorts, the current bar's high prints below the low from two bars back.
All confirmations are evaluated on confirmed bar closes, so signals do not appear and disappear intrabar.
4. STOP PLACEMENT
When a signal fires, the stop reference is the most recent confirmed swing pivot that formed at or after the sweep bar — a pivot low for longs, a pivot high for shorts. Pivot strictness is set by the left and right bar inputs.
Because a confirmed pivot requires a fixed number of bars on both sides, fast setups can trigger before one exists. In that case the script falls back to the lowest low or highest high over a configurable lookback. A tick buffer is then applied beyond whichever reference was used.
5. PROJECTION
Three objects are drawn forward from the confirmation bar for a set number of bars:
- Entry level — a horizontal line at the confirmation close, labeled with which confirmation produced it.
- Stop zone — a shaded area between the entry and the calculated stop.
- Target zone — a shaded area between the entry and the opposite side of the range. A long that came from a low sweep targets the range high; a short that came from a high sweep targets the range low.
The target zone is a reference for the measured objective of the setup, not a projection of where price will go.
---
SETTINGS
SESSIONS
- Show London range / Show New York range — enable each window independently.
- Range time — the time window for each range.
- Range label — text shown in the center of each finished box.
- Session timezone — IANA timezone used to interpret both windows.
- Projection bars — how far entry, stop, and target objects extend.
- Extended range line bars — how far the dotted or dashed boundary lines extend past the window.
SWEEP AND CONFIRMATION
- Confirmation mode — 3 Candle Reversal, IFVG, CISD, or Any Confirmation.
- Sweep must reclaim range — require a close back inside the range for a valid sweep.
- Pivot left bars / Pivot right bars — swing strictness for stop placement.
- Stop fallback lookback — used when no confirmed pivot exists between sweep and entry.
- Stop buffer ticks — additional distance beyond the stop reference.
VISUALS
- Entry markers with independent long and short colors and five size options.
- Toggles for target and stop zones, range labels, entry level, and entry type text.
- Label vertical offset and label size.
STYLE
- Colors for range fill, range border, target zone, stop zone, and entry level.
- Extended line style: dotted or dashed.
---
HOW TO USE IT
Set both windows to the time blocks you actually trade and confirm the session timezone matches how you think about those times. The defaults are New York time, so a window entered as 01:12–02:12 is 01:12 New York regardless of where your chart is set.
Intraday timeframes are required, and the timeframe should divide cleanly into the window length so the range is built from a sensible number of bars. A 60-minute window on a 1, 3, 5, or 15 minute chart works; the same window on a 4-hour chart does not.
Start with a single confirmation mode rather than Any Confirmation. The three models have different characteristics: 3 Candle Reversal is the slowest and requires a developed base, CISD is the most immediate, and IFVG requires visible displacement. Any Confirmation takes whichever fires first, which will usually be the fastest of the three.
Tune the pivot inputs to your timeframe. Wider pivot settings produce more meaningful swing stops but increase how often the fallback lookback is used instead.
---
ALERTS
Five alert conditions are available:
- London range confirmation long
- London range confirmation short
- New York range confirmation long
- New York range confirmation short
- Any range confirmation signal
Each fires on the close of the confirmation bar and includes ticker and interval placeholders.
---
NOTES AND LIMITATIONS
- One signal maximum per range per day. Once a range has produced a confirmation, it stops evaluating until the next session.
- Range boxes and boundary lines update live while a window is open. Signals, zones, and entry levels are drawn on confirmed closes only.
- Drawing objects are capped at 500 boxes, lines, and labels. On very long chart histories the oldest objects will be removed by TradingView automatically.
- Sessions are evaluated with the chart's own bars, so illiquid symbols with gaps inside a window may produce ranges built from very few bars.
- Stop and target areas are geometric references derived from the range and recent structure. They are not orders, not backtested results, and carry no assumption about outcome.
---
ORIGINALITY
This is an original implementation written from scratch in Pine Script v6. The individual concepts it draws on — session ranges, liquidity sweeps, change in state of delivery, and inverse fair value gaps — are widely discussed public trading concepts, and no claim of ownership is made over them. What this script contributes is the specific pipeline that links them: an arbitrary time-defined range, an optional reclaim-filtered first sweep, a selectable confirmation stage, a pivot-based stop with a lookback fallback, and a target anchored to the opposite range boundary — all handled per-session with independent state for two windows.
---
DISCLAIMER
This indicator is provided for educational and informational purposes. It does not produce financial advice, and nothing it draws should be treated as a recommendation to buy or sell. Signals are historical observations of price behavior and do not predict future movement. Test any tool thoroughly on your own instruments and timeframes before risking capital, and manage your own risk.
Gösterge

Square Bar/Calendar Count Verticals (Gann)█ OVERVIEW
Square Bar/Calendar Count Verticals plots vertical time lines on the chart at squared counts measured from user-selected pivot anchors, in two independent units: trading bars and calendar days. The thesis, drawn from W.D. Gann's time-counting methods, is that elapsed time from a significant price extreme reaching a perfect square (81, 100, 121, 144, 289, 361) marks a date of elevated probability for a trend pause, inflection, or termination, and that the strongest of these dates occur where a bar-count square and a calendar-day square coincide.
█ HISTORY / BACKGROUND
Counting time in squares from major highs and lows originates with W.D. Gann, who treated time and price as interchangeable quantities and used the squares of small integers as recurring measures of trend duration. Constance Brown's published work on Gann analysis demonstrates the method in modern markets: bar counts of 9², 10², 11², and 12² projected from a swing extreme, a 17² calendar-day count from a significant low, repeats of the 144 count monitored from key pivots, and the square of 19 tracked as a separate helix cycle. This indicator implements that specific working set as a chart tool.
The conceptual basis is that these verticals are time factors only. They carry no directional information. Their value is realized when a squared count expires while price is simultaneously at a level identified by independent price-based methods.
█ HOW IT WORKS
1 — The user supplies a comma-separated list of roots (default 9,10,11,12,17,19). At the first bar the script parses the list and computes the square of each root.
2 — Each of up to three anchors is a timestamp selected on the chart. The anchor is resolved to a bar by containment: the anchor bar is the first bar whose closing time exceeds the anchor timestamp. This makes resolution independent of exchange timezone and safe when the timestamp falls on a weekend or holiday.
3 — For every anchor and every square s, the script computes two targets:
- a trading-bar target at anchor bar index + s (bar unit follows the chart timeframe), and
- a calendar-day target at anchor time + s days (independent of timeframe).
With inclusive counting enabled (default) the anchor bar or anchor day is counted as 1, so targets land at s minus 1 units after the anchor.
4 — When the root 12 is present and the repeat setting exceeds 1, additional verticals are drawn at 288, 432, and further multiples of 144, in both units, up to the chosen repeat count.
5 — On the last bar the script draws the verticals once: solid lines in bar-index coordinates for bar squares (projected up to roughly 490 bars into the future) and dashed lines in time coordinates for calendar squares (projectable to any future date). Each line carries a label naming the root, the square, and the unit. The anchor itself is marked with a heavier line and a date label.
6 — A status table reports, per active anchor, the elapsed count in both units and the next upcoming square in each unit, with the bars remaining and the calendar date.
7 — Three alert conditions fire on the bar that completes a bar-count square, the bar that contains a calendar-day square date, and the bar on which both occur together.
█ HOW TO USE
The verticals are appointments in time, not signals. The intended workflow:
- Anchor each slot on a significant swing extreme. Significance is an analytical judgment; the script deliberately performs no automatic pivot detection.
- Validate an anchor by inspecting the verticals already in the past. If historical squared counts from that anchor align with real pivots, the anchor is worth keeping. If they align with nothing, move or disable it.
- When price approaches an upcoming vertical, consult independent price analysis. A squared count expiring while price sits at a level derived from other methods is the condition of interest. A squared count expiring in open space warns at most of a pause or stall.
- The highest-weight event this tool can flag is the third alert: a bar square and a calendar square completing on the same bar.
Bar counts are timeframe-relative by design: the same anchor produces different bar-square dates on daily and weekly charts, and both are legitimate counts on their own timeframe. Calendar-day counts are identical on every timeframe. The tool is designed for daily and weekly swing analysis, where Gann's counts were applied; on intraday charts the calendar counts remain valid but bar counts become session-dependent.
Visual elements: solid vertical lines are trading-bar squares, dashed vertical lines are calendar-day squares, the heavy line with a date label is the anchor, labels above price name bar counts, labels below price name calendar counts, and the top-right table summarizes elapsed and upcoming counts.
█ SETTINGS
- Square roots: comma-separated integer roots to square. Default 9,10,11,12,17,19.
- Inclusive count: anchor bar or day counts as 1 when enabled. Default on.
- Trading-bar squares: show or hide bar-count verticals. Default on.
- Calendar-day squares: show or hide calendar-count verticals. Default on.
- 144-cycle repeats: number of 144 multiples to project; 1 disables repeats. Default 3.
- Anchor 1, 2, 3: enable flag, pivot timestamp (Anchor 1 prompts for a chart click on load), and line color per anchor. Defaults: Anchor 1 enabled, Anchors 2 and 3 disabled.
- Status table: show or hide the summary table. Default on.
- Label size: tiny, small, or normal. Default small.
█ WHAT MAKES IT ORIGINAL
Most Gann-count scripts plot a single count series in a single unit. This implementation differs in three specific ways. First, it runs trading-bar and calendar-day counts in parallel from the same anchor and explicitly detects their coincidence, which is the confluence condition emphasized in the source methodology rather than an afterthought. Second, anchor resolution uses closing-time containment instead of naive date equality, so anchors survive timezone differences, weekends, and holidays without silently shifting by one bar. Third, projection is handled correctly per unit: calendar squares are drawn in time coordinates and can therefore mark dates arbitrarily far in the future, while bar squares are drawn in bar coordinates and are projected only within the platform's future-bar range, keeping both unit systems accurate to their own definition.
█ NOTES / LIMITATIONS
- Drawings are created once per script load on the last bar. As new realtime bars form, elapsed counts in the table and newly reachable verticals refresh only when the script recalculates, for example after a settings change or chart reload.
- Bar-count verticals can be projected at most about 490 bars beyond the current bar, a platform ceiling on future bar-index coordinates. Calendar-day verticals have no such ceiling.
- The script draws up to 500 lines and 500 labels. Many roots combined with three anchors, both units, and repeats can reach this ceiling, at which point the oldest objects are removed.
- If an anchor timestamp predates the symbol's available history, the anchor resolves to the first available bar and every count measures from there, which is unlikely to be the intended pivot.
- Bar counts depend on the chart timeframe and on the symbol's session definition. Symbols with irregular sessions or many holidays will show bar squares and calendar squares diverging substantially, which is expected behavior, not an error.
- The indicator plots time factors only. It produces no directional forecast, and no claim is made about the outcome of price at any vertical. Gösterge

Index Peak Dispersion█ OVERVIEW
Index Peak Dispersion plots, in a separate pane, two normalized series computed across a configurable universe of up to twelve equity indexes: the calendar-day dispersion of their all-time-high dates, expressed as a percent of a topping window, and the share of indexes that printed a fresh all-time high within a short recent window. The thesis is that healthy advances register all-time highs across indexes nearly simultaneously, while major distributive tops fragment, spreading index peak dates across weeks or months.
█ HISTORY / BACKGROUND
The concept descends from the non-confirmation principle of Dow Theory as developed by Charles Dow, William Hamilton and Robert Rhea, in which a new high in one average unaccompanied by a new high in another warns that the trend is losing sponsorship. Classic non-confirmation is measured in the price domain: one index fails to exceed its prior peak while another does.
Market historians and technicians, including Robert Prechter, have documented a related phenomenon in the time domain: at major tops, the final all-time highs of the major indexes scatter across the calendar rather than clustering. At the 2000 top, the Dow Industrials peaked in January, the S&P 500 and NASDAQ Composite in March, and the NYSE Composite in September. At the 2007 top, the Dow Jones Composite peaked in July while the Dow Industrials and S&P 500 peaked in October. This script converts that qualitative observation into a mechanical, reproducible statistic.
█ HOW IT WORKS
The script performs the following steps on each bar:
• For each of up to twelve enabled symbols, one same-timeframe request.security() call evaluates a function inside the requested symbol's context. The function maintains a running maximum of closing prices over the symbol's loaded history and records the timestamp of the bar on which that maximum was last exceeded. This running maximum is point-in-time by construction: no future data enters the calculation, and lookahead is off.
• On the chart symbol, each recorded timestamp is converted to an age in calendar days: current bar time minus the all-time-high time, divided by the number of milliseconds in a day.
• Each enabled index with data is classified. An age at or below the fresh window makes it Fresh. An age at or below the topping window makes it part of the in-window set. An age beyond the topping window makes it Stale.
• When the in-window set contains at least the minimum required count of indexes, the dispersion span equals the maximum in-window age minus the minimum in-window age, in calendar days. The plotted dispersion value is that span divided by the topping window length, times 100. When the in-window count is below the minimum, the dispersion plot returns na.
• The participation value equals the count of Fresh indexes divided by the count of enabled indexes with data, times 100, plotted as columns.
• The fractured top condition is true when the dispersion value is at or above the warning threshold while at least one index is Fresh. The pane background is shaded on those bars, and an alert fires on the first bar of each new occurrence. A second alert fires when every enabled index with data is simultaneously Fresh, which marks a synchronized advance, the opposite condition.
• On the last bar, an optional table lists each index with its all-time-high date, age in days and classification, plus summary counts and the raw span in days.
█ HOW TO USE
The script is designed for the 1D timeframe. The running all-time high is intended to operate on daily closes, and both windows are specified in calendar days, so daily resolution matches the granularity of the logic.
In plain terms, the blue columns answer one question: how many of the enabled indexes hit a record high this week? The red line answers another: how spread out in time are everyone's record highs? In a strong market, the indexes peak together, so the columns are tall and the line stays low. At major tops, the market tends to fall apart in slow motion: one index peaks, then months later another, and by the time the last index prints its final record, several others stopped making records long ago. Each new high is carried by fewer indexes, so the columns thin out while the line climbs. The shaded background marks the combination of both: the market is still printing record highs, but the set of indexes confirming them has been shrinking for months. That is the structure documented at the 2000 and 2007 tops. The same combination also appears during rotation phases that resolve higher, so treat it as a statement that conditions resemble past major tops, not as an instruction to act.
Read the two plotted series together. Low dispersion with high participation describes a synchronized advance in which the enabled indexes are registering highs together. Rising dispersion while some indexes continue to print fresh highs describes fragmentation: leadership is narrowing and earlier leaders have stopped confirming. The shaded background marks bars on which the dispersion value is at or above the dashed threshold line while at least one fresh high exists, the specific combination in which fragmentation is present at a live high rather than in an established downtrend.
The table gives the attribution behind the numbers: which indexes are Fresh, which remain inside the topping window, and which have gone Stale, along with each all-time-high date. Stale entries are non-confirmations older than the topping window and are deliberately excluded from the span so that a single long-dormant index does not saturate the statistic.
The condition is a warning context, not a timing trigger. It identifies an environment consistent with historical distributive tops. It does not predict the date or the existence of a decline.
█ SETTINGS
• Index universe, twelve slots, each with an enable checkbox and a symbol field. Defaults: DJI, DJT, DJU, DJA, SPX, NDX, IXIC, NYA, RUT, SOX, MID, SPXEW. All twelve are enabled by default. Any slot can be repointed to another symbol or disabled.
• Fresh high window, calendar days. Default 7. An index whose all-time high printed within this many days counts as Fresh.
• Topping window, calendar days. Default 378. An index whose all-time high printed within this many days participates in the dispersion span. Older highs are classified Stale.
• Dispersion warning threshold, percent of topping window. Default 25. The dashed reference line and the threshold for the fractured top condition.
• Minimum in-window index count for a valid span. Default 4. Below this count the dispersion plot returns na, which prevents a span computed from too few indexes.
• Show status table. Default on.
• Table position. Default Top right.
█ WHAT MAKES IT ORIGINAL
Breadth and non-confirmation tools on this platform generally measure the price domain: divergences between an index and an internal line, counts of components above a moving average, or new-high and new-low tallies within one exchange universe. This script instead measures the time domain across whole indexes. It reduces the peak-date scatter of a user-defined index universe to a single bounded statistic, the in-window span of all-time-high ages, and pairs it with a participation series so that fragmentation is only flagged while a high is live. The classification into Fresh, in-window and Stale, with the Stale exclusion and the minimum-count validity gate, is what allows the scatter of a historical topping process to be plotted as one continuous, comparable series across eras.
█ NOTES / LIMITATIONS
• The running all-time high is computed only over the bars loaded for each requested symbol. Symbols with short available history, and the early portion of any chart, understate the true age of the all-time high. Treat the plot as reliable only after all enabled symbols have substantial loaded history.
• The logic is designed for the 1D timeframe. On intraday charts the running maximum operates on intraday closes and the calendar-day windows lose their intended granularity. On weekly or monthly charts a fresh window shorter than one bar cannot register.
• All request.security() calls run on the chart timeframe with lookahead off. Values on the developing bar update until the bar closes and do not repaint afterward.
• The script issues twelve security calls. A symbol slot that fails to resolve or returns no data is excluded from every count and appears in the table as No data.
• Ages and spans are measured in calendar days, not trading days, so weekends and holidays are included in the counts.
• The warning threshold is expressed as a percent of the topping window. Changing the topping window changes the day-equivalent of the same percent threshold.
• The dispersion plot returns na whenever fewer than the minimum required indexes have an all-time high inside the topping window.
• The status table renders on the last bar only. Gösterge

Gösterge

ICT MacrosThe ICT macro windows as first-class chart objects: each window bracketed by
a vertical line at its start and one at its end, the pair joined by a
captioned rectangle on a strip at the chart's edge. The caption carries the
window's name with a countdown under it -- to the open while the window is
ahead, of what is left once inside. Split out of Time-Based Vertical Lines
the way the NinjaTrader pair is: that tool keeps the plain time lines, this
one owns the windows, and the two share a chart without double-booking an
edge -- the band strip defaults to the bottom and the line captions to the
top.
The slots are the full standard macro map, in New York time. The rule is
:50 to :10 around every top of the hour -- twenty minutes straddling it --
except the final trading hour, which replaces its window with the Final
Hour (15:15 - 15:45) and Market On Close (15:45 - 16:00) specials; the
settlement portion (15:50 - 16:00) rides inside MOC as its own optional
slot. That gives one row per window from the 18:50 Asia macro around the
clock to the close, grouped by the session each falls in. The playbook
trades the six regular-hours windows plus the Final Hour and MOC, so
exactly that set starts enabled; every other session's windows are carried
but off. The 08:30 news release and the opening ranges are separate
events, not macros -- the 08:30 line lives in Time-Based Vertical Lines.
Features:
- 24 macro slots, one row each: on/off, start and end as HH:MM, label
- Empty label captions the band with the window's times; the Final Hour,
MOC and Settlement windows come pre-labeled
- Countdown on its own line under the window's name
- A window may cross midnight (23:50 - 00:10 does); it stays keyed to the
day it starts on
- Bands and captions ride a strip at the bottom (or top) edge, set clear
of the bars by an adjustable gap
- Bracket lines can switch off, leaving only the bands on the strip
- Every window drawn for the whole day, future ones included
- Time zone support and historical-days control
Notes:
- Times are read as HH:MM in the selected zone. An entry that is not a
valid time is skipped, with a note in the Pine Logs pane; an end at or
before the start means the window runs into the next day.
- The strip hangs off the visible bars, not the panel edge: a script only
knows prices, never pixels, so it makes room by having the chart's
auto-scale give up range under (or over) the candles. Pine has no way to
read the viewport's own bounds, so the strip cannot be pinned to the
panel edge the way a platform-native tool could pin it.
- A window later today sits past the last bar. TradingView draws at most
500 bars past the last one, and the chart only reveals as much of that
as the right margin allows (Chart settings > Appearance).
Gösterge

Gösterge

Gösterge

ZENKO Session FVG# ZENKO FVG — Session-Based Fair Value Gap
ZENKO FVG is a clean Fair Value Gap (FVG) indicator designed to help traders identify price imbalances within selected trading sessions while keeping the chart simple and easy to read.
The indicator was developed around the ZENKO trading approach, where Fair Value Gaps are used as potential areas of interest rather than standalone entry signals.
## Core Concept
A Fair Value Gap represents an imbalance created during strong price displacement. These areas may become relevant when price later revisits them as the market searches for liquidity or rebalances inefficient price delivery.
ZENKO FVG automatically detects these imbalances and displays them directly on the chart.
## Key Features
• Automatic Bullish & Bearish FVG Detection
Identifies three-candle Fair Value Gap structures automatically.
• Session-Based Filtering
Allows traders to focus on FVGs formed during selected trading sessions such as Asia and London, reducing unnecessary zones from outside the intended trading period.
• Clean FVG Zones
Bullish and bearish FVGs are displayed as clear zones without overcrowding the chart.
• FVG Midpoint
Each FVG can display its 50% equilibrium level, providing an additional reference point when price returns to the imbalance.
• Customizable Display
Users can adjust FVG colors, zone appearance, session settings and other visual parameters according to their chart preference.
• Multiple Timeframe Application
The indicator can be applied across different chart timeframes depending on the trader's execution model.
## ZENKO Trading Approach
ZENKO FVG is primarily designed to help locate higher-quality areas of interest.
A typical ZENKO workflow may involve:
Higher-Timeframe FVG → Price returns into the area → Liquidity reaction or sweep → Lower-timeframe imbalance / IFVG confirmation → Execution.
For example, a trader may identify an important FVG on M15 and then move to lower timeframes such as M1–M4 to look for additional confirmation.
The indicator itself does not determine whether a trade should be taken. Market structure, liquidity, displacement, session context and risk management should still be considered.
## Purpose
The main objective of ZENKO FVG is simple:
**Reduce chart noise and make relevant Fair Value Gaps easier to identify.**
Instead of manually marking every imbalance, traders can use the indicator to quickly visualize FVG locations and focus their attention on price action around those areas.
## Important
ZENKO FVG is an analytical tool and should not be treated as an automated buy or sell system.
Fair Value Gaps do not guarantee that price will react, reverse or continue from a specific level. Traders should combine the indicator with their own market analysis, confirmation criteria and risk-management rules.
Past market behavior does not guarantee future results.
**ZENKO — Find the imbalance. Wait for confirmation. Execute with discipline.** Gösterge

ATK / DEF MTF Analysis Chameleon Combo SessionATK / DEF MTF Analysis Chameleon Combo Session is a multi-timeframe market observation and visualization tool designed to examine the broader market environment through several independent analytical dimensions.
Unlike traditional single-indicator analysis, this framework combines **MTF Process, MTF Radar, Test Depth Matrix, MTF Direction, and an independent Chameleon MA** into one structured dashboard.
### Core Components
**MTF Process**
Observes changes in higher-timeframe ADX and RSI conditions and classifies the current market process into different states, from accelerating conditions to sideways or declining conditions.
**MTF Radar**
Combines ADX, RSI, and relative ATR to describe the current level of market activity and volatility.
**Test Depth Matrix**
Divides the selected MTF price range into five relative zones:
* Deep Water
* Mid Water
* Shallow Water
* Shallows
* Dry Zone
This provides a visual representation of where the observed market environment is positioned within its selected range.
**MTF Direction**
Uses EMA structure together with DI+ / DI− relationships to classify the directional condition of the selected timeframe.
**Chameleon MA**
The Chameleon component is independently configured and is **not tied to the MTF timeframe setting**. Its moving-average line changes visual state according to its position within the Test Depth Matrix, creating a dynamic zone-based visual layer.
**MTF Final Result**
Combines the independent MTF Process, Radar, Test Depth, and Direction classifications into a normalized composite score for observing the overall market state.
### Multi-Level Market Observation
The framework separates the market into different analytical levels rather than relying on a single indicator reading.
It allows the user to observe:
**Direction → Process → Activity → Depth → Chameleon State → Composite Market State**
The purpose is to provide a broader contextual view of market conditions and how different analytical dimensions interact with each other.
### User Configuration
The indicator is intentionally configurable.
Users must define their own:
* MTF Timeframe
* Chameleon MA Period
* Test Depth Zone Period
* Display settings
The Chameleon parameters are independent from the MTF configuration, allowing the two analytical layers to be adjusted separately.
Different parameter settings can produce different market classifications, so there is no single configuration intended for all symbols or market conditions.
### Important
This indicator is designed **only for market observation, analysis, and visualization**.
It does not provide tadn recommendations, ent or eit instructions, fiial advice, or forts.
The displayed scores and classifications are mathtical representations based on market data and use-selected parameters.
The indicator does not determine what action should be taken.
Use are responsible for selecting and configuring the relevant parameters for their own analysis.
Gösterge

Gösterge

EMA/SMA Classics V1.0 by SRTEMA/SMA Classics V1.0 by SRT
The EMA/SMA Classics indicator was designed to answer one simple question:
"Which side of the market currently has the structural advantage?"
Instead of flooding the chart with buy and sell arrows, this indicator focuses on market structure, trend alignment, and high-quality price action, allowing traders to make their own execution decisions with greater confidence.
Whether you trade Forex, Indices, Commodities or Crypto, this indicator combines multiple market concepts into a clean workflow while remaining highly configurable through both EMA and SMA combinations.
What This Indicator Includes
• Flexible EMA / SMA Engine
Unlike traditional moving average indicators that are locked to one MA type, every moving average in this indicator can independently be configured as either:
EMA
SMA
Default settings:
MA 1 : 7
MA 2 : 40
MA 3 : 150
MA 4 : 200
You may use the default configuration or customise the periods to fit your own trading methodology.
• Dynamic Moving Average Stack Detection
The indicator continuously evaluates whether the visible moving averages are properly stacked.
Bullish Stack
Fast MA > Medium MA > Slow MA
Bearish Stack
Fast MA < Medium MA < Slow MA
When the moving averages lose their proper order, the market is treated as neutral instead of forcing a directional bias.
This helps reduce many false trend signals that occur during consolidations.
• ATR-Based MA Spacing Filter
One common problem with MA strategies is entering when all moving averages have already compressed together.
This indicator measures the spacing between moving averages using ATR.
When the moving averages become too compressed, trend quality deteriorates.
The spacing filter helps identify these lower-quality environments before momentum fully develops.
• Ladder Structure
One of the core concepts inside this indicator is the Ladder System.
Instead of only observing moving averages, the indicator also evaluates the market using multiple dynamic support and resistance structures.
Resistance
R9
R40
R70
R100
R150
Support
S9
S40
S70
S100
S150
These levels automatically update with market structure and are used to generate an additional Ladder Bias.
When both the moving averages and Ladder Bias agree, market structure is generally stronger than relying on moving averages alone.
• Flush Dot System
The indicator displays visual Flush Dots beneath or above candles whenever trend alignment exists.
Small Green Dot
Bullish MA alignment.
Small Red Dot
Bearish MA alignment.
Large Green Dot
Moving Average alignment + Bullish Ladder confirmation.
Large Red Dot
Moving Average alignment + Bearish Ladder confirmation.
The larger dots represent stronger structural agreement across multiple components.
• KeyBar Detection
The indicator automatically identifies two important price action patterns.
Engulfing Bars
Bullish Engulfing (EBull)
Bearish Engulfing (EBear)
These are filtered using ATR and minimum body size to avoid insignificant candles.
Long Tail Bars (LTB)
Bullish Long Tail Bars
Bearish Long Tail Bars
These identify strong rejection candles with defined tail proportions and body positioning.
An optional body-size filter is also available for traders wanting stricter candle selection.
Daily Pivot (DP)
Automatically plots the previous day's pivot.
Useful as:
Dynamic support
Dynamic resistance
Intraday reaction level
Weekly Pivot (WP)
Automatically plots the previous week's pivot.
Many swing traders use weekly pivots as major reaction zones throughout the trading week.
RSI Momentum Alerts
The indicator includes two independent RSI event types.
RSI Breakout
Signals when RSI breaks into extreme momentum territory.
Bullish breakout
Bearish breakout
RSI Retracement
Designed to identify momentum continuation after RSI exits an extreme condition while confirming with the RSI Moving Average.
These alerts can be useful for traders looking to participate after momentum has begun to recover instead of chasing extremes.
Information Panel
A compact table summarises the current market condition.
Displays:
Moving Average Bias
Ladder Bias
Long Tail Bar presence
This provides a quick snapshot without needing to inspect every component individually.
How To Use This Indicator
This indicator is not designed to generate automatic Buy or Sell signals.
Instead, it acts as a Market Context Indicator.
A typical workflow may look like this:
Step 1
Observe whether the moving averages are properly stacked.
A clean stack generally indicates directional order.
Step 2
Check whether the Ladder Bias agrees with the moving averages.
When both align, the market structure is generally stronger.
Step 3
Watch for KeyBars.
Examples include:
Bullish Engulfing
Bearish Engulfing
Bullish Long Tail Bar
Bearish Long Tail Bar
These often represent meaningful reactions within the prevailing structure.
Step 4
Use Daily Pivot and Weekly Pivot as areas where price may react.
These levels should be considered areas of interest rather than guaranteed reversal zones.
Step 5
Monitor RSI alerts for momentum shifts.
Momentum signals are generally more useful when they occur in the same direction as the prevailing market structure.
Suitable Timeframes
Although the indicator can be applied to multiple chart intervals, it generally performs best on:
M15
M30
H1
H4
Daily
The moving averages, Ladder System, and KeyBar detection adapt naturally across different timeframes.
Difference Between EMA/SMA Classics & H1 EMA/SMA + Higher Timeframe Analysis (Classic)
Although both indicators belong to the same ecosystem, they serve different purposes.
EMA/SMA Classics
Designed as a general-purpose structural trend indicator.
Features include:
Flexible EMA/SMA stacking
Ladder System
Flush Dots
Engulfing Bars
Long Tail Bars
Daily Pivot
Weekly Pivot
RSI Alerts
It can be used on virtually any timeframe and is ideal for traders who prefer to analyse the chart directly.
H1 EMA/SMA + Higher Timeframe Analysis (Classic)
The H1 version is a significantly more advanced market context engine.
In addition to everything above, it introduces:
Dedicated H1 Bias Engine
H4 Trend Analysis
Daily Trend Analysis
Higher Timeframe Bias Aggregation
H1TF Composite Bias
Overall Market Verdict Engine
Multi-layer Bias Table
Higher Timeframe Confirmation Workflow
Rather than focusing solely on the current chart, the H1 version continuously evaluates whether multiple timeframes are aligned before presenting an overall market verdict.
If the EMA/SMA Classics indicator answers:
"What is my current chart doing?"
Then the H1 version answers:
"What is the broader market structure telling me across multiple timeframes?"
The two indicators are complementary and can be used together depending on your preferred trading workflow.
Disclaimer
This indicator is designed to assist with market structure analysis and decision-making. It does not provide financial advice or guarantee profitable trades. Always combine indicator signals with sound risk management, personal analysis, and appropriate position sizing. Gösterge
