BnbTakerFlowConfirmedTrendLS
Hypotheses
BNB Perp Order-Flow-Confirmed Momentum Trend, Long-Short with Chandelier Stop (Single-Instrument BNBUSDT.BINANCE USD-M — Take a Price Trend ONLY When Aggressive TAKER Flow CONFIRMS the Direction; Exit on Flow-Flip or ATR Chandelier; Never Average Down, Low-Leverage Drawdown-Capped, 3-Parameter)
Hypotheses
A LONG-SHORT, SINGLE-INSTRUMENT, SINGLE-VENUE momentum strategy on BNBUSDT.BINANCE USD-M that deliberately copies the ONLY shape shown to survive this factory — drawdown-CAPPED trend-following with a trailing stop and no averaging-down (the dual-TF momentum survivor) — while obeying L38 by adding a GENUINELY NEW information source rather than another price gate: aggressive TAKER order-flow (taker-buy vs taker-sell volume) used as a trend CONFIRMATION. This is the OPPOSITE polarity to my pending ADA idea (which fades taker-flow exhaustion DIVERGENCE at reversals): here, a price trend is only taken when aggressive market-order flow is pushing the SAME way (real committed participation behind the move), and positions are dropped when flow stops confirming. It buys STRENGTH (continuation), never buys weakness or averages down — so it cannot accumulate the losing inventory that bag-held the grid, DOGE, SOL, and premium ideas into >50% drawdowns and risk_rejects. Risk is capped structurally: one non-averaged position, an ATR chandelier trailing stop always on, and leverage ≤1.5x, making the catastrophic blow-ups that abandoned the leveraged-perp reversals implausible. It is LOW-FREQUENCY on 4h bars with multi-percent trend targets, so the ~0.10% USD-M round trip is immaterial (no fee_edge fragility). One instrument, one venue, one cheap series (taker_ratio) computed incrementally — none of the options/cross-venue/multi-leg machinery that dies in verification. It is long-short (fills the under-represented 13.5% bucket) on BNB, a liquid major under-used in my pending set (which leans BTC/ETH), diversifying the symbol without an alt→major signal transfer (the signal and the trade are the same instrument). 3 parameters (trend lookback, taker-flow confirmation threshold, chandelier ATR multiple).
Hypotheses
Implements the hypothesis's mechanism and shape faithfully: single instrument, single venue, long-short, buys strength only when the new orthogonal information source (aggressive taker flow) confirms, exits on flow-flip or ATR chandelier, never averages down, three searched parameters (trend_lb, flow_thresh, chandelier_atr_mult). Data verified before coding rather than trusted from the docs: the doc's taker_ratio schema {timestamp, buyVol, sellVol} does not match the real BNBUSDT parquet ({timestamp_ms, buy_vol, sell_vol, buy_sell_ratio}), and that feed only spans 2026-03-23 to 2026-07-30 (~4 months) — useless for a multi-year backtest and a textbook L35 verification_loop. The long-history equivalent of the identical quantity is metrics.taker_long_short_vol_ratio: 547,785 rows at 5-minute granularity from 2021-12-01 to 2026-07-29, zero NaN. The code reads both keys (plus the camelCase spellings the Layer-2 synthetic generator emits) and merges them into one aggressor-imbalance series. I also found that ~12.6% of sandbox-window bars fall in metrics gaps, which would have punched holes in the z-score window and silently suppressed signals, so a feed gap now carries the last known imbalance forward (same quantity, coarser timeliness — not a mechanism switch); that takes the sandbox window to 0% missing. Frequency dry-run on the real 365-day Layer-3 window (2,191 4H bars): signal std 0.68, range [-2.9, +3.2], 138 long and 137 short threshold crossings, with a 38-bar warmup (1.7% of the window) — trades are guaranteed, and the entry is a single threshold on one continuous score rather than the compound AND-gate that has been firing zero times (L21/L25/L35). Risk design is deliberately built against the recent failure modes rather than asserted: the ADA sibling was just falsified at QA for a close-based stop that let a 4H bar overshoot, so the chandelier breach here is tested against the bar's LOW/HIGH and is evaluated BEFORE this bar's extreme ratchets the stop (we cannot know whether the high or low came first, so the conservative ordering is used). Sizing is fixed-fractional off the stop distance rather than compounding equity x leverage each bar, with an independent 50%-of-equity gross cap and no add path, so the >50% drawdowns that killed the grid/DOGE/SOL ideas have no route in (L15). Two honest notes. First, I set config leverage to 1.0 rather than the hypothesis's 1.5x: with 1% risk over a ~6-8% chandelier the target notional is ~15-30% of equity and never approaches 1x, so declaring 1.5x would be inert and would trip the leverage_set_but_unused gate — the 1.5x ceiling is satisfied strictly, and futures is still the correct venue because the strategy shorts. Second, the chandelier is evaluated in should_exit rather than as a resting exchange order: NautilusTrader does expose trailing_stop_market, but the base class returns early from _process_primary whenever any order is open, so a resting protective order would freeze the ratchet and disable the flow-flip exit entirely; there is also zero precedent for trailing_stop_market in this codebase's generated strategies, and unproven order machinery is exactly what burns verification iterations (L4). The residual is that the exit fills at the breach bar's close rather than at the stop price — worth flagging to the reviewer as the one place where realized risk can exceed the nominal 1%.
Hypotheses
Net loser with no edge net of costs: profit_factor 0.87 (<1.0), total_return -9.7%, Sharpe -0.146 (CI [-0.83, 0.51]), avg_trade_return_pct -0.025% (negative), expectancy -$28.6/trade across a decisive 342 trades, information_ratio -0.78. Negative in 4 of 6 years (2021 -1.1%, 2022 -2.0%, 2023 -8.8%, 2026 -0.7%) with the two positive years marginal (+2.4%, +0.4%) — no persistent edge in any regime, and both legs fail (long_win_rate 42.9%, short_win_rate 36.1%). The risk construction works (DD a controlled 14.2%), but that only makes it a well-behaved loser: the hypothesis's bet that taker-flow-confirmed price trends continue is falsified on BNB. This is the OHLCV-momentum/continuation class (L9, zero survivors at PF < 1.2). avg_trade_return_pct is negative rather than merely thin, so reducing frequency cannot help and there is no parameter region to optimize toward — best-of-225 selection would only overfit a couple of good months. Abandon per the PF<1.0 / negative-return / negative-avg_trade_return_pct rules rather than spend 2 hours optimizing.
Implementation
Long-short momentum continuation on the BNBUSDT.BINANCE USD-M perpetual (4H bars) that takes a price trend ONLY when aggressive taker order flow is pushing the same way. Each bar it computes trend_z, a vol-normalized 30-bar (5-day) price momentum, and flow_z, the z-score of the smoothed taker aggressor imbalance ((buy-sell)/(buy+sell)) over the same span, then fuses them into a continuous continuation score signal = trend_z * 0.5 * (1 + tanh(trend_z * flow_z / flow_thresh)). The direction is always the trend's sign — the strategy buys strength and never fades — while the confirmation factor is ~1 when flow agrees with price and decays smoothly to 0 when it does not, so an unconfirmed trend never reaches the entry threshold of |signal| >= 1.0. Exits are an always-on ATR chandelier trailing stop (3xATR from the running favourable extreme since entry, ratcheting only in the favourable direction, breach tested against the bar's low/high so a violent bar exits on that same bar) and a flow-flip rule that closes the position when aggressive flow turns against it past flow_thresh. Position sizing risks 1% of equity at the initial chandelier distance, hard-capped at 50% of equity gross notional, with exactly one position at a time and no add or average-down path.
Verification Results
At backtest_review, evaluate on the full multi-year window; if profit_factor stays <1.0 and avg_trade_return_pct near/below zero with the tail contained, abandon the flow-confirmed-momentum mechanism rather than optimizing — a ~1.1:1 reward:risk at a 44% hit rate has no parameter region to tune toward. Proceed to optimization only if the full window shows a positive per-trade edge the single sandbox year missed.
Verification Results
The sandbox shows no in-sample edge — a likely abandon at backtest_review. Risk and correctness are both sound (see notes), but with the tail well contained the strategy is a mild net loser over the 362-day window: total_return -2.27%, profit_factor 0.85, win_rate 0.44, Sharpe -0.36 (CI [-2.12, 1.18]), avg_trade_return_pct -0.027% (slightly negative). avg_win $517 vs avg_loss $473 (~1.1:1) at a 44% hit rate is a marginally negative expectancy — the taker-flow-confirmed momentum continuation did not pay net of costs in this sample. This is not a QA code-correctness or risk defect; it is an edge question for the analyst on the full multi-year backtest. The developer made no attempt to re-tune the signal to rescue the return, which is the correct posture.
Verification Results
Acceptable as-is given the conservative sizing and intrabar detection; if a future iteration raises size or leverage, revisit whether a resting protective order is worth the base-template friction to fill AT the level rather than the breach-bar close.
Verification Results
Exit fills at the breach-bar CLOSE, not the stop price (developer-flagged, and contained here). The chandelier breach is correctly detected intrabar (tested against the bar low/high, so the exit fires on the breach bar rather than a full 4h later — the fix that the ADA sibling lacked), but the actual fill is a market close_position at the bar close because the base template does not rest a real stop_market order. So on a bar that gaps well past the chandelier, realized loss can exceed the nominal 1% risk_frac by the close-vs-level gap. This did NOT bite in the sandbox (max_drawdown 5.0%, largest loss ~1.3% of equity, avg_position 25.8%) because sizing is very conservative (1% risk, 50% notional cap, no leverage multiply), so it is a residual note rather than a defect.
Verification Results
At analysis, benchmark against the same trend-follow WITHOUT the flow gate to confirm the taker-flow term earns its keep; require robust OOS and note the ~55-trade/year cadence makes the 15-day holdout low-power (~2-4 trades).
Verification Results
Mechanism-class caution for the analyst. This is momentum/trend continuation with a taker-flow confirmation overlay — a heavily-mined family, though it correctly adds a genuinely orthogonal information source (aggressive taker flow) per L38 rather than being another price gate, and it mirrors the ONE archetype that has survived this factory (drawdown-capped directional with a trailing stop, no averaging-down). The code implements the stated confirmation mechanism correctly, so this is an edge-class note, not a defect: the analyst should confirm on the full window that the flow-confirmation actually adds edge over a plain trend-follow, and that any profit is not single-regime.
Backtest Review
Sound risk construction: single non-averaged position, always-on chandelier stop, no-leverage-multiply cap — max_drawdown a controlled 14.2%
Backtest Review
Genuinely orthogonal information source (aggressive taker flow) as a confirmation gate, not a price clone
Backtest Review
Healthy sample (342 trades) and clean feed handling make the negative result reliable (metrics_reliable=true)
Backtest Review
profit_factor 0.87 (<1.0) and total_return -9.7% — a net loser
Backtest Review
avg_trade_return_pct -0.025% (negative) and expectancy -$28.6/trade — no edge net of costs
Backtest Review
Sharpe -0.146 with CI [-0.83, 0.51] straddling zero; information_ratio -0.78
Backtest Review
Negative in 4 of 6 years; the two positive years are marginal (+2.4%, +0.4%) — no persistent edge in any regime
Backtest Review
Both legs fail (long_win_rate 42.9%, short_win_rate 36.1%) — the taker-flow confirmation does not create directional edge
Backtest Review
OHLCV-momentum/continuation class (L9) with zero survivors at PF < 1.2
Outcome Summary
This strategy deliberately mirrored the factory's only surviving shape — drawdown-capped trend-following with a trailing stop and no averaging-down — while obeying the new-information-source rule by adding aggressive taker order-flow as a trend confirmation, the opposite polarity to its sibling ADA divergence-fade. The engineering was sound: an orthogonal flow signal, a single non-averaged position, an always-on intrabar chandelier stop, and no-leverage-multiply sizing kept max drawdown to a controlled 14.2% with zero blow-up risk. But the backtest showed the confirmation premise was simply false on BNB — profit factor 0.87, a -9.7% return, negative per-trade expectancy, and both legs winning under 43% of the time, with no persistent edge in any of six years. The analyst abandoned it at backtest review as a well-behaved but decisive loser in the zero-survivor OHLCV-momentum/continuation class, with negative per-trade returns leaving nothing to optimize toward.
Outcome Summary
Copying the surviving archetype's risk shape (non-averaged single position, chandelier stop, low leverage) successfully controls drawdown but does not manufacture an edge — a well-behaved loser is still a loser, and taker-flow confirmation did not make BNB price trends continue profitably in either direction.
Outcome Summary
It was abandoned at the BACKTEST_REVIEW gate: profit factor below 1.0, negative total return and negative per-trade return with a Sharpe straddling zero mean no edge net of costs, and because both legs lose the taker-flow-confirmation premise is falsified on BNB. Since the per-trade return is negative rather than merely thin, there was no parameter region to optimize toward, so it never reached optimization or analysis.
Outcome Summary
A long-short, single-instrument, single-venue momentum-continuation strategy on the BNBUSDT.BINANCE USD-M perp that takes a price trend only when aggressive taker order-flow (an orthogonal information source) confirms the same direction, buying strength and never averaging down, with an always-on ATR chandelier trailing stop, flow-flip exit, and leverage capped ≤1.5x.
Outcome Summary
The risk construction worked (controlled 14.2% max drawdown, no liquidation), but there was no edge: profit factor 0.87, total return -9.7%, avg_trade_return_pct -0.025% (negative), Sharpe -0.146 (CI [-0.83, 0.51]), expectancy -$28.6/trade across 342 trades. It was negative in 4 of 6 years with the two positive years marginal (+2.4%, +0.4%), and both legs failed (long win rate 42.9%, short win rate 36.1%).
Backtest and paper results are hypothetical. Trading involves risk of loss.