The Bid & Ask

Quotations, Dispatches, and the Daily Tape

Thursday, August 13, 2026

Rejected thesis

Entry-discount sweep across scanner cohorts

The result

Question: Per-cohort, if we replace the at-close[T] entry with a limit order at close[T] * (1 - d) executed during T+1 (filled when low[T+1] <= limit_price), do we extract extra edge from the better basis, or does the missed-fills tax dominate?

Code: research/entry_discount.py (generic), research/burst_entry_discount.py (burst-specific 2-day version). Per-cohort reports written as <cohort>_report_discount.json.

Headline numbers — blended portfolio return (filled * fill_rate, missed = 0):

Cohort Horizon Baseline @ close Best discount Best blended Lift
burst (mid-CIR) 40d +9.4 % d=1.0 % fill 79% +7.9 % net +1.6 pp vs filled
coil_breakout 10d +1.8 % d=0.5 % fill 78% +0.7 % +0.1 pp
bull_flag 20d +2.4 % d=0.5 % fill 79% +1.1 % +0.2 pp
failed_breakdown 20d +1.4 % d=0.5 % fill 72% +0.8 % +0.1 pp
drawdown_bounce 60d +4.3 % d=0.0 % fill 85% +3.2 % discount hurts
bullish_div 20d +6.8 % d=0.0 % fill 65% +4.1 % discount hurts
bearish_div n/a (short side) framework inverted n/a inapplicable

(Filled column = filled-only mean forward return; Blended = filled-mean times fill rate, missed earn zero. Lift = improvement vs filled at d=0.)

Three patterns:

  1. The burst-chain cohort is the unambiguous winner (already productized — see burst_continuation entry). 1.0 % discount on the mid-CIR subset lifts realised 40d from +8.4 % to +10.0 % per filled trade with an 80 % fill rate. The blended portfolio number is +7.9 % vs +7.5 % undiscounted. Validated, wired into the scanner via Setup(entry_limit_discount=0.01).

  2. Coil, bull_flag, failed_breakdown all show a tiny lift at d=0.5 % (~+0.1-0.2 pp on blended return). Real but small. The mechanism is the same as burst: at large discounts (>= 1 %), the names that pull back the next day are a slightly weaker subset than non-pullback names, but the basis advantage compensates. 0.5 % is the cleanest hygiene setting that doesn't sacrifice too many fills. Wired into the scanner for coil via entry_limit_discount=0.005.

  3. Drawdown_bounce and bullish_div lose alpha at any positive discount. Both cohorts have strong positive selection on the non-pullback population: the names that gap up and never come back to close[T] are the ones with the largest forward edge. A discount filter throws those out. Concretely, bullish_div fill rate at d=0 is only 65 % — already 35 % of events skip the close[T] level next day, and those 35 % carry disproportionate forward return. Discount = leaving alpha on the table.

  4. Bearish_div needs an inverse framework — for short entries the "discount" is a premium above close (sell into strength). Not implemented in this sweep; the entry_discount.py framework is long-only. Left for a follow-up if shorts need entry tuning.

Verdict: Two scanner cohorts get entry_limit_discount set: burst (1.0 %) and coil (0.5 %). The remaining live cohorts — bounce, pead, consensus_capitulation, bullish_div, gap_capitulation, bearish_div — keep the at-close default. The bullish-family cohorts (bullish_div, drawdown_bounce) actively get hurt by a discount and should be left as at-close entries; the others either lack a validation report or fall outside the long-only framework.

Meta-finding: Entry-discount value scales with price chase — cohorts that chase strength (drawdown_bounce, bullish_div) have positive selection on gap-ups and lose from any discount; cohorts that detect base completion / exhaustion (coil, bull_flag, burst) have neutral-to-slight positive selection on pullbacks and gain modestly from a 0.5-1.0 % discount.

At a glance
Validatorresearch/entry_discount.py
VerdictRejected

Every result here is reproducible from the script named above. Reports are in the repository.

Other rejected theses