Verdict
Passes on Nifty, fails the Sensex replication: not paper-traded
A pre-registered finalist (sell within two sessions of expiry at 15:15, buy back next midday) made +₹871 a night at 2x costs on 50 sealed Nifty nights and +₹1,035 over all 196 nights, but on Sensex it was +₹368 then -₹331 (about zero overall). Rule set beforehand: both halves of Sensex positive. It failed, so no paper run.
- 1. The report: a Tradetron back-test of a Sensex OTM1 strangle sold and bought back the next day (6 sets, 2024-09 to 2026-09, ₹7.5 lakh): gross +₹8.53 lakh (+114%), Sharpe 3.4. It is gross: its own cost lab shows ₹4.96 lakh of costs (58% of gross). Its own exit table shows planned exits +₹44.9 lakh and 'repair' exits -₹36.3 lakh. The call leg made ₹7.6 lakh and the put leg ₹0.2 lakh. Real live fills were about 1.5% worse than the minute open (3.5% in the first 15 minutes).
- 2. This study: Nifty, 464 sessions (2024-12-03 to 2026-10-16), Dhan 1-minute weekly options, strangles with 8 entry times, 8 exits, 15 strike structures, 5 stops, 3 targets, 3 defined-risk structures and 29 filters (287,000 configurations). Slippage 1.5% of the premium per fill (3.5% in the first 15 minutes), STT 0.10% then 0.15% from April 2026, lot 75 then 65. About half of overnight exits use a Black-76 model price because the strike leaves Dhan's -2..+2 window.
- 3. Gross edge is real, net edge is thin: a plain OTM1 strangle every non-expiry night earns ₹637 to ₹965 a night per lot pair before costs on Nifty (₹726 to ₹949 on Sensex), +₹107 to +₹441 at 1x costs, and -₹422 to -₹84 at 2x.
- 4. The search does not hold up: at 2x costs 38% of Nifty configurations are positive in development but only 5.7% in both development and validation (1.1% at 3x); on Sensex 5.9% and 0.2%. The 40 best by development lost ₹1,634 (Nifty) and ₹1,160 (Sensex) a night in validation. The best development t-statistic (8.7) is far beyond luck, which fits a persistent regime, not an edge that carries over.
- 5. Direction explains the winners: put-only configurations won while the market rose (development) and lost in validation; call-only configurations did the reverse. Defined-risk wings lose ₹2,000 to ₹2,600 a night; volatility timing (implied over realised) is positive in development and negative in validation; stops and targets did not help.
- 6. The finalist (1-2 sessions to expiry; ATM call and the put 100 points lower; 15:15 to next 12:00; no stop): development +₹1,080 (99 nights), validation +₹1,114 (47), sealed +₹871 (50) per night at 2x; +₹461 sealed at 3x; worst night -₹41,185 (2 February 2026, 40 average winning nights); maximum drawdown for one lot ₹52,368 (3.5% of ₹15 lakh). It is short a call: it loses ₹3,327 for each 1% the market rises overnight, with an intercept of +₹984 a night (t 2.9).
- 7. Weak points: 60% of the finalist's exits use the model price; with model prices 10% worse for the seller the sealed result at 2x is +₹448 and at 20% worse +₹25. On Sensex it failed (first half +₹368, second half -₹331 at 2x). The tail rule allows only one lot.
- 8. Decision: no paper run (Sensex replication failed). A paper run that records real contract prices would settle the model-price question; the script is written but not scheduled. Dhan's data token must be valid each evening for it to run.
Promotion gates
₹637 to ₹965 a night per lot pair gross on Nifty; similar on Sensex.
-₹422 to -₹84 a night on Nifty, -₹355 to -₹124 on Sensex.
5.7% of Nifty and 0.2% of Sensex configurations; best-by-development lose in validation.
Wings -₹2,000 to -₹2,600 a night; implied/realised timing flips sign in validation.
+₹871 / +₹461 / +₹448 a night over 50 nights.
+₹368 and -₹331; overall +₹15.
One lot only: worst night -₹41,185 (2.7%); two lots would breach.
Not started under the pre-registered rule. paper_ovn.py exists but is not scheduled.
Explain the strategy
Some traders sell two options at the end of the day and buy them back next morning, collecting the time decay overnight. It looks like easy money until a big overnight move or the fees take it away. After counting realistic fees this test found only a tiny, unreliable profit, so we did not start paper trading it.
Report
The finalist by period and cost level on Nifty, and the Sensex replication (₹ per night per lot pair)
| underlying | period | costs | nights | mean_per_night | win_rate | total | worst_night | per_night_on_margin |
|---|---|---|---|---|---|---|---|---|
| Nifty | development 2024-12-03 to 2025-11-07 | 1x | 99 | ₹1,498 | 69% | ₹148,270 | ₹-10,046 | 1.00% |
| Nifty | development 2024-12-03 to 2025-11-07 | 2x | 99 | ₹1,080 | 64% | ₹106,919 | ₹-10,647 | 0.72% |
| Nifty | development 2024-12-03 to 2025-11-07 | 3x | 99 | ₹663 | 61% | ₹65,603 | ₹-11,248 | 0.44% |
| Nifty | validation 2025-11-10 to 2026-04-29 | 1x | 47 | ₹1,610 | 81% | ₹75,653 | ₹-40,186 | 1.07% |
| Nifty | validation 2025-11-10 to 2026-04-29 | 2x | 47 | ₹1,114 | 77% | ₹52,353 | ₹-41,185 | 0.74% |
| Nifty | validation 2025-11-10 to 2026-04-29 | 3x | 47 | ₹619 | 70% | ₹29,075 | ₹-42,184 | 0.41% |
| Nifty | sealed check 2026-04-30 to 2026-10-16 (run once) | 1x | 50 | ₹1,281 | 76% | ₹64,042 | ₹-11,396 | 0.85% |
| Nifty | sealed check 2026-04-30 to 2026-10-16 (run once) | 2x | 50 | ₹871 | 74% | ₹43,535 | ₹-12,132 | 0.58% |
| Nifty | sealed check 2026-04-30 to 2026-10-16 (run once) | 3x | 50 | ₹461 | 68% | ₹23,053 | ₹-12,867 | 0.31% |
| Sensex | replication, first half 2024-09 to 2025-09 | 1x | 106 | ₹822 | 67% | ₹87,146 | ₹-24,628 | 0.48% |
| Sensex | replication, first half 2024-09 to 2025-09 | 2x | 106 | ₹368 | 62% | ₹38,963 | ₹-25,807 | 0.22% |
| Sensex | replication, first half 2024-09 to 2025-09 | 3x | 106 | ₹-87 | 58% | ₹-9,182 | ₹-26,987 | -0.05% |
| Sensex | replication, second half 2025-09 to 2026-10 | 1x | 108 | ₹121 | 64% | ₹13,103 | ₹-26,747 | 0.07% |
| Sensex | replication, second half 2025-09 to 2026-10 | 2x | 108 | ₹-331 | 62% | ₹-35,750 | ₹-28,186 | -0.19% |
| Sensex | replication, second half 2025-09 to 2026-10 | 3x | 108 | ₹-783 | 54% | ₹-84,557 | ₹-29,624 | -0.46% |
| Sensex | replication, whole sample | 1x | 214 | ₹468 | 65% | ₹100,249 | ₹-26,747 | 0.28% |
| Sensex | replication, whole sample | 2x | 214 | ₹15 | 62% | ₹3,212 | ₹-28,186 | 0.01% |
| Sensex | replication, whole sample | 3x | 214 | ₹-438 | 56% | ₹-93,739 | ₹-29,624 | -0.26% |
Rules and parameters
Rules
- Underlying and contract: Nifty 50 weekly options, the contract that expires soonest. Sessions to expiry is counted in trading days; entries on expiry day are not allowed (the contract would expire before the exit).
- Entry (finalist): on a session 1 or 2 sessions before expiry, sell one ATM call (strike nearest the spot at the close of the 14:xx bar) and one put 100 points below it, at the open of the 15:15 bar.
- Exit: buy both back at the open of the 12:00 bar of the next session. No stop and no target in the finalist (stops, targets, wings and other exits were searched and did not help).
- Prices: observed 1-minute opens from Dhan's rolling series where the strike is inside the -2..+2 window; Black-76 (forward from put-call parity at the ATM pair, ATM implied volatility, skew fitted on observed strikes) otherwise. Model error on observed strikes: median about 0% to 2%, mean absolute error 10% to 12%.
- Costs: slippage 1.5% of the premium on every fill (3.5% in a session's first 15 minutes, the Tradetron report's measurement on 21,011 live fills); brokerage ₹20 an order; exchange 0.03503%; SEBI 0.0001%; GST 18% on those; stamp 0.003% on buys; STT on the premium sold 0.10% to 2026-03-31 and 0.15% from 2026-04-01; all times 1x, 2x or 3x.
- Periods fixed before any result: development 2024-12-03 to 2025-11-07, validation 2025-11-10 to 2026-04-29, sealed 2026-04-30 to 2026-10-16. A diagnostic on a baseline configuration printed sealed figures before the finalist was chosen; the finalist's sealed result was not looked at.
- Sizing for the tail rule: one lot pair (65 units from 2025-12-30), margin about ₹1.5 lakh per strangle (assumption), capital ₹15 lakh.
Parameters
- capital
- ₹15,00,000 (margin about ₹1.5 lakh per strangle, assumed)
- finalist
- sessions to expiry 1-2; sell ATM call + put 100 points lower at 15:15; buy back next 12:00
- slippage
- 1.5% of premium per fill, 3.5% first 15 minutes
- STT
- 0.10% to 2026-03-31, 0.15% after
- windows
- Nifty 2024-12-03 to 2026-10-16; Sensex 2024-09-03 to 2026-10-16 (replication)
- searched
- 287,280 configurations per underlying
- code
- research/ovn/ (prep, paths, scan, screen, rc, sealed, export_ovn, paper_ovn)
Instrument
Nifty weekly options, one lot each side (lot 75, then 65); Sensex used as a replication · capital ₹1,500,000
Known limitations
- About half of overnight exits (60% for the finalist) use a model price because the strike left Dhan's -2..+2 window; the model is unbiased on observed strikes but errs by 10% to 12% on average.
- No bid and ask history: slippage is a measured percentage of the premium, not an order-book simulation.
- Sample is 22 months (Nifty) and 25 months (Sensex): two to four tail nights decide the result.
- The finalist was selected using development and validation; only the sealed period and the Sensex replication were out of sample, and the Sensex lot size (20) is assumed.
- Margin per strangle (₹1.5 lakh Nifty, ₹1.7 lakh Sensex) is an assumption.
- One 4-week Sensex chunk (at-the-money calls, 2024-09-30 to 2024-10-27) failed to download; those sessions are excluded.
- The audit checks cover schedule, expiry, price ranges, costs and the ledger; they do not prove the model price is right.
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.