UW 1Y historical findings - the contrarian aggressor flip
First serious sweep across the 1Y UW Parquet bundle (acquired 2026-05-21, covers SPY through 2026-05-07). Three findings rewrite how MK3 should read flow.
Headline
| Signal | Hit % | Lift | Fires/day |
|---|---|---|---|
| sweeps >= 3 + mom_top25 | 67.8% | +10.2 | 15/day |
| sweeps >= 5 (rare burst) | 67.3% | +9.8 | 15/day |
| sweeps >= 3 | 66.7% | +9.2 | 45/day |
| mom_top5 (prior winner) | 74.1% | +16.5 | 19/day |
| impulse_top10 (bull aggressor) | 48.8% | -8.7 | 39/day, contrarian |
| buy_call_dom >= 70% | 54.9% | -2.7 | 142/day, contrarian |
Baseline = 57.6% P(SPY +7bps in 30m) over 250 days.
Three findings that change algo design
1. Aggressor buy-flow is CONTRARIAN, not bullish
The obvious “bullish” feature (heavy call-side premium dominance,
positive bull aggressor) predicts SPY going DOWN. Top decile of
impulse_norm runs -8.7 lift. buy_call_dom >= 85% runs -4.5 lift.
If MK2’s scoring engine treated “high call buying” as bull confirmation it was anchored on the wrong sign. This is a candidate explanation for the systemic BULL CALL losses (#442, #443, #444 from 2026-05-20). Call buying is a FADE target, not confirmation.
2. Sweep flags are the strongest UW pre-classified signal
sweeps >= 3 in last 1 min gives +9.2 lift at 45/day, both high
quality and high frequency. UW already did the multi-exchange ISO
clustering. This is institutional urgency, block buyers hitting
multiple exchanges to grab liquidity fast. Real signal.
3. Negative-GEX regime conditioning adds another 10 points
| Regime | Hit % | Lift |
|---|---|---|
| Negative GEX (trend regime) | 60.5% | +3.0 |
| Positive GEX (mean-rev regime) | 50.3% | -7.3 |
| MID/HI IV (>=33) | 68.0% | +10.4 (small n=75) |
| LOW IV (<33) | 56.2% | -1.4 |
A 10-point swing from a single daily feature. Trade only negative-GEX days and the edge improves substantially.
Time-of-day with best composite
| Bucket | Hit % | Lift |
|---|---|---|
| 08:30-09 | 70.3% | +12.8 (rare 0.5/day) |
| 09-11 | 55.5% | -2.1 |
| 11-13 | 54.3% | -3.2 |
| 13-15 | 57.7% | 0 |
The 11-13 dead window is confirmed even with these stronger features.
The MK3 trading rule that falls out
GATE 1 (regime): net_gex < 0 (trend regime only)
GATE 2 (signal): sweeps >= 3 in last 1 min AND mom_5m >= top quartile
GATE 3 (anti-fade): impulse_norm NOT in top 10% (avoid extreme call-buy minutes)
GATE 4 (time): Skip 11-13 (chop)
Expected: ~10-12 fires/day, ~68% hit rate, biased to trend days.
Cost math with trail-stop dynamics
Hit rate: 67.8%
Cost: $4 round trip
Stop loss: -25% on miss = -$50/contract avg
Win (10% TP): +$25/contract gross
Without trail-stop:
Expectancy = 0.678 * $25 + 0.322 * (-$50) - $4 = -$3.15/contract (marginal negative)
With trail-stop (winners run to +15-20% avg):
Expectancy = 0.678 * $40 + 0.322 * (-$50) - $4 = +$7.02/contract (clearly profitable)
MK2’s trail-stop dynamics flip this from marginal-negative to clearly profitable at 68% hit rate.
What was wrong with earlier analysis
- Skipped
big_option_trades(the impulse substrate, where the sweep flag and aggressor-side pre-classification live, where MK2’s IMPULSE engine gets its substrate from). Huge miss. - Used naive aggressor flow as bullish. Contrarian. Data is clear.
- Missed the GEX regime conditioning. Trend vs mean-rev day matters.
- Didn’t separate sweeps from regular flow. Sweeps are the predictive sub-signal.
What’s still NOT in this analysis
Even at 7 features, missing:
option_chains(177MB), strike-level IV, OI, volume by sidenet_flow_holdings, 90d positioningdelta_exposure, dealer delta regime- Cross-asset / VIX term structure
- Macro proximity (FOMC, CPI, OPEX)
This is a research input, not a final algo. But directionally much stronger than the 3-feature toy.
TL;DR
- Sweep flag is the strongest UW pre-classified signal, sweeps>=3 + momentum = 67.8% hit / 15 fires/day.
- Aggressor buy-flow is CONTRARIAN, not bullish, flips the sign of one of the most prominent MK2 features.
- Negative-GEX regime conditioning adds another 10 points of edge.
- Trail-stop dynamics flip the +10%-TP math from marginal-negative to clearly profitable at 68% hit rate.
- Still 7 of 10 datasets,
option_chains+delta_exposure+holdingsuntouched.
Treat this as input to interrogate the engine, not as a rewrite spec.