Research, not advice. Read-only study; no orders. Built 2026-10-16.
Is there edge in buying ATM CE when Nifty retests the intraday day low (support), or ATM PE when it retests the day high (resistance)? Does approach velocity / deceleration into the level predict bounce vs break?
| idea | verdict | why |
|---|---|---|
| Buy CE at day-low retest / PE at day-high retest (all 8 variants) | FAIL | Net-negative in train, tune and 2026 test for every variant. Best test (X10 Y20, rejection entry, 30m): −₹106/trade, n=208, vs placebo −₹210 (t=1.27, not significant) |
| Level "holds" more than random | FAIL (no level effect overall) | Overall hold rate is at or below random-level placebo (test 42–49% vs placebo 44–47%) |
| Physics: velocity/deceleration predicts hold vs break | PASS as a predictor, WATCH as a trading signal | Strong, stable in all 3 splits (slow approach: hold 61/51/57%; fast: 25/36/29%). But most of it is generic momentum: random levels show the same pattern (slow 49%, fast 30%). The day-low/high level adds ~+10pp only on slow/decelerating approaches |
| Slow + decelerating approach → buy the bounce | WATCH (prediction only), FAIL as an option buy | Hold 64% / 58% / 68% (train/tune/test) vs 50% random; but option P&L −₹296 / −₹258 / −₹49 per trade (30m) |
| Fast + accelerating approach → trade the break instead | FAIL | Breaks 80%+ of the time, but the break trade nets ≈₹0 train, −₹294 tune, −₹312 test |
| Fast rebound off the level (reject entry) | FAIL (2026-only) | Test +₹76/trade n=100, but train −₹293, tune −₹252 — not stable |
| cfg | split | n | hold (Wilson 95%) | placebo hold | ₹/trade 30m | placebo ₹ | t vs placebo |
|---|---|---|---|---|---|---|---|
| X10 Y20 touch | train | 914 | 45% (42–48) | 52% | −266 | −175 | −3.0 |
| X10 Y20 touch | tune | 291 | 45% (39–51) | 47% | −283 | −171 | −1.8 |
| X10 Y20 touch | test | 252 | 42% (36–48) | 44% | −160 | −188 | +0.4 |
| X10 Y20 reject | train | 775 | 53% (49–56) | 54% | −281 | −191 | −2.7 |
| X10 Y20 reject | tune | 245 | 54% (47–60) | 51% | −316 | −174 | −2.1 |
| X10 Y20 reject | test | 208 | 49% (42–56) | 47% | −106 | −210 | +1.3 |
Every variant (X5/10 × Y20/40 × touch/reject × 15/30/60m) is negative in every split. Costs+slip are ~2.8 premium pts/trade; the gross move after a retest is ~zero to slightly negative, so costs decide it.
v5 = pts/min toward the level over last 5 bars (train terciles at 2.34 / 4.69); decel = velocity over bars −7..−2 minus last 2 bars (positive = slowing). | bucket | train hold | tune hold | test hold | random-level hold | |---|---|---|---|---| | slow approach | 61% (n305) | 51% (72) | 57% (69) | 49% | | fast approach | 25% (305) | 36% (124) | 29% (101) | 30% | | decelerating | 57% (305) | 56% (97) | 57% (90) | 47% | | accelerating | 32% (305) | 33% (120) | 28% (89) | 36% | | slow + decel | 64% (151) | 58% (38) | 68% (38), CI 53–81% | 50% | | fast + accel | 20% (187) | 27% (79) | 18% (56) | 32% |
Satya's intuition is right about direction: fast approach → break, decelerating → bounce, and it holds out of sample. Correlation with hold (train): v5 −0.27, decel +0.24, distance travelled −0.21, day range −0.19; time of day and level age ≈0. But the bounce after a "hold" is too small/slow to beat ATM option costs + theta + the 20-pt stop on losers.
Slow-decel day-low/high retest: level ≥30 min old, price moved ≥20 pts away, retest within 10 pts between 09:45–14:45, 5-bar approach speed in the slowest third (≤ 2.34 pts/min) AND decelerating (decel ≥ -1.89). Expect ~60–68% holds vs ~50% random. As a long ATM option for 30m it still lost money in all three periods (2026: −₹49/trade, n=38). Possible uses: a filter to avoid fading fast moves into the day low/high, or a candidate for a cheaper instrument (futures, or selling premium) — not tested here.
Files: analyze.py, phase2.py, phase3.py, grid.csv, main_vs_placebo.csv, velocity.csv, placebo_velocity.csv, break_trade.csv, real_premium_check.csv, events_main.csv, events_reject.csv.