Rejected thesis
Entry-discount sweep across scanner cohorts
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:
-
The burst-chain cohort is the unambiguous winner (already productized — see
burst_continuationentry). 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 viaSetup(entry_limit_discount=0.01). -
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. -
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.
-
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.pyframework 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.
| Validator | research/entry_discount.py |
|---|---|
| Verdict | Rejected |
Every result here is reproducible from the script named above. Reports are in the repository.
- Volatility squeeze
- Pre-FOMC drift
- Uptrend pullback
- Momentum continuation
- Industry-relative momentum (at 4-week lookback)
- Earnings-reaction reversal (anti-PEAD)
- Beat-persistence pre-earnings drift
- Sector ETF mean-reversion
- 52-week-high breakout
- Volume accumulation (above-200DMA +...
- Cross-sector momentum
- Analyst-upgrade cluster