T2-%Use a superposition of 30 avarages to stress-out trend changes (points in time where all possible frequencies that create the movment change their phase from prositive to negetive or the opposite). The indicator has one paramater that should be adjusted: 'os'.
By defult the 30 avarages that are tested range from 7 to 63 in gaps of 2. increasing the 'os' parameter moves the ranges by multiplications of 65. therefore if you add 5 indicators ontop of eachother, each scaled to left and set the os of each to another value (0,1,2,3,4) you will have a full spectum of avarages ranging from 7 to 325 in gaps of 2.
Buscar en scripts para "gaps"
GapologyThis indicator can be used as a simple measure of price action tradability. It's an alternative to volume that focuses on the gaps between close and open candle prices. The bigger the gaps, the more spread and slippage you'll get when trading.
Hersheys Volume Pressure v2Hersheys Volume Pressure gives you very nice confirmation of trend starts and stops using volume and price.
For up bars...
If you have a large price change with low volume , that's very bullish .
If you have a small price change with low volume , that's bullish .
For down bars...
If you have a large price change with low volume , that's very bearish .
If you have a small price change with low volume , that's bearish .
Look at the chart and you'll see how trends start and end with a PINCH and widen in the middle of the moves.
You can set the moving average period, 14 is the default.
Good trading!
Brian Hershey
v2 change log...
- issue with price gaps - gaps at the open were sometimes showing incorrect colors
- scaling issues - sometimes a change is so large it scales down all nearby data and renders it hard to view. Code was added to clip those huge values.
v3 what's coming next...
- better scaling - sometimes with thinly traded stocks there is too much clipping. For now increase the chart interval to correct.
FVG Diamond📊 Overview
FVG Diamond is an advanced indicator that detects three specific price action patterns: Inside Bar, Outside Bar, and Diamond Formation. Unlike basic FVG tools, it focuses on these higher-level setups for more precise analysis.
✨ Key Features
🎯 Detection of 3 Advanced FVG Pattern Types
Independent on/off toggle for each pattern
Inside FVG (Inside Bar / Harami): The body of the 3rd candle forms an inside bar relative to the 2nd candle
Outside FVG (Outside Bar / Engulfing): The body of the 1st candle forms an outside bar relative to the 2nd candle
Diamond FVG (Diamond Formation): A unique pattern that satisfies both Inside and Outside conditions
🎯 Mitigation Feature
ON: FVG boxes are automatically removed once price fully fills the FVG zone (keeps the chart clean by showing only active FVGs)
OFF: FVG boxes remain on the chart indefinitely (allows full historical review of all FVGs)
🎨 Visual Features
Color Coding: Assign unique colors to each pattern type
Transparency Control: Default 70% transparency for optimal readability
Extension Display: Extend the right edge of FVG boxes for any number of bars
⚙️ Advanced Configuration
Threshold Settings
Manual Threshold: Define a minimum gap size by percentage
Auto Threshold: Dynamically adjusts based on market volatility
Mitigation Tools
Real-Time Mitigation: Automatic removal when price fills an FVG zone
Mitigation Levels: Display filled FVG levels with dashed lines
🔔 Alerts
Notification on new Bullish/Bearish FVG detection
Notification when an FVG is mitigated (filled)
Works with all FVG types
📈 How to Use
Add the indicator to your chart
The three advanced FVG patterns will be detected and displayed automatically
Set your preferred threshold (0% = detect all gaps)
⚠️ Note: This indicator is designed as an analysis support tool. Trading decisions should be made in combination with other methods of technical and fundamental analysis.
Author: omochi_
Version: 1.0
Last Updated: September 28, 2025
ATR Regime Study [CHE] ATR Regime Study — ATR percentile regimes with clear bands, table and live label
Summary
This study classifies volatility into five regimes by converting ATR into a percentile rank over a rolling window, plotted on a standardized scale between zero and one hundred. Colored bands mark regime thresholds, while a compact table and an optional label report the current percentile and regime. The standardized scale makes symbols and timeframes easier to compare than raw ATR values. Implemented in Pine v6 as a separate pane (overlay set to false), it is a context tool to adapt tactics and risk handling to the prevailing volatility environment.
Motivation: Why this design?
Raw ATR varies with price scale and asset characteristics, which makes regime comparison inconsistent and leads to poor transfer of settings across symbols and timeframes. The core idea is to transform ATR into a percentile rank within a user-defined lookback, then map it into discrete regimes. This yields a stable, interpretable context signal that shifts slower than raw ATR while still responding to genuine volatility changes.
What’s different vs. standard approaches?
Reference baseline: Traditional ATR plots or ATR bands using fixed multipliers.
Architecture differences:
Percentile ranking of ATR within a rolling window.
Five discrete regimes with fixed thresholds at ninety, seventy, thirty, and ten.
Visual fills between thresholds plus a live table and a last-bar label.
Practical effect: You read a single normalized line between zero and one hundred with consistent thresholds. This improves cross-asset comparison and makes regime shifts obvious at a glance.
How it works (technical)
The script computes ATR over a configurable length, then converts that series to a percentile rank over a configurable number of bars. The percentile is naturally scaled and limited between zero and one hundred. That value is mapped to one of five regimes: above ninety (Extreme), between seventy and ninety (Elevated), between thirty and seventy (Normal), between ten and thirty (Calm), and below ten (Squeeze). Horizontal guide lines mark the thresholds, and fills shade the regions. A table is created once and updated on each bar to show regime definitions and highlight the current row. An optional label on the last bar displays the current percentile and regime. No higher-timeframe requests are used, so repaint risk is limited to normal live-bar fluctuation until the bar closes.
Parameter Guide
ATR length — Effect: Controls how fast ATR reacts to new ranges. Default: fourteen. Trade-offs/Tips: Increase to reduce noise in choppy markets; decrease to react faster during regime changes.
Percentile window (bars) — Effect: Number of bars used for the percentile ranking. Default: two hundred fifty-two. Trade-offs/Tips: Larger windows stabilize the percentile but slow adaptation after structural regime shifts; smaller windows adapt faster but may flip more often.
Table › Show — Effect: Toggles the regime overview table. Default: enabled. Trade-offs/Tips: Disable on constrained layouts to reduce visual clutter.
Table › Position — Effect: Anchors the table in a chart corner. Default: Top Right. Trade-offs/Tips: Choose a corner that avoids overlapping other panels or drawings.
Label › Show — Effect: Toggles a last-bar label with current percentile and regime. Default: enabled. Trade-offs/Tips: Useful for quick reads; disable if it obscures other annotations.
Reading & Interpretation
The white line shows ATR percentile between zero and one hundred. Crossing above seventy signals an elevated volatility environment; above ninety indicates event-driven extremes. Between thirty and seventy represents typical conditions. Between ten and thirty indicates calm conditions that often suit mean reversion. Below ten reflects compression, where breakout probability often increases. The colored bands visually reinforce these ranges. The table summarizes regime definitions and highlights the current state. The last-bar label mirrors the current percentile and regime for quick inspection.
Practical Workflows & Combinations
Trend following: Prefer continuation tactics when the percentile holds in the Normal or Elevated bands and structure confirms higher highs and higher lows. Consider wider stops and partial position sizing as percentile rises.
Mean reversion: Favor fades in Calm regimes within defined ranges; use structure filters and time-of-day constraints to avoid low-liquidity whipsaws.
Breakout preparation: Track compressions below ten; plan entries only with structure confirmation and risk caps, since compressions can persist.
Multi-asset/Multi-TF: Defaults travel well on daily charts. For intraday, reduce the percentile window to align with session dynamics. Combine with trend or market structure tools for confirmation.
Behavior, Constraints & Performance
Repaint/confirmation: The percentile updates during live bars and stabilizes on close; closed bars do not repaint.
security/HTF: Not used. If you add higher-timeframe aggregation externally, account for standard repaint caveats.
Resources: Declared maximum bars back is two thousand; limits for lines and labels are five hundred each. A short loop updates the table rows; arrays are used for table content only.
Known limits: Regime boundaries are fixed; assets with persistent volatility shifts may require window retuning. Low-liquidity periods and gaps can produce abrupt percentile changes. ATR is direction-agnostic and should be paired with trend or structure context.
Sensible Defaults & Quick Tuning
Start with ATR length fourteen and percentile window two hundred fifty-two on daily charts.
Too many flips: Increase ATR length or increase the percentile window.
Too sluggish: Decrease the percentile window or reduce ATR length.
Intraday noise: Keep ATR length moderate and reduce the window to a session-appropriate size; optionally hide the label to declutter.
Compressed markets: Maintain defaults but rely more on structure and volume filters before acting.
What this indicator is—and isn’t
This is a volatility regime context layer that standardizes ATR into interpretable regimes. It is not a complete trading system, not predictive, and not a stand-alone entry signal. Use it alongside structure analysis, confirmation tools, and disciplined risk management.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Best regards and happy trading
Chervolino
ICT 369 Sniper MSS Indicator (HTF Bias) - H2LThis script is an ICT (Inner Circle Trader) concept-based trading indicator designed to identify high-probability reversal or continuation setups, primarily focusing on intraday trading using a Higher Timeframe (HTF) directional bias.
Here are the four core components of the indicator:
Higher Timeframe (HTF) Bias Filter (Market Structure Shift - MSS): It determines the overall trend by checking if the current price has broken the most recent high or low swing point of a larger timeframe (e.g., 4H). This establishes a Bullish or Bearish bias, ensuring trades align with the dominant trend.
Fair Value Gap (FVG) and OTE: It identifies price imbalances (FVGs) and calculates the Optimal Trade Entry (OTE) levels (50%, 62%, 70.5%, etc.) within those gaps, looking for price to retrace into these specific areas.
Kill Zones (Timing): It incorporates specific time windows (London and New York Kill Zones, based on NY Time) where institutional trading activity is high, only allowing entry signals during these defined periods.
Signal and Targets: It triggers a Long or Short signal when all criteria are met (HTF Bias, FVG, OTE retracement, and Kill Zone timing). It then calculates and plots suggested trade levels, including a Stop Loss (SL) and three Take Profit targets (TP1, TP2, and a dynamic Runner Target based on the weekly Average True Range or ATR).
In summary, it's a comprehensive tool for traders following ICT principles, automating the confluence check across trend, structure, liquidity, and timing.
Mystic Pulse V2.0 [CHE] Mystic Pulse V2.0 — Adaptive DI streaks with gradient intensity for clearer trend persistence
Summary
Mystic Pulse V2.0 measures directional persistence by counting how often the positive or negative directional index strengthens and dominates. These counts drive gradient colors for bars, wicks, and helper plots, so intensity reflects local momentum rather than absolute values. A windowed normalization and gamma control adapt the visuals to recent conditions, preventing one regime from overpowering the next. The result is an immediate, at-a-glance read of trend direction and stamina without relying on crossovers alone.
Motivation: Why this design?
Classical DI and ADX signals can flip during choppy phases or feel sluggish in calm regimes. This script focuses on persistence: it increments a positive or negative streak only when the corresponding directional pressure both strengthens compared with the prior bar and dominates the other side. Simple OHLC pre-smoothing reduces micro-noise, and local normalization keeps the scale relevant to the last segment of data, not a distant past.
What’s different vs. standard approaches?
Reference baseline: Traditional DI and ADX lines with crossovers and fixed-scale thresholds.
Architecture differences:
Wilder-style recursive smoothing on true range and directional movement.
Streak counters for positive and negative pressure that advance only on strengthening and dominance.
Windowed normalization and gamma shaping for visual intensity.
Wick coloring via `plotcandle` with forced overlay from a pane indicator.
Practical effect: Bars and wicks grow more vivid during sustained pressure and fade during indecision. The column plots show streak depth directly, which helps filter one-bar flips.
How it works (technical)
1. Pre-smoothing: Open, high, low, and close are averaged over a short simple moving window to dampen micro-ticks.
2. Directional inputs: True range and directional movement are formed from the smoothed prices, then recursively smoothed using a Wilder-style update that carries prior state forward.
3. DI comparison: The script derives positive and negative directional ratios relative to smoothed range. A side advances its streak when it increases compared with the previous bar and exceeds the opposite side. The other streak resets.
4. Trend score and color base: The difference between positive and negative streaks defines the active side.
5. Normalization and gamma: The absolute streak magnitude and each side’s streak are normalized within a rolling window. Gamma parameters reshape intensity so mid-range values are either compressed or emphasized.
6. Rendering:
Two column plots show positive and negative streak counts in the pane with gradient colors.
A square marker at the bottom uses the global gradient as a compact heat cue.
Bar colors on the main chart use either the gradient, neutral trend colors, or no paint depending on toggles.
Wick, border, and candle overlays are colored via `plotcandle` with forced overlay.
7. State handling: Smoothed values and counters persist across bars; initialization uses first available values without lookahead. No higher-timeframe requests are used, so repaint risk is limited to normal live-bar evolution.
Parameter Guide
Show neutral candles (fallback) — Paints main-chart bars in plain up or down colors when gradients are disabled — Default false — Use when you prefer simple up/down coloring.
Show last N shapes — Limits bottom square markers — Default 333 — Reduce if your chart gets cluttered.
ADX smoothing length — Controls the Wilder smoothing window for range and directional movement — Default 9 — Larger values increase stability but respond later.
OHLC SMA length — Pre-smoothing for inputs — Default 1 — Increase slightly on noisy assets to reduce flip risk.
Gradient barcolor — Enables gradient bar paint on the main chart — Default true — Turn off to use wicks only or neutral bars.
Wick coloring — Colors wicks, borders, and bodies via overlay — Default true — Disable if it conflicts with other overlays.
Gradient window — Lookback for local normalization — Default 100 — Shorter windows adapt faster; longer windows provide steadier intensity.
Gradient transparency — Overall transparency for gradient paints — Default 0 — Increase to make gradients subtler.
Gamma bars/shapes — Contrast for bar and shape intensity — Default 0.70 — Lower values brighten mid-tones; higher values compress them.
Gamma plots — Contrast for the column plots — Default 0.80 — Tune separately from bar intensity.
Wick transparency — Transparency for wick coloring — Default 0 — Raise to let price action show through.
Up/Down colors (dark and neon) — Base and accent colors for both directions — Defaults as provided — Adjust to match your chart theme.
Reading & Interpretation
Pane columns: The green column represents the positive streak count; the red column represents the negative streak count. Taller columns signal stronger persistence.
Gradient marker: The bottom square indicates the active side and persistence strength at a glance.
Main-chart bars and wicks: Color direction shows the dominant side; intensity reflects the normalized and gamma-shaped streak magnitude. Faded tones suggest weak or fading pressure.
Practical Workflows & Combinations
Trend following: Enter in the direction of the active side when the corresponding column expands over several bars. Confirm with structure such as higher highs and higher lows or lower highs and lower lows.
Exits and stops: Consider scaling out when intensity fades toward mid-range while structure stalls. Tighten stops after extended streaks or when wicks lose intensity.
Multi-asset/Multi-TF: Use defaults for liquid assets on intraday to swing timeframes. For highly volatile instruments, raise smoothing and the normalization window. For calm markets, lower them to regain sensitivity.
Behavior, Constraints & Performance
Repaint/confirmation: Values update during the live bar and stabilize after bar close. No historical repaint beyond normal live-bar updates.
security()/HTF: Not used; cross-timeframe repaint paths do not apply.
Resources: Declared `max_bars_back` two thousand; no explicit loops or arrays; plot and label limits are generous.
Known limits: Streak counters can remain elevated during slow reversals. Very short normalization windows can cause rapid intensity swings. Gaps or extreme spikes may temporarily distort intensity until the window adapts.
Sensible Defaults & Quick Tuning
Start with: ADX smoothing nine, OHLC SMA one, normalization window one hundred, gradient and wick coloring enabled, gamma around zero point seven to zero point eight.
Too many flips: Increase ADX smoothing and the normalization window; consider a small bump in OHLC SMA.
Too sluggish: Decrease ADX smoothing and the normalization window.
Colors overpower chart: Increase gradient and wick transparency or raise gamma to compress mid-tones.
What this indicator is—and isn’t
This is a visualization and signal layer that represents directional persistence and intensity. It does not issue trade entries or exits on its own and is not predictive. Use it alongside market structure, volume, and risk controls.
Disclaimer
The content, including any code, is for educational and informational purposes only and does not constitute financial advice or a recommendation to buy or sell any instrument. Trading involves substantial risk, including the possible loss of principal. Past performance is not indicative of future results. Always do your own research and consider consulting a qualified professional.
Adaptive Heikin Ashi [CHE]Adaptive Heikin Ashi — volatility-aware HA with fewer fake flips
Summary
Adaptive Heikin Ashi is a volatility-aware reinterpretation of classic Heikin Ashi that continuously adjusts its internal smoothing based on the current ATR regime, which means that in quiet markets the indicator reacts more quickly to genuine directional changes, while in turbulent phases it deliberately increases its smoothing to suppress jitter and color whipsaws, thereby reducing “noise” and cutting down on fake flips without resorting to heavy fixed smoothing that would lag everywhere.
Motivation: why adapt at all?
Classic Heikin Ashi replaces raw OHLC candles with a smoothed construction that averages price and blends each new candle with the previous HA state, which typically cleans up trends and improves visual coherence, yet its fixed smoothing amount treats calm and violent markets the same, leading to the usual dilemma where a setting that looks crisp in a narrow range becomes too nervous in a spike, and a setting that tames high volatility feels unnecessarily sluggish as soon as conditions normalize; by allowing the smoothing weight to expand and contract with volatility, Adaptive HA aims to keep candles readable across shifting regimes without constant manual retuning.
What is different from normal Heikin Ashi?
Fixed vs. adaptive blend:
Classic HA implicitly uses a fixed 50/50 blend for the open update (`HA_open_t = 0.5 HA_open_{t-1} + 0.5 HA_close_{t-1}`), while this script replaces the constant 0.5 with a dynamic weight `w_t` that oscillates around 0.5 as a function of observed volatility, which turns the open update into an EMA-like filter whose “alpha” automatically changes with market conditions.
Volatility as the steering signal:
The script measures volatility via ATR and compares it to a rolling baseline (SMA of ATR over the same length), producing a normalized deviation that is scaled by sensitivity, clamped to ±1 for stability, and then mapped to a bounded weight interval ` `, so the adaptation is strong enough to matter but never runs away.
Outcome that matters to traders:
In high volatility, the weight shifts upward toward the prior HA open, which strengthens smoothing exactly where classic HA tends to “chatter,” while in low volatility the weight shifts downward toward the most recent HA close, which speeds up reaction so quiet trends do not feel artificially delayed; this is the practical mechanism by which noise and fake signals are reduced without accepting blanket lag.
How it works
1. HA close matches classic HA:
`HA_close_t = (Open_t + High_t + Low_t + Close_t) / 4`
2. Volatility normalization:
`ATR_t` is computed over `atr_length`, its baseline is `ATR_SMA_t = SMA(ATR, atr_length)`, and the raw deviation is `(ATR_t / ATR_SMA_t − 1)`, which is then scaled by `adapt_sensitivity` and clamped to ` ` to obtain `v_t`, ensuring that pathological spikes cannot destabilize the weighting.
3. Adaptive weight around 0.5:
`w_t = 0.5 + oscillation_range v_t`, giving `w_t ∈ `, so with a default `range = 0.20` the weight stays between 0.30 and 0.70, which is wide enough to matter but narrow enough to preserve HA identity.
4. EMA-like open update:
On the very first bar the open is seeded from a stable combination of the raw open and close, and thereafter the update is
`HA_open_t = w_t HA_open_{t−1} + (1 − w_t) HA_close_{t−1}`,
which is equivalent to an EMA where higher `w_t` means heavier inertia (more smoothing) and lower `w_t` means stronger pull to the latest price information (more responsiveness).
5. High and low follow classic HA composition:
`HA_high_t = max(High_t, max(HA_open_t, HA_close_t))`,
`HA_low_t = min(Low_t, min(HA_open_t, HA_close_t))`,
thereby keeping visual semantics consistent with standard HA so that your existing reading of bodies, wicks, and transitions still applies.
Why this reduces noise and fake signals in practice
Fake flips in HA typically occur when a fixed blending rule is forced to process candles during a volatility surge, producing rapid alternations around pivots or within wide intrabar ranges; by increasing smoothing exactly when ATR jumps relative to its baseline, the adaptive open stabilizes the candle body progression and suppresses transient color changes, while in the opposite scenario of compressed ranges, the reduced smoothing allows small but persistent directional pressure to reflect in candle color earlier, which reduces the tendency to enter late after multiple slow transitions.
Parameter guide (what each input really does)
ATR Length (default 14): controls both the ATR and its baseline window, where longer values dampen the adaptation by making the baseline slower and the deviation smaller, which is helpful for noisy lower timeframes, while shorter values make the regime detector more reactive.
Oscillation Range (default 0.20): sets the maximum distance from 0.5 that the weight may travel, so increasing it towards 0.25–0.30 yields stronger smoothing in turbulence and faster response in calm periods, whereas decreasing it to 0.10–0.15 keeps the behavior closer to classical HA and is useful if your strategy already includes heavy downstream smoothing.
Adapt Sensitivity (default 6.0): multiplies the normalized ATR deviation before clamping, such that higher sensitivity accelerates adaptation to regime shifts, while lower sensitivity produces gradual transitions; negative values intentionally invert the mapping (higher vol → less smoothing) and are generally not recommended unless you are testing a counter-intuitive hypothesis.
Reading the candles and the optional diagnostic
You interpret colors and bodies just like with normal HA, but you can additionally enable the Adaptive Weight diagnostic plot to see the regime in real time, where values drifting up toward the upper bound indicate a turbulent context that is being deliberately smoothed, and values gliding down toward the lower bound indicate a calm environment in which the indicator chooses to move faster, which can be valuable for discretionary confirmation when deciding whether a fresh color shift is likely to stick.
Practical workflows and combinations
Trend-following entries: use color continuity and body expansion as usual, but expect fewer spurious alternations around news spikes or into liquidity gaps; pairing with structure (swing highs/lows, breaks of internal ranges) keeps entries disciplined.
Exit management: when the diagnostic weight remains elevated for an extended period, you can be stricter with exit triggers because flips are less likely to be accidental noise; conversely, when the weight is depressed, consider earlier partials since the indicator is intentionally more nimble.
Multi-asset, multi-TF: the adaptation is especially helpful if you rotate instruments with very different vol profiles or hop across timeframes, since you will not need to retune a fixed smoothing parameter every time conditions change.
Behavior, constraints, and performance
The script does not repaint historical bars and uses only past information on closed candles, yet just like any candle-based visualization the current live bar will update until it closes, so you should avoid acting on mid-bar flips without a rule that accounts for bar close; there are no `security()` calls or higher-timeframe lookups, which keeps performance light and execution deterministic, and the clamping of the volatility signal ensures numerical stability even during extreme ATR spikes.
Sensible defaults and quick tuning
Start with the defaults (`ATR 14`, `Range 0.20`, `Sensitivity 6.0`) and observe the weight plot across a few volatile events; if you still see too many flips in turbulence, either raise `Range` to 0.25 or trim `Sensitivity` to 4–5 so that the weight can move high but does not overreact, and if the indicator feels too slow in quiet markets, lower `Range` toward 0.15 or raise `Sensitivity` to 7–8 to bias the weight a bit more aggressively downward when conditions compress.
What this indicator is—and is not
Adaptive Heikin Ashi is a context-aware visualization layer that improves the signal-to-noise ratio and reduces fake flips by modulating smoothing with volatility, but it is not a complete trading system, it does not predict the future, and it should be combined with structure, risk controls, and position management that fit your market and timeframe; always forward-test on your instruments, and remember that even adaptive smoothing can delay recognition at sharp turning points when volatility remains elevated.
Disclaimer
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
Best regards and happy trading
Chervolino
BOCS AdaptiveBOCS Adaptive Strategy - Automated Volatility Breakout System
WHAT THIS STRATEGY DOES:
This is an automated trading strategy that detects consolidation patterns through volatility analysis and executes trades when price breaks out of these channels. Take-profit and stop-loss levels are calculated dynamically using Average True Range (ATR) to adapt to current market volatility. The strategy closes positions partially at the first profit target and exits the remainder at the second target or stop loss.
TECHNICAL METHODOLOGY:
Price Normalization Process:
The strategy begins by normalizing price to create a consistent measurement scale. It calculates the highest high and lowest low over a user-defined lookback period (default 100 bars). The current close price is then normalized using the formula: (close - lowest_low) / (highest_high - lowest_low). This produces values between 0 and 1, allowing volatility analysis to work consistently across different instruments and price levels.
Volatility Detection:
A 14-period standard deviation is applied to the normalized price series. Standard deviation measures how much prices deviate from their average - higher values indicate volatility expansion, lower values indicate consolidation. The strategy uses ta.highestbars() and ta.lowestbars() functions to track when volatility reaches peaks and troughs over the detection length period (default 14 bars).
Channel Formation Logic:
When volatility crosses from a high level to a low level, this signals the beginning of a consolidation phase. The strategy records this moment using ta.crossover(upper, lower) and begins tracking the highest and lowest prices during the consolidation. These become the channel boundaries. The duration between the crossover and current bar must exceed 10 bars minimum to avoid false channels from brief volatility spikes. Channels are drawn using box objects with the recorded high/low boundaries.
Breakout Signal Generation:
Two detection modes are available:
Strong Closes Mode (default): Breakout occurs when the candle body midpoint math.avg(close, open) exceeds the channel boundary. This filters out wick-only breaks.
Any Touch Mode: Breakout occurs when the close price exceeds the boundary.
When price closes above the upper channel boundary, a bullish breakout signal generates. When price closes below the lower boundary, a bearish breakout signal generates. The channel is then removed from the chart.
ATR-Based Risk Management:
The strategy uses request.security() to fetch ATR values from a specified timeframe, which can differ from the chart timeframe. For example, on a 5-minute chart, you can use 1-minute ATR for more responsive calculations. The ATR is calculated using ta.atr(length) with a user-defined period (default 14).
Exit levels are calculated at the moment of breakout:
Long Entry Price = Upper channel boundary
Long TP1 = Entry + (ATR × TP1 Multiplier)
Long TP2 = Entry + (ATR × TP2 Multiplier)
Long SL = Entry - (ATR × SL Multiplier)
For short trades, the calculation inverts:
Short Entry Price = Lower channel boundary
Short TP1 = Entry - (ATR × TP1 Multiplier)
Short TP2 = Entry - (ATR × TP2 Multiplier)
Short SL = Entry + (ATR × SL Multiplier)
Trade Execution Logic:
When a breakout occurs, the strategy checks if trading hours filter is satisfied (if enabled) and if position size equals zero (no existing position). If volume confirmation is enabled, it also verifies that current volume exceeds 1.2 times the 20-period simple moving average.
If all conditions are met:
strategy.entry() opens a position using the user-defined number of contracts
strategy.exit() immediately places a stop loss order
The code monitors price against TP1 and TP2 levels on each bar
When price reaches TP1, strategy.close() closes the specified number of contracts (e.g., if you enter with 3 contracts and set TP1 close to 1, it closes 1 contract). When price reaches TP2, it closes all remaining contracts. If stop loss is hit first, the entire position exits via the strategy.exit() order.
Volume Analysis System:
The strategy uses ta.requestUpAndDownVolume(timeframe) to fetch up volume, down volume, and volume delta from a specified timeframe. Three display modes are available:
Volume Mode: Shows total volume as bars scaled relative to the 20-period average
Comparison Mode: Shows up volume and down volume as separate bars above/below the channel midline
Delta Mode: Shows net volume delta (up volume - down volume) as bars, positive values above midline, negative below
The volume confirmation logic compares breakout bar volume to the 20-period SMA. If volume ÷ average > 1.2, the breakout is classified as "confirmed." When volume confirmation is enabled in settings, only confirmed breakouts generate trades.
INPUT PARAMETERS:
Strategy Settings:
Number of Contracts: Fixed quantity to trade per signal (1-1000)
Require Volume Confirmation: Toggle to only trade signals with volume >120% of average
TP1 Close Contracts: Exact number of contracts to close at first target (1-1000)
Use Trading Hours Filter: Toggle to restrict trading to specified session
Trading Hours: Session input in HHMM-HHMM format (e.g., "0930-1600")
Main Settings:
Normalization Length: Lookback bars for high/low calculation (1-500, default 100)
Box Detection Length: Period for volatility peak/trough detection (1-100, default 14)
Strong Closes Only: Toggle between body midpoint vs close price for breakout detection
Nested Channels: Allow multiple overlapping channels vs single channel at a time
ATR TP/SL Settings:
ATR Timeframe: Source timeframe for ATR calculation (1, 5, 15, 60, etc.)
ATR Length: Smoothing period for ATR (1-100, default 14)
Take Profit 1 Multiplier: Distance from entry as multiple of ATR (0.1-10.0, default 2.0)
Take Profit 2 Multiplier: Distance from entry as multiple of ATR (0.1-10.0, default 3.0)
Stop Loss Multiplier: Distance from entry as multiple of ATR (0.1-10.0, default 1.0)
Enable Take Profit 2: Toggle second profit target on/off
VISUAL INDICATORS:
Channel boxes with semi-transparent fill showing consolidation zones
Green/red colored zones at channel boundaries indicating breakout areas
Volume bars displayed within channels using selected mode
TP/SL lines with labels showing both price level and distance in points
Entry signals marked with up/down triangles at breakout price
Strategy status table showing position, contracts, P&L, ATR values, and volume confirmation status
HOW TO USE:
For 2-Minute Scalping:
Set ATR Timeframe to "1" (1-minute), ATR Length to 12, TP1 Multiplier to 2.0, TP2 Multiplier to 3.0, SL Multiplier to 1.5. Enable volume confirmation and strong closes only. Use trading hours filter to avoid low-volume periods.
For 5-15 Minute Day Trading:
Set ATR Timeframe to match chart or use 5-minute, ATR Length to 14, TP1 Multiplier to 2.0, TP2 Multiplier to 3.5, SL Multiplier to 1.2. Volume confirmation recommended but optional.
For Hourly+ Swing Trading:
Set ATR Timeframe to 15-30 minute, ATR Length to 14-21, TP1 Multiplier to 2.5, TP2 Multiplier to 4.0, SL Multiplier to 1.5. Volume confirmation optional, nested channels can be enabled for multiple setups.
BACKTEST CONSIDERATIONS:
Strategy performs best during trending or volatility expansion phases
Consolidation-heavy or choppy markets produce more false signals
Shorter timeframes require wider stop loss multipliers due to noise
Commission and slippage significantly impact performance on sub-5-minute charts
Volume confirmation generally improves win rate but reduces trade frequency
ATR multipliers should be optimized for specific instrument characteristics
COMPATIBLE MARKETS:
Works on any instrument with price and volume data including forex pairs, stock indices, individual stocks, cryptocurrency, commodities, and futures contracts. Requires TradingView data feed that includes volume for volume confirmation features to function.
KNOWN LIMITATIONS:
Stop losses execute via strategy.exit() and may not fill at exact levels during gaps or extreme volatility
request.security() on lower timeframes requires higher-tier TradingView subscription
False breakouts inherent to breakout strategies cannot be completely eliminated
Performance varies significantly based on market regime (trending vs ranging)
Partial closing logic requires sufficient position size relative to TP1 close contracts setting
RISK DISCLOSURE:
Trading involves substantial risk of loss. Past performance of this or any strategy does not guarantee future results. This strategy is provided for educational purposes and automated backtesting. Thoroughly test on historical data and paper trade before risking real capital. Market conditions change and strategies that worked historically may fail in the future. Use appropriate position sizing and never risk more than you can afford to lose. Consider consulting a licensed financial advisor before making trading decisions.
ACKNOWLEDGMENT & CREDITS:
This strategy is built upon the channel detection methodology created by AlgoAlpha in the "Smart Money Breakout Channels" indicator. Full credit and appreciation to AlgoAlpha for pioneering the normalized volatility approach to identifying consolidation patterns and sharing this innovative technique with the TradingView community. The enhancements added to the original concept include automated trade execution, multi-timeframe ATR-based risk management, partial position closing by contract count, volume confirmation filtering, and real-time position monitoring.
X VIBVolume Imbalance Zones
X VIB highlights price-levels where buying or selling pressure overwhelmed the opposing side within a single bar transition, leaving a void that the market often revisits. The script paints those voids as boxes so you can quickly see where liquidity may rest, where price may pause or react, and which imbalances persist across sessions.
What it plots
For each completed calculation bar (your chart’s timeframe or a higher timeframe you choose), the indicator draws a box that spans the prior bar’s close to the current bar’s open—only when that bar-to-bar transition exhibits a valid volume imbalance (VIB) by the selected rules. Boxes are time-anchored from the previous bar’s time to the current bar’s time close, and they are capped to a configurable count so the chart remains readable.
Two ways to define “Volume Imbalance”
X VIB calculates imbalances in two complementary ways. Both techniques isolate bar-to-bar displacement that reflects one-sided pressure, but they differ in strictness and how much confirmation they require.
Continuity VIB (Bar-to-Bar Displacement)
A strict definition that requires aligned progress and overlap between consecutive bars. In practical terms, a bullish continuity VIB demands that the new bar advances beyond the prior bar’s close, opens above it, and maintains upward progress without erasing the displacement; the bearish case mirrors this to the downside.
Use when: you want the cleanest, most structurally reliable voids that reflect decisive initiative flow.
Effect on boxes: typically fewer, higher-quality zones that mark locations of strong one-sided intent.
Gap-Qualified VIB (Displacement with Gap Confirmation)
A confirmatory definition that treats the bar-to-bar displacement as an imbalance only if the transition also observes a protective “gap-like” relationship with surrounding prices. This extra condition filters out many borderline transitions and emphasizes voids that were less likely to be traded through on their formation.
Use when: you want additional confirmation that the void had genuine follow-through pressure at birth.
Effect on boxes: often slightly fewer but “stickier” zones that can attract price on retests.
Both modes are drawn identically on the chart (as boxes spanning the displacement). Their difference is purely in the qualification of what counts as a VIB. You can display either set independently or together to compare how each mode surfaces structure.
Multi-Timeframe (MTF) logic
You can compute imbalances on a higher timeframe (e.g., 15-minute) while viewing a lower timeframe chart. When MTF is active, X VIB:
Samples open, high, low, close, time, and time_close from the selected HTF in a single, synchronized request (no gaps, no lookahead).
Only evaluates and draws boxes once per HTF bar close, ensuring clean, stable zones that don’t repaint intra-bar.
How traders use these zones
Reversion into voids: Price often returns to “fill” part of a void before deciding on continuation or reversal.
Context for entries/exits: VIB boxes provide precise, mechanically derived levels for limit entries, scale-outs, and invalidation points.
Confluence: Combine with session opens, HTF levels, or volatility bands to grade setups. Continuity VIBs can mark impulse anchors; Gap-Qualified VIBs often mark stickier pockets.
Inputs & controls
Calculate on higher timeframe? Toggle MTF computation; choose your Calc timeframe (e.g., 15).
Show VIBs: Master toggle for drawing imbalance boxes.
Color & Opacity: Pick the box fill and border intensity that suits your theme.
# Instances: Cap how many historical boxes remain on the chart to avoid clutter.
Notes & best practices
Signal density: Continuity VIBs tend to be more frequent on fast charts; Gap-Qualified VIBs are more selective. Try both and keep what aligns with your trade plan.
MTF discipline: When using a higher calc timeframe, analyze reactions primarily at that timeframe’s pace to avoid over-fitting to noise.
Lifecycle awareness: Not all voids fill. Track which boxes persist; durable voids often define the map of the session.
Foresight Cone (HoltxF1xVWAP) [KedArc Quant]Description:
This is a time-series forecasting indicator that estimates the next bar (F1) and projects a path a few bars ahead. It also draws a confidence cone based on how accurate the recent forecasts have been. You can optionally color the projection only when price agrees with VWAP.
Why it’s different
* One clear model: Everything comes from Holt’s trend-aware forecasting method—no mix of unrelated indicators.
* Transparent visuals: You see the next-bar estimate (F1), the forward projection, and a cone that widens or narrows based on recent forecast error.
* Context, not signals: The VWAP option only changes colors. It doesn’t add trade rules.
* No look-ahead: Accuracy is measured using the forecast made on the previous bar versus the current bar.
Inputs (what they mean)
* Source: Price series to forecast (default: Close).
* Preset: Quick profiles for fast, smooth, or momentum markets (see below).
* Alpha (Level): How fast the model reacts to new prices. Higher = faster, twitchier.
* Beta (Trend): How fast the model updates the slope. Higher = faster pivots, more flips in chop.
* Horizon: How many bars ahead to project. Bigger = wider cone.
* Residual Window: How many bars to judge recent accuracy. Bigger = steadier cone.
* Confidence Z: How wide the cone should be (typical setting ≈ “95% style” width).
* Show Bands / Draw Forward Path: Turn the cone and forward lines on/off.
* Color only when aligned with VWAP: Highlights projections only when price agrees with the trend side of VWAP.
* Colors / Show Panel: Styling plus a small panel with RMSE, MAPE, and trend slope.
Presets (when to pick which)
* Scalp / Fast (1-min): Very responsive; best for quick moves. More twitch in chop.
* Smooth Intraday (1–5 min): Calmer and steadier; a good default most days.
* Momentum / Breakout: Quicker slope tracking during strong pushes; may over-react in ranges.
* Custom: Set your own values if you know exactly what you want.
What is F1 here?
F1 is the model’s next-bar fair value. Crosses of price versus F1 can hint at short-term momentum shifts or mean-reversion, especially when viewed with VWAP or the cone.
How this helps
* Gives a baseline path of where price may drift and a cone that shows normal wiggle room.
* Helps you tell routine noise (inside cone) from information (edges or breaks outside the cone).
* Keeps you aware of short-term bias via the trend slope and F1.
How to use (step by step)
1. Add to chart → choose a Preset (start with Smooth Intraday).
2. Set Horizon around 8–15 bars for intraday.
3. (Optional) Turn on VWAP alignment to color only when price agrees with the trend side of VWAP.
4. Watch where price sits relative to the cone and F1:
* Inside = normal noise.
* At edges = stretched.
* Outside = possible regime change.
5. Check the panel: if RMSE/MAPE spike, expect a wider cone; consider a smoother preset or a higher timeframe.
6. Tweak Alpha/Beta only if needed: faster for momentum, slower for chop.
7. Combine with your own plan for entries, exits, and risk.
Accuracy Panel — what it tells you
Preset & Horizon: Shows which preset you’re using and how many bars ahead the projection goes. Longer horizons mean more uncertainty.
RMSE (error in price units): A “typical miss” measured in the chart’s currency (e.g., ₹).
Lower = tighter fit and a usually narrower cone. Rising = conditions getting noisier; the cone will widen.
MAPE (error in %): The same idea as RMSE but in percent.
Good for comparing different symbols or timeframes. Sudden spikes often hint at a regime change.
Slope T: The model’s short-term trend reading.
Positive = gentle up-bias; negative = gentle down-bias; near zero = mostly flat/drifty.
How to read it at a glance
Calm & directional: RMSE/MAPE steady or falling + Slope T positive (or negative) → trends tend to respect the cone’s mid/upper (or mid/lower) area.
Choppy/uncertain: RMSE/MAPE climbing or jumping → expect more whipsaw; rely more on the cone edges and higher-TF context.
Flat tape: Slope T near zero → mean-revert behavior is common; treat cone edges as stretch zones rather than breakout zones.
Warm-up & tweaks
Warm-up: Right after adding the indicator, the panel may be blank for a short time while it gathers enough bars.
Too twitchy? Switch to Smooth Intraday or increase the Residual Window.
Too slow? Use Scalp/Fast or Momentum/Breakout to react quicker.
Timeframe tips
* 1–3 min: Scalp/Fast or Momentum/Breakout; horizon \~8–12.
* 5–15 min: Smooth Intraday; horizon \~12–15.
* 30–60 min+: Consider a larger residual window for a steadier cone.
FAQ
Q: Is this a strategy or an indicator?
A: It’s an indicator only. It does not place orders, TP/SL, or run backtests.
Q: Does it repaint?
A: The next-bar estimate (F1) and the cone are calculated using only information available at that time. The forward path is a projection drawn on the last bar and will naturally update as new bars arrive. Historical bars aren’t revised with future data.
Q: What is F1?
A: F1 is the indicator’s best guess for the next bar.
Price crossing above/below F1 can hint at short-term momentum shifts or mean-reversion.
Q: What do “Alpha” and “Beta” do?
A: Alpha controls how fast the indicator reacts to new prices
(higher = faster, twitchier). Beta controls how fast the slope updates (higher = quicker pivots, more flips in chop).
Q: Why does the cone width change?
A: It reflects recent forecast accuracy. When the market gets noisy, the cone widens. When the tape is calm, it narrows.
Q: What does the Accuracy Panel tell me?
A:
* Preset & Horizon you’re using.
* RMSE: typical forecast miss in price units.
* MAPE: typical forecast miss in percent.
* Slope T: short-term trend reading (up, down, or flat).
If RMSE/MAPE rise, expect a wider cone and more whipsaw.
Q: The panel shows “…” or looks empty. Why?
A: It needs a short warm-up to gather enough bars. This is normal after you add the indicator or change settings/timeframes.
Q: Which timeframe is best?
A:
* 1–3 min: Scalp/Fast or Momentum/Breakout, horizon \~8–12.
* 5–15 min: Smooth Intraday, horizon \~12–15.
Higher timeframes work too; consider a larger residual window for steadier cones.
Q: Which preset should I start with?
A: Start with Smooth Intraday. If the market is trending hard, try Momentum/Breakout.
For very quick tapes, use Scalp/Fast. Switch back if things get choppy.
Q: What does the VWAP option do?
A: It only changes colors (highlights when price agrees with the trend side of VWAP).
It does not add or remove signals.
Q: Are there alerts?
A: Yes—alerts for price crossing F1 (up/down). Use “Once per bar close” to reduce noise on fast charts.
Q: Can I use this on stocks, futures, crypto, or FX?
A: Yes. It works on any symbol/timeframe. You may want to adjust Horizon and the Residual Window based on volatility.
Q: Can I use it with Heikin Ashi or other non-standard bars?
A: You can, but remember you’re forecasting the synthetic series of those bars. For pure price behavior, use regular candles.
Q: The cone feels too wide/too narrow. What do I change?
A:
* Too wide: lower Alpha/Beta a bit or increase the Residual Window.
* Too narrow (misses moves): raise Alpha/Beta slightly or try Momentum/Breakout.
Q: Why do results change when I switch timeframe or symbol?
A: Different noise levels and trends. The accuracy stats reset per chart, so the cone adapts to each context.
Q: Any limits or gotchas?
A: Extremely large Horizon may hit TradingView’s line-object limits; reduce Horizon or turn
off extra visuals if needed. Big gaps or news spikes will widen errors—expect the cone to react.
Q: Can this predict exact future prices?
A: No. It provides a baseline path and context. Always combine with your own rules and risk management.
Glossary
* TS (Time Series): Data over time (prices).
* Holt’s Method: A forecasting approach that tracks a current level and a trend to predict the next bars.
* F1: The indicator’s best guess for the next bar.
* F(h): The projected value h bars ahead.
* VWAP: Volume-Weighted Average Price—used here for optional color alignment.
* RMSE: Typical forecast miss in price units (how far off, on average).
* MAPE: Typical forecast miss in percent (scale-free, easy to compare).
Notes & limitations
* The panel needs a short warm-up; stats may be blank at first.
* The cone reflects recent conditions; sudden volatility changes will widen it.
* This is a tool for context. It does not place trades and does not promise results.
⚠️ Disclaimer
This script is provided for educational purposes only.
Past performance does not guarantee future results.
Trading involves risk, and users should exercise caution and use proper risk management when applying this strategy.
AlgoPilotX - Breakout & Breakdown Meter (v1)Version Note:
This is a revised and improved version of the AlgoPilotX – Breakout & Breakdown Meter. It includes expanded explanations of the underlying logic, variable usage, and originality to comply with TradingView guidelines.
AlgoPilotX – Breakout & Breakdown Meter is a structured trading tool that combines Fair Value Gap (FVG) detection, session-based support/resistance breakouts, and a clean market condition info panel. It’s designed to help traders spot potential setups early and confirm stronger breakouts or breakdowns with context from momentum, volatility, and trend indicators.
How It Works
Session Levels → The first candle high/low of the session defines dynamic support/resistance. Unlike static pivots, these levels update with each new trading session and reflect real intraday sentiment.
Fair Value Gaps (FVGs) → A three-candle imbalance highlights inefficiencies. When detected, the script marks the open of the third candle as a potential entry (light green/red arrow).
Pullback Confirmations → If price pulls back into session support/resistance and then breaks away strongly, a stronger entry signal (dark green/red arrow) is plotted.
Breakouts & Breakdowns → Additional arrows appear when price crosses decisively above resistance or below support.
Signal Hierarchy → Arrows vary by color/size:
Light = early/potential setups.
Dark/Large = stronger confirmations.
Info Panel Dashboard → RSI, MACD, Bollinger Bands, and EMAs are displayed in a compact table with both numeric values and Bullish/Bearish/Neutral states, color-coded for quick interpretation.
How the Functions and Variables Work Together
Session Levels (Support & Resistance)
The script uses time() and session inputs to identify the first candle of the chosen trading session.
Variables sessionHigh and sessionLow are stored with var so they persist until the next session.
These levels are then plotted as dynamic support/resistance lines. This approach is different from static pivots or daily highs/lows, because it adapts in real-time to the market open.
Fair Value Gap (FVG) Detection
Conditions check for three-candle imbalances ( low > high for bullish, high < low for bearish).
When detected, a potential entry is marked at the open of the third candle.
Variables fvgBull and fvgBear define this logic , making FVGs a core entry condition rather than a side overlay.
Entry Hierarchy (Light vs. Dark Arrows)
longPotentialEntry and shortPotentialEntry mark light green/red arrows as early signals.
pullbackToSupport and pullbackToResistance build on these by requiring price to return to session levels and then break away again.
This creates the dark green/red arrows for stronger entries, introducing a two-step filtering process.
Breakout & Breakdown Detection
breakAbove = ta.crossover(close, sessionHigh)
breakBelow = ta.crossunder(close, sessionLow)
These conditions confirm true breakouts or breakdowns beyond support/resistance, reducing noise.
Info Panel Construction
A table is created and updated each bar.
Functions like ta.rsi(), ta.ema(), ta.sma(), and ta.stdev() calculate RSI, MACD, EMAs, and Bollinger Bands.
Each indicator’s state is summarized into human-readable text (e.g., “Bullish,” “Bearish,” “Above,” “Oversold”) and displayed with color coding using the helper function f_stateColor().
Values are also displayed numerically (RSI, MACD histogram, EMA levels, BB width), making this a dashboard rather than just arrows on a chart.
Helper Function for States
f_stateColor(state) translates qualitative states into consistent colors (green for bullish/above, red for bearish/below, orange for neutral, purple for overbought/oversold).
This ensures that every signal in the info panel has a visual identity that traders can read instantly.
Alerts Integration
alertcondition() is tied to each major event: FVG potential entries, strong pullback confirmations, and breakout/breakdown signals.
This allows the script to be used for alerts, notifications and automation , not just visual charting.
How to Use
1. Default timeframe = 15m (adjustable).
2. The first session candle defines support & resistance.
3. Watch for arrows:
Light green (▲) below candle → Potential breakout long (FVG detected).
Dark green (▲) below candle → Strong breakout confirmation after pullback.
Light red (▼) above candle → Potential breakdown short (FVG detected).
Dark red (▼) above candle → Strong breakdown confirmation after pullback.
Larger arrows = higher confidence signals.
4. Check the Info Panel for context:
RSI → momentum
MACD → trend confirmation
Bollinger Bands → overbought/oversold
EMA20 & EMA50 → short- and medium-term trend bias
5. Always confirm with your own price action, volume, and risk management rules.
6. Easily move the Info Panel to any corner of the chart via settings to keep your view clear.
Why This Structure Is Original
Not a mashup : Instead of simply overlaying RSI, MACD, or EMAs, the script integrates them into a signal-filtering framework.
Dynamic anchoring: Session-based high/low variables make levels adaptive to intraday structure, unlike fixed pivots.
Dual entry tiering: Light vs. dark arrows are built by combining FVGs + pullback conditions, offering nuance most breakout scripts lack.
Dashboard-style panel: Variables are summarized into a real-time info box with both numbers and state labels, replacing multiple chart overlays with one compact tool.
Modular functions: Breakout, pullback, FVG detection, and indicator states are modularized with separate variables — making the script flexible, extendable, and unique in design.
Disclaimer
This script is for educational purposes only. It does not constitute financial advice and does not guarantee profitable outcomes. Always backtest thoroughly, paper trade, and use proper risk management before trading live.
Options Max Pain Calculator [BackQuant]Options Max Pain Calculator
A visualization tool that models option expiry dynamics by calculating "max pain" levels, displaying synthetic open interest curves, gamma exposure profiles, and pin-risk zones to help identify where market makers have the least payout exposure.
What is Max Pain?
Max Pain is the theoretical expiration price where the total dollar value of outstanding options would be minimized. At this price level, option holders collectively experience maximum losses while option writers (typically market makers) have minimal payout obligations. This creates a natural gravitational pull as expiration approaches.
Core Features
Visual Analysis Components:
Max Pain Line: Horizontal line showing the calculated minimum pain level
Strike Level Grid: Major support and resistance levels at key option strikes
Pin Zone: Highlighted area around max pain where price may gravitate
Pain Heatmap: Color-coded visualization showing pain distribution across prices
Gamma Exposure Profile: Bar chart displaying net gamma at each strike level
Real-time Dashboard: Summary statistics and risk metrics
Synthetic Market Modeling**
Since Pine Script cannot access live options data, the indicator creates realistic synthetic open interest distributions based on configurable market parameters including volume patterns, put/call ratios, and market maker positioning.
How It Works
Strike Generation:
The tool creates a grid of option strikes centered around the current price. You can control the range, density, and whether strikes snap to realistic market increments.
Open Interest Modeling:
Using your inputs for average volume, put/call ratios, and market maker behavior, the indicator generates synthetic open interest that mirrors real market dynamics:
Higher volume at-the-money with decay as strikes move further out
Adjustable put/call bias to reflect current market sentiment
Market maker inventory effects and typical short-gamma positioning
Weekly options boost for near-term expirations
Pain Calculation:
For each potential expiry price, the tool calculates total option payouts:
Call options contribute pain when finishing in-the-money
Put options contribute pain when finishing in-the-money
The strike with minimum total pain becomes the Max Pain level
Gamma Analysis:
Net gamma exposure is calculated at each strike using standard option pricing models, showing where hedging flows may be most intense. Positive gamma creates price support while negative gamma can amplify moves.
Key Settings
Basic Configuration:
Number of Strikes: Controls grid density (recommended: 15-25)
Days to Expiration: Time until option expiry
Strike Range: Price range around current level (recommended: 8-15%)
Strike Increment: Spacing between strikes
Market Parameters:
Average Daily Volume: Baseline for synthetic open interest
Put/Call Volume Ratio: Market sentiment bias (>1.0 = bearish, <1.0 = bullish) It does not work if set to 1.0
Implied Volatility: Current option volatility estimate
Market Maker Factors: Dealer positioning and hedging intensity
Display Options:
Model Complexity: Simple (line only), Standard (+ zones), Advanced (+ heatmap/gamma)
Visual Elements: Toggle individual components on/off
Theme: Dark/Light mode
Update Frequency: Real-time or daily calculation
Reading the Display
Dashboard Table (Top Right):
Current Price vs Max Pain Level
Distance to Pain: Percentage gap (smaller = higher pin risk)
Pin Risk Assessment: HIGH/MEDIUM/LOW based on proximity and time
Days to Expiry and Strike Count
Model complexity level
Visual Elements:
Red Line: Max Pain level where payout is minimized
Colored Zone: Pin risk area around max pain
Dotted Lines: Major strike levels (green = support, orange = resistance)
Color Bar: Pain heatmap (blue = high pain, red = low pain/max pain zones)
Horizontal Bars: Gamma exposure (green = positive, red = negative)
Yellow Dotted Line: Gamma flip level where hedging behavior changes
Trading Applications
Expiration Pinning:
When price is near max pain with limited time remaining, there's increased probability of gravitating toward that level as market makers hedge their positions.
Support and Resistance:
High open interest strikes often act as magnets, with max pain representing the strongest gravitational pull.
Volatility Expectations:
Above gamma flip: Expect dampened volatility (long gamma environment)
Below gamma flip: Expect amplified moves (short gamma environment)
Risk Assessment:
The pin risk indicator helps gauge likelihood of price manipulation near expiry, with HIGH risk suggesting potential range-bound action.
Best Practices
Setup Recommendations
Start with Model Complexity set to "Standard"
Use realistic strike ranges (8-12% for most assets)
Set put/call ratio based on current market sentiment
Adjust implied volatility to match current levels
Interpretation Guidelines:
Small distance to pain + short time = high pin probability
Large gamma bars indicate key hedging levels to monitor
Heatmap intensity shows strength of pain concentration
Multiple nearby strikes can create wider pin zones
Update Strategy:
Use "Daily" updates for cleaner visuals during trading hours
Switch to "Every Bar" for real-time analysis near expiration
Monitor changes in max pain level as new options activity emerges
Important Disclaimers
This is a modeling tool using synthetic data, not live market information. While the calculations are mathematically sound and the modeling realistic, actual market dynamics involve numerous factors not captured in any single indicator.
Max pain represents theoretical minimum payout levels and suggests where natural market forces may create gravitational pull, but it does not guarantee price movement or predict exact expiration levels. Market gaps, news events, and changing volatility can override these dynamics.
Use this tool as additional context for your analysis, not as a standalone trading signal. The synthetic nature of the data makes it most valuable for understanding market structure and potential zones of interest rather than precise price prediction.
Technical Notes
The indicator uses established option pricing principles with simplified implementations optimized for Pine Script performance. Gamma calculations use standard financial models while pain calculations follow the industry-standard definition of minimized option payouts.
All visual elements use fixed positioning to prevent movement when scrolling charts, and the tool includes performance optimizations to handle real-time calculation without timeout errors.
Price Level Highlighter [ldlwtrades]This indicator is a minimalist and highly effective tool designed for traders who incorporate institutional concepts into their analysis. It automates the identification of key psychological price levels and adds a unique, dynamic layer of information to help you focus on the most relevant area of the market. Inspired by core principles of market structure and liquidity, it serves as a powerful visual guide for anticipating potential support and resistance.
The core idea is simple: specific price points, particularly those ending in round numbers or common increments, often act as magnets or barriers for price. While many indicators simply plot static lines, this tool goes further by intelligently highlighting the single most significant level in real-time. This dynamic feature allows you to quickly pinpoint where the market is currently engaged, offering a clear reference point for your trading decisions. It reduces chart clutter and enhances your focus on the immediate price action.
Features
Customizable Price Range: Easily define a specific Start Price and End Price to focus the indicator on the most relevant area of your chart, preventing unnecessary clutter.
Adjustable Increment: Change the interval of the lines to suit your trading style, from high-frequency increments (e.g., 10 points) for scalping to wider intervals (e.g., 50 or 100 points) for swing trading.
Intelligent Highlighting: A key feature that automatically identifies and highlights the single horizontal line closest to the current market price with a distinct color and thickness. This gives you an immediate visual cue for the most relevant price level.
Highly Customizabile: Adjust the line color, style, and width for both the main lines and the highlighted line to fit your personal chart aesthetic.
Usage
Apply the indicator to your chart.
In the settings, input your desired price range (Start Price and End Price) to match the market you are trading.
Set the Price Increment to your preferred density.
Monitor the chart for the highlighted line. This is your active price level and a key area of interest.
Combine this tool with other confirmation signals (e.g., order blocks, fair value gaps, liquidity pools) to build higher-probability trade setups.
Best Practices
Pairing: This tool is effective across all markets, including stocks, forex, indices, and crypto. It is particularly useful for volatile markets where price moves rapidly between psychological levels.
Mindful Analysis: Use the highlighted level as a reference point for your analysis, not as a standalone signal. A break above or below this level can signify a shift in market control.
Backtesting: Always backtest the indicator on your preferred market and timeframe to understand how it performs under different conditions.
1H FVG Zones Only (5m & 1h)new uses trend anaylosis. takes 15 min chart and breaks into 1hr chart fvg gaps
FVG [hatefbw] Overview
This indicator is a modified version of the Luxalgo group’s FVG indicator. It introduces an additional feature designed to help traders filter only the strongest Fair Value Gaps (FVGs).
How it works
A new option called “Confirm Third Closed Body” has been added to the settings.
When enabled, the indicator only highlights FVGs where the close of the third candle is above the shadow of the second candle.
Such FVGs are generally considered more reliable and stronger in price action analysis.
Usage
Enable the Confirm Third Closed Body option if you want to filter weaker FVGs and focus only on the most valid ones.
Keep the option disabled if you wish to view all standard FVGs.
This tool is particularly useful for traders who prefer additional confirmation before taking trades based on FVG setups
ORB Pro w/ Filters + Debug Overlay Update with Reason box fixThis indicator is designed to highlight high-probability reversal setups for intraday traders.
It focuses on the cleanest, most reliable candlestick reversal patterns and combines them with trend, VWAP/EMA confluence, and a time-based filter to reduce noise.
🛠️ How It Works
The script scans each bar for well-known reversal signals:
Doji Reversal – small body, long wicks showing indecision.
Hammer / Shooting Star – long wick ≥ 2× body, showing exhaustion.
Engulfing Reversal – full body engulf of the prior candle.
Additional filters include:
✅ VWAP/EMA Confluence (optional) – confirms reversals near key intraday levels.
✅ Time Window (default 9:30–10:30 NY) – avoids false signals later in the session.
✅ Trend Exhaustion Check – requires a short-term directional push before reversal.
✅ Signal Cooldown – limits to one clean signal per move.
When conditions align, the script plots:
🟢 “Bull Rev” label below the bar for bullish reversals.
🔴 “Bear Rev” label above the bar for bearish reversals.
⚙️ Recommended Settings
For the tightest, most reliable signals:
Doji Body % → 25–30
Hammer Wick Multiple → 2.0
Confluence Tolerance % → 0.2–0.3
Time Filter → ON (9:30–10:30 NY)
VWAP/EMA Filter → ON
Cooldown Bars → 10–15
These settings minimize false positives and focus on the strongest reversals.
📈 Use Case
This tool is best for:
Intraday traders (stocks, ETFs, futures, crypto).
Traders who use Opening Range Breakout (ORB) or similar systems but want a secondary tool for catching reversals.
Anyone looking to filter out weak reversal patterns and focus on textbook setups.
⚠️ Disclaimer
This script is for educational purposes only and should not be considered financial advice. Always test in simulation/paper trading before applying live
🚀 Catch textbook reversals with confidence.
This indicator filters out noise and only plots high-probability reversal signals based on proven candlestick patterns + VWAP/EMA confluence.
🔥 Key Features:
✅ Detects Doji, Hammer/Shooting Star, and Engulfing Reversals
✅ VWAP & EMA confluence filter (optional)
✅ Time window filter (default 9:30–10:30 NY for max edge)
✅ Signal cooldown to avoid clutter
✅ Clean chart labels + alert conditions
🎯 Who’s It For?
Day traders who want precision reversal entries
ORB traders looking for secondary setups
Intraday scalpers who value quality over quantity
👉 Designed for traders who want fewer, cleaner, higher-probability signals.
⚠️ Not financial advice. For educational use only
_____
🎯 ORB SET-UP DESCRIPTIONS:
🔧 Exact settings I’d recommend (to avoid that mess):
requireClose = true
requireRetest = true with retestPct = 0.2%
minRangePct = 0.3%, maxRangePct = 1.5%
volumeFilter = true, volumeLength = 20
trendFilter = true, emaLength = 20
cooldownBars = 6 (on 5m chart → 30 minutes)
🔑 ORB Range Settings
Default sweet spot: 0.2% – 0.3%
→ This usually balances enough signals with reduced false breakouts.
High volatility days (CPI, FOMC, big gaps): 0.3% – 0.5%
→ Prevents fake outs.
Low volatility days (tight overnight range, slow open): 0.15% – 0.2%
→ Keeps you from sitting on hands all day.
📌 Filters you already added help you avoid noise
EMA alignment
Volume confirmation
Optional stop/target logic
This means you don’t have to shrink the box to 0.1% — the filters will keep you in higher-probability trades
✅ Why You Might NOT See a Signal
Check box for reason signal to turn it off, updated coloring so that candles are more visable.
ORB Box Too Wide
If the opening range is large, price has to move much further to trigger a clean breakout.
Wide box = fewer signals (but higher quality).
No Clean Break + Hold
Script waits for a candle to break above/below ORB and close strong enough.
A wick poke doesn’t count.
VWAP / EMA Filter Not Aligned
If price breaks but VWAP/EMA trend filter disagrees → no signal.
Keeps you out of fake moves against the trend.
Confirmation Candle Missing (if enabled)
Even if price breaks, the script may want the next bar to confirm direction before signaling.
Cooldown / One-Signal-Per-Break Rule
Some filters prevent back-to-back spam signals.
Only the first clean setup is alerted.
Harmonic Super GuppyHarmonic Super Guppy – Harmonic & Golden Ratio Trend Analysis Framework
Overview
Harmonic Super Guppy is a comprehensive trend analysis and visualization tool that evolves the classic Guppy Multiple Moving Average (GMMA) methodology, pioneered by Daryl Guppy to visualize the interaction between short-term trader behavior and long-term investor trends. into a harmonic and phase-based market framework. By combining harmonic weighting, golden ratio phasing, and multiple moving averages, it provides traders with a deep understanding of market structure, momentum, and trend alignment. Fast and slow line groups visually differentiate short-term trader activity from longer-term investor positioning, while adaptive fills and dynamic coloring clearly illustrate trend coherence, expansion, and contraction in real time.
Traditional GMMA focuses primarily on moving average convergence and divergence. Harmonic Super Guppy extends this concept, integrating frequency-aware harmonic analysis and golden ratio modulation, allowing traders to detect subtle cyclical forces and early trend shifts before conventional moving averages would react. This is particularly valuable for traders seeking to identify early trend continuation setups, preemptive breakout entries, and potential trend exhaustion zones. The indicator provides a multi-dimensional view, making it suitable for scalping, intraday trading, swing setups, and even longer-term position strategies.
The visual structure of Harmonic Super Guppy is intentionally designed to convey trend clarity without oversimplification. Fast lines reflect short-term trader sentiment, slow lines capture longer-term investor alignment, and fills highlight compression or expansion. The adaptive color coding emphasizes trend alignment: strong green for bullish alignment, strong red for bearish, and subtle gray tones for indecision. This allows traders to quickly gauge market conditions while preserving the granularity necessary for sophisticated analysis.
How It Works
Harmonic Super Guppy uses a combination of harmonic averaging, golden ratio phasing, and adaptive weighting to generate its signals.
Harmonic Weighting : Each moving average integrates three layers of harmonics:
Primary harmonic captures the dominant cyclical structure of the market.
Secondary harmonic introduces a complementary frequency for oscillatory nuance.
Tertiary harmonic smooths higher-frequency noise while retaining meaningful trend signals.
Golden Ratio Phase : Phases of each harmonic contribution are adjusted using the golden ratio (default φ = 1.618), ensuring alignment with natural market rhythms. This reduces lag and allows traders to detect trend shifts earlier than conventional moving averages.
Adaptive Trend Detection : Fast SMAs are compared against slow SMAs to identify structural trends:
UpTrend : Fast SMA exceeds slow SMA.
DownTrend : Fast SMA falls below slow SMA.
Frequency Scaling : The wave frequency setting allows traders to modulate responsiveness versus smoothing. Higher frequency emphasizes short-term moves, while lower frequency highlights structural trends. This enables adaptation across asset classes with different volatility characteristics.
Through this combination, Harmonic Super Guppy captures micro and macro market cycles, helping traders distinguish between transient noise and genuine trend development. The multi-harmonic approach amplifies meaningful price action while reducing false signals inherent in standard moving averages.
Interpretation
Harmonic Super Guppy provides a multi-dimensional perspective on market dynamics:
Trend Analysis : Alignment of fast and slow lines reveals trend direction and strength. Expanding harmonics indicate momentum building, while contraction signals weakening conditions or potential reversals.
Momentum & Volatility : Rapid expansion of fast lines versus slow lines reflects short-term bullish or bearish pressure. Compression often precedes breakout scenarios or volatility expansion. Traders can quickly gauge trend vigor and potential turning points.
Market Context : The indicator overlays harmonic and structural insights without dictating entry or exit points. It complements order blocks, liquidity zones, oscillators, and other technical frameworks, providing context for informed decision-making.
Phase Divergence Detection : Subtle divergence between harmonic layers (primary, secondary, tertiary) often signals early exhaustion in trends or hidden strength, offering preemptive insight into potential reversals or sustained continuation.
By observing both structural alignment and harmonic expansion/contraction, traders gain a clear sense of when markets are trending with conviction versus when conditions are consolidating or becoming unpredictable. This allows for proactive trade management, rather than reactive responses to lagging indicators.
Strategy Integration
Harmonic Super Guppy adapts to various trading methodologies with clear, actionable guidance.
Trend Following : Enter positions when fast and slow lines are aligned and harmonics are expanding. The broader the alignment, the stronger the confirmation of trend persistence. For example:
A fast line crossover above slow lines with expanding fills confirms momentum-driven continuation.
Traders can use harmonic amplitude as a filter to reduce entries against prevailing trends.
Breakout Trading : Periods of line compression indicate potential volatility expansion. When fast lines diverge from slow lines after compression, this often precedes breakouts. Traders can combine this visual cue with structural supports/resistances or order flow analysis to improve timing and precision.
Exhaustion and Reversals : Divergences between harmonic components, or contraction of fast lines relative to slow lines, highlight weakening trends. This can indicate liquidity exhaustion, trend fatigue, or corrective phases. For example:
A flattening fast line group above a rising slow line can hint at short-term overextension.
Traders may use these signals to tighten stops, take partial profits, or prepare for contrarian setups.
Multi-Timeframe Analysis : Overlay slow lines from higher timeframes on lower timeframe charts to filter noise and trade in alignment with larger market structures. For example:
A daily bullish alignment combined with a 15-minute breakout pattern increases probability of a successful intraday trade.
Conversely, a higher timeframe divergence can warn against taking counter-trend trades in lower timeframes.
Adaptive Trade Management : Harmonic expansion/contraction can guide dynamic risk management:
Stops may be adjusted according to slow line support/resistance or harmonic contraction zones.
Position sizing can be modulated based on harmonic amplitude and compression levels, optimizing risk-reward without rigid rules.
Technical Implementation Details
Harmonic Super Guppy is powered by a multi-layered harmonic and phase calculation engine:
Harmonic Processing : Primary, secondary, and tertiary harmonics are calculated per period to capture multiple market cycles simultaneously. This reduces noise and amplifies meaningful signals.
Golden Ratio Modulation : Phase adjustments based on φ = 1.618 align harmonic contributions with natural market rhythms, smoothing lag and improving predictive value.
Adaptive Trend Scaling : Fast line expansion reflects short-term momentum; slow lines provide structural trend context. Fills adapt dynamically based on alignment intensity and harmonic amplitude.
Multi-Factor Trend Analysis : Trend strength is determined by alignment of fast and slow lines over multiple bars, expansion/contraction of harmonic amplitudes, divergences between primary, secondary, and tertiary harmonics and phase synchronization with golden ratio cycles.
These computations allow the indicator to be highly responsive yet smooth, providing traders with actionable insights in real time without overloading visual complexity.
Optimal Application Parameters
Asset-Specific Guidance:
Forex Majors : Wave frequency 1.0–2.0, φ = 1.618–1.8
Large-Cap Equities : Wave frequency 0.8–1.5, φ = 1.5–1.618
Cryptocurrency : Wave frequency 1.2–3.0, φ = 1.618–2.0
Index Futures : Wave frequency 0.5–1.5, φ = 1.618
Timeframe Optimization:
Scalping (1–5min) : Emphasize fast lines, higher frequency for micro-move capture.
Day Trading (15min–1hr) : Balance fast/slow interactions for trend confirmation.
Swing Trading (4hr–Daily) : Focus on slow lines for structural guidance, fast lines for entry timing.
Position Trading (Daily–Weekly) : Slow lines dominate; harmonics highlight long-term cycles.
Performance Characteristics
High Effectiveness Conditions:
Clear separation between short-term and long-term trends.
Moderate-to-high volatility environments.
Assets with consistent volume and price rhythm.
Reduced Effectiveness:
Flat or extremely low volatility markets.
Erratic assets with frequent gaps or algorithmic dominance.
Ultra-short timeframes (<1min), where noise dominates.
Integration Guidelines
Signal Confirmation : Confirm alignment of fast and slow lines over multiple bars. Expansion of harmonic amplitude signals trend persistence.
Risk Management : Place stops beyond slow line support/resistance. Adjust sizing based on compression/expansion zones.
Advanced Feature Settings :
Frequency tuning for different volatility environments.
Phase analysis to track divergences across harmonics.
Use fills and amplitude patterns as a guide for dynamic trade management.
Multi-timeframe confirmation to filter noise and align with structural trends.
Disclaimer
Harmonic Super Guppy is a trend analysis and visualization tool, not a guaranteed profit system. Optimal performance requires proper wave frequency, golden ratio phase, and line visibility settings per asset and timeframe. Traders should combine the indicator with other technical frameworks and maintain disciplined risk management practices.
Grand Slam Risk ManagementGrand Slam Risk Management (GSRM) Indicator
OVERVIEW
The Grand Slam Risk Management Indicator transforms complex position sizing calculations into real-time, visual risk metrics—enabling disciplined trading decisions without the emotional guesswork that destroys accounts. This comprehensive tool is designed for active day traders and swing traders who want to automate critical risk management calculations directly on their TradingView charts. 🚀
THE GRAND SLAM RISK MANAGEMENT STRATEGY
Core Philosophy
The Grand Slam Risk Management Strategy (GSRM) gets its name from baseball's ultimate scoring play: a grand slam can only be hit when three runners are already on base, requiring at least three prior successful at-bats (hits or walks) to create the opportunity. This perfectly embodies the GSRM philosophy—consistent "base hits" in trading create the foundation for larger wins while protecting your account from devastating losses. Just as baseball teams win championships through disciplined, consistent play rather than swinging for the fences every at-bat, successful traders build wealth through reliable, repeatable profits rather than chasing home runs that often result in strikeouts. ⚾
Strategy Framework
Capital Allocation : 💰
• Working Balance: Account balance minus PDT requirement ($25,000 minimum for margin accounts)
• Allocated Buying Power: Working balance × leverage (4:1 for day trading, 2:1 for swing, 1:1 for cash)
• Daily Profit Target: 5% of allocated buying power (default)
The Base Hit System : 🎯
• Daily profit target divided into 4 "base hits"
• Each base hit represents 25% of daily goal
• Max risk per trade: 50% of base hit target (maintains 2:1 reward/risk minimum)
• Daily max loss: 2 base hits (recoverable with 2 winning trades)
Three-Tier Profit Structure : 🚀
• Tier 1 (5%): Minimum acceptable profit - "Why else take the trade?"
• Tier 2 (10%): Solid win - the target "base hit"
• Tier 3 (20%): Home run - when momentum is strongly in your favor 🏠🏃
Position Sizing Levels : 📊
• Quarter Position (25% of max): Testing the waters, lower conviction setups
• Half Position (50% of max): Standard confidence trades
• Max Position (100%): High conviction, ideal setup conditions
INDICATOR FEATURES
Real-Time Calculations ⚡
• Dynamic Position Sizing: Automatically calculates share quantities based on account balance and current price
• Profit & Loss Targets: Displays dollar amounts for profit targets and stop-losses across all position sizes
• Risk Metrics: Shows daily profit goals, max loss thresholds, and P&L ratios
Advanced Stop-Loss Methods 🛡️
1. Percentage-Based Stops : Fixed 50% of profit target (maintains 2:1 reward/risk)
2. ATR-Based Stops : Dynamic stops that adapt to market volatility using Average True Range (ATR)
• Tier 1: 0.5× ATR (tight/scalping)
• Tier 2: 1.0× ATR (standard)
• Tier 3: 1.5× ATR (wide/trending)
Cost Basis Options 📈
• Last Close: Uses previous bar's closing price for stable calculations
• VWMA: Volume-Weighted Moving Average (default: 9) estimate cost-basis from recent volume-weighted price action
• SMA/EMA: Use Simple or Exponential Moving Average (default: 9) useful for planning entries at SMA/EMA cross-overs and bounces.
• VWAP: Volume-Weighted Average Price (default: daily) for entry point planning at bounce or break of VWAP.
* Ask/Bid: Entry point calculations based on current Ask or Bid price (only available on 1T charts)
Visual Risk Management 🔑
• Color-Coded P&L Ratio :
- Green (≤0.5): Conservative, favorable risk ✅
- Yellow (0.5-1.0): Balanced risk ⚠️
- Red (>1.0): Aggressive, requires higher win rate 🛑
• Position Size Color Coding : Green (quarter) → Yellow (half) → Red (max) for quick risk assessment
HOW TO USE THE GSRM INDICATOR
Initial Setup (One-Time Configuration) ⚙️
1. Set Account Balance: Enter your total trading account value
2. Configure PDT Protection: Enable for margin accounts ≥$25,000 to protect required funds
3. Select Leverage: 4:1 (day trading), 2:1 (swing), or 1:1 (cash account)
4. Adjust Risk Percentage: Default 5% of allocated buying power; reduce for conservative approach
Trading Workflow
Pre-Market Preparation: 🌅
1. Review daily profit target and max loss displayed in green/red
2. Note your base hit target - this is your standard trade goal
3. Check P&L ratio - ensure it's sustainable for your win rate
Trade Execution: 🚀
1. Assess Setup Quality :
• Strong setup → Consider half or max position 💪
• Decent setup → Quarter or half position 👍
• Testing idea → Quarter position only 🧪
2. Select Profit Tier Based on Market Conditions :
• Choppy market → Target Tier 1 (5%) 🌊
• Normal conditions → Target Tier 2 (10%) ➡️
• Strong momentum → Target Tier 3 (20%) 🚀
3. Choose Stop Method :
• Percentage stops: Best for stocks with clear support/resistance
• ATR stops: Better for volatile stocks or news-driven trades. WARNING: this may result in tighter stops, negatively affecting your P&L. To offset this effect, try increasing the number of base hits to achieve your daily profit target and recover from a daily max loss. Be sure the resultant P&L ratio is in the conservative range ≤0.5. This will allow you to adjust your per-trade P&L targets without reducing your daily profit target or increasing your max risk.
4. Execute Using Table Values :
• 🔎 Find your position size group (🟢quarter/🟡half/🔴max)
• 🔎 Find your profit target row (5%/10%/20%) for your position size group
• ⚠️ Do not exceed the share count and stop-loss values displayed ⚠️
Risk Management Rules 🛡️
Daily Limits : 🚨
• Stop trading after hitting daily max loss (prevent tilt/revenge trading)
• Stop trading when a low-risk, minimum-loss trade would exceed your daily max loss (prevent exceeding max)
• Stop trading if you fall below the Daily Profit Target after having achieved it (prevent tilt/revenge trading)
• Cold Market: Stop trading after reaching daily profit target (preserve gains) ❄️
• Hot Market: Three Strikes - stop trading after 3 total max loss trades in a day (prevent tilt/revenge trading) 🔥
Position Management : 📏
• Never exceed max position size shown (protects from overleverage)
• Use quarter positions when daily P&L is negative or below first profit goal (40% of target)
• Use half positions only while daily P&L is above first profit goal (40% of target)
• Use full positions only while daily P&L is above profit goal (100% of target)
A/B Testing Features 🧪
Stop-Loss Methods :
• Week 1: Use percentage-based stops
• Week 2: Use ATR-based stops
• Compare win rates and average losses to optimize
Cost Basis Models :
Pick the highest probable cost-basis and keep your entry position below the share count shown to protect from overleveraging your buying power.
⚠️ IMPORTANT: COST BASIS ESTIMATIONS ARE FOR RISK MANAGEMENT CALCULATIONS ONLY - DO NOT USE THIS INFORMATION TO EXECUTE BUY OR SELL ORDERS.
• Fast movers: Use Last Close for stability 🏃or Bid/Ask for real-time price updates (Bid/Ask is only available on 1T charts).
• Liquid stocks: Try VWMA for better entry estimation 💧
• Reversals/Break of VWAP: Use VWAP when anticipating an entry at the Volume-Weighted Average Price 🔄
• Reversals/Break SMA 200: Use SMA when anticipating an entry at the SMA 📉
• Momentum/Trending: Use EMA when anticipating an entry at the EMA bounce 📈
• Price Offset: Plus/Minus $1.00 in $0.10 increments to compensate for slippage, market orders, etc.
Track which method provides better fill estimates. There is no right or wrong choice here because it depends on your style of trading. You can also use the Price Offset option if you find it helps with consistency.
BEST PRACTICES ⭐
1. Start Conservative : Use quarter positions and default settings until familiar with the system 🐣
2. Track Results : Document whether you hit Tier 1, 2, or 3 targets 📝
3. Respect the Math : The calculations assume a 50%+ win rate - if yours is lower, reduce position sizes 🧮
4. Daily Review : Compare actual P&L to base hit targets to calibrate expectations 🔍
5. Adapt to Conditions : Use ATR stops in volatile markets, percentage stops in stable conditions 🌡️
GLOSSARY 📚
• ATR (Average True Range) : A volatility indicator measuring the average range of price movement
• PDT (Pattern Day Trader) : SEC rule requiring $25,000 minimum for accounts making 4+ day trades in 5 business days
• VWAP (Volume-Weighted Average Price) : Average price weighted by volume for the trading session
• VWMA (Volume-Weighted Moving Average) : Moving average that gives more weight to periods with higher volume
• SMA (Simple Moving Average) : Unweighted moving average where each data point is of equal importance
• EMA (Exponential Moving Average) : Moving average that emphasizes the most recent data and information from the market
• P&L : Profit & Loss
IMPORTANT DISCLAIMERS ⚠️
• This indicator and any information provided is for educational and informational purposes only and should not be construed as investment advice, financial advice, trading advice, or any other type of advice. You should not make any investment decision based solely on this indicator.
• All investments and trading involve substantial risk of loss and are not suitable for every investor. You should carefully consider whether trading is suitable for you in light of your experience, objectives, financial resources, and other relevant circumstances. 📉
• Actual trade results may vary from calculated targets due to slippage, market gaps, and execution delays
• The creator of this indicator is not a registered investment advisor, broker-dealer, or financial advisor. Nothing contained herein constitutes a recommendation or solicitation to buy or sell any financial instrument.
• In no event shall the creator be liable for any direct, indirect, incidental, special, or consequential damages arising out of the use of this indicator.
• This indicator DOES NOT calculate support/resistance levels
• This indicator DOES NOT provide buy/sell signals
• This indicator DOES NOT calculate entry prices
• It is the trader's responsibility to determine an appropriate entry price for their chosen strategy
• This indicator provides calculations only - execution discipline remains the trader's responsibility
• Default settings assume PDT margin account rules; adjust for cash accounts
• P&L ratio colors are guidelines - your actual win rate determines sustainable ratios
• Always verify position sizes don't exceed account buying power before executing
SUPPORT AND FEEDBACK 💬
This indicator represents years of trading experience condensed into automated calculations. It's designed to remove emotional decision-making from position sizing while maintaining flexibility for different market conditions and trading styles.
For questions, suggestions, or to share your results using the GSRM strategy, please comment on the TradingView publication page. 🚀
---
Remember: The goal isn't to hit home runs - it's to get on base consistently while avoiding strikeouts. Small wins compound into large gains over time. ⚾💰
Version: 1.0
License: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International
- creativecommons.org
Compatibility: TradingView Pine Script v6
BSL/SSL Sweep + FVG Strategy Jobin (c) The New York ATM Model is a structured intraday strategy designed to capture algorithmic stop-hunts and reversals during the New York session open. It focuses on liquidity sweeps—either Buy-Side or Sell-Side—followed by a confirmation using Fair Value Gaps (FVGs).
FiniteStateMachine🟩 OVERVIEW
A flexible framework for creating, testing and implementing a Finite State Machine (FSM) in your script. FSMs use rules to control how states change in response to events.
This is the first Finite State Machine library on TradingView and it's quite a different way to think about your script's logic. Advantages of using this vs hardcoding all your logic include:
• Explicit logic : You can see all rules easily side-by-side.
• Validation : Tables show your rules and validation results right on the chart.
• Dual approach : Simple matrix for straightforward transitions; map implementation for concurrent scenarios. You can combine them for complex needs.
• Type safety : Shows how to use enums for robustness while maintaining string compatibility.
• Real-world examples : Includes both conceptual (traffic lights) and practical (trading strategy) demonstrations.
• Priority control : Explicit control over which rules take precedence when multiple conditions are met.
• Wildcard system : Flexible pattern matching for states and events.
The library seems complex, but it's not really. Your conditions, events, and their potential interactions are complex. The FSM makes them all explicit, which is some work. However, like all "good" pain in life, this is front-loaded, and *saves* pain later, in the form of unintended interactions and bugs that are very hard to find and fix.
🟩 SIMPLE FSM (MATRIX-BASED)
The simple FSM uses a matrix to define transition rules with the structure: state > event > state. We look up the current state, check if the event in that row matches, and if it does, output the resulting state.
Each row in the matrix defines one rule, and the first matching row, counting from the top down, is applied.
A limitation of this method is that you can supply only ONE event.
You can design layered rules using widlcards. Use an empty string "" or the special string "ANY" for any state or event wildcard.
The matrix FSM is foruse where you have clear, sequential state transitions triggered by single events. Think traffic lights, or any logic where only one thing can happen at a time.
The demo for this FSM is of traffic lights.
🟩 CONCURRENT FSM (MAP-BASED)
The map FSM uses a more complex structure where each state is a key in the map, and its value is an array of event rules. Each rule maps a named condition to an output (event or next state).
This FSM can handle multiple conditions simultaneously. Rules added first have higher priority.
Adding more rules to existing states combines the entries in the map (if you use the supplied helper function) rather than overwriting them.
This FSM is for more complex scenarios where multiple conditions can be true simultaneously, and you need to control which takes precedence. Like trading strategies, or any system with concurrent conditions.
The demo for this FSM is a trading strategy.
🟩 HOW TO USE
Pine Script libraries contain reusable code for importing into indicators. You do not need to copy any code out of here. Just import the library and call the function you want.
For example, for version 1 of this library, import it like this:
import SimpleCryptoLife/FiniteStateMachine/1
See the EXAMPLE USAGE sections within the library for examples of calling the functions.
For more information on libraries and incorporating them into your scripts, see the Libraries section of the Pine Script User Manual.
🟩 TECHNICAL IMPLEMENTATION
Both FSM implementations support wildcards using blank strings "" or the special string "ANY". Wildcards match in this priority order:
• Exact state + exact event match
• Exact state + empty event (event wildcard)
• Empty state + exact event (state wildcard)
• Empty state + empty event (full wildcard)
When multiple rules match the same state + event combination, the FIRST rule encountered takes priority. In the matrix FSM, this means row order determines priority. In the map FSM, it's the order you add rules to each state.
The library uses user-defined types for the map FSM:
• o_eventRule : Maps a condition name to an output
• o_eventRuleWrapper : Wraps an array of rules (since maps can't contain arrays directly)
Everything uses strings for maximum library compatibility, though the examples show how to use enums for type safety by converting them to strings.
Unlike normal maps where adding a duplicate key overwrites the value, this library's `m_addRuleToEventMap()` method *combines* rules, making it intuitive to build rule sets without breaking them.
🟩 VALIDATION & ERROR HANDLING
The library includes comprehensive validation functions that catch common FSM design errors:
Error detection:
• Empty next states
• Invalid states not in the states array
• Duplicate rules
• Conflicting transitions
• Unreachable states (no entry/exit rules)
Warning detection:
• Redundant wildcards
• Empty states/events (potential unintended wildcards)
• Duplicate conditions within states
You can display validation results in tables on the chart, with tooltips providing detailed explanations. The helper functions to display the tables are exported so you can call them from your own script.
🟩 PRACTICAL EXAMPLES
The library includes four comprehensive demos:
Traffic Light Demo (Simple FSM) : Uses the matrix FSM to cycle through traffic light states (red → red+amber → green → amber → red) with timer events. Includes pseudo-random "break" events and repair logic to demonstrate wildcards and priority handling.
Trading Strategy Demo (Concurrent FSM) : Implements a realistic long-only trading strategy using BOTH FSM types:
• Map FSM converts multiple technical conditions (EMA crosses, gaps, fractals, RSI) into prioritised events
• Matrix FSM handles state transitions (idle → setup → entry → position → exit → re-entry)
• Includes position management, stop losses, and re-entry logic
Error Demonstrations : Both FSM types include error demos with intentionally malformed rules to showcase the validation system's capabilities.
🟩 BRING ON THE FUNCTIONS
f_printFSMMatrix(_mat_rules, _a_states, _tablePosition)
Prints a table of states and rules to the specified position on the chart. Works only with the matrix-based FSM.
Parameters:
_mat_rules (matrix)
_a_states (array)
_tablePosition (simple string)
Returns: The table of states and rules.
method m_loadMatrixRulesFromText(_mat_rules, _rulesText)
Loads rules into a rules matrix from a multiline string where each line is of the form "current state | event | next state" (ignores empty lines and trims whitespace).
This is the most human-readable way to define rules because it's a visually aligned, table-like format.
Namespace types: matrix
Parameters:
_mat_rules (matrix)
_rulesText (string)
Returns: No explicit return. The matrix is modified as a side-effect.
method m_addRuleToMatrix(_mat_rules, _currentState, _event, _nextState)
Adds a single rule to the rules matrix. This can also be quite readble if you use short variable names and careful spacing.
Namespace types: matrix
Parameters:
_mat_rules (matrix)
_currentState (string)
_event (string)
_nextState (string)
Returns: No explicit return. The matrix is modified as a side-effect.
method m_validateRulesMatrix(_mat_rules, _a_states, _showTable, _tablePosition)
Validates a rules matrix and a states array to check that they are well formed. Works only with the matrix-based FSM.
Checks: matrix has exactly 3 columns; no empty next states; all states defined in array; no duplicate states; no duplicate rules; all states have entry/exit rules; no conflicting transitions; no redundant wildcards. To avoid slowing down the script unnecessarily, call this method once (perhaps using `barstate.isfirst`), when the rules and states are ready.
Namespace types: matrix
Parameters:
_mat_rules (matrix)
_a_states (array)
_showTable (bool)
_tablePosition (simple string)
Returns: `true` if the rules and states are valid; `false` if errors or warnings exist.
method m_getStateFromMatrix(_mat_rules, _currentState, _event, _strictInput, _strictTransitions)
Returns the next state based on the current state and event, or `na` if no matching transition is found. Empty (not na) entries are treated as wildcards if `strictInput` is false.
Priority: exact match > event wildcard > state wildcard > full wildcard.
Namespace types: matrix
Parameters:
_mat_rules (matrix)
_currentState (string)
_event (string)
_strictInput (bool)
_strictTransitions (bool)
Returns: The next state or `na`.
method m_addRuleToEventMap(_map_eventRules, _state, _condName, _output)
Adds a single event rule to the event rules map. If the state key already exists, appends the new rule to the existing array (if different). If the state key doesn't exist, creates a new entry.
Namespace types: map
Parameters:
_map_eventRules (map)
_state (string)
_condName (string)
_output (string)
Returns: No explicit return. The map is modified as a side-effect.
method m_addEventRulesToMapFromText(_map_eventRules, _configText)
Loads event rules from a multiline text string into a map structure.
Format: "state | condName > output | condName > output | ..." . Pairs are ordered by priority. You can have multiple rules on the same line for one state.
Supports wildcards: Use an empty string ("") or the special string "ANY" for state or condName to create wildcard rules.
Examples: " | condName > output" (state wildcard), "state | > output" (condition wildcard), " | > output" (full wildcard).
Splits lines by \n, extracts state as key, creates/appends to array with new o_eventRule(condName, output).
Call once, e.g., on barstate.isfirst for best performance.
Namespace types: map
Parameters:
_map_eventRules (map)
_configText (string)
Returns: No explicit return. The map is modified as a side-effect.
f_printFSMMap(_map_eventRules, _a_states, _tablePosition)
Prints a table of map-based event rules to the specified position on the chart.
Parameters:
_map_eventRules (map)
_a_states (array)
_tablePosition (simple string)
Returns: The table of map-based event rules.
method m_validateEventRulesMap(_map_eventRules, _a_states, _a_validEvents, _showTable, _tablePosition)
Validates an event rules map to check that it's well formed.
Checks: map is not empty; wrappers contain non-empty arrays; no duplicate condition names per state; no empty fields in o_eventRule objects; optionally validates outputs against matrix events.
NOTE: Both "" and "ANY" are treated identically as wildcards for both states and conditions.
To avoid slowing down the script unnecessarily, call this method once (perhaps using `barstate.isfirst`), when the map is ready.
Namespace types: map
Parameters:
_map_eventRules (map)
_a_states (array)
_a_validEvents (array)
_showTable (bool)
_tablePosition (simple string)
Returns: `true` if the event rules map is valid; `false` if errors or warnings exist.
method m_getEventFromConditionsMap(_currentState, _a_activeConditions, _map_eventRules)
Returns a single event or state string based on the current state and active conditions.
Uses a map of event rules where rules are pre-sorted by implicit priority via load order.
Supports wildcards using empty string ("") or "ANY" for flexible rule matching.
Priority: exact match > condition wildcard > state wildcard > full wildcard.
Namespace types: series string, simple string, input string, const string
Parameters:
_currentState (string)
_a_activeConditions (array)
_map_eventRules (map)
Returns: The output string (event or state) for the first matching condition, or na if no match found.
o_eventRule
o_eventRule defines a condition-to-output mapping for the concurrent FSM.
Fields:
condName (series string) : The name of the condition to check.
output (series string) : The output (event or state) when the condition is true.
o_eventRuleWrapper
o_eventRuleWrapper wraps an array of o_eventRule for use as map values (maps cannot contain collections directly).
Fields:
a_rules (array) : Array of o_eventRule objects for a specific state.
NX - ICT PD ArraysThis Pine Script indicator identifies and visualizes Fair Value Gaps (FVGs) and Order Blocks (OBs) based on refined price action logic.
FVGs are highlighted when price leaves an imbalance between candles, while Order Blocks are detected using ICT methodology—marking the last opposing candle before a displacement move.
The script dynamically tracks and updates these zones, halting box extension once price interacts with them. Customizable colors and lookback settings allow traders to tailor the display to their strategy.