Verdict
Not feasible at ₹1 lakh; no demonstrated edge at ₹2 to 7.5 lakh
Baseline places 0 trades at ₹1 lakh (one lot needs ₹1,160 to ₹1,979 risk against a ₹500 budget). Scaled to ₹4 lakh: development 138 trades −1.4% (PF 0.94), validation 82 trades −10.3% (PF 0.44). Live deployment stays on hold.
- Feasibility first (as the spec requires): with the current lot of 65 and 0.5% risk per trade, the cheapest eligible one-lot trade needs a risk budget of about ₹2,000 (median; ₹1,490 at the 25th percentile) and premium of ₹9,500 against a 6% cap of ₹6,000. Over 2021 to 2025 the share of signals that fit one lot at ₹1 lakh was 0% at 0.5% risk, 92% (lot 25), 33% (lot 50), 0% (lot 75) at 1.0%. Roughly ₹3 to 4 lakh is needed at the present lot size.
- Tested unchanged: the owner's engine (26 unit tests re-run, all pass) as decision, sizing, exit and cost core; 5-minute features on closed bars; entry at the next minute open; adverse-first intrabar ordering; spread of the larger of 2 ticks or 0.5% of price times the cost multiplier; dated lot sizes and fee schedules (estimates).
- Windows: development 2021-11 to 2023-12, validation 2024-01 to 2025-09, sealed 2025-10 onward never opened. 24 predeclared variants (stop, target, delta band, entry window, ADX, volume ratio, filter ablations, risk per trade, premium cap).
- Controls at ₹4 lakh: development result −₹5.7k vs a random-entry median +₹18.5k (beats 13% of 30 runs); validation −₹41.2k, beats 0% of random runs; day-bootstrap P(loss) 0.62 and 1.00; reality check across 24 variants p = 0.88. No variant is positive in both windows at a meaningful sample; the two that are marginally positive in development (risk 1.5% + cap 15%, 19 trades; no MACD) turn negative in validation.
- Cost stress: at 2x costs the feasibility collapses (0 to 6 trades per window) and every trade that does occur loses. The edge, if any, does not survive costs; the stops (−20% premium) account for most losses in both windows.
- Not tested and not claimed: live execution; true bid/ask or depth (not available from Dhan history); real India VIX intraday and exchange volume ratio (proxies used).
Promotion gates
No gates published for this strategy.
Explain the strategy
The rulebook buys one option contract at a time, but a single contract is too big for ₹1 lakh under its own risk limits, so it does not trade. With more money it trades and loses.
Report
Feasibility, capital scaling, 24 variants and controls
| section | item | a | b | c | d |
|---|---|---|---|---|---|
| 1 Feasibility (cap 6%) | risk/trade 0.5% · lot 25.0 | 0% of signals | n=62.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 0.5% · lot 50.0 | 0% of signals | n=246.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 0.5% · lot 75.0 | 0% of signals | n=74.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 1.0% · lot 25.0 | 92% of signals | n=62.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 1.0% · lot 50.0 | 33% of signals | n=246.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 1.0% · lot 75.0 | 0% of signals | n=74.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 1.5% · lot 25.0 | 100% of signals | n=62.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 1.5% · lot 50.0 | 61% of signals | n=246.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 1.5% · lot 75.0 | 7% of signals | n=74.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 2.0% · lot 25.0 | 100% of signals | n=62.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 2.0% · lot 50.0 | 61% of signals | n=246.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 2.0% · lot 75.0 | 7% of signals | n=74.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 3.0% · lot 25.0 | 100% of signals | n=62.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 3.0% · lot 50.0 | 61% of signals | n=246.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 3.0% · lot 75.0 | 7% of signals | n=74.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 5.0% · lot 25.0 | 100% of signals | n=62.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 5.0% · lot 50.0 | 61% of signals | n=246.0 | ||
| 1 Feasibility (cap 6%) | risk/trade 5.0% · lot 75.0 | 7% of signals | n=74.0 | ||
| 2 Baseline by capital | ₹1 lakh | dev 1x: 0 trades +0.0% | val 1x: 0 trades +0.0% | dev 2x: 0 trades | val 2x: 0 trades |
| 2 Baseline by capital | ₹2 lakh | dev 1x: 52 trades +4.1% | val 1x: 43 trades -10.2% | dev 2x: 1 trades | val 2x: 0 trades |
| 2 Baseline by capital | ₹3 lakh | dev 1x: 114 trades -1.9% | val 1x: 37 trades -4.1% | dev 2x: 1 trades | val 2x: 0 trades |
| 2 Baseline by capital | ₹4 lakh | dev 1x: 138 trades -1.4% | val 1x: 82 trades -10.3% | dev 2x: 3 trades | val 2x: 0 trades |
| 2 Baseline by capital | ₹5 lakh | dev 1x: 142 trades -0.1% | val 1x: 40 trades -4.8% | dev 2x: 3 trades | val 2x: 0 trades |
| 2 Baseline by capital | ₹7.5 lakh | dev 1x: 144 trades -0.4% | val 1x: 62 trades -9.6% | dev 2x: 5 trades | val 2x: 0 trades |
| 3 Variants at ₹4 lakh | ADX>20 | dev 1x: 216 tr -5.4% PF 0.85 | val 1x: 52 tr -4.0% PF 0.61 | dev 2x: 5 tr -0.8% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | ADX>30 | dev 1x: 80 tr -0.8% PF 0.93 | val 1x: 38 tr -4.9% PF 0.40 | dev 2x: 2 tr -0.7% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | baseline | dev 1x: 138 tr -1.4% PF 0.94 | val 1x: 82 tr -10.3% PF 0.44 | dev 2x: 3 tr -1.1% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | delta .45-.65 | dev 1x: 102 tr -3.0% PF 0.83 | val 1x: 41 tr -4.5% PF 0.50 | dev 2x: 3 tr -1.1% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | delta .55-.75 | dev 1x: 128 tr -3.7% PF 0.82 | val 1x: 71 tr -10.0% PF 0.36 | dev 2x: 2 tr -0.8% | val 2x: 1 tr -0.1% |
| 3 Variants at ₹4 lakh | no ADX | dev 1x: 57 tr -3.5% PF 0.69 | val 1x: 59 tr -4.0% PF 0.66 | dev 2x: 5 tr -0.8% | val 2x: 5 tr -1.2% |
| 3 Variants at ₹4 lakh | no EMA stack | dev 1x: 75 tr -0.7% PF 0.95 | val 1x: 63 tr -3.7% PF 0.70 | dev 2x: 3 tr -1.1% | val 2x: 1 tr -0.5% |
| 3 Variants at ₹4 lakh | no MACD | dev 1x: 207 tr +1.1% PF 1.04 | val 1x: 50 tr -2.6% PF 0.71 | dev 2x: 6 tr -2.2% | val 2x: 2 tr -0.3% |
| 3 Variants at ₹4 lakh | no volume | dev 1x: 79 tr -2.8% PF 0.82 | val 1x: 87 tr -2.2% PF 0.85 | dev 2x: 15 tr -3.1% | val 2x: 9 tr -2.0% |
| 3 Variants at ₹4 lakh | premium cap 10% | dev 1x: 138 tr -1.4% PF 0.94 | val 1x: 82 tr -10.3% PF 0.44 | dev 2x: 3 tr -1.1% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | premium cap 15% | dev 1x: 138 tr -1.4% PF 0.94 | val 1x: 82 tr -10.3% PF 0.44 | dev 2x: 3 tr -1.1% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | risk 1.5% + cap 15% | dev 1x: 19 tr +3.2% PF 1.38 | val 1x: 24 tr -0.4% PF 0.97 | dev 2x: 6 tr -4.6% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | risk 1.5% + cap 15% + stop 15% | dev 1x: 62 tr +1.1% PF 1.03 | val 1x: 20 tr -4.6% PF 0.65 | dev 2x: 6 tr -3.5% | val 2x: 1 tr +0.1% |
| 3 Variants at ₹4 lakh | risk/trade 1.0% | dev 1x: 33 tr -0.7% PF 0.92 | val 1x: 29 tr -2.5% PF 0.76 | dev 2x: 5 tr -2.3% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | risk/trade 1.5% | dev 1x: 29 tr +0.8% PF 1.08 | val 1x: 41 tr -11.7% PF 0.44 | dev 2x: 6 tr -3.7% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | stop 15% | dev 1x: 102 tr -2.0% PF 0.90 | val 1x: 94 tr -10.8% PF 0.54 | dev 2x: 3 tr -1.0% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | stop 25% | dev 1x: 122 tr -3.7% PF 0.79 | val 1x: 34 tr -5.2% PF 0.29 | dev 2x: 2 tr -0.7% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | stop 30% | dev 1x: 103 tr -3.4% PF 0.74 | val 1x: 37 tr -4.0% PF 0.35 | dev 2x: 1 tr -0.4% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | target 1.5R | dev 1x: 139 tr -0.2% PF 0.99 | val 1x: 43 tr -4.8% PF 0.50 | dev 2x: 3 tr -1.1% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | target 3R | dev 1x: 135 tr +0.4% PF 1.02 | val 1x: 40 tr -4.4% PF 0.47 | dev 2x: 3 tr -1.1% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | volume ratio>=1.0 | dev 1x: 60 tr -4.1% PF 0.66 | val 1x: 103 tr -9.4% PF 0.55 | dev 2x: 6 tr -1.0% | val 2x: 4 tr -0.7% |
| 3 Variants at ₹4 lakh | volume ratio>=2.0 | dev 1x: 71 tr -1.4% PF 0.88 | val 1x: 32 tr -5.8% PF 0.27 | dev 2x: 0 tr +0.0% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | window 09:25-13:30 | dev 1x: 113 tr +1.5% PF 1.08 | val 1x: 28 tr -4.7% PF 0.27 | dev 2x: 3 tr -1.1% | val 2x: 0 tr +0.0% |
| 3 Variants at ₹4 lakh | window 09:45-14:30 | dev 1x: 125 tr -0.8% PF 0.96 | val 1x: 38 tr -4.4% PF 0.44 | dev 2x: 3 tr -1.1% | val 2x: 0 tr +0.0% |
| 4 Controls | dev: day-bootstrap / random-entry null | P&L ₹-5,679; 95% CI ₹-43,550 to ₹34,478 | P(loss) 0.62 | null median ₹18,530, p90 ₹40,797 | beats 13% of 30 random runs |
| 4 Controls | val: day-bootstrap / random-entry null | P&L ₹-41,161; 95% CI ₹-70,299 to ₹-12,355 | P(loss) 1.00 | null median ₹-6,226, p90 ₹19,105 | beats 0% of 30 random runs |
| 4 Controls | reality check, 24 variants (dev) | max t 0.49 | p 0.88 | risk 1.5% + cap 15% |
Rules and parameters
Rules
- Long CE/PE on closed 5-minute bars: EMA 9>21>50 (mirrored for puts), ADX>25, volume ratio ≥1.5, MACD histogram, RSI <75 / >25, VIX change <15%
- Entry window 09:25 to 14:30; one position; ≤3 entries a day; halt after 2 losses; 5-minute cooldown
- Delta 0.50 to 0.70, spread ≤1%; risk 0.5% per trade, premium cap 6%
- Stop −20% premium, target +2R, trail 1R after +1.5R, no-progress exit 20 minutes, square-off 15:20
- Daily loss 1.5%, weekly 4%, account drawdown 6%
Parameters
- capital
- ₹1 lakh (spec); ₹2 to 7.5 lakh tested for feasibility
- periods
- development 2021-11 to 2023-12, validation 2024-01 to 2025-09, sealed 2025-10 onward never opened
- costs
- bar-fill spread model, 1-tick slippage, estimated fees (brokerage ₹20, STT 0.0625% to 0.15%), stressed 1x/2x/3x
- data
- Dhan expired options ATM±10, 1-minute, 1,235 sessions
- pre-registration
- research/nifopt/STRATEGY_NIFOPT.md
- code
- research/nifopt/ (data, sim, run_experiments, run_final, engine/)
Instrument
Nifty weekly options (long CE/PE), nearest expiry after today, one lot · capital ₹100,000
Known limitations
- Volume ratio is a proxy (ATM call+put volume vs previous 20 bars); India VIX change is the previous session's close change
- Fees are estimates; fills are modelled from 1-minute bars, no order book
- Samples are small (tens of trades) and the 6% account-drawdown halt truncates runs; research mode resets it after review
- Weekly options on expiry days are skipped (spec: nearest expiry after today)
- Sealed period untouched; deployment on hold per the spec
Logs and raw data
Downloads appear once a data window is loaded.
Files are plain CSV so results can be re-computed independently. Trade dates are IST sessions; returns are net of modelled costs and slippage.