TradeTech Analytics

NSE stock futures · 2 to 5 session swing, daily signals, 15-minute trigger · v1.0.0 · closed by owner 2026-11-04

SFX NO EDGE

Regime-aware ranked stock futures: breakout and pullback, long and short, walk-forward 2020 to 2025. Best leg (pullback long) earns +0.064R a trade out of sample with an interval spanning zero; the other three legs lose. At ₹20 lakh and 0.5% risk, 99.5% of candidates are rejected because one lot breaches the budget.

Verdict

No edge, and not feasible at ₹20 lakh with 0.5% risk

Stitched walk-forward 2020-01 to 2025-09 at current costs: pullback long 192 trades +0.064R, the other three legs negative. Reality check across 785 series p = 0.88. One lot at a 1.5-ATR stop risks a median ₹24,000 to ₹40,000 a year against ₹10,000 allowed.

  • Pullback long is the only leg above zero: +0.064R (+0.039R at 2x), ₹393 a lot, profit factor 1.03, 58% of folds positive, 95% interval -0.052 to 0.205R, beats 70% of random-stock runs against the 90% required. It fails the pass rule on the interval, the folds, the null and the reality check.
  • Breakout long -0.037R, breakout short -0.057R, pullback short -0.056R. Random stocks on the same days with the same exits earned more than the breakout legs and pullback short: stock selection added nothing on those legs.
  • Whole lots decide feasibility: only 0.2% of stock-days fit ₹10,000 of risk at 1.5 ATR, 14% fit ₹20,000. At ₹20 lakh and 0.5% the pullback leg made 1 trade in nearly six years. At ₹1 crore and 1% it trades 129 times for 1.7% a year, drawdown 4.9%, against the Nifty's 13.1% price return.
  • Data: real contract daily bars, OI and lot sizes from NSE F&O bhavcopy, 15-minute underlying bars from Dhan, 2017-04 to 2025-09. Sealed from 2025-10 not fetched. Intraday futures prices are estimated from the underlying (median close error 0.26%), so this is a hybrid backtest, not an executable one.
  • Stage 7 (OI and basis overlays) was skipped under the pre-registered condition that stage 5 be positive after costs.

Promotion gates

No gates published for this strategy.

Explain the strategy

Buying and shorting stock futures on breakouts and pullbacks did not make reliable money, and one contract is too big for ₹20 lakh under the risk limit.

Report

Walk-forward legs, first experiment, ablation, portfolio by capital

sectionitemtradesR_per_tradeR_2xR_grossrs_per_lotprofit_factorfolds_positivedetail
1 Walk-forward, stitched outer folds 2020-01 to 2025-09, current costsA breakout long226-0.037-0.0610.003-1800.990.6721 of 23 folds traded; 95% CI -0.257 to 0.128R; random null median 0.013, p90 0.080; beats 7% of random runs
1 Walk-forward, stitched outer folds 2020-01 to 2025-09, current costsA breakout short135-0.057-0.081-0.019-5780.950.3813 of 23 folds traded; 95% CI -0.274 to 0.181R; random null median 0.053, p90 0.122; beats 3% of random runs
1 Walk-forward, stitched outer folds 2020-01 to 2025-09, current costsB pullback long1920.0640.0390.1043931.030.5819 of 23 folds traded; 95% CI -0.052 to 0.205R; random null median 0.019, p90 0.094; beats 70% of random runs
1 Walk-forward, stitched outer folds 2020-01 to 2025-09, current costsB pullback short98-0.056-0.08-0.018-37070.630.58 of 23 folds traded; 95% CI -0.247 to 0.15R; random null median 0.043, p90 0.123; beats 0% of random runs
2 Spec's first experiment, 2018-2025, one lot per tradeA long hold 3 target 0R977-0.047-0.075-0.002-7610.94win 42.5%; 4107 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeA short hold 3 target 0R2780.003-0.0180.036-1420.99win 46.0%; 1645 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeA long hold 3 target 2R978-0.042-0.070.003-7730.94win 42.5%; 4107 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeA short hold 3 target 2R278-0.002-0.0220.032-940.99win 46.0%; 1645 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeA long hold 5 target 0R978-0.014-0.0420.0317491.05win 44.1%; 4107 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeA short hold 5 target 0R278-0.035-0.056-0.002-5840.96win 41.7%; 1645 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeA long hold 5 target 2R979-0.018-0.0460.0273041.02win 44.4%; 4107 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeA short hold 5 target 2R278-0.062-0.082-0.028-13080.91win 42.4%; 1645 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeB long hold 3 target 0R1804-0.044-0.071-0.001-22070.82win 45.7%; 8957 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeB short hold 3 target 0R581-0.033-0.0530.001-14740.86win 46.6%; 3564 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeB long hold 3 target 2R1806-0.041-0.0680.002-19860.84win 45.8%; 8957 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeB short hold 3 target 2R581-0.038-0.058-0.005-16140.84win 46.6%; 3564 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeB long hold 5 target 0R18030.002-0.0250.046-4270.97win 47.6%; 8957 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeB short hold 5 target 0R584-0.054-0.074-0.02-22720.84win 44.7%; 3564 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeB long hold 5 target 2R18040.005-0.0220.048-1700.99win 47.8%; 8957 signals before the 15-minute trigger
2 Spec's first experiment, 2018-2025, one lot per tradeB short hold 5 target 2R584-0.065-0.085-0.031-25790.81win 44.7%; 3564 signals before the 15-minute trigger
3 Ablation, hold 5, target 2RA long: baseline979-0.018-0.0460.0273041.02
3 Ablation, hold 5, target 2RA short: baseline278-0.062-0.082-0.028-13080.91
3 Ablation, hold 5, target 2RA long: regime off1144-0.01-0.0370.0359491.06
3 Ablation, hold 5, target 2RA short: regime off464-0.03-0.0520.006-11090.91
3 Ablation, hold 5, target 2RA long: RS top 30% (20d)676-0.003-0.0290.0399681.06
3 Ablation, hold 5, target 2RA short: RS top 30% (20d)184-0.063-0.082-0.032-6170.96
3 Ablation, hold 5, target 2RA long: ADX14>=22653-0.023-0.050.022-2460.99
3 Ablation, hold 5, target 2RA short: ADX14>=22206-0.101-0.121-0.07-28360.82
3 Ablation, hold 5, target 2RA long: RSI14>=55979-0.018-0.0460.0273041.02
3 Ablation, hold 5, target 2RA short: RSI14>=55278-0.062-0.082-0.028-13080.91
3 Ablation, hold 5, target 2RA long: rel volume>=1.53540.018-0.0080.06214781.09
3 Ablation, hold 5, target 2RA short: rel volume>=1.575-0.088-0.108-0.055-19920.88
3 Ablation, hold 5, target 2RA long: body>=40%847-0.033-0.060.012-8610.95
3 Ablation, hold 5, target 2RA short: body>=40%246-0.143-0.163-0.109-42430.72
3 Ablation, hold 5, target 2RA long: close location>=0.65894-0.021-0.0490.0241571.01
3 Ablation, hold 5, target 2RA short: close location>=0.65244-0.121-0.142-0.087-34360.77
3 Ablation, hold 5, target 2RA long: 30-minute confirmation951-0.024-0.0520.0224071.03
3 Ablation, hold 5, target 2RA short: 30-minute confirmation299-0.106-0.127-0.073-33990.78
3 Ablation, hold 5, target 2RA long: any bar to 14:151985-0.038-0.0660.007-11420.93
3 Ablation, hold 5, target 2RA short: any bar to 14:15644-0.1-0.12-0.067-35710.78
3 Ablation, hold 5, target 2RA long: breadth>=55%908-0.015-0.0430.034011.03
3 Ablation, hold 5, target 2RA short: breadth>=55%268-0.061-0.082-0.028-12630.91
3 Ablation, hold 5, target 2RA long: VIX below 80th pct872-0.02-0.0480.0252161.01
3 Ablation, hold 5, target 2RA short: VIX below 80th pct158-0.101-0.124-0.064-25750.8
3 Ablation, hold 5, target 2RA long: stop 1.0 ATR979-0.03-0.0720.0381821.01
3 Ablation, hold 5, target 2RA short: stop 1.0 ATR278-0.055-0.086-0.005-14080.89
3 Ablation, hold 5, target 2RA long: stop 2.0 ATR979-0.005-0.0260.0297151.04
3 Ablation, hold 5, target 2RA short: stop 2.0 ATR278-0.051-0.066-0.026-9190.94
3 Ablation, hold 5, target 2RA long: trail +1R 1.5ATR979-0.017-0.0450.0282611.02
3 Ablation, hold 5, target 2RA short: trail +1R 1.5ATR278-0.066-0.086-0.032-16370.88
3 Ablation, hold 5, target 2RB long: baseline18040.005-0.0220.048-1700.99
3 Ablation, hold 5, target 2RB short: baseline584-0.065-0.085-0.031-25790.81
3 Ablation, hold 5, target 2RB long: regime off22640.001-0.0250.0442501.02
3 Ablation, hold 5, target 2RB short: regime off1129-0.047-0.069-0.009-14950.88
3 Ablation, hold 5, target 2RB long: RS top 30% (20d)4830.021-0.0040.0611801.08
3 Ablation, hold 5, target 2RB short: RS top 30% (20d)143-0.075-0.093-0.046-19300.86
3 Ablation, hold 5, target 2RB long: ADX14>=22815-0.051-0.076-0.009-21060.88
3 Ablation, hold 5, target 2RB short: ADX14>=22314-0.155-0.173-0.125-66710.59
3 Ablation, hold 5, target 2RB long: RSI14>=5513110.007-0.020.051-1630.99
3 Ablation, hold 5, target 2RB short: RSI14>=55426-0.078-0.098-0.045-30640.79
3 Ablation, hold 5, target 2RB long: rel volume>=1.5205-0.053-0.079-0.01-28100.85
3 Ablation, hold 5, target 2RB short: rel volume>=1.537-0.295-0.315-0.264-129860.43
3 Ablation, hold 5, target 2RB long: body>=40%1052-0.025-0.0510.019-14280.91
3 Ablation, hold 5, target 2RB short: body>=40%395-0.064-0.084-0.031-25730.81
3 Ablation, hold 5, target 2RB long: close location>=0.651345-0.008-0.0350.035-4820.97
3 Ablation, hold 5, target 2RB short: close location>=0.65474-0.066-0.086-0.032-24960.82
3 Ablation, hold 5, target 2RB long: 30-minute confirmation17560.018-0.0090.0621571.01
3 Ablation, hold 5, target 2RB short: 30-minute confirmation604-0.016-0.0370.018-12580.9
3 Ablation, hold 5, target 2RB long: any bar to 14:1538020.0290.0020.0735701.04
3 Ablation, hold 5, target 2RB short: any bar to 14:151384-0.015-0.0370.019-9540.92
3 Ablation, hold 5, target 2RB long: breadth>=55%16280.002-0.0240.046-2990.98
3 Ablation, hold 5, target 2RB short: breadth>=55%552-0.068-0.088-0.035-28620.8
3 Ablation, hold 5, target 2RB long: VIX below 80th pct15480.007-0.020.051-4650.97
3 Ablation, hold 5, target 2RB short: VIX below 80th pct343-0.052-0.076-0.014-7110.94
3 Ablation, hold 5, target 2RB long: stop 1.0 ATR1805-0.012-0.0520.053-4010.97
3 Ablation, hold 5, target 2RB short: stop 1.0 ATR585-0.084-0.114-0.033-22460.83
3 Ablation, hold 5, target 2RB long: stop 2.0 ATR18030.007-0.0130.039-121.0
3 Ablation, hold 5, target 2RB short: stop 2.0 ATR583-0.063-0.078-0.038-30950.79
3 Ablation, hold 5, target 2RB long: trail +1R 1.5ATR18040.009-0.0180.052-1470.99
3 Ablation, hold 5, target 2RB short: trail +1R 1.5ATR585-0.059-0.08-0.026-24740.82
4 Portfolio with whole lotsB long only: ₹20 lakh, risk 0.25%1CAGR 0.1%, drawdown 0.0%, Sharpe 0.43; 100% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹20 lakh, risk 0.50%1CAGR 0.1%, drawdown 0.0%, Sharpe 0.43; 100% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹20 lakh, risk 0.75%4CAGR 0.2%, drawdown 0.7%, Sharpe 0.43; 98% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹20 lakh, risk 1.00%21CAGR 1.3%, drawdown 2.1%, Sharpe 0.71; 88% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹30 lakh, risk 0.25%1CAGR 0.0%, drawdown 0.0%, Sharpe 0.43; 100% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹30 lakh, risk 0.50%4CAGR 0.1%, drawdown 0.5%, Sharpe 0.43; 98% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹30 lakh, risk 0.75%28CAGR 0.8%, drawdown 2.0%, Sharpe 0.57; 83% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹30 lakh, risk 1.00%41CAGR 1.2%, drawdown 4.1%, Sharpe 0.63; 76% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹50 lakh, risk 0.25%1CAGR 0.1%, drawdown 0.0%, Sharpe 0.43; 100% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹50 lakh, risk 0.50%32CAGR 0.6%, drawdown 1.4%, Sharpe 0.61; 81% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹50 lakh, risk 0.75%60CAGR 0.8%, drawdown 3.9%, Sharpe 0.47; 62% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹50 lakh, risk 1.00%81CAGR 1.0%, drawdown 5.4%, Sharpe 0.41; 48% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹75 lakh, risk 0.25%17CAGR 0.2%, drawdown 0.5%, Sharpe 0.47; 90% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹75 lakh, risk 0.50%60CAGR 0.6%, drawdown 2.6%, Sharpe 0.47; 62% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹75 lakh, risk 0.75%99CAGR 1.2%, drawdown 3.2%, Sharpe 0.6; 34% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹75 lakh, risk 1.00%113CAGR 1.9%, drawdown 4.4%, Sharpe 0.67; 17% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹100 lakh, risk 0.25%32CAGR 0.3%, drawdown 0.7%, Sharpe 0.61; 81% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹100 lakh, risk 0.50%88CAGR 0.7%, drawdown 2.3%, Sharpe 0.55; 44% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹100 lakh, risk 0.75%119CAGR 1.3%, drawdown 3.7%, Sharpe 0.6; 17% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only: ₹100 lakh, risk 1.00%129CAGR 1.7%, drawdown 4.9%, Sharpe 0.55; 7% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹20 lakh, risk 0.25%2CAGR 0.0%, drawdown 0.2%, Sharpe 0.13; 100% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹20 lakh, risk 0.50%7CAGR -0.3%, drawdown 2.7%, Sharpe -0.59; 99% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹20 lakh, risk 0.75%20CAGR -0.7%, drawdown 4.6%, Sharpe -0.62; 96% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹20 lakh, risk 1.00%59CAGR 0.8%, drawdown 3.7%, Sharpe 0.27; 88% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹30 lakh, risk 0.25%2CAGR 0.0%, drawdown 0.2%, Sharpe 0.13; 100% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹30 lakh, risk 0.50%20CAGR -0.5%, drawdown 3.1%, Sharpe -0.62; 96% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹30 lakh, risk 0.75%93CAGR 1.5%, drawdown 4.6%, Sharpe 0.49; 81% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹30 lakh, risk 1.00%78CAGR -1.2%, drawdown 7.4%, Sharpe -0.53; 86% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹50 lakh, risk 0.25%11CAGR -0.1%, drawdown 1.0%, Sharpe -0.28; 98% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹50 lakh, risk 0.50%119CAGR 0.5%, drawdown 3.9%, Sharpe 0.23; 77% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹50 lakh, risk 0.75%153CAGR -0.6%, drawdown 7.1%, Sharpe -0.24; 70% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹50 lakh, risk 1.00%83CAGR -5.0%, drawdown 26.6%, Sharpe -0.41; 18% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹75 lakh, risk 0.25%52CAGR 0.1%, drawdown 1.9%, Sharpe 0.18; 91% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹75 lakh, risk 0.50%201CAGR 0.3%, drawdown 5.5%, Sharpe 0.16; 55% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹75 lakh, risk 0.75%98CAGR -3.0%, drawdown 17.9%, Sharpe -0.4; 13% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹75 lakh, risk 1.00%119CAGR -2.3%, drawdown 17.1%, Sharpe -0.29; 5% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹100 lakh, risk 0.25%120CAGR 0.2%, drawdown 2.0%, Sharpe 0.21; 77% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹100 lakh, risk 0.50%84CAGR -2.4%, drawdown 13.5%, Sharpe -0.42; 18% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹100 lakh, risk 0.75%126CAGR -1.2%, drawdown 11.1%, Sharpe -0.24; 5% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsall four legs: ₹100 lakh, risk 1.00%134CAGR -4.2%, drawdown 25.4%, Sharpe -0.35; 2% of 651 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only, strict suspend: ₹20 lakh, risk 0.50%1CAGR 0.1%, drawdown 0.0%, Sharpe 0.43; 100% of 192 candidates rejected as one lot too large
4 Portfolio with whole lotsB long only, margin 30%: ₹50 lakh, risk 1.00%81CAGR 1.0%, drawdown 5.4%, Sharpe 0.41; 48% of 192 candidates rejected as one lot too large

Rules and parameters

Rules

  1. Universe: top 50 by trailing 60-session futures traded value (proxy for Nifty 50), ban list applied
  2. Model A: close beyond the prior N-session extreme with trend; Model B: pullback to the fast EMA and recovery in trend
  3. Next session: first 15-minute close beyond the signal-day extreme, entry at the next bar; gap and extension limits
  4. Stop 1 to 2 ATR, target none to 3R, optional trail, hold 2 to 5 sessions, time exit 15:15; contract expiry at least 2 sessions past the planned exit
  5. Portfolio: 0.5% risk, 2% open risk, 4 positions, 1 per sector, margin 50%, single 20%, notional 2×, daily and drawdown controls, correlation 0.75

Parameters

capital
₹20 lakh, swept to ₹1 crore
periods
walk-forward 24-month development, 3-month outer tests 2020-01 to 2025-09; sealed 2025-10 onward not fetched
costs
current schedule (STT 0.05%) decides; historical view reported; execution 0.05% per side, stress 2x
data
NSE F&O bhavcopy + Dhan 15-minute underlying
pre-registration
research/sfx/STRATEGY_SFX.md
code
research/sfx/ (fetch_fo, fetch_i15, build, features, simc, search, wf, port); trades in results/wf_trades.csv

Instrument

Top 50 stock futures by traded value, real contract daily data, whole lots · capital ₹2,000,000

Known limitations

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.