Twisted Forex's Doji + Area StrategyTitle
Twisted Forex’s Doji + Area Strategy
Description
What this strategy does
This strategy looks for doji candles forming inside or near supply/demand areas . Areas are built from swing pivots and sized with ATR, then tracked for retests (“confirmations”). When a doji prints close to an area and quality checks pass, the strategy places a trade with the stop beyond the doji and a configurable R:R target.
How areas (zones) are built
• Swings are detected with a user-set pivot length.
• Each swing spawns a horizontal area centered at the pivot price with half-height = zoneHalfATR × ATR .
• Duplicates are de-duplicated by center distance (ATR-scaled).
• Areas fade when broken beyond a buffer or after an optional age (expiry).
• Retests are recorded when price touches and then bounces away from the area; repeated reactions increase the zone’s “strength”.
Signal logic (summary)
Doji detection: strict or loose body criteria with optional minimum wick fractions and ATR-scaled minimum range.
Proximity: price must be inside/near a supply or demand area (proxATR × ATR).
Side resolution: overlap is resolved by (a) which side price penetrates more, (b) fast/slow EMA trend, or (c) nearest distance. Optional “previous candle flip” can bias long after a bearish candle and short after a bullish one.
Optional 1-bar confirmation: the bar after the doji must close away from the area by confirmATR × ATR .
Quality filter (Off/Soft/Strict): four checks—(i) wick rejection past the edge, (ii) doji closes in an edge “band” of the area, (iii) fresh touch (cooldown), (iv) approach impulse over a short lookback. In Strict , thresholds auto-tighten.
Orders & exits
• Long: stop below doji low minus buffer; Short: above doji high plus buffer.
• Target = rrMultiple × risk distance .
• Pyramiding is off by default.
Position sizing
You can size from the script or from Strategy Properties:
• Script-driven (default): set Position sizing = “Risk % of equity” and choose riskPercent (e.g., 1.0%). The script applies safe floors/rounding (FX micro-lots by default) so quantity never rounds to zero.
• Properties-driven : toggle Use TV Properties → Order size ON, then pick “Percent of equity” in Properties (e.g., 1%). The header includes safe defaults so trades still place.
Key inputs to explore
• Zone building : pivotLen, zoneHalfATR, minDepartureATR, expiryBars, breakATR, leftBars, dedupeATR.
• Doji & proximity : strictDoji, dojiBodyFrac, minWickFrac, minRangeATR, proxATR, minBarsBetween.
• Overlap resolution : usePenetration, useTrend (EMA 21/55), “previous candle flip”, needNextBarConf & confirmATR.
• Quality : qualityMode (Off/Soft/Strict), minQualPass/kStrict, wickPenATR, edgeBandFrac, approachLookback, approachMinATR, freshTouchBars.
• Zone strength gating : minStrengthSoft / minStrengthStrict.
• HTF confluence (optional) : useHTFTrend (HTF EMA 34/89) and/or useHTFZoneProx (HTF swing bands).
Tips to make it cleaner / higher quality
• Turn needNextBarConf ON and use confirmATR = 0.10–0.15 .
• Increase approachMinATR (e.g., 0.35–0.45) to require a stronger pre-touch impulse.
• Raise minStrengthSoft/Strict (e.g., 4–6) so only well-reacted zones can signal.
• Use signalsOnlyConfirmed ON if you prefer trades only from zones with retests (the script falls back gracefully when none exist yet).
• Nudge proxATR to 0.5–0.6 to demand tighter proximity to the level.
• Optional: enable useHTFTrend to filter counter-trend setups.
Default settings used in this publication
• Initial capital: 100,000 (illustrative).
• Slippage: 1 tick; Commission: 0% (you can raise commission if you prefer—spread is partly modeled by slippage).
• Sizing: Risk % of equity via inputs; riskPercent = 1.0% ; FX uses micro-lot floors by default.
• Quality: Off by default (Soft/Strict available).
• HTF trend gate: Off by default.
Backtesting notes
For a meaningful sample size, test on liquid symbols/timeframes that yield 100+ trades (e.g., majors on 5–15m over 1–2 years). Backtests are modelled and broker costs/spread vary—validate on your feed and forward-test.
How to read the chart
Shaded bands are supply (above) and demand (below). Brighter bands are the nearest K per side (visual aid). BUY/SELL labels mark entries; colored dots show entry/SL/TP levels. You can hide zones or unconfirmed zones for a cleaner view.
Disclaimer
This is educational material, not financial advice. Trading involves risk. Always test and size responsibly.
ATR
Market Pressure Differential (MPD) [SharpStrat]Market Pressure Differential (MPD)
Concept & Purpose
The Market Pressure Differential (MPD) is a proprietary indicator designed to measure the internal balance of buying and selling pressure directly on the price chart.
Unlike standard momentum or trend indicators, MPD analyzes the structural behavior of each candle—its body, wicks, and overall range—to determine whether the market is dominated by expansion (buying aggression) or contraction (selling absorption).
This indicator provides a visual overlay of market pressure that adapts dynamically to volatility, helping traders see real-time shifts in participation intensity without using oscillators.
In simple terms:
When MPD expands upward → buyer pressure dominates.
When MPD contracts downward → seller pressure dominates.
Calculation Overview
MPD uses a structural candle formula to compute directional pressure:
Body Ratio = (Close − Open) / (High − Low)
Wick Differential = (Lower Wick − Upper Wick) / (High − Low)
Raw Pressure = (Body Ratio × Body Weight) + (Wick Differential × Wick Weight)
Then it applies:
EMA smoothing (to stabilize short-term noise)
Standard deviation normalization (to maintain consistent scaling)
ATR projection (to adapt the signal visually to volatility)
This produces the MPD projection line and the pressure ribbon, drawn directly on the main chart.
Customizable Inputs
Users can adjust color schemes, EMA smoothing length, ATR parameters, normalization length, and body/wick weighting to adapt the indicator’s sensitivity and aesthetic to different markets or chart themes.
How to Use
The Market Pressure Differential (MPD) visualizes the real-time balance between buying and selling pressure. It should be used as a contextual bias tool, not a standalone signal generator.
The white line represents the MPD projection, showing how market pressure evolves in real time based on candle structure and volatility.
The red line represents the ATR envelope, which defines the market’s expected volatility range.
MPD reacts quickly to candle structure, so trend bias is based on how its projection behaves relative to the ATR envelope:
Above the ATR band → positive pressure and bullish bias.
Below the ATR band → negative pressure and bearish bias.
Hovering near the ATR band → neutral or indecisive conditions.
The MPD percentage in the label represents the normalized strength of pressure relative to recent volatility.
Positive % = buying dominance.
Negative % = selling dominance.
Higher absolute values = stronger momentum compared to volatility.
To trade with MPD:
Watch candle colors and the projection line — green or positive % shows buyer control, red or negative % shows seller control.
Note transitions above or below the ATR level for early signs of momentum shifts.
Combine MPD signals with price structure, key levels, or volume for confirmation.
This helps reveal which side controls the market and whether that pressure is strong enough to overcome typical volatility.
Disclaimer
It introduces a novel structural–pressure approach to visualizing market dynamics.
For educational and analytical purposes only; this does not constitute financial advice.
Quant Trend + Donchian (Educational, Public-Safe)What this does
Educational, public-safe visualization of a quant regime model:
• Trend : EMA(64) vs EMA(256) (EWMAC proxy)
• Breakout : Donchian channel (200)
• Volatility-awareness : internal z-scores (not plotted) for concept clarity
Why it’s useful
• Shows when trend & breakout align (clean regimes) vs conflict (chop)
• Helps explain why volatility-aware systems size up in smooth trends and scale down in noise
How to read it
• EMA64 above EMA256 with price near/above Donchian high → trend-following alignment
• EMA64 below EMA256 with price near/below Donchian low → bearish alignment
• Inside channel with EMAs tangled → range/chop risk
Notes
• Indicator is educational only (no orders).
• Built entirely with TradingView built-ins.
• For consistent visuals: enable “Indicator values on price scale” and disable “Scale price chart only” in Settings → Scales .
FirstStrike Long 200 - Daily Trend Rider [KedArc Quant]Strategy Description
FirstStrike Long 200 is a disciplined, long-only momentum strategy designed for daily "strike-first" entries in trending markets. It scans for RSI momentum above a customizable trigger (default 50), confirmed by EMA trend filters, and limits you to *exactly one trade per day* to avoid overtrading. It uses ATR for dynamic risk management (1.5x stop, 2:1 RR target) and optional trailing stops to ride winners. Backtested with realistic commissions and sizing, it prioritizes low drawdowns (<1% max in tests) over aggressive gains—ideal for swing traders seeking quality setups in bull runs.
Why It's Different from Other Strategies
Unlike generic RSI crossover bots or EMA ribbon mashups that spam signals and bleed in chop, FirstStrike enforces a "one-and-done" daily gate, blending precision momentum (RSI modes with grace/sustain) with robust filters (volume, sessions, rearm dips).
How It Helps Traders
- Reduces Emotional Trading: One entry/day forces discipline—miss a setup? Wait for tomorrow. Perfect for busy pros avoiding screen fatigue.
- Adapts to Regimes: Switch modes for trends ("Cross+Grace") vs. ranges ("Any bar")—boosts win rates 5-10% in backtests on high-beta names like .
- Risk-First Design: ATR scales stops to vol capping DD at 0.2% while targeting 2R winners. Trailing option locks +3-5% runs without early exits.
- Quick Insights: Labels/alerts flag entries with RSI values; bgcolor highlights signals for visual scanning. Helps spot "first-strike" edges in uptrends, filtering ~60% noise.
Why This Is Not a Mashup
This isn't a Frankenstein of off-the-shelf indicators—while it uses standard RSI/EMA/ATR (core Pine primitives), the innovation lies in:
- Custom Trigger Engine: Switchable modes (e.g., "Cross+Grace+Sustain" requires post-cross hold) prevent perpetual signals, unlike basic `ta.crossover()`.
- Daily Rearm Gate: Resets eligibility only after a dip (if enabled), tying momentum to mean-reversion—original logic not found in common scripts.
- Per-Day Isolation: `var` vars + `ta.change(time("D"))` ensure zero pyramiding/overlaps, beyond simple session filters.
All formulae are derived in-house for "first-strike" (early RSI pops in trends), not copied from public repos.
Input Configurations
Let's break down every input in the FirstStrike Long 200 strategy. These settings let you tweak the strategy like a dashboard—start with defaults for quick testing,
then adjust based on your asset or timeframe (5m for intraday). They're grouped logically to keep things organized, and most have tooltips in the script for quick reminders.
RSI / Trigger Group: The Heart of Momentum Detection
This is where the magic starts—the strategy hunts for "upward energy" using RSI (Relative Strength Index), a tool that measures if a stock is overbought (too hot) or oversold (too cold) on a 0-100 scale.
- RSI Length: How many bars (candles) back to calculate RSI. Default is 14, like a 14-day window for daily charts. Shorter (e.g., 9) makes it snappier for fast markets; longer (21) smooths out noise but misses quick turns.
- Trigger Level (RSI >= this): The key RSI value where the strategy says, "Go time!" Default 50 means enter when RSI crosses or holds above the neutral midline. Why is this trigger required? It acts as your "green light" filter—without it, you'd enter on every tiny price wiggle, leading to endless losers. RSI above this shows building buyer power, avoiding weak or sideways moves. It's essential for quality over quantity, especially in one-trade-per-day setups.
- Trigger Mode: Picks how strict the RSI signal must be. Options: "Cross only" (exact RSI crossover above trigger—super precise, fewer trades); "Cross+Grace" (crossover or within a grace window after—gives a second chance); "Cross+Grace+Sustain" (crossover/grace plus RSI holding steady for bars—best for steady climbs); "Any bar >= trigger" (looser, any bar above—more opportunities but riskier in chop). Start with "Any bar" for trends, switch to "Cross only" for caution.
- Grace Window (bars after cross): If mode allows, how many bars post-RSI-cross you can still enter if RSI dips but recovers. Default 30 (about 2.5 hours on 5m). Zero means no wiggle room—pure precision.
- Sustain Bars (RSI >= trigger): In sustain mode, how many straight bars RSI must stay above trigger. Default 3 ensures it's not a fluke spike.
- Require RSI Dip Below Rearm Before Any Entry?: A yes/no toggle. If on, the strategy "rearms" only after RSI dips below a low level (like a breather), preventing back-to-back signals in overextended rallies.
- Rearm Level (if requireDip=true): The dip threshold for rearming. Default 45—RSI must go below this to reset eligibility. Lower (30) for deeper pullbacks in volatile stocks.
For the trigger level itself, presets matter a lot—default 50 is neutral and versatile for broad trends. Bump to 55-60 for "strong momentum only" (fewer but higher-win trades, great in bull runs like tech surges); drop to 40-45 for "early bird" catches in recoveries (more signals but watch for fakes in ranges). The optimize hint (40-60) lets you test these in TradingView to match your risk—higher presets cut noise by 20-30% in backtests.
Trend / Filters Group: Keeping You on the Right Side of the Market
These EMAs (Exponential Moving Averages) act like guardrails, ensuring you only long in uptrends.
- EMA (Fast) Confirmation: Short-term EMA for price action. Default 20 periods—price must be above this for "recent strength." Shorter (10) reacts faster to intraday pops.
- EMA (Trend Filter): Long-term EMA for big-picture trend. Default 200 (classic "above the 200-day" rule)—price above it confirms bull market. Minimum 50 to avoid over-smoothing.
Optional Hour Window Group: Timing Your Strikes
Avoid bad hours like lunch lulls or after-hours tricks.
- Restrict by Session?: Yes/no for using exact market hours. Default off.
- Session (e.g., 0930-1600 for NYSE): Time string like "0930-1600" for open to close. Auto-skips pre/post-market noise.
- Restrict by Hour Range?: Fallback yes/no for simple hours. Default off.
- Start Hour / End Hour: Clock times (0-23). Defaults 9-15 ET—focus on peak volume.
Volume Filter Group: No Volume, No Party
Confirms conviction—big moves need big participation.
- Require Volume > SMA?: Yes/no toggle. Default off—only fires on above-average volume.
- Volume SMA Length: Periods for the average. Default 20—compares current bar to recent norm.
Risk / Exits Group: Protecting and Profiting Smartly
Dynamic stops based on volatility (ATR = Average True Range) keep things realistic.
- ATR Length: Bars for ATR calc. Default 14—measures recent "wiggle room" in price.
- ATR Stop Multiplier: How far below entry for stop-loss. Default 1.5x ATR—gives breathing space without huge risk
- Take-Profit R Multiple: Reward target as multiple of risk. Default 2.0 (2:1 ratio)—aims for twice your stop distance.
- Use Trailing Stop?: Yes/no for profit-locking trail. Default off—activates after entry.
- Trailing ATR Multiplier: Trail distance. Default 2.0x ATR—looser than initial stop to let winners run.
These inputs make the strategy plug-and-play: Defaults work out-of-box for trending stocks, but tweak RSI trigger/modes first for your style.
Always backtest changes—small shifts can flip a 40% win rate to 50%+!
Outputs (Visuals & Alerts):
- Plots: Blue EMA200 (trend line), Orange EMA20 (price filter), Green dashed entry price.
- Labels: Green "LONG" arrow with RSI value on entries.
- Background: Light green highlight on signal bars.
- Alerts: "FirstStrike Long Entry" fires on conditions (integrates with TradingView notifications).
Entry-Exit Logic
Entry (Long Only, One Per Day):
1. Daily Reset: New day clears trade gate and (if required) rearm status.
2. Filters Pass: Time/session OK + Close > EMA200 (trend) + Close > EMA20 (price) + Volume > SMA (if enabled) + Rearmed (dip below rearm if toggled).
3. Trigger Fires: RSI >= trigger via selected mode (e.g., crossover + grace window).
4. Execute: Enter long at close; set daily flag to block repeats.
Exit:
- Stop-Loss: Entry - (ATR * 1.5) – dynamic, vol-scaled.
- Take-Profit: Entry + (Risk * 2.0) – fixed RR.
- Trailing (Optional): Activates post-entry; trails at Close - (ATR * 2.0), updating on each bar for trend extension.
No shorts or hedging—pure long bias.
Formulae Used
- RSI: `ta.rsi(close, rsiLen)` – Standard 14-period momentum oscillator (0-100).
- EMAs: `ta.ema(close, len)` – Exponential moving averages for trend/price filters.
- ATR: `ta.atr(atrLen)` – True range average for stop sizing: Stop = Entry - (ATR * mult).
- Volume SMA: `ta.sma(volume, volLen)` – Simple average for relative strength filter.
- Grace Window: `bar_index - lastCrossBarIndex <= graceBars` – Counts bars since RSI crossover.
- Sustain: `ta.barssince(rsi < trigger) >= sustainBars` – Consecutive bars above threshold.
- Session Check: `time(timeframe.period, sessionStr) != 0` – TradingView's built-in session validator.
- Risk Distance: `riskPS = entry - stop; TP = entry + (riskPS * RR)` – Asymmetric reward calc.
FAQ
Q: Why only one trade/day?
A: Prevents revenge trading in volatile sessions . Backtests show it cuts losers by 20-30% vs. multi-entry bots.
Q: Does it work on all assets/timeframes?
A: Best for trending stocks/indices on 5m-1H. Test on crypto/forex with wider ATR mult (2.0+).
Q: How to optimize?
A: Use TradingView's optimizer on RSI trigger (40-60) and EMA fast (10-30). Aim for PF >1.0 over 1Y data.
Q: Alerts don't fire—why?
A: Ensure `alertcondition` is enabled in script settings. Test with "Any alert() function calls only."
Q: Trailing stop too loose?
A: Tune `trailMult` to 1.5 for tighter; it activates alongside fixed TP/SL for hybrid protection.
Glossary
- Grace Window: Post-RSI-cross period (bars) where entry still allowed if RSI holds trigger.
- Rearm Dip: Optional pullback below a low RSI level (e.g., 45) to "reset" eligibility after signals.
- Profit Factor (PF): Gross profit / gross loss—>1.0 means winners outweigh losers.
- R Multiple: Risk units (e.g., 2R = 2x stop distance as target).
- Sustain Bars: Consecutive bars RSI stays >= trigger for mode confirmation.
Recommendations
- Backtest First: Run on your symbols (/) over 6-12M; tweak RSI to 55 for +5% win rate.
- Live Use: Start paper trading with `useSession=true` and `useVol=true` to filter noise.
- Pairs Well With: Higher TF (daily) for bias; add ADX (>25) filter for strong trends (code snippet in prior chats).
- Risk Note: 10% sizing suits $100k+ accounts; scale down for smaller. Not financial advice—past performance ≠ future.
- Publish Tip: Add tags like "momentum," "RSI," "long-only" on TradingView for visibility.
Strategy Properties & Backtesting Setup
FirstStrike Long 200 is configured with conservative, realistic backtesting parameters to ensure reliable performance simulations. These settings prioritize capital preservation and transparency, making it suitable for both novice and experienced traders testing on stocks.
Initial Capital
$100,000 Standard starting equity for portfolio-level testing; scales well for retail accounts. Adjust lower (e.g., $10k) for smaller simulations.
Base Currency
Default (USD) Aligns with most US equities (e.g., NASDAQ symbols); auto-converts for other assets.
Order Size
1 (Quantity) Fixed share contracts for simplicity—e.g., buys 1 share per trade. For % of equity, switch to "Percent of Equity" in strategy code.
Pyramiding
0 Orders No additional entries on open positions; enforces strict one-trade-per-day discipline to avoid overexposure.
Commission
0.1% Realistic broker fee (e.g., Interactive Brokers tier); factors in round-trip costs without over-penalizing winners.
Verify Price for Limit Orders
0 Ticks No slippage delay on TPs—assumes ideal fills for historical accuracy.
Slippage
0 Ticks Zero assumed slippage for clean backtests; real-world trading may add 1-2 ticks on volatile opens.
These defaults yield low drawdowns (<0.3% max in tests) while capturing trend edges. For live trading, enable slippage (1-3 ticks) to mimic execution gaps. Always forward-test before deploying!
⚠️ 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.
Daily ATR% Dashboard george_pirlog//@version=6
indicator("ATR(14) – Daily + % vs Daily Close & Current (Heat + Alerts)", overlay=true)
// ── Inputs
atrLen = input.int(14, "ATR Length")
tfATR = input.timeframe("D", "ATR Timeframe (for ATR & daily close)")
decATR = input.int(2, "Decimals (ATR)", minval=0, maxval=6)
decPct = input.int(2, "Decimals (%)", minval=0, maxval=6)
pos = input.string("Top Right", "Table Position", options= )
bgAlpha = input.int(75, "Table BG Transparency (0-100)", minval=0, maxval=100)
showLabel = input.bool(false, "Show floating label")
yOffsetATR = input.float(0.25, "Label Y offset (× ATR)", step=0.05)
// Praguri culoare / alerte
warnPct = input.float(2.0, "Warn Threshold % (yellow/orange)", step=0.1)
highPct = input.float(3.0, "High Threshold % (red)", step=0.1)
// ── Helpers
f_pos(p) =>
if p == "Top Left"
position.top_left
else if p == "Top Right"
position.top_right
else if p == "Bottom Left"
position.bottom_left
else
position.bottom_right
f_heatColor(pct) =>
if pct >= highPct
color.new(color.red, 0)
else if pct >= warnPct
color.new(color.orange, 0)
else
color.new(color.teal, 0)
// ── Serii daily
atrDaily = request.security(syminfo.tickerid, tfATR, ta.atr(atrLen))
closeD = request.security(syminfo.tickerid, tfATR, close)
// ── Ultima valoare & procente
atrLast = atrDaily
pctOfDailyClose = atrLast / closeD * 100
pctOfCurrent = atrLast / close * 100
// ── Tabel static (3×2)
var table box = table.new(f_pos(pos), 3, 2, border_width=1, frame_color=color.new(color.gray, 0), bgcolor=color.new(color.black, bgAlpha))
if barstate.islast
table.cell(box, 0, 0, "ATR14 (Last D)", text_color=color.white, text_size=size.small, bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 1, 0, "% of Daily Close", text_color=color.white, text_size=size.small, bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 2, 0, "% of Current", text_color=color.white, text_size=size.small, bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 0, 1, str.tostring(atrLast, "0." + str.repeat("0", decATR)), text_color=color.white, bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 1, 1, str.tostring(pctOfDailyClose, "0." + str.repeat("0", decPct)) + "%", text_color=f_heatColor(pctOfDailyClose), bgcolor=color.new(color.black, bgAlpha))
table.cell(box, 2, 1, str.tostring(pctOfCurrent, "0." + str.repeat("0", decPct)) + "%", text_color=f_heatColor(pctOfCurrent), bgcolor=color.new(color.black, bgAlpha))
// ── Etichetă opțională (apel pe o singură linie)
var label info = na
if showLabel and barstate.islast
label.delete(info)
txt = "ATR14 (Last D): " + str.tostring(atrLast, "0." + str.repeat("0", decATR)) +
" vs Daily Close: " + str.tostring(pctOfDailyClose, "0." + str.repeat("0", decPct)) + "%" +
" vs Current: " + str.tostring(pctOfCurrent, "0." + str.repeat("0", decPct)) + "%"
info := label.new(x=bar_index, y=close + atrLast * yOffsetATR, text=txt, xloc=xloc.bar_index, yloc=yloc.price, style=label.style_label_left, textcolor=color.white, color=color.new(color.black, 0), size=size.normal)
// ── Alerts (cross peste praguri)
dailyWarnUp = ta.crossover(pctOfDailyClose, warnPct)
dailyHighUp = ta.crossover(pctOfDailyClose, highPct)
currWarnUp = ta.crossover(pctOfCurrent, warnPct)
currHighUp = ta.crossover(pctOfCurrent, highPct)
alertcondition(dailyWarnUp, "Daily % crossed WARN", "ATR% vs Daily Close crossed above WARN threshold")
alertcondition(dailyHighUp, "Daily % crossed HIGH", "ATR% vs Daily Close crossed above HIGH threshold")
alertcondition(currWarnUp, "Current % crossed WARN", "ATR% vs Current Price crossed above WARN threshold")
alertcondition(currHighUp, "Current % crossed HIGH", "ATR% vs Current Price crossed above HIGH threshold")
ATR Horizontal Lines from EMA and SMA with TableHow it works:
The script calculates ATR levels (of your choosing)
Instead of plotting curves, it creates horizontal lines
The lines are deleted and recreated on each bar to show current levels
Lines extend to the right or can be limited to a certain width
Customization options:
Line width (1-10 pixels)
Individual colors for each of the 4 lines
All the original parameters (EMA/SMA lengths, ATR length, multipliers)
The horizontal lines will now show the current ATR-based support/resistance levels and move dynamically as the EMAs, SMA, and ATR values change with new price data.
Vol-Pace Projected-ATR-ADX-Alert-MAThe VolSC indicator analyzes stock volume trends with a focus on the Pace metric, which projects today's volume as a percentage of the 30-day average, highlighting unusual activity (e.g., over 200% turns bright green with alerts). The phantom projection bar, a wide green histogram to the right of the last bar, visually represents this projected volume on daily charts only, aiding quick identification of potential volume surges without cluttering intraday or weekly views. Additional features include ADX strength, ATR averages, and customizable table display for comprehensive insights.
Key Features:
* Primary Indicator: Volume with ADX (Average Directional Index) text.
* Pacing and Alerts: Calculates the volume pace for the day. Features an unusual volume alert with an adjustable threshold (e.g., 200%).
* Volume Projection: Projects a visual "Phantom Volume" for the day, offset to the right of the actual volume bar.
* ATR Indicator: Displays the 2x ATR (Average True Range) value as text.
* Volume Average: Displays the ADV (Average Daily Volume) Moving Average as text.
* Customization: Most settings are adjustable.
Long Elite Squeeze (LES 2.1) NV/CDV AI LindsayLES 2.1 — Long Elite Squeeze
Creator: Hunter Hammond •: Elite × FineFir H.H (AI “Lindsay”)
Discord: elitexfinefir
LES (“Long Elite Squeeze”) is a momentum + flow-aware long strategy built for small-float, high-velocity stocks. It blends a classic squeeze engine (BB/KC), adaptive RVOL/RSI gating, VWAP slope, ADX trend filtering, WaveTrend timing, and new Net-Volume/CVD flow exits—all wrapped with on-chart HUDs, a trade tracker, trap detection, and a lightweight AI selector to adapt entries to live conditions.
Who it’s for (and where it thrives)
LES 2.1 is tuned for the morning session and stocks that can really move:
Top Pre-Market and Day Gainers
Highest or Top Volume on Day
Float: ≤ 40M
Price: ≤ $20
Volume: ≥ 5× the 30-day average (intraday RVOL pop)
Catalyst: ideally a fresh news driver / “day gainer”
Timeframe: 1-minute (designed & tuned for 1m). Works on 2m/3m/5m, but wasn’t specifically designed for them (see tuning tips below).
Evolution at a glance
LES 1.0 — The foundation
Squeeze engine using Bollinger vs. Keltner to detect expansion (“squeeze OFF”).
EMA – ATR offset line (dynamic risk anchor) with EMA as trend filter.
RSI guard for overheated moves.
RVOL confirmation using average volume lookback.
WaveTrend (WT + Signal) to time entries/exits.
Basic buy/sell logic + simple on-chart labels.
LES 2.0 — Quality-of-life & timing upgrades
AI Lindsay assistant v2 (periodic / contextual commentary).
VWAP Slope Detector with sensitivity modes (Loose → Very Strict).
Manual defaults pre-tuned for ease of use.
Double-EMA trailing (visual take-profit helper).
Improved on-chart commentary and Trade Summary (10:30am snapshot).
AI Version Suggester (V1/V2/V3 modes) with stickiness/cooldown.
Trap Detector Pro (sweep, VWAP reject, blow-off, etc.) with scored severity.
Trade Tracker HUD + Entry Checklist HUD.
Overall stability & UX polish.
LES 2.1 — Flow-based exit superpowers
New Flow Exit: integrates 1m Net Volume and 5m CVD-style pressure:
1m NetVol window (rolling sum of signed volume)
5m CVD window (downsampled, smoothed)
Debounce (consecutive red bars to avoid one-tick fakes)
Optional ATR Guard (only exit if the move is meaningful vs ATR)
Cooldown after a flow exit to avoid re-chop
Chart labels: “SELL (NV/CVD)” when flow triggers
Keeps you in good trends, but kicks you out when aggressive sellers actually show up.
How the engine works (plain English)
Market prep: We confirm trend & energy using EMA/ATR, RSI, RVOL, Squeeze OFF, and Price > VWAP.
Entry mode (V1/V2/V3):
V1 — Balanced trades (default “safe” behavior)
V2 — Fast trades (more aggressive when action heats up)
V3 — Trending trades (stricter; waits for strong slope & trend)
You can pick a version manually or let the AI Suggester switch modes based on slope/ADX/RVOL/acceleration (with a cooldown so it doesn’t flip-flop).
Entry timing: WaveTrend and squeeze momentum improve timing while VWAP slope avoids buying flat tape.
Risk anchor: The EMA – (ATR × Multiplier) “offset line” is your dynamic stop/line in the sand.
Exits:
Base exits (version-aware): WT crossback, momentum fade, price losing offsetLine or EMA.
Flow Exit (2.1): If 1m NetVol and 5m CVD both turn decisively red (with debounce and optional ATR guard), close—no arguing.
Entry rules (exactly what has to be true)
Buy (Core) — fires when all are true:
Not already in a trade
Close > EMA and Close > OffsetLine (offsetLine = EMA − ATR × Mult)
RVOL confirmed (meets dynamic RVOL multiplier)
RSI below the overbought ceiling (version-aware slack in V3)
Squeeze OFF (BBs expanded outside Keltner)
Price > VWAP (toggleable)
Extra for V3 (Trending trades):
VWAP slope gate passes (and, if set, VWAP must be green)
ADX strong (≥ 25 by design, ≥ 20 baseline)
Minimum slopePctPerBar met (default V3 expects ≥ 0.05%/bar)
AI Suggester (optional):
Scores V1/V2/V3 from conditions like ADX, VWAP slope, RVOL, intrabar acceleration, then locks a pick for aiSwitchCoolBars bars.
On-chart help:
Checklist HUD lights up ✅/❌ for each gate (EMA, ATR, RVOL, RSI, VWAP, Slope, etc.).
Trade Quality Rating (🌟x/10) appears on buy bars if enabled.
Exit rules (every sell condition)
Base sells (V1/V2):
WaveTrend crossback (signal crosses over WT) OR
Momentum fade (two darker squeeze momentum bars) OR
Close < OffsetLine OR Close < EMA
Base sells (V3):
Close < OffsetLine OR Close < EMA (trend-respecting; ignores WT/momentum so you’re not shaken out early)
Flow Exit (2.1, applies to all versions if enabled):
In trade AND Flow Exit enabled
1m NetVol window is red (and ≥ Min |NetVol|)
5m CVD (smoothed) is red
**Deb
*** FYI: Play with settings until it fits your style, everything thats set default when script is loaded is what I run currently. I made LES 2.1 more customizable than ever to meet every trades style and execution. LES 2.1 with Lindsay upgrade new AI trade tracking feature (when enabled) and risk management LES 2.1 is something special to meet many challenges a trader faces everyday.
Atlantean Sideways / Range Regime DetectorPurpose
When using trend based indicators, you can skip the false signals when there is a sideways action, protecting you from the false signals.
Flags likely sideways/range phases using three checks:
Weak trend (ADX from DMI)
Price compression (Bollinger Band Width, normalized)
Low volatility (NATR = ATR/Price%)
Logic
isSideways = (ADX < adxThresh) AND (bbNorm < 0.25) AND (NATR < natrMax)
When true: bars + background turn teal and a provisional Range High/Low (rolling rangeWin) is drawn.
Key Inputs
DMI: diLen(22)
Optimized for 15 mins Bitcoin, could change it to 14 for more general approach
ADX: adxSmooth(14), adxThresh(18)
Volatility: lenATR(14), natrMax(1.8)
Visuals: rangeWin(20), bar/range toggles
Quick Tuning
More signals: raise adxThresh to 20–25, raise natrMax to 2.5–4.0, increase BB cutoff by editing bbNorm < 0.25 --> 0.35–0.50.
Smoother range lines: increase rangeWin to 30–40.
Use Cases
Mean reversion inside teal ranges.
Breakout prep when price closes outside the drawn range after teal ends. Could be used as a signal although not suggested.
Filter trend systems: skip trades when sidewaysCond is true. This is the main purpose, for it to be combined with trend based indicators, like Supertrend.
Alert
“Sideways Detected” triggers when isSideways is true.
Script could be expanded upon your requests.
Universal Breakout Strategy [KedArc Quant]Description:
A flexible breakout framework where you can test different logics (Prev Day, Bollinger, Volume, ATR, EMA Trend, RSI Confirm, Candle Confirm, Time Filter) under one system.
Choose your breakout mode, and the strategy will handle entries, exits, and optional risk management (ATR stops, take-profits, daily loss guard, cooldowns).
An on-chart info table shows live mode values (like Prev High/Low, Bollinger levels, RSI, etc.) plus P&L stats for quick analysis.
Use it to compare which breakout style works best on your instrument and timeframe, whether intraday, swing, or positional trading
🔑 Why it’s useful
* Flexibility: Switch between breakout strategies without loading different indicators.
* Clarity: On-chart info table displays current mode, relevant indicator levels, and live strategy P&L stats.
* Testing efficiency: Quickly A/B test different breakout styles under the same backtest environment.
* Transparency: Every trade is rule-based and displayed with entry/exit markers.
🚀 How it helps traders
* Lets you experiment with breakout strategies quickly without loading multiple scripts.
* Helps identify which breakout method fits your instrument & timeframe.
* Gives clear on-chart visual + statistical feedback for confident decision-making.
⚙️ Input Configuration
* Breakout Mode → choose which strategy to test:
* *Prev Day* → breakouts of yesterday’s High/Low.
* *Bollinger* → Upper/Lower BB pierce.
* *Volume* → Breakout confirmed with volume above average.
* *ATR Stop* → Wide range breakout using ATR filter.
* *Time Filter* → Breakouts inside defined session hours.
* *EMA Trend* → Breakouts only in EMA fast > slow alignment.
* *RSI Confirm* → Breakouts with RSI confirmation (e.g. >55 for longs).
* *Candle Confirm* → Breakouts validated by bullish/bearish candle.
* Lookback / ATR / Bollinger inputs → adjust sensitivity.
* Intrabar mode → option to evaluate breakouts using bar highs/lows instead of closes.
* Table options → show/hide info table, show/hide P&L stats, choose corner placement.
📈 Entry & Exit Logic
* Entry → occurs when breakout condition of chosen mode is met.
* Exit → default exits via opposite signals or optional stop/target if enabled.
* Session filter → optional auto-flat at session end.
* P&L management → optional daily loss guard, cooldown between trades, and ATR-based stop/take profit.
❓ FAQ — Choosing the best setup
Q: Which strategy should I use for which chart?
* *Prev Day Breakouts*: Best on indices, FX, and liquid futures with strong daily levels.
* *Bollinger*: Works well in range-bound environments, or crypto pairs with volatility compression.
* *Volume*: Good on equities where breakout strength is tied to volume spikes.
* *ATR Stop*: Suits volatile instruments (commodities, crypto).
* *EMA Trend*: Useful in trending markets (stocks, indices).
* *RSI Confirm*: Adds momentum filter, better for swing trades.
* *Candle Confirm*: Ideal for scalpers needing visual confirmation.
* *Time Filter*: For intraday traders who want signals only in high-liquidity sessions.
Q: What timeframe should I use?
* Intraday traders → 5m to 15m (Time Filter, Candle Confirm).
* Swing traders → 1H to 4H (EMA Trend, RSI Confirm, ATR Stop).
* Position traders → Daily (Prev Day, Bollinger).
* Breakout
A trade entry condition triggered when price crosses above a resistance level (for longs) or below a support level (for shorts).
* Prev Day High/Low
Formula:
Prev High = High of (Day )
Prev Low = Low of (Day )
* Bollinger Bands
Formula:
Basis = SMA(Close, Length)
Upper Band = Basis + (Multiplier × StdDev(Close, Length))
Lower Band = Basis – (Multiplier × StdDev(Close, Length))
* Volume Confirmation
A breakout is only valid if:
Volume > SMA(Volume, Length)
* ATR (Average True Range)
Measures volatility.
Formula:
ATR = SMA(True Range, Length)
where True Range = max(High–Low, |High–Close |, |Low–Close |)
* EMA (Exponential Moving Average)
Weighted moving average giving more weight to recent prices.
Formula:
EMA = (Price × α) + (EMA × (1–α))
with α = 2 / (Length + 1)
* RSI (Relative Strength Index)
Momentum oscillator scaled 0–100.
Formula:
RSI = 100 – (100 / (1 + RS))
where RS = Avg(Gain, Length) ÷ Avg(Loss, Length)
* Candle Confirmation
Bullish candle: Close > Open AND Close > Close
Bearish candle: Close < Open AND Close < Close
Win Rate (%)
Formula:
Win Rate = (Winning Trades ÷ Total Trades) × 100
* Average Trade P&L
Formula:
Avg Trade = Net Profit ÷ Total Trades
📊 Performance Notes
The Universal Breakout Strategy is designed as a framework rather than a single-asset optimized system. Results will vary depending on the chart, timeframe, and asset chosen.
On the current defaults (15-minute, INR-denominated example), the backtest produced 132 trades over the selected period. This provides a statistically sufficient sample size.
Win rate (~35%) is relatively low, but this is balanced by a positive reward-to-risk ratio (~1.8). In practice, a lower win rate with larger wins versus smaller losses is sustainable.
The average P&L per trade is close to breakeven under default settings. This is expected, as the strategy is not tuned for a single symbol but offered as a universal breakout framework.
Commissions (0.1%) and slippage (1 tick) are included in the simulation, ensuring realistic conditions.
Risk management is conservative, with order sizing set at 1 unit per trade. This avoids over-leveraging and keeps exposure well under the 5-10% equity risk guideline.
👉 Traders are encouraged to:
Experiment with inputs such as ATR period, breakout length, or Bollinger parameters.
Test across different timeframes and instruments (equities, futures, forex, crypto) to find optimal setups.
Combine with filters (trend direction, volatility regimes, or volume conditions) for further refinement.
⚠️ 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.
ATR Volatility and Trend AnalysisATR Volatility and Trend Analysis
Unlock the power of the Average True Range (ATR) with the ATR Volatility and Trend Analysis indicator. This comprehensive tool is designed to provide traders with a multi-faceted view of market dynamics, combining volatility analysis, dynamic support and resistance levels, and trend detection into a single, easy-to-use indicator.
How It Works
The ATR Volatility and Trend Analysis indicator is built upon the core concept of the ATR, a classic measure of market volatility. It expands on this by providing several key features:
Dynamic ATR Bands: The indicator plots three sets of upper and lower bands around the price. These bands are calculated by multiplying the current ATR value by user-defined multipliers. They act as dynamic support and resistance levels, widening during volatile periods and contracting during calm markets.
Volatility Breakout Signals: Identify potential breakouts with precision. The indicator generates a signal when the current ATR value surges above its own moving average by a specified threshold, indicating a significant increase in volatility that could lead to a strong price move.
Trend Detection: The indicator determines the market trend by analyzing both price action and ATR behavior. A bullish trend is signaled when the price is above its moving average and volatility is increasing. Conversely, a bearish trend is signaled when the price is below its moving average and volatility is increasing.
How to Use the ATR Multi-Band Indicator
Identify Support and Resistance: Use the ATR bands as key levels. Price approaching the outer bands may indicate overbought or oversold conditions, while a break of the bands can signal a strong continuation.
Confirm Breakouts: Look for a volatility breakout signal to confirm the strength behind a price move. A breakout from a consolidation range accompanied by a volatility signal is a strong indicator of a new trend.
Trade with the Trend: Use the background coloring and trend signals to align your trades with the dominant market direction. Enter long positions during confirmed bullish trends and short positions during bearish trends.
Set Up Alerts: The indicator includes alerts for band crosses, trend changes, and volatility breakouts, ensuring you never miss a potential trading opportunity.
What makes it different?
While many indicators use ATR, the ATR Volatility and Trend Analysis tool is unique in its integration of multiple ATR-based concepts into a single, cohesive system. It doesn't just show volatility; it interprets it in the context of price action to deliver actionable trend and breakout signals, making it a complete solution for ATR-based analysis.
Disclaimer
This indicator is designed as a technical analysis tool and should be used in conjunction with other forms of analysis and proper risk management.
Past performance does not guarantee future results, and traders should thoroughly test any strategy before implementing it with real capital.
Volume Percentile Supertrend [BackQuant]Volume Percentile Supertrend
A volatility and participation aware Supertrend that automatically widens or tightens its bands based on where current volume sits inside its recent distribution. The goal is simple: fewer whipsaws when activity surges, faster reaction when the tape is quiet.
What it does
Calculates a standard Supertrend framework from an ATR on a volume weighted price source.
Measures current volume against its recent percentile and converts that context into a dynamic ATR multiplier.
Widens bands when volume is unusually high to reduce chop. Tightens bands when volume is unusually low to catch turns earlier.
Paints candles, draws the active Supertrend line and optional bands, and prints clear Long and Short signal markers.
Why volume percentile
Fixed ATR multipliers assume all bars are equal. They are not. When participation spikes, price swings expand and a static band gets sliced.
Percentiles place the current bar inside a recent distribution. If volume is in the top slice, the Supertrend allows more room. If volume is in the bottom slice, it expects smaller noise and tightens.
This keeps the same playbook usable across busy sessions and sleepy ones without constant manual retuning.
How it works
Volume distribution - A rolling window computes the Pth percentile of volume. Above that is flagged as high volume. A lower reference percentile marks quiet bars.
Dynamic multiplier - Start from a Base Multiplier. If bar is high volume, scale it up by a function of volume-to-average and a Sensitivity knob. If bar is low volume, scale it down. Smooth the result with an EMA to avoid jitter.
VWMA source - The price input for bands is a short volume weighted moving average of close. Heavy prints matter more.
ATR envelope - Compute ATR on your length. UpperBasic = VWMA + Multiplier x ATR. LowerBasic = VWMA - Multiplier x ATR.
Trailing logic - The final lines trail price so they only move in a direction that preserves Supertrend behavior. This prevents sudden flips from transient pokes.
Direction and signals - Direction flips when price crosses through the relevant trailing line. SupertrendLong and SupertrendShort mark those flips. The plotted Supertrend is the active trailing side.
Inputs and what they change
Volume Lookback - Window for percentile and average. Larger window = stabler percentile, smaller = snappier.
Volume Percentile Level - Threshold that defines high volume. Example 70 means top 30 percent of recent bars are treated as high activity.
Volume Sensitivity - Gain from volume ratio to the dynamic multiplier. Higher = bands expand more when volume spikes.
VWMA Source Length - Smoothing of the volume weighted price source for the bands.
ATR Length - Standard ATR window. Larger = slower, smaller = quicker.
Base Multiplier - Core band width before volume adjustment. Think of this as your neutral volatility setting.
Multiplier Smoothing - EMA on the dynamic multiplier. Reduces back and forth changes when volume oscillates around the threshold.
Show Supertrend on chart - Toggles the active line.
Show Upper Lower Bands - Draws both sides even when inactive. Good for context.
Paint candles according to Trend - Colors bars by trend direction.
Show Long and Short Signals - Prints 𝕃 and 𝕊 markers at flips.
Colors - Choose your long and short palette.
Reading the plot
Supertrend line - Thick line that hugs price from above in downtrends and from below in uptrends. Its distance breathes with volume.
Bands - Optional upper and lower rails. Useful to see the inactive side and judge how wide the envelope is right now.
Signals - 𝕃 prints when the trend flips long. 𝕊 prints when the trend flips short.
Candle colors - Quick bias read at a glance when painting is enabled.
Typical workflows
Trend following - Use 𝕃 flips to initiate longs and ride while bars remain colored long and price respects the lower trailing line. Mirror for shorts with 𝕊 and the upper trailing line. During high volume phases the line will give more room, which helps stay in the move.
Pullback adds - In an established trend, shallow tags toward the active line after a high volume expansion can be add points. The dynamic envelope adjusts to the session so your add distance is not fixed to a stale volatility regime.
Mean reversion filter - In quiet tape the multiplier contracts and flips come earlier. If you prefer fading, watch for quick toggles around the bands when volume percentile remains low. In high volume, avoid fading into the widened line unless you have other strong reasons.
Notes on behavior
High volume bar: the percentile gate opens, volRatio > 1 powers up the multiplier through the Sensitivity lever, bands widen, fewer false flips.
Low volume bar: multiplier contracts, bands tighten, flips can happen earlier which is useful when you want to catch regime changes in quiet conditions.
Smoothing matters: both the price source (VWMA) and the multiplier are smoothed to keep structure readable while still adapting.
Quick checklist
If you see frequent chop and today feels busy: check that volume is above your percentile. Wider bands are expected. Consider letting the trend prove itself against the expanded line before acting.
If everything feels slow and you want earlier entries: percentile likely marks low volume, so bands tighten and 𝕃 or 𝕊 can appear sooner.
If you want more or fewer flips overall: adjust Base Multiplier first. If you want more reaction specifically tied to volume surges: raise Volume Sensitivity. If the envelope breathes too fast: raise Multiplier Smoothing.
What the signals mean
SupertrendLong - Direction changed from non-long to long. 𝕃 marker prints. The active line switches to support below price.
SupertrendShort - Direction changed from non-short to short. 𝕊 marker prints. The active line switches to resistance above price.
Trend color - Bars painted long or short help validate context for entries and management.
Summary
Volume Percentile Supertrend adapts the classic Supertrend to the day you are trading. Volume percentile sets the mood, sensitivity translates it into dynamic band width, and smoothing keeps it clean. The result is a single plot that aims to stay conservative when the tape is loud and act decisively when it is quiet, without you having to constantly retune settings.
Opening Candle Zone with ATR Bands by nkChartsThis indicator highlights the opening range of each trading session and projects dynamic ATR-based zones around it.
Key Features
Plots high and low levels of the opening candle for each new daily session.
Extends these levels across the session, providing clear intraday support and resistance zones.
Adds ATR-based offset bands above and below the opening range for volatility-adjusted levels.
Customizable colors, ATR length, and multiplier for flexible use across markets and timeframes.
Adjustable session history limit to control how many past levels remain on the chart.
How to Use:
The opening range high/low often acts as strong intraday support or resistance.
The ATR bands give an adaptive volatility buffer, useful for breakout or mean-reversion strategies.
Works on any market with clear session opens.
This tool is designed for traders who want to combine session-based price action with volatility insights, helping identify potential breakouts, reversals, or consolidation areas throughout the day.
⚠️ Disclaimer: This indicator is for educational purposes only. It does not provide financial advice or guarantee profits. Always perform your own analysis before making trading decisions.
BOCS Channel Scalper Strategy - Automated Mean Reversion System# BOCS Channel Scalper Strategy - Automated Mean Reversion System
## WHAT THIS STRATEGY DOES:
This is an automated mean reversion trading strategy that identifies consolidation channels through volatility analysis and executes scalp trades when price enters entry zones near channel boundaries. Unlike breakout strategies, this system assumes price will revert to the channel mean, taking profits as price bounces back from extremes. Position sizing is fully customizable with three methods: fixed contracts, percentage of equity, or fixed dollar amount. Stop losses are placed just outside channel boundaries with take profits calculated either as fixed points or as a percentage of channel range.
## KEY DIFFERENCE FROM ORIGINAL BOCS:
**This strategy is designed for traders seeking higher trade frequency.** The original BOCS indicator trades breakouts OUTSIDE channels, waiting for price to escape consolidation before entering. This scalper version trades mean reversion INSIDE channels, entering when price reaches channel extremes and betting on a bounce back to center. The result is significantly more trading opportunities:
- **Original BOCS**: 1-3 signals per channel (only on breakout)
- **Scalper Version**: 5-15+ signals per channel (every touch of entry zones)
- **Trade Style**: Mean reversion vs trend following
- **Hold Time**: Seconds to minutes vs minutes to hours
- **Best Markets**: Ranging/choppy conditions vs trending breakouts
This makes the scalper ideal for active day traders who want continuous opportunities within consolidation zones rather than waiting for breakout confirmation. However, increased trade frequency also means higher commission costs and requires tighter risk management.
## TECHNICAL METHODOLOGY:
### Price Normalization Process:
The strategy normalizes price data to create consistent volatility measurements across different instruments and price levels. It calculates the highest high and lowest low over a user-defined lookback period (default 100 bars). Current close price is normalized using: (close - lowest_low) / (highest_high - lowest_low), producing values between 0 and 1 for standardized volatility analysis.
### Volatility Detection:
A 14-period standard deviation is applied to the normalized price series to measure price deviation from the mean. Higher standard deviation values indicate volatility expansion; lower values indicate consolidation. The strategy uses ta.highestbars() and ta.lowestbars() to identify when volatility peaks and troughs occur over the detection period (default 14 bars).
### Channel Formation Logic:
When volatility crosses from a high level to a low level (ta.crossover(upper, lower)), a consolidation phase begins. The strategy tracks the highest and lowest prices during this period, which become the channel boundaries. Minimum duration of 10+ bars is required to filter out brief volatility spikes. Channels are rendered as box objects with defined upper and lower boundaries, with colored zones indicating entry areas.
### Entry Signal Generation:
The strategy uses immediate touch-based entry logic. Entry zones are defined as a percentage from channel edges (default 20%):
- **Long Entry Zone**: Bottom 20% of channel (bottomBound + channelRange × 0.2)
- **Short Entry Zone**: Top 20% of channel (topBound - channelRange × 0.2)
Long signals trigger when candle low touches or enters the long entry zone. Short signals trigger when candle high touches or enters the short entry zone. This captures mean reversion opportunities as price reaches channel extremes.
### Cooldown Filter:
An optional cooldown period (measured in bars) prevents signal spam by enforcing minimum spacing between consecutive signals. If cooldown is set to 3 bars, no new long signal will fire until 3 bars after the previous long signal. Long and short cooldowns are tracked independently, allowing both directions to signal within the same period.
### ATR Volatility Filter:
The strategy includes a multi-timeframe ATR filter to avoid trading during low-volatility conditions. Using request.security(), it fetches ATR values from a specified timeframe (e.g., 1-minute ATR while trading on 5-minute charts). The filter compares current ATR to a user-defined minimum threshold:
- If ATR ≥ threshold: Trading enabled
- If ATR < threshold: No signals fire
This prevents entries during dead zones where mean reversion is unreliable due to insufficient price movement.
### Take Profit Calculation:
Two TP methods are available:
**Fixed Points Mode**:
- Long TP = Entry + (TP_Ticks × syminfo.mintick)
- Short TP = Entry - (TP_Ticks × syminfo.mintick)
**Channel Percentage Mode**:
- Long TP = Entry + (ChannelRange × TP_Percent)
- Short TP = Entry - (ChannelRange × TP_Percent)
Default 50% targets the channel midline, a natural mean reversion target. Larger percentages aim for opposite channel edge.
### Stop Loss Placement:
Stop losses are placed just outside the channel boundary by a user-defined tick offset:
- Long SL = ChannelBottom - (SL_Offset_Ticks × syminfo.mintick)
- Short SL = ChannelTop + (SL_Offset_Ticks × syminfo.mintick)
This logic assumes channel breaks invalidate the mean reversion thesis. If price breaks through, the range is no longer valid and position exits.
### Trade Execution Logic:
When entry conditions are met (price in zone, cooldown satisfied, ATR filter passed, no existing position):
1. Calculate entry price at zone boundary
2. Calculate TP and SL based on selected method
3. Execute strategy.entry() with calculated position size
4. Place strategy.exit() with TP limit and SL stop orders
5. Update info table with active trade details
The strategy enforces one position at a time by checking strategy.position_size == 0 before entry.
### Channel Breakout Management:
Channels are removed when price closes more than 10 ticks outside boundaries. This tolerance prevents premature channel deletion from minor breaks or wicks, allowing the mean reversion setup to persist through small boundary violations.
### Position Sizing System:
Three methods calculate position size:
**Fixed Contracts**:
- Uses exact contract quantity specified in settings
- Best for futures traders (e.g., "trade 2 NQ contracts")
**Percentage of Equity**:
- position_size = (strategy.equity × equity_pct / 100) / close
- Dynamically scales with account growth
**Cash Amount**:
- position_size = cash_amount / close
- Maintains consistent dollar exposure regardless of price
## INPUT PARAMETERS:
### Position Sizing:
- **Position Size Type**: Choose Fixed Contracts, % of Equity, or Cash Amount
- **Number of Contracts**: Fixed quantity per trade (1-1000)
- **% of Equity**: Percentage of account to allocate (1-100%)
- **Cash Amount**: Dollar value per position ($100+)
### Channel Settings:
- **Nested Channels**: Allow multiple overlapping channels vs single channel
- **Normalization Length**: Lookback for high/low calculation (1-500, default 100)
- **Box Detection Length**: Period for volatility detection (1-100, default 14)
### Scalping Settings:
- **Enable Long Scalps**: Toggle long entries on/off
- **Enable Short Scalps**: Toggle short entries on/off
- **Entry Zone % from Edge**: Size of entry zone (5-50%, default 20%)
- **SL Offset (Ticks)**: Distance beyond channel for stop (1+, default 5)
- **Cooldown Period (Bars)**: Minimum spacing between signals (0 = no cooldown)
### ATR Filter:
- **Enable ATR Filter**: Toggle volatility filter on/off
- **ATR Timeframe**: Source timeframe for ATR (1, 5, 15, 60 min, etc.)
- **ATR Length**: Smoothing period (1-100, default 14)
- **Min ATR Value**: Threshold for trade enablement (0.1+, default 10.0)
### Take Profit Settings:
- **TP Method**: Choose Fixed Points or % of Channel
- **TP Fixed (Ticks)**: Static distance in ticks (1+, default 30)
- **TP % of Channel**: Dynamic target as channel percentage (10-100%, default 50%)
### Appearance:
- **Show Entry Zones**: Toggle zone labels on channels
- **Show Info Table**: Display real-time strategy status
- **Table Position**: Corner placement (Top Left/Right, Bottom Left/Right)
- **Color Settings**: Customize long/short/TP/SL colors
## VISUAL INDICATORS:
- **Channel boxes** with semi-transparent fill showing consolidation zones
- **Colored entry zones** labeled "LONG ZONE ▲" and "SHORT ZONE ▼"
- **Entry signal arrows** below/above bars marking long/short entries
- **Active TP/SL lines** with emoji labels (⊕ Entry, 🎯 TP, 🛑 SL)
- **Info table** showing position status, channel state, last signal, entry/TP/SL prices, and ATR status
## HOW TO USE:
### For 1-3 Minute Scalping (NQ/ES):
- ATR Timeframe: "1" (1-minute)
- ATR Min Value: 10.0 (for NQ), adjust per instrument
- Entry Zone %: 20-25%
- TP Method: Fixed Points, 20-40 ticks
- SL Offset: 5-10 ticks
- Cooldown: 2-3 bars
- Position Size: 1-2 contracts
### For 5-15 Minute Day Trading:
- ATR Timeframe: "5" or match chart
- ATR Min Value: Adjust to instrument (test 8-15 for NQ)
- Entry Zone %: 20-30%
- TP Method: % of Channel, 40-60%
- SL Offset: 5-10 ticks
- Cooldown: 3-5 bars
- Position Size: Fixed contracts or 5-10% equity
### For 30-60 Minute Swing Scalping:
- ATR Timeframe: "15" or "30"
- ATR Min Value: Lower threshold for broader market
- Entry Zone %: 25-35%
- TP Method: % of Channel, 50-70%
- SL Offset: 10-15 ticks
- Cooldown: 5+ bars or disable
- Position Size: % of equity recommended
## BACKTEST CONSIDERATIONS:
- Strategy performs best in ranging, mean-reverting markets
- Strong trending markets produce more stop losses as price breaks channels
- ATR filter significantly reduces trade count but improves quality during low volatility
- Cooldown period trades signal quantity for signal quality
- Commission and slippage materially impact sub-5-minute timeframe performance
- Shorter timeframes require tighter entry zones (15-20%) to catch quick reversions
- % of Channel TP adapts better to varying channel sizes than fixed points
- Fixed contract sizing recommended for consistent risk per trade in futures
**Backtesting Parameters Used**: This strategy was developed and tested using realistic commission and slippage values to provide accurate performance expectations. Recommended settings: Commission of $1.40 per side (typical for NQ futures through discount brokers), slippage of 2 ticks to account for execution delays on fast-moving scalp entries. These values reflect real-world trading costs that active scalpers will encounter. Backtest results without proper cost simulation will significantly overstate profitability.
## COMPATIBLE MARKETS:
Works on any instrument with price data including stock indices (NQ, ES, YM, RTY), individual stocks, forex pairs (EUR/USD, GBP/USD), cryptocurrency (BTC, ETH), and commodities. Volume-based features require data feed with volume information but are optional for core functionality.
## KNOWN LIMITATIONS:
- Immediate touch entry can fire multiple times in choppy zones without adequate cooldown
- Channel deletion at 10-tick breaks may be too aggressive or lenient depending on instrument tick size
- ATR filter from lower timeframes requires higher-tier TradingView subscription (request.security limitation)
- Mean reversion logic fails in strong breakout scenarios leading to stop loss hits
- Position sizing via % of equity or cash amount calculates based on close price, may differ from actual fill price
- No partial closing capability - full position exits at TP or SL only
- Strategy does not account for gap openings or overnight holds
## RISK DISCLOSURE:
Trading involves substantial risk of loss. Past performance does not guarantee future results. This strategy is for educational purposes and backtesting only. Mean reversion strategies can experience extended drawdowns during trending markets. Stop losses may not fill at intended levels during extreme volatility or gaps. Thoroughly test on historical data and paper trade before risking real capital. Use appropriate position sizing and never risk more than you can afford to lose. Consider consulting a licensed financial advisor before making trading decisions. Automated trading systems can malfunction - monitor all live positions actively.
## 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. The core channel formation logic using normalized price standard deviation is AlgoAlpha's original contribution to the TradingView community.
Enhancements to the original concept include: mean reversion entry logic (vs breakout), immediate touch-based signals, multi-timeframe ATR volatility filtering, flexible position sizing (fixed/percentage/cash), cooldown period filtering, dual TP methods (fixed points vs channel percentage), automated strategy execution with exit management, and real-time position monitoring table.
ATR Bands over 50D SMA (% method)Indicator that shows multiples of ATR% above the 50d SMA as bands on a chart, building off of
Jeff Sun 's methodology. You should tinker with the settings to chose your multiples, colors and which multiple lines to show. I don't know if the negative multiple lines have any use, so I turn mine off. Offered as is. I am not a programmer. Note the other indicators shown on the print screen are not mine.
Average True Range TrackerThis indicator calculates the daily ATR of the past 14 days. The ATR% indicates the range completed for the day. The ATR indicates the average daily range. The 20% ATR indicates the value of 20% of the daily ATR for retracement purposes.
Daily ATR TrackerThis indicator calculates the daily ATR of the past 14 days. The ATR% indicates the range completed for the day. The ATR indicates the average daily range. The 20% ATR indicates the value of 20% of the daily ATR for retracement purposes.
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.
ATR Enhanced [DCAUT]█ ATR Enhanced
📊 OVERVIEW
Standard ATR uses only RMA smoothing, while ATR Enhanced provides 20+ professional smoothing algorithms , offering precise volatility measurement solutions for different trading scenarios and market environments.
💡 CORE VALUE
- 20+ algorithm choices : SMA, EMA, RMA, WMA, HMA, T3, KAMA, FRAMA, Kalman Filter, etc.
📋 PARAMETER SETUP
ATR Length : Calculation period (default: 14)
Moving Average Type : Choose the most suitable smoothing method from 20+ algorithms
🎨 COLOR CODING
Green : Rising volatility
Red : Falling volatility
Apex Edge Sentinel - Stop Loss HUDApex Edge – ATR Sentinel Stop Loss HUD
The Apex Edge – ATR Sentinel is a complete stop-loss intelligence system built as a clean, always-on HUD.
It delivers institutional-level risk guidance by calculating and displaying live ATR-based stop levels for both long and short trades at multiple risk tolerances.
Forget cluttered charts and repainting lines — Sentinel gives you a clear stop-loss reference panel that updates dynamically with every bar.
✅ Features
• Triple ATR Multipliers
User-defined (e.g. x1.5 / x2.0 / x2.5). Compare tight, medium, and wide stops instantly.
• Dual-Side SL Levels
Both Long and Short safe stop prices displayed side by side. No more guessing trend
bias.
• ATR Transparency
HUD shows ATR(length) so you always know the calculation basis. Default = 14, adjustable
to your style.
• ATR Regime Meter
Detects volatility conditions (LOW / NORMAL / HIGH) by comparing ATR to its SMA. Helps
you avoid over-tight stops in high-volatility markets.
• Tick-Aware Rounding
Stop levels auto-rounded to the instrument’s tick size (Gold = 0.10, FX = 0.0001, indices =
whole points).
Custom HUD Design
• Location: Top/Bottom, Left/Right
• Sizes: Compact / Medium / Large (desktop or mobile)
• Opacity control (25% default Apex styling)
How to Use
1. Load Sentinel on your chart.
2. Check the HUD:
• ATR(14): 2.6 → base volatility measure.
• x1.5 / x2.0 / x2.5 → instant SL levels for both long & short trades.
3. Before entering a trade → decide which multiplier matches your style (tight scalper vs wider swing).
4. Manually place your SL at the level displayed in the HUD.
Sentinel works as both:
• A pre-trade check (is ATR stop too wide for my RR?).
• A live risk compass (updated stop levels every bar).
Why Apex Sentinel?
Most ATR stop indicators clutter charts with lagging lines or repainting trails. Sentinel strips it back to what matters:
• The numbers.
• The risk levels.
• The context.
It’s a pure stop-loss HUD, designed for serious traders who want clarity, discipline, and instant reference points across any market or timeframe.
Notes
• This is a HUD-only system (no automatic SL line). Traders manually apply the SL level
shown in the panel.
• Defaults: ATR(14), multipliers 1.5 / 2.0 / 2.5. Adjust to your trading style.
• Best used on intraday pairs like XAUUSD, EURUSD, indices, but works universally.
Apex Edge Philosophy: Clean. Smart. Institutional.
No clutter. No gimmicks. Just precision tools for modern markets.
Anrazzi - EMAs/ATR - 1.0.2The Anrazzi – EMAs/ATR indicator is a multi-purpose overlay designed to help traders track trend direction and market volatility in a single clean tool.
It plots up to six customizable moving averages (MAs) and an Average True Range (ATR) value directly on your chart, allowing you to quickly identify market bias, dynamic support/resistance, and volatility levels without switching indicators.
This script is ideal for traders who want a simple, configurable, and efficient way to combine trend-following signals with volatility-based position sizing.
📌 Key Features
Six Moving Averages (MA1 → MA6)
Toggle each MA on/off individually
Choose between EMA or SMA for each
Customize length and color
Perfect for spotting trend direction and pullback zones
ATR Display
Uses Wilder’s ATR formula (ta.rma(ta.tr(true), 14))
Can be calculated on current or higher timeframe
Adjustable multiplier for position sizing (e.g., 1.5× ATR stops)
Displays cleanly in the bottom-right corner
Custom Watermark
Displays symbol + timeframe in top-right
Adjustable color and size for streamers, screenshots, or clear charting
Compact UI
Organized with group and inline inputs for quick configuration
Lightweight and optimized for real-time performance
⚙️ How It Works
MAs: The script uses either ta.ema() or ta.sma() to compute each moving average based on the user-selected type and length.
ATR: The ATR is calculated using ta.rma(ta.tr(true), 14) (Wilder’s smoothing), and optionally scaled by a multiplier for easier use in risk management.
Tables: ATR value and watermark are displayed using table.new() so they stay anchored to the screen regardless of zoom level.
📈 How to Use
Enable the MAs you want to track and adjust their lengths, type, and colors.
Enable ATR if you want to see volatility — optionally select a higher timeframe for broader context.
Use MAs to:
Identify overall trend direction (e.g. price above MA20 = bullish)
Spot pullback zones for entries
See when multiple MAs cluster together as support/resistance zones
Use ATR value to:
Size your stop-loss dynamically (e.g. stop = entry − 1.5×ATR)
Detect volatility breakouts (ATR spikes = market expansion)
🎯 Recommended For
Day traders & swing traders
Trend-following & momentum strategies
Volatility-based risk management
Traders who want a clean, all-in-one dashboard
Anrazzi - EMAs/ATR - 1.0.2Description:
The Anrazzi - EMAs/ATR indicator is a versatile tool for technical traders looking to monitor multiple moving averages alongside the Average True Range (ATR) on any chart. Designed for simplicity and customization, it allows traders to visualize up to six moving averages with configurable type, color, and length, while keeping real-time volatility information via ATR directly on the chart.
This indicator is perfect for spotting trends, identifying support/resistance zones, and gauging market volatility for intraday or swing trading strategies.
Key Features:
Supports up to six independent moving averages (MA1 → MA6)
Each MA is fully customizable:
Enable/disable individually
Type: EMA or SMA
Length
Color
ATR Display:
Custom timeframe
Color and position configurable
Adjustable multiplier
Compact and organized settings for easy configuration
Lightweight and efficient code for smooth chart performance
Watermark
Inputs / Settings:
MA Options: MA1 → MA6 (Enable/Disable, Type, Length, Color)
Additional Settings: ATR (Enable, Timeframe, Color, Multiplier)
How to Use:
Enable the moving averages you want to track
Configure type, length, and color for each MA
Enable ATR if needed and adjust settings
Watch MAs plotted dynamically and ATR in bottom-right corner
Recommended For:
Day traders and swing traders
Trend-following strategies
Volatility analysis and breakout detection
Traders needing a compact multi-MA dashboard
Structural Liquidity Signals [BullByte]Structural Liquidity Signals (SFP, FVG, BOS, AVWAP)
Short description
Detects liquidity sweeps (SFPs) at pivots and PD/W levels, highlights the latest FVG, tracks AVWAP stretch, arms percentile extremes, and triggers after confirmed micro BOS.
Full description
What this tool does
Structural Liquidity Signals shows where price likely tapped liquidity (stop clusters), then waits for structure to actually change before it prints a trigger. It spots:
Liquidity sweeps (SFPs) at recent pivots and at prior day/week highs/lows.
The latest Fair Value Gap (FVG) that often “pulls” price or serves as a reaction zone.
How far price is stretched from two VWAP anchors (one from the latest impulse, one from today’s session), scaled by ATR so it adapts to volatility.
A “percentile” extreme of an internal score. At extremes the script “arms” a setup; it only triggers after a small break of structure (BOS) on a closed bar.
Originality and design rationale, why it’s not “just a mashup”
This is not a mashup for its own sake. It’s a purpose-built flow that links where liquidity is likely to rest with how structure actually changes:
- Liquidity location: We focus on areas where stops commonly cluster—recent pivots and prior day/week highs/lows—then detect sweeps (SFPs) when price wicks beyond and closes back inside.
- Displacement context: We track the last Fair Value Gap (FVG) to account for recent inefficiency that often acts as a magnet or reaction zone.
- Stretch measurement: We anchor VWAP to the latest N-bar impulse and to the Daily session, then normalize stretch by ATR to assess dislocation consistently across assets/timeframes.
- Composite exhaustion: We combine stretch, wick skew, and volume surprise, then bend the result with a tanh transform so extremes are bounded and comparable.
- Dynamic extremes and discipline: Rather than triggering on every sweep, we “arm” at statistical extremes via percent-rank and only fire after a confirmed micro Break of Structure (BOS). This separates “interesting” from “actionable.”
Key concepts
SFP (liquidity sweep): A candle briefly trades beyond a level (where stops sit) and closes back inside. We detect these at:
Pivots (recent swing highs/lows confirmed by “left/right” bars).
Prior Day/Week High/Low (PDH/PDL/PWH/PWL).
FVG (Fair Value Gap): A small 3‑bar gap (bar2 high vs bar1 low, or vice versa). The latest gap often acts like a magnet or reaction zone. We track the most recent Up/Down gap and whether price is inside it.
AVWAP stretch: Distance from an Anchored VWAP divided by ATR (volatility). We use:
Impulse AVWAP: resets on each new N‑bar high/low.
Daily AVWAP: resets each new session.
PR (Percentile Rank): Where the current internal score sits versus its own recent history (0..100). We arm shorts at high PR, longs at low PR.
Micro BOS: A small break of the recent high (for longs) or low (for shorts). This is the “go/no‑go” confirmation.
How the parts work together
Find likely liquidity grabs (SFPs) at pivots and PD/W levels.
Add context from the latest FVG and AVWAP stretch (how far price is from “fair”).
Build a bounded score (so different markets/timeframes are comparable) and compute its percentile (PR).
Arm at extremes (high PR → short candidate; low PR → long candidate).
Only print a trigger after a micro BOS, on a closed bar, with spacing/cooldown rules.
What you see on the chart (legend)
Lines:
Teal line = Impulse AVWAP (resets on new N‑bar extreme).
Aqua line = Daily AVWAP (resets each session).
PDH/PDL/PWH/PWL = prior day/week levels (toggle on/off).
Zones:
Greenish box = latest Up FVG; Reddish box = latest Down FVG.
The shading/border changes after price trades back through it.
SFP labels:
SFP‑P = SFP at Pivot (dotted line marks that pivot’s price).
SFP‑L = SFP at Level (at PDH/PDL/PWH/PWL).
Throttle: To reduce clutter, SFPs are rate‑limited per direction.
Triggers:
Triangle up = long trigger after BOS; triangle down = short trigger after BOS.
Optional badge shows direction and PR at the moment of trigger.
Optional Trigger Zone is an ATR‑sized box around the trigger bar’s close (for visualization only).
Background:
Light green/red shading = a long/short setup is “armed” (not a trigger).
Dashboard (Mini/Pro) — what each item means
PR: Percentile of the internal score (0..100). Near 0 = bullish extreme, near 100 = bearish extreme.
Gauge: Text bar that mirrors PR.
State: Idle, Armed Long (with a countdown), or Armed Short.
Cooldown: Bars remaining before a new setup can arm after a trigger.
Bars Since / Last Px: How long since last trigger and its price.
FVG: Whether price is in the latest Up/Down FVG.
Imp/Day VWAP Dist, PD Dist(ATR): Distance from those references in ATR units.
ATR% (Gate), Trend(HTF): Status of optional regime filters (volatility/trend).
How to use it (step‑by‑step)
Keep the Safety toggles ON (default): triggers/visuals on bar‑close, optional confirmed HTF for trend slope.
Choose timeframe:
Intraday (5m–1h) or Swing (1h–4h). On very fast/thin charts, enable Performance mode and raise spacing/cooldown.
Watch the dashboard:
When PR reaches an extreme and an SFP context is present, the background shades (armed).
Wait for the trigger triangle:
It prints only after a micro BOS on a closed bar and after spacing/cooldown checks.
Use the Trigger Zone box as a visual reference only:
This script never tells you to buy/sell. Apply your own plan for entry, stop, and sizing.
Example:
Bullish: Sweep under PDL (SFP‑L) and reclaim; PR in lower tail arms long; BOS up confirms → long trigger on bar close (ATR-sized trigger zone shown).
Bearish: Sweep above PDH/pivot (SFP‑L/P) and reject; PR in upper tail arms short; BOS down confirms → short trigger on bar close (ATR-sized trigger zone shown).
Settings guide (with “when to adjust”)
Safety & Stability (defaults ON)
Confirm triggers at bar close, Draw visuals at bar close: Keep ON for clean, stable prints.
Use confirmed HTF values: Applies to HTF trend slope only; keeps it from changing until the HTF bar closes.
Performance mode: Turn ON if your chart is busy or laggy.
Core & Context
ATR Length: Bigger = smoother distances; smaller = more reactive.
Impulse AVWAP Anchor: Larger = fewer resets; smaller = resets more often.
Show Daily AVWAP: ON if you want session context.
Use last FVG in logic: ON to include FVG context in arming/score.
Show PDH/PDL/PWH/PWL: ON to see prior day/week levels that often attract sweeps.
Liquidity & Microstructure
Pivot Left/Right: Higher values = stronger/rarer pivots.
Min Wick Ratio (0..1): Higher = only more pronounced SFP wicks qualify.
BOS length: Larger = stricter BOS; smaller = quicker confirmations.
Signal persistence: Keeps SFP context alive for a few bars to avoid flicker.
Signal Gating
Percent‑Rank Lookback: Larger = more stable extremes; smaller = more reactive extremes.
Arm thresholds (qHi/qLo): Move closer to 0.5 to see more arms; move toward 0/1 to see fewer arms.
TTL, Cooldown, Min bars and Min ATR distance: Space out triggers so you’re not reacting to minor noise.
Regime Filters (optional)
ATR percentile gate: Only allow triggers when volatility is at/above a set percentile.
HTF trend gate: Only allow longs when the HTF slope is up (and shorts when it’s down), above a minimum slope.
Visuals & UX
Only show “important” SFPs: Filters pivot SFPs by Volume Z and |Impulse stretch|.
Trigger badges/history and Max badge count: Control label clutter.
Compact labels: Toggle SFP‑P/L vs full names.
Dashboard mode and position; Dark theme.
Reading PR (the built‑in “oscillator”)
PR ~ 0–10: Potential bullish extreme (long side can arm).
PR ~ 90–100: Potential bearish extreme (short side can arm).
Important: “Armed” ≠ “Enter.” A trigger still needs a micro BOS on a closed bar and spacing/cooldown to pass.
Repainting, confirmations, and HTF notes
By default, prints wait for the bar to close; this reduces repaint‑like effects.
Pivot SFPs only appear after the pivot confirms (after the chosen “right” bars).
PD/W levels come from the prior completed candles and do not change intraday.
If you enable confirmed HTF values, the HTF slope will not change until its higher‑timeframe bar completes (safer but slightly delayed).
Performance tips
If labels/zones clutter or the chart lags:
Turn ON Performance mode.
Hide FVG or the Trigger Zone.
Reduce badge history or turn badge history off.
If price scaling looks compressed:
Keep optional “score”/“PR” plots OFF (they overlay price and can affect scaling).
Alerts (neutral)
Structural Liquidity: LONG TRIGGER
Structural Liquidity: SHORT TRIGGER
These fire when a trigger condition is met on a confirmed bar (with defaults).
Limitations and risk
Not every sweep/extreme reverses; false triggers occur, especially on thin markets and low timeframes.
This indicator does not provide entries, exits, or position sizing—use your own plan and risk control.
Educational/informational only; no financial advice.
License and credits
© BullByte - MPL 2.0. Open‑source for learning and research.
Built from repeated observations of how liquidity runs, imbalance (FVG), and distance from “fair” (AVWAPs) combine, and how a small BOS often marks the moment structure actually shifts.