WTFutures.
ANATOMY OF A FILTER / WLFI · 15 MINUTES

When a signal
is not enough.

A recovery gives the invitation. A volatility filter decides whether to let it through. Inside one strategy’s quietest decision.

BB REVThe triggerATRThe permissionCHOPThe conditions
Try the filter explorer
A narrow cobalt beam passes through the opening in a machined metal aperture.
FIELD NOTE 02 / THE VOLATILITY GATE
Net historical return+31.89%$1,000 → $1318.91
Winning trades24 / 24100% in the selected sample
Maximum drawdown0.90%As measured by this replay
Binance WLFI / USDT perpetual · 15-minute candles
6 Sep 2026, 05:30 → 11 Sep 2026, 10:15 UTC (end exclusive). 500-candle snapshot; 499 completed candles, including warm-up. All results include configured fees and slippage.

A selected, optimised historical example. One of its 24 profitable trades was forcibly closed at the end of the test. The win rate describes this sample, not the chance of the next trade winning.

01 / READ THE RULE

“Is there enough
movement to bother?”

That is a useful way to read this filter. ATR—Average True Range—measures the size of recent price movements, including gaps from the previous close. It does not tell us which direction comes next.

Here, the strategy smooths true range over 14 candles, divides it by the closing price and multiplies by 100. The range-long recipe only permits entries when that value is strictly above 0.4%. Equal to 0.4% does not pass.

Think of it as a gate on a signal, not the signal itself. It does not forecast the size of the next move, calculate a stop loss or promise enough profit to cover costs. The chosen threshold is part of the settings fitted to this history.

General indicator background: TradingView’s ATR guide. The threshold and entry behaviour here come from the saved Strategy Lab rules.

CHOPChoose the settingCHOP(50) ≥ 55 selects the range recipes.
BB REVFind the recoveryThe close crosses back above the lower Bollinger band: length 7, multiplier 1.9.
ATRCheck the movementATR(14) / close × 100 > 0.4 permits the long entry.
INTERACTIVE / THE VOLATILITY GATE

Twelve signals.
Four pass the filter.

Choose a real recovery signal. Every one already passed the range-condition and Bollinger checks. ATR is the final confirmation.

07 Sept, 10:00 UTC · signal candle

Enough movement.

CHOP(50): 61.64 ≥ 55
Close returns inside the lower Bollinger band

0.406% ATR / close
0%0.4% threshold0.8%
ONE CONTROLLED CHANGE

What if we remove ATR?

Same saved candles, other rules and costs. These are two precomputed replays; no new optimisation runs here.

Original strategy+31.89%net test return
24 / 24winning trades
0.90%maximum drawdown

With the filter: two fewer trades and about $2.30 more on the $1,000 starting account. The return difference is just 0.23 percentage points. One selected sample cannot establish that ATR will help next time.

02 / KEEP THE CLAIM SMALL

The filter changed the path.
It did not do all the work.

Without ATR, the same strategy closed 26 trades, 25 profitable, for +31.66%. With it, the saved test closed 24 trades, all profitable, for +31.89%. Maximum drawdown was unchanged at 0.90% to two decimals.

Eight raw recovery signals failed the ATR check. That does not mean eight losing trades were avoided. Some signals occur while another position is open, and changing an early trade changes the account and which later entries can be taken. The full replay is the meaningful comparison.

This is a modest difference, not proof that the filter is indispensable. The strategy’s other branches still account for 21 of the original 24 trades. Keeping that perspective makes the interesting result more useful.

EXPLORE THE ACTUAL TRADES

Every entry. Every exit.

Fixed historical test

Start with trade 4: the range-long recovery that narrowly passed ATR. Explore all 24 trades, including the final end-of-test closure. Prices, settings and results remain fixed.

Trade 4 / 24 · Range · Long
O 0.05736H 0.05737L 0.0570C 0.0571VOL 8.9M
0.05630.0565730.0568450.0571180.05739BB REV centreUpper bandLower band09:3010:1511:0011:4512:3013:15Long · Profit target · $13.16 net P&LLong · Profit target · $13.16 net P&LShort · Profit target · $11.89 net P&LSLong · Profit target · $13.16 net P&LBLong · Profit target · $13.16 net P&LE
17 candlesDrag / Shift-scroll to pan · Scroll to zoom
View: 07 Sept 09:30 – 13:30 · 500-candle history totalUTC
LONG · Range · Long+$13.16+1.28% on trade allocation, after costs
Entry · 07 Sept, 10:15 UTC
0.05656131 USDT
Exit · 07 Sept, 12:45 UTC
0.057353008 USDT
Exit rule
Profit target

B Buy / long entry S Sell / short entry E Exit · Lines show the selected trade’s entry recipe. Flags mark fills; an intrabar exit’s flag is anchored to its candle, not an exact second.

Inspect all 24 trades
Trade / entry UTCRecipeExit ruleNet P&LAccount after
Trend · LongProfit target+$12.88$1,012.88
Trend · ShortIndicator exit+$4.78$1,017.66
Range · ShortProfit target+$11.60$1,029.26
Range · LongProfit target+$13.16$1,042.42
Range · ShortProfit target+$11.89$1,054.31
Range · ShortProfit target+$12.02$1,066.33
Trend · LongIndicator exit+$3.60$1,069.92
Trend · ShortOpposite signal+$7.76$1,077.68
Range · ShortProfit target+$12.29$1,089.97
Trend · LongIndicator exit+$6.64$1,096.61
Range · ShortHolding limit+$8.18$1,104.79
Range · ShortProfit target+$12.60$1,117.39
Trend · LongProfit target+$14.39$1,131.78
Range · ShortProfit target+$12.91$1,144.69
Range · LongProfit target+$14.63$1,159.32
Range · ShortIndicator exit+$8.83$1,168.15
Range · LongProfit target+$14.93$1,183.08
Trend · ShortOpposite signal+$16.21$1,199.28
Range · ShortProfit target+$13.68$1,212.96
Trend · LongProfit target+$15.62$1,228.58
Range · ShortProfit target+$14.01$1,242.59
Trend · LongProfit target+$16.01$1,258.60
Trend · LongProfit target+$16.21$1,274.81
Trend · ShortEnd of test+$44.10$1,318.91
03 / FOLLOW TRADE 04

Just over
the threshold.

0.406%ATR as a percentage of the signal candle’s close
  1. 7 Sep · 10:00 candle

    At its completed close, price had recovered above the lower Bollinger band. CHOP was 61.64, so the range recipes applied. ATR was 0.406%, just above 0.4%.

  2. 10:15 · Next open

    The replay entered long at 0.05656131 USDT after slippage. Its separate 1.5% trailing stop began at 0.05571289 USDT. The stop updates from completed closes.

  3. 12:45 candle · Target reached

    The 1.42% target was touched. Exit slippage adjusted the fill to 0.05735301 USDT. Net profit was $13.16, or 1.28% of the trade allocation after costs.

04 / THE SAME IDEA IN TRADINGVIEW

Three short pieces.
One decision.

The exported Pine preserves the separation between the indicator, confirmation and condition switch. Its Inputs expose the ATR length, threshold and confirmation toggle.

Measure movement, not directionInside the Pine Script

The helper uses Wilder-style smoothing of true range. sl_gt is a strict greater-than check. Both directions receive the same permission because ATR is not directional.

    value := sl_average(tr, length, "rma") / src * 100
    allowLong := sl_gt(value, level)
    allowShort := allowLong
Exact excerpt from this saved strategy’s export. It needs the full script’s helpers and inputs; this is not a standalone strategy.
Require confirmation beside the entryInside the Pine Script

m4L is the Bollinger recovery. m5AL is ATR permission. Turning off r3Filter1 removes only that confirmation; it does not create an entry on its own.

bool r3L = r3Enabled and m4L and (not r3Filter1 or m5AL)
bool r3S = r3Enabled and m4S and (not r3Filter1 or m5AS)
Exact excerpt from this saved strategy’s export. It needs the full script’s helpers and inputs; this is not a standalone strategy.
Only use that entry in its conditionsInside the Pine Script

A range condition chooses the range recipes; otherwise the trend recipes apply. Long and short directions retain independent entry and exit settings.

float regime = sl_chop(trueRange, regimeLength, n)
bool ranging = regime >= regimeThreshold
bool longSignal = active and not na(regime) and (ranging ? r3L : r1L)
bool shortSignal = active and not na(regime) and (ranging ? r4S : r2S)
int longRoute = ranging ? 3 : 1
int shortRoute = ranging ? 4 : 2
Exact excerpt from this saved strategy’s export. It needs the full script’s helpers and inputs; this is not a standalone strategy.
05 / THE COMPLETE STRATEGY

Four recipes.
One account.

CHOP(50) below 55 uses the trend recipes; at or above 55 uses the range recipes. Missing values block entries during warm-up. Only one position can be open, conflicting entry signals are skipped, and an open trade keeps its original recipe.

BB REVEntry7 trades

Trend · Long

A completed close recovers above the lower Bollinger band. No extra confirmation. A trailing stop, target, indicator exit and time limit compete to close the trade.

Entry
Bollinger recovery · Length 10 · Multiplier 1.7
Confirmation
None
Stop / target
1.5% trailing stop · 1.43% target
Indicator exit
BB REVBollinger recovery · Length 24 · Multiplier 2Close on this indicator’s signal against the position.
Time / opposite
39 candles (9.75 hours) · Opposite entry exit off · 0-candle cooldown
BB REVEntry4 trades

Trend · Short

A close returns below the upper Bollinger band. There is no profit target or time limit: the fixed stop, MACD exit or opposite entry signal must close it, unless the test ends.

Entry
Bollinger recovery · Length 20 · Multiplier 2
Confirmation
None
Stop / target
0.61% fixed stop · No profit target
Indicator exit
MACDMACD · Fast length 12 · Slow length 16 · Signal length 9Close on this indicator’s signal against the position.
Time / opposite
No holding limit · Opposite entry exit on · 0-candle cooldown
BB REVEntry3 trades

Range · Long

The featured recipe: a lower-band recovery must pass the ATR filter. Its trailing stop is a separate percentage rule; ATR does not set the stop distance.

Entry
Bollinger recovery · Length 7 · Multiplier 1.9
Confirmation
ATRATR volatility · Length 14 · Threshold 0.4
Stop / target
1.5% trailing stop · 1.42% target
Indicator exit
RANGERange edge recovery · Length 5 · Edge width % 20Close on this indicator’s signal against the position.
Time / opposite
39 candles (9.75 hours) · Opposite entry exit off · 0-candle cooldown
BB REVEntry10 trades

Range · Short

A close returns below the upper band, with no ATR confirmation. Its own band settings, trailing stop and exits differ from the range-long recipe.

Entry
Bollinger recovery · Length 9 · Multiplier 1.6
Confirmation
None
Stop / target
2% trailing stop · 1.28% target
Indicator exit
BB REVBollinger recovery · Length 6 · Multiplier 2.1Close on this indicator’s signal against the position.
Time / opposite
35 candles (8.75 hours) · Opposite entry exit off · 0-candle cooldown
06 / STRATEGY FIT

A hypothesis about
conditions. Not odds.

In this saved history, 243 of 450 candles with a valid CHOP reading—54.00%—selected range recipes. That is measured past occupancy, not the probability that the range will continue. Adjacent candles also belong to the same market episodes; they are not independent experiments.

FIT HYPOTHESIS

Recovery, with room to move

The featured branch is designed to enter when a close returns inside its band in CHOP-defined range conditions, with ATR above its gate. A breakout that keeps extending away from the band can defeat that idea. High volatility can include disorderly moves too.

EVIDENCE STRENGTH

Limited · selected history

The 0.23-point advantage exists on the same sample used to select these settings. There is no unseen-data or forward result here, and no verified complete record of all search candidates. It cannot support a success percentage or a Strong rating.

THE NEXT USEFUL TEST

Freeze, then observe

Compare both unchanged versions on later unseen candles and separate market episodes. Check nearby thresholds and more adverse costs without repeatedly tuning to the evaluation period. Record when the idea fails as carefully as when it works.

How to read this result.

The account began with $1,000, used 100% of available equity at 1× exposure and compounded profits. Costs were 0.06% fees and 0.02% adverse slippage per side. The original replay deducted $32.32 in fees; $10.77 of estimated slippage is already reflected in its fills.

The last trade was closed because the historical test ended. Its profit is included in the 24 wins. There were no candles that touched both a stop and target for the same trade. Funding, changing spreads, market impact and actual fill availability are not modelled; candle-level equity can miss intrabar drawdown.

Source, reproduction and limits of the comparison

Public snapshot 8db4b8946d0a0901d0356f6060abc74313598a0bf5ce18ddd29203ae5712be58 · replay engine bot-replay-1. Every original saved total matches the replay. The comparison removes only the range-long ATR confirmation; no parameters, prices, other rules or account assumptions are changed.

Pine excerpts are checked against the current exporter for this exact setup. This is not an independent TradingView fill-by-fill verification. For that comparison, use standard BINANCE:WLFIUSDT.P 15-minute candles, original Inputs and Properties, and “Match the saved Strategy Lab test”. The article keeps its dates fixed even as new candles arrive.