Verdict
Signal real, edge did not hold on the second look
Delivery equity fails on costs. As stock futures in whole lots at ₹50 lakh, the 4-name version made +13.0% a year at 2x costs in development (2018-2023, drawdown 7%) but only +4.7% in 2024-01 to 2025-09 (index +9.4%, drawdown 19%); the 6-name version made -1.4%. Pre-registered gate failed; paper run cancelled; hold-out left sealed.
- 1. Signal: the LightGBM ranker predicts five-day outperformance with rank IC +0.065 (t 12.9) in 2018-2020 and +0.051 (t 12.2) in 2021-2023 (development only).
- 2. Delivery equity (the blueprint): the strategy trades 400 to 600 times a year and costs take 15% to 22% of capital a year; -11.6% a year at standard costs, -42% at 2x. Intraday versions also fail (gross +55% to +113% a year is an open-print artefact; net negative).
- 3. Stock futures cost schedule on cash prices (₹20 lakh, liquidity proxy for F&O eligibility) looked positive and passed a first reserved-period test (4 names 2x +9.6%). That result is superseded: it ignored lot sizes and used a proxy universe.
- 4. Lot-aware version (owner approved Dhan futures data and ₹50 lakh): real lot sizes from Dhan (median contract ₹6.2 lakh), futures accounting, carry charged on notional, current F&O list as universe. Development 2x: candidate A (4 names) +10.9% and +14.6% in the two halves, +13.0% over 2018-2023, drawdown 7.2%, alpha +10.1% (t 4.2); candidate B (6 names) +13.9%, drawdown 13.3%. Both positive at 3x.
- 5. Reserved period 2024-01 to 2025-09 (second use of that period; rules committed first): A +6.4% / +4.7% / +2.5% a year at 1x / 2x / 3x, drawdown 5.8% to 9.2%, alpha +1.8% (t 0.4) at 2x; B +1.9% / -1.4% / -5.6%, drawdown up to 20%. Index +9.4%, drawdown 18.8%. The average trade fell from +0.93% to +0.17%.
- 6. Gate (written before the run): 2x and 3x CAGR each above 4% a year after the allowance, drawdown ≤ 20%, positive alpha. A fails on 3x (2.5% - 4% = -1.5%); B fails on 2x and 3x. Result: FAIL for both.
- 7. Why not trust the development numbers: the universe is today's F&O list (look-ahead); names outside that list with similar liquidity earned only +4.0% and +2.1%. Development choices were made on the same data (20 combinations tried). The edge shrank to near zero in the later period.
- 8. Dhan publishes no expired futures contracts, so no multi-year backtest on real futures prices is possible. Twelve weeks of real futures bars (2026-07-29 to 2026-10-19) show the carry assumption is about right (basis median 4.9% a year) and that futures open prices scatter about 0.9% around spot-implied levels, an execution-noise term the backtest does not include.
- 9. TabFM (Google Research, June 2026) is a tabular in-context model, not a chart reader; weights are non-commercial. Bounded test (500 rows): no demonstrable lift. It was never part of a tested strategy.
- 10. Decision: do not paper-trade this as a candidate and do not open the 2025-10 hold-out for it (nothing to confirm). The ₹20 lakh paper run was stopped before its first decision. Longbow Learned (weekly version of the same model) remains in paper trading.
Promotion gates
Rank IC +0.065 and +0.051, t above 12 in both halves.
-42% a year at 2x for the blueprint rules; best slower variant -5.8%.
Candidate A: +13.0% at 2x, +8.8% at 3x (2018-2023); candidate B: +13.9% and +9.1%.
A: 7.2% (2x, reserved 2024-2025); B: 16.4%. Index 18.8%.
A: 2x +0.7%, 3x -1.5%. B: 2x -5.4%, 3x -9.6%.
A +4.7% at 2x against +9.4% (lower risk: beta 0.30, drawdown 7% against 19%); B -1.4%.
A alpha +1.8% (t 0.4) at 2x; B negative.
500 rows, 20 days: no demonstrable lift; licence blocks production use.
Not opened: the strategy failed the earlier gate, so there is nothing to confirm.
Explain the strategy
A computer model ranks stocks by how likely they are to beat the market over the next few days, and the strategy holds the top few using futures. It looked good in the past data it was developed on, but in the next period it earned less than simply holding the index, so it was not taken further.
Report
Lot-aware futures version at ₹50 lakh: candidates A and B, development and reserved periods, 1x / 2x / 3x costs
| period | candidate | costs | CAGR | after_4pct_allowance | worst_fall | Sharpe | beta | alpha | alpha_t | index_CAGR | index_worst_fall | trades | avg_exposure |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Development walk-forward 2018-2023 | A | 1x | 15.3% | 11.3% | 5.7% | 2.22 | 0.20 | 12.0% | 5.1 | 12.8% | 38.3% | 683 | 36% |
| Development walk-forward 2018-2023 | A | 2x | 13.0% | 9.0% | 7.2% | 1.88 | 0.19 | 10.1% | 4.2 | 12.8% | 38.3% | 662 | 36% |
| Development walk-forward 2018-2023 | A | 3x | 8.8% | 4.8% | 11.5% | 1.31 | 0.18 | 6.3% | 2.6 | 12.8% | 38.3% | 630 | 37% |
| Development walk-forward 2018-2023 | B | 1x | 15.4% | 11.4% | 12.5% | 1.69 | 0.27 | 11.3% | 3.6 | 12.8% | 38.3% | 986 | 55% |
| Development walk-forward 2018-2023 | B | 2x | 13.9% | 9.9% | 13.3% | 1.55 | 0.26 | 10.0% | 3.2 | 12.8% | 38.3% | 980 | 55% |
| Development walk-forward 2018-2023 | B | 3x | 9.1% | 5.1% | 17.3% | 1.02 | 0.27 | 5.6% | 1.7 | 12.8% | 38.3% | 924 | 57% |
| Reserved period 2024-01 to 2025-09 (second look) | A | 1x | 6.4% | 2.4% | 5.8% | 0.90 | 0.30 | 3.4% | 0.8 | 9.4% | 18.8% | 217 | 37% |
| Reserved period 2024-01 to 2025-09 (second look) | A | 2x | 4.7% | 0.7% | 7.2% | 0.68 | 0.30 | 1.8% | 0.4 | 9.4% | 18.8% | 214 | 37% |
| Reserved period 2024-01 to 2025-09 (second look) | A | 3x | 2.5% | -1.5% | 9.2% | 0.37 | 0.30 | -0.4% | -0.1 | 9.4% | 18.8% | 209 | 37% |
| Reserved period 2024-01 to 2025-09 (second look) | B | 1x | 1.9% | -2.1% | 15.0% | 0.24 | 0.46 | -2.4% | -0.4 | 9.4% | 18.8% | 355 | 56% |
| Reserved period 2024-01 to 2025-09 (second look) | B | 2x | -1.4% | -5.4% | 16.4% | -0.10 | 0.45 | -5.6% | -1.0 | 9.4% | 18.8% | 356 | 56% |
| Reserved period 2024-01 to 2025-09 (second look) | B | 3x | -5.6% | -9.6% | 20.0% | -0.53 | 0.46 | -10.1% | -1.8 | 9.4% | 18.8% | 347 | 57% |
Rules and parameters
Rules
- Universe: Nifty 500 members on the day (effective dates), listed in Dhan's current F&O list (look-ahead), at least 120 sessions of history, average traded value ≥ ₹5 crore a day.
- Features (34), all known at the close of day t and converted to percentile ranks among eligible names: returns over 1, 2, 3, 5, 10, 20, 60 and 120 days, 120-to-20-day momentum, volatility (10 and 60 days), ATR14 %, day range, overnight gap, close position in the day's range, distance from 20- and 60-day highs and 20-day low, price over 5-, 20- and 50-day averages, RSI 2 and 14, MACD histogram, volume over its 20-day average, log traded value, 60-day beta, 20-day relative strength, a causal wavelet-denoised slope, and market state (index returns over 5, 20, 60 days, 20-day index volatility, share of stocks above their 50-day average).
- Label: the stock beats the cross-sectional median return from the next open to the close five sessions later.
- Model: LightGBM classifier (250 trees, 31 leaves, learning rate 0.05, at least 3000 rows per leaf, L2 50), 3 seeds averaged; one model per calendar year trained on all earlier eligible rows (every second session) with an 8-session embargo.
- Entry: decision at the close of day t; buy at the open of t+1 if the stock ranks in the top 20 by score, the correlation rule passes (at most 2 current or accepted holdings with 60-day return correlation above 0.6) and the 3% daily-drawdown halt is off.
- Size: risk 0.6% of equity divided by 3 x ATR14, capped at 25% (4 names) or 20% (6 names) of equity, rounded to whole lots (1 lot modelled as ₹6.2 lakh of contract value); at most 4 or 6 names; no cash outlay (futures), margin not binding.
- Stop: 3 x ATR14 below the entry open, checked on the daily low; a gap through the stop fills at the open.
- Exits: rank falls below 150 at any time (most exits), or the rank leaves the top 20 once held 15 sessions, or 15 sessions held (sell at the next open). Exits are decided at the close and executed at the next open.
- Halt: if equity falls 3% or more in a day, no new entries the next session; exits and stops continue.
- Costs: stock-futures schedule (exchange fee and 0.02% securities transaction tax on sells, ₹20 plus 18% tax per order), slippage 0.03% per fill for traded value ≥ ₹100 crore a day and 0.05% below that (assumptions), all multiplied by 1x, 2x or 3x; carry charged at repo less 1.5% on notional; free cash earns repo less 1.5%.
Parameters
- capital
- ₹50,00,000
- candidate A
- 4 names, cap 25%, top 20
- candidate B
- 6 names, cap 20%, top 20
- lot value
- ₹6.2 lakh modelled (current median; 10th to 90th percentile ₹4.6 to ₹9.2 lakh)
- windows
- development 2018-01 to 2023-12; reserved 2024-01 to 2025-09 (used twice); 2025-10 onward sealed
- slippage
- 0.03% / 0.05% per fill (assumption)
- data
- Dhan daily panel (cash prices), Dhan scrip master (lots, F&O list), 12 weeks of futures bars
- code
- research/mfs/ (feat, wf_lgb, sim, lot_grid, final_test2, export)
Instrument
Stock futures on names in Dhan's current F&O list (lot about ₹6.2 lakh of contract value); modelled on cash prices · capital ₹5,000,000
Known limitations
- No multi-year backtest on real futures prices exists: Dhan lists only live contracts. Prices are cash prices with futures costs and carry applied; basis noise (about 0.9% a day) is not modelled.
- The universe is today's F&O list (look-ahead). Lot sizes are modelled at today's median value for all years.
- Slippage tiers (0.03% / 0.05% per fill) are assumptions, not measured fills.
- The development window was searched (20 combinations plus about 10 earlier rule sets); the reserved period was used twice.
- Jump-cleaned prices (35% daily rule) and effective-date membership.
- TabFM: non-commercial weights; the test used 500 rows.
- Independent audit checks are in the Logs tab; the equity reconciliation re-uses the recorded fills (it checks accounting, not strategy logic).
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.