Price Action v2 — AMD / Retail Trap / Breakout+Retest / Expiry Options
Nifty 50 1m spot · walk-forward yearly folds · hard SL · trail-to-cost after +10–15 pts · min 1:2 R:R · oversized entry-candle filter · SL-first same bar · next-bar open fills
← Setups index
Caveats
- Uses 1m full-chain by_expiry parquets under /workspace/nifty-options-s3/data/options/1m/.
- Weekly expiry approximated as Thursday until 2025-08-28 and Tuesday from 2025-09-02; holiday-shifted expiries not modelled.
- Options costs: STT on premium sell 0.1% then 0.15% from 2026-04-01; exchange 0.03553%; ₹20 brokerage; stamp; GST; slippage.
- Walk-forward folds adapted to shorter options history (2024→2025, 2024-25→2026).
- Hero-zero cannot always satisfy strict 1:2 R:R; stop_mult is the risk control.
- No lookahead; SL-first if stop & target same bar.
- Results in premium points (and ₹/lot in trade CSV); do not invent edges.
Out-of-sample (stitched) net summary
| Strategy | Trades | Win% | Avg net | Total net | PF net | Max DD | Avg cost | t-stat | p-value | Prof. folds% |
| EXPIRY_ITM | 84 | 3.57 | -5.365 | -450.689 | 0.235 | -449.671 | 0.799 | -3.144 | 0.0017 | 0.0 |
| HERO_ZERO | 98 | 66.33 | -0.978 | -95.819 | 0.586 | -102.895 | 0.692 | -1.767 | 0.0773 | 0.0 |
EXPIRY_ITM
Expiry-day long ATM± or 1-ITM in morning direction from 1m chain; hard premium SL; R≥2; trail-to-cost. Walk-forward: OOS_2025:direction_lookback_min=45|entry_hhmm=(10, 0)|max_entry_candle_atr_prem=0.5|mode=atm_dir|stop_frac_premium=0.4|target_r=2.0|trail_activate_pts=5.0 || OOS_2026:direction_lookback_min=45|entry_hhmm=(9, 45)|max_entry_candle_atr_prem=0.5|mode=itm1_dir|stop_frac_premium=0.35|target_r=2.0|trail_activate_pts=3.0
OOS stitched equity (net points)
Full-period default params equity (net)
Default (untuned) full-period
| Metric | Value |
| Trades | 95 |
| Win% | 4.21 |
| Avg gross | -5.175 |
| Avg net | -6.098 |
| Total gross | -491.65 |
| Total net | -579.286 |
| PF gross | 0.213 |
| PF net | 0.18 |
| Max DD net | -614.227 |
| Avg cost | 0.922 |
| t-stat | -4.624 |
| p-value | 0.0 |
| Profitable years% | 0.0 |
Walk-forward OOS (stitched)
| Metric | Value |
| Trades | 84 |
| Win% | 3.57 |
| Avg gross | -4.567 |
| Avg net | -5.365 |
| Total gross | -383.597 |
| Total net | -450.689 |
| PF gross | 0.269 |
| PF net | 0.235 |
| Max DD net | -449.671 |
| Avg cost | 0.799 |
| t-stat | -3.144 |
| p-value | 0.0017 |
| Profitable years% | 0.0 |
Per-fold detail
| fold |
chosen_params |
is_total_net |
oos_n |
oos_avg_net |
oos_total_net |
oos_win_rate |
oos_pf |
oos_max_dd |
| OOS_2025 |
direction_lookback_min=45|entry_hhmm=(10, 0)|max_entry_candle_atr_prem=0.5|mode=atm_dir|stop_frac_premium=0.4|target_r=2.0|trail_activate_pts=5.0 |
-9.179 |
50 |
-6.082 |
-304.079 |
2.0 |
0.058 |
-303.061 |
| OOS_2026 |
direction_lookback_min=45|entry_hhmm=(9, 45)|max_entry_candle_atr_prem=0.5|mode=itm1_dir|stop_frac_premium=0.35|target_r=2.0|trail_activate_pts=3.0 |
-220.725 |
34 |
-4.312 |
-146.61 |
5.882 |
0.449 |
-195.627 |
Flags
- OOS total net ≤ 0 after costs — no robust edge claimed.
HERO_ZERO
Expiry late-day short cheap OTM (hero-zero); hard stop at stop_mult×credit; trail-to-cost on premium. Walk-forward: OOS_2025:both_sides=False|entry_hhmm=(14, 0)|max_premium=8.0|min_premium=1.0|otm_pts=100.0|stop_mult=2.5|trail_activate_pts=3.0 || OOS_2026:both_sides=True|entry_hhmm=(13, 45)|max_premium=10.0|min_premium=1.0|otm_pts=100.0|stop_mult=3.0|trail_activate_pts=4.0
OOS stitched equity (net points)
Full-period default params equity (net)
Default (untuned) full-period
| Metric | Value |
| Trades | 149 |
| Win% | 63.09 |
| Avg gross | 0.266 |
| Avg net | -0.559 |
| Total gross | 39.635 |
| Total net | -83.346 |
| PF gross | 1.207 |
| PF net | 0.634 |
| Max DD net | -106.367 |
| Avg cost | 0.825 |
| t-stat | -1.994 |
| p-value | 0.0462 |
| Profitable years% | 0.0 |
Walk-forward OOS (stitched)
| Metric | Value |
| Trades | 98 |
| Win% | 66.33 |
| Avg gross | -0.286 |
| Avg net | -0.978 |
| Total gross | -28.037 |
| Total net | -95.819 |
| PF gross | 0.866 |
| PF net | 0.586 |
| Max DD net | -102.895 |
| Avg cost | 0.692 |
| t-stat | -1.767 |
| p-value | 0.0773 |
| Profitable years% | 0.0 |
Per-fold detail
| fold |
chosen_params |
is_total_net |
oos_n |
oos_avg_net |
oos_total_net |
oos_win_rate |
oos_pf |
oos_max_dd |
| OOS_2025 |
both_sides=False|entry_hhmm=(14, 0)|max_premium=8.0|min_premium=1.0|otm_pts=100.0|stop_mult=2.5|trail_activate_pts=3.0 |
2.612 |
43 |
-0.737 |
-31.703 |
67.442 |
0.587 |
-45.365 |
| OOS_2026 |
both_sides=True|entry_hhmm=(13, 45)|max_premium=10.0|min_premium=1.0|otm_pts=100.0|stop_mult=3.0|trail_activate_pts=4.0 |
45.618 |
55 |
-1.166 |
-64.117 |
65.455 |
0.585 |
-68.283 |
Flags
- OOS total net ≤ 0 after costs — no robust edge claimed.
- Hero-zero stop_mult typically cannot meet strict 1:2 R:R on short premium; risk controlled via stop_mult instead. Interpret cautiously.
Generated under /workspace/nifty-setups-backtest/price-action-v2/