Verdict
Weak, mostly inconclusive: no threshold is a reliable trend signal
Best-supported: daily close 2-4% above the 10/20-SMA (sustained uptrend 29%-30% vs 20% baseline), but late and only weakly significant; downward signals mark rebounds.
- Data: Nifty 50 daily OHLC, NSE official end-of-day index files from 2013-01-01 and Yahoo Finance ^NSEI for 2007-09-17 to 2012-12-31; the sources agree to within 0.0005% on 3,382 overlapping days. 4,687 daily, 997 weekly and 229 monthly completed candles; null closes dropped, nothing interpolated.
- Daily upward signals: a first close ≥3% above the SMA was followed by a sustained uptrend (3% net move over 20 sessions, 70% persistence, no close back below the signal-time SMA) 29% of the time for the 10-SMA and 30% for the 20-SMA, against 20% for every day already above its average and 14% for every day. The improvement is positive in both halves of the history but its lower confidence bound is only about 6 points.
- It arrives late: before the median ≥3% daily up-signal the index had already risen about 4% in 10 sessions; the next 10 sessions add a median of about 1%. About 29% of 10-SMA signals and 12% of 20-SMA signals close back across the average within 5 sessions.
- Downward signals do not signal downtrends: the median 10-session return after a ≥3% close below the 10 or 20-SMA was +0.5% and +1.2% (rebounds), and only 18%-21% became sustained downtrends. Short trades after the signal mostly lost money after 0.10% costs.
- Larger distances mostly identify stretched moves: the sustained-trend rate rises only a few points from 1% to 3-4%, the run-up completed before the signal grows steadily, and forward returns do not rise with the threshold (the 5% cells rest on 13-30 independent episodes).
- Statistics: 300 tests of success rate against the unconditional baseline, exact binomial, Benjamini-Hochberg at 10%: 1 survives (next-day continuation after the first daily close ≥1% above the 10-day SMA: 64% vs 53%); 0 against the like-for-like baseline. Weekly results are mostly indistinguishable from baseline; monthly combinations have 6-22 signals and no conclusion is supported.
- Not trading advice and not a strategy: the executable view (next-open entry, 0.10% round trip, no leverage) shows long trades after up-signals earning roughly what a long trade started on any day earned. The report has the heatmaps, comparison charts, event studies, return distributions, annotated examples and the full tables.
Promotion gates
No gates published for this strategy.
Explain the strategy
We asked: if Nifty closes a few percent above its recent average price, does it keep going up? Over 19 years the answer is 'slightly more often than usual, but you usually find out late'. When Nifty closes below its average, it usually bounces rather than keeps falling.
Report
All 60 combinations: signals, sustained-trend rate with interval, success rates and medians against baselines, false breakouts
| Timeframe | SMA | Direction | Threshold % | Signals | Episodes | Sustained trend % | CI low | CI high | Same-side baseline % | All-candle baseline % | Success 5 | Baseline 5 | Success 10 | Baseline 10 | Success 20 | Baseline 20 | Median ret 10 % | Baseline median 10 | Median ret 20 % | Baseline median 20 | False breakout % | Median candles to cross-back | p (10 candles) | BH significant (10) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Daily | 10 | down | 1 | 284 | 139 | 15.603 | 10.174 | 22.145 | 13.143 | 6.72 | 0.447 | 0.442 | 0.415 | 0.43 | 0.394 | 0.403 | 0.924 | 0.55 | 1.084 | 0.965 | 53.873 | 5.0 | 1.0 | False |
| Daily | 10 | down | 2 | 186 | 98 | 16.304 | 11.946 | 27.175 | 13.143 | 6.72 | 0.398 | 0.442 | 0.387 | 0.43 | 0.402 | 0.403 | 1.327 | 0.55 | 1.614 | 0.965 | 52.151 | 5.0 | 0.54 | False |
| Daily | 10 | down | 3 | 113 | 56 | 17.699 | 12.706 | 33.82 | 13.143 | 6.72 | 0.478 | 0.442 | 0.46 | 0.43 | 0.363 | 0.403 | 0.528 | 0.55 | 2.175 | 0.965 | 45.133 | 6.0 | 0.289 | False |
| Daily | 10 | down | 4 | 58 | 35 | 20.69 | 10.042 | 35.892 | 13.143 | 6.72 | 0.448 | 0.442 | 0.5 | 0.43 | 0.362 | 0.403 | 0.242 | 0.55 | 2.987 | 0.965 | 39.655 | 6.0 | 0.436 | False |
| Daily | 10 | down | 5 | 33 | 17 | 30.303 | 17.309 | 58.7 | 13.143 | 6.72 | 0.515 | 0.442 | 0.636 | 0.43 | 0.455 | 0.403 | -1.546 | 0.55 | 0.16 | 0.965 | 30.303 | 7.5 | 0.013 | False |
| Daily | 10 | up | 1 | 355 | 157 | 25.141 | 22.313 | 36.396 | 20.334 | 13.74 | 0.563 | 0.558 | 0.573 | 0.57 | 0.613 | 0.597 | 0.754 | 0.55 | 0.995 | 0.965 | 42.254 | 6.0 | 0.265 | False |
| Daily | 10 | up | 2 | 185 | 102 | 31.522 | 21.668 | 39.225 | 20.334 | 13.74 | 0.6 | 0.558 | 0.62 | 0.57 | 0.614 | 0.597 | 1.057 | 0.55 | 1.574 | 0.965 | 30.811 | 7.0 | 0.669 | False |
| Daily | 10 | up | 3 | 92 | 55 | 29.348 | 26.516 | 51.391 | 20.334 | 13.74 | 0.609 | 0.558 | 0.609 | 0.57 | 0.609 | 0.597 | 1.179 | 0.55 | 1.225 | 0.965 | 29.348 | 7.0 | 0.092 | False |
| Daily | 10 | up | 4 | 50 | 30 | 32.0 | 21.874 | 54.487 | 20.334 | 13.74 | 0.6 | 0.558 | 0.66 | 0.57 | 0.6 | 0.597 | 1.796 | 0.55 | 1.102 | 0.965 | 28.0 | 8.0 | 0.619 | False |
| Daily | 10 | up | 5 | 24 | 13 | 37.5 | 29.143 | 76.794 | 20.334 | 13.74 | 0.458 | 0.558 | 0.625 | 0.57 | 0.542 | 0.597 | 1.185 | 0.55 | 0.685 | 0.965 | 29.167 | 8.0 | 0.619 | False |
| Daily | 20 | down | 1 | 224 | 114 | 13.901 | 9.61 | 22.777 | 14.293 | 6.842 | 0.473 | 0.442 | 0.435 | 0.431 | 0.466 | 0.404 | 0.489 | 0.541 | 0.508 | 0.959 | 43.75 | 6.0 | 0.336 | False |
| Daily | 20 | down | 2 | 171 | 93 | 19.048 | 13.639 | 30.018 | 14.293 | 6.842 | 0.456 | 0.442 | 0.447 | 0.431 | 0.429 | 0.404 | 0.599 | 0.541 | 0.779 | 0.959 | 31.579 | 7.0 | 0.639 | False |
| Daily | 20 | down | 3 | 123 | 66 | 21.488 | 14.285 | 34.17 | 14.293 | 6.842 | 0.447 | 0.442 | 0.423 | 0.431 | 0.438 | 0.404 | 1.191 | 0.541 | 0.481 | 0.959 | 21.951 | 9.0 | 0.582 | False |
| Daily | 20 | down | 4 | 81 | 44 | 17.284 | 11.153 | 34.501 | 14.293 | 6.842 | 0.383 | 0.442 | 0.407 | 0.431 | 0.383 | 0.404 | 1.171 | 0.541 | 1.398 | 0.959 | 17.284 | 9.0 | 0.784 | False |
| Daily | 20 | down | 5 | 60 | 29 | 16.667 | 7.598 | 34.549 | 14.293 | 6.842 | 0.417 | 0.442 | 0.433 | 0.431 | 0.333 | 0.404 | 1.268 | 0.541 | 3.894 | 0.959 | 18.333 | 11.0 | 0.618 | False |
| Daily | 20 | up | 1 | 258 | 136 | 20.233 | 16.675 | 30.747 | 20.785 | 13.619 | 0.558 | 0.558 | 0.549 | 0.569 | 0.607 | 0.596 | 0.329 | 0.541 | 0.873 | 0.959 | 35.271 | 6.0 | 0.88 | False |
| Daily | 20 | up | 2 | 205 | 113 | 25.854 | 21.614 | 38.16 | 20.785 | 13.619 | 0.59 | 0.558 | 0.629 | 0.569 | 0.576 | 0.596 | 1.021 | 0.541 | 0.914 | 0.959 | 17.561 | 10.0 | 0.322 | False |
| Daily | 20 | up | 3 | 147 | 77 | 29.932 | 26.505 | 47.518 | 20.785 | 13.619 | 0.619 | 0.558 | 0.653 | 0.569 | 0.605 | 0.596 | 1.053 | 0.541 | 1.35 | 0.959 | 12.245 | 11.0 | 0.019 | False |
| Daily | 20 | up | 4 | 86 | 49 | 26.744 | 16.211 | 40.263 | 20.785 | 13.619 | 0.628 | 0.558 | 0.558 | 0.569 | 0.64 | 0.596 | 0.478 | 0.541 | 1.594 | 0.959 | 8.14 | 11.0 | 0.609 | False |
| Daily | 20 | up | 5 | 50 | 28 | 30.0 | 17.933 | 50.661 | 20.785 | 13.619 | 0.58 | 0.558 | 0.58 | 0.569 | 0.58 | 0.596 | 0.554 | 0.541 | 0.728 | 0.959 | 6.0 | 12.0 | 0.857 | False |
| Monthly | 10 | down | 1 | 14 | 7 | 7.143 | 0.0 | 25.884 | 8.333 | 3.738 | 0.286 | 0.326 | 0.308 | 0.233 | 0.077 | 0.12 | 6.13 | 8.389 | 16.719 | 18.869 | 61.538 | 2.0 | 0.444 | False |
| Monthly | 10 | down | 2 | 14 | 7 | 7.692 | 1.623 | 37.736 | 8.333 | 3.738 | 0.308 | 0.326 | 0.333 | 0.233 | 0.167 | 0.12 | 5.402 | 8.389 | 17.775 | 18.869 | 50.0 | 2.5 | 1.0 | False |
| Monthly | 10 | down | 3 | 14 | 6 | 7.692 | 1.788 | 40.416 | 8.333 | 3.738 | 0.308 | 0.326 | 0.25 | 0.233 | 0.091 | 0.12 | 7.434 | 8.389 | 18.832 | 18.869 | 50.0 | 2.5 | 0.69 | False |
| Monthly | 10 | down | 4 | 14 | 6 | 8.333 | 2.242 | 47.089 | 8.333 | 3.738 | 0.25 | 0.326 | 0.182 | 0.233 | 0.0 | 0.12 | 8.739 | 8.389 | 22.912 | 18.869 | 36.364 | 4.0 | 1.0 | False |
| Monthly | 10 | down | 5 | 10 | 6 | 11.111 | 2.568 | 51.313 | 8.333 | 3.738 | 0.111 | 0.326 | 0.0 | 0.233 | 0.0 | 0.12 | 16.255 | 8.389 | 29.418 | 18.869 | 37.5 | 3.5 | 0.347 | False |
| Monthly | 10 | up | 1 | 17 | 8 | 17.647 | 7.047 | 45.186 | 34.416 | 28.972 | 0.588 | 0.674 | 0.824 | 0.767 | 1.0 | 0.88 | 8.051 | 8.389 | 29.28 | 18.869 | 11.765 | 6.0 | 1.0 | False |
| Monthly | 10 | up | 2 | 20 | 8 | 30.0 | 17.309 | 58.7 | 34.416 | 28.972 | 0.65 | 0.674 | 0.8 | 0.767 | 1.0 | 0.88 | 8.138 | 8.389 | 27.061 | 18.869 | 10.0 | 6.0 | 0.476 | False |
| Monthly | 10 | up | 3 | 22 | 8 | 36.364 | 18.481 | 61.359 | 34.416 | 28.972 | 0.591 | 0.674 | 0.864 | 0.767 | 0.9 | 0.88 | 8.138 | 8.389 | 26.802 | 18.869 | 0.0 | 7.0 | 0.317 | False |
| Monthly | 10 | up | 4 | 20 | 7 | 40.0 | 16.344 | 61.236 | 34.416 | 28.972 | 0.6 | 0.674 | 0.85 | 0.767 | 0.889 | 0.88 | 7.472 | 8.389 | 27.026 | 18.869 | 0.0 | 7.0 | 0.476 | False |
| Monthly | 10 | up | 5 | 19 | 7 | 47.368 | 17.709 | 64.478 | 34.416 | 28.972 | 0.632 | 0.674 | 0.842 | 0.767 | 0.765 | 0.88 | 12.263 | 8.389 | 23.023 | 18.869 | 0.0 | 10.0 | 0.47 | False |
| Monthly | 20 | down | 1 | 8 | 6 | 0.0 | 0.0 | 35.434 | 0.0 | 0.49 | 0.286 | 0.322 | 0.0 | 0.235 | 0.0 | 0.126 | 16.29 | 8.247 | 39.306 | 18.408 | 50.0 | 3.5 | 0.347 | False |
| Monthly | 20 | down | 2 | 6 | 4 | 0.0 | -0.0 | 43.449 | 0.0 | 0.49 | 0.4 | 0.322 | 0.0 | 0.235 | 0.0 | 0.126 | 11.238 | 8.247 | 22.786 | 18.408 | 0.0 | 6.0 | 1.0 | False |
| Monthly | 20 | down | 3 | 7 | 4 | 0.0 | -0.0 | 43.449 | 0.0 | 0.49 | 0.0 | 0.322 | 0.0 | 0.235 | 0.0 | 0.126 | 8.608 | 8.247 | 24.768 | 18.408 | 0.0 | 5.0 | 1.0 | False |
| Monthly | 20 | down | 4 | 7 | 4 | 0.0 | -0.0 | 43.449 | 0.0 | 0.49 | 0.0 | 0.322 | 0.0 | 0.235 | 0.0 | 0.126 | 15.399 | 8.247 | 23.664 | 18.408 | 0.0 | 5.0 | 1.0 | False |
| Monthly | 20 | down | 5 | 7 | 4 | 0.0 | -0.0 | 43.449 | 0.0 | 0.49 | 0.0 | 0.322 | 0.0 | 0.235 | 0.0 | 0.126 | 15.399 | 8.247 | 23.664 | 18.408 | 0.0 | 5.0 | 1.0 | False |
| Monthly | 20 | up | 1 | 14 | 8 | 35.714 | 13.812 | 60.938 | 34.302 | 32.353 | 0.643 | 0.678 | 0.786 | 0.765 | 1.0 | 0.874 | 10.142 | 8.247 | 27.673 | 18.408 | 7.143 | 9.0 | 1.0 | False |
| Monthly | 20 | up | 2 | 15 | 8 | 33.333 | 13.812 | 60.938 | 34.302 | 32.353 | 0.6 | 0.678 | 0.8 | 0.765 | 1.0 | 0.874 | 8.02 | 8.247 | 27.22 | 18.408 | 6.667 | 7.0 | 1.0 | False |
| Monthly | 20 | up | 3 | 15 | 8 | 20.0 | 8.179 | 50.257 | 34.302 | 32.353 | 0.533 | 0.678 | 0.733 | 0.765 | 1.0 | 0.874 | 7.659 | 8.247 | 26.768 | 18.408 | 6.667 | 5.0 | 1.0 | False |
| Monthly | 20 | up | 4 | 16 | 8 | 25.0 | 12.68 | 57.631 | 34.302 | 32.353 | 0.562 | 0.678 | 0.812 | 0.765 | 1.0 | 0.874 | 7.84 | 8.247 | 26.802 | 18.408 | 0.0 | 7.0 | 1.0 | False |
| Monthly | 20 | up | 5 | 14 | 8 | 21.429 | 8.179 | 50.257 | 34.302 | 32.353 | 0.5 | 0.678 | 0.786 | 0.765 | 1.0 | 0.874 | 7.457 | 8.247 | 27.255 | 18.408 | 0.0 | 5.0 | 0.47 | False |
| Weekly | 10 | down | 1 | 71 | 33 | 20.0 | 7.745 | 28.784 | 13.408 | 6.748 | 0.577 | 0.402 | 0.471 | 0.374 | 0.357 | 0.354 | 0.643 | 2.294 | 2.559 | 3.839 | 38.571 | 5.0 | 0.357 | False |
| Weekly | 10 | down | 2 | 63 | 32 | 11.475 | 3.86 | 22.548 | 13.408 | 6.748 | 0.516 | 0.402 | 0.443 | 0.374 | 0.328 | 0.354 | 1.244 | 2.294 | 5.411 | 3.839 | 34.426 | 5.0 | 0.26 | False |
| Weekly | 10 | down | 3 | 52 | 25 | 10.0 | 3.24 | 24.218 | 13.408 | 6.748 | 0.49 | 0.402 | 0.48 | 0.374 | 0.38 | 0.354 | 1.401 | 2.294 | 5.497 | 3.839 | 38.0 | 4.5 | 0.043 | False |
| Weekly | 10 | down | 4 | 44 | 23 | 11.628 | 5.699 | 31.49 | 13.408 | 6.748 | 0.372 | 0.402 | 0.349 | 0.374 | 0.349 | 0.354 | 3.747 | 2.294 | 7.795 | 3.839 | 41.86 | 4.0 | 0.334 | False |
| Weekly | 10 | down | 5 | 29 | 17 | 14.286 | 4.981 | 34.636 | 13.408 | 6.748 | 0.357 | 0.402 | 0.321 | 0.374 | 0.321 | 0.354 | 5.771 | 2.294 | 8.836 | 3.839 | 39.286 | 4.0 | 1.0 | False |
| Weekly | 10 | up | 1 | 93 | 39 | 26.882 | 16.28 | 37.341 | 30.161 | 21.779 | 0.667 | 0.598 | 0.624 | 0.626 | 0.681 | 0.646 | 2.476 | 2.294 | 5.232 | 3.839 | 24.731 | 6.0 | 0.366 | False |
| Weekly | 10 | up | 2 | 96 | 38 | 27.083 | 11.434 | 30.852 | 30.161 | 21.779 | 0.656 | 0.598 | 0.604 | 0.626 | 0.663 | 0.646 | 1.358 | 2.294 | 4.424 | 3.839 | 21.875 | 7.0 | 0.237 | False |
| Weekly | 10 | up | 3 | 81 | 32 | 35.802 | 19.915 | 44.27 | 30.161 | 21.779 | 0.63 | 0.598 | 0.617 | 0.626 | 0.654 | 0.646 | 1.885 | 2.294 | 3.729 | 3.839 | 17.284 | 7.0 | 0.476 | False |
| Weekly | 10 | up | 4 | 62 | 29 | 32.258 | 22.989 | 50.834 | 30.161 | 21.779 | 0.548 | 0.598 | 0.629 | 0.626 | 0.581 | 0.646 | 2.555 | 2.294 | 3.159 | 3.839 | 19.355 | 7.0 | 0.875 | False |
| Weekly | 10 | up | 5 | 44 | 24 | 27.273 | 17.952 | 48.567 | 30.161 | 21.779 | 0.545 | 0.598 | 0.614 | 0.626 | 0.636 | 0.646 | 1.735 | 2.294 | 3.159 | 3.839 | 20.455 | 6.0 | 1.0 | False |
| Weekly | 20 | down | 1 | 46 | 27 | 13.333 | 4.97 | 28.069 | 13.314 | 5.888 | 0.565 | 0.399 | 0.444 | 0.368 | 0.4 | 0.348 | 0.534 | 2.389 | 5.189 | 4.065 | 31.111 | 6.0 | 0.272 | False |
| Weekly | 20 | down | 2 | 42 | 24 | 14.634 | 1.981 | 22.646 | 13.314 | 5.888 | 0.524 | 0.399 | 0.488 | 0.368 | 0.439 | 0.348 | 0.039 | 2.389 | 2.227 | 4.065 | 24.39 | 6.0 | 0.171 | False |
| Weekly | 20 | down | 3 | 44 | 22 | 16.667 | 5.916 | 32.479 | 13.314 | 5.888 | 0.524 | 0.399 | 0.429 | 0.368 | 0.429 | 0.348 | 1.1 | 2.389 | 3.417 | 4.065 | 14.286 | 6.0 | 0.429 | False |
| Weekly | 20 | down | 4 | 39 | 19 | 16.216 | 4.167 | 29.956 | 13.314 | 5.888 | 0.514 | 0.399 | 0.432 | 0.368 | 0.378 | 0.348 | 3.485 | 2.389 | 5.582 | 4.065 | 10.811 | 6.5 | 0.535 | False |
| Weekly | 20 | down | 5 | 35 | 18 | 17.647 | 4.538 | 32.128 | 13.314 | 5.888 | 0.412 | 0.399 | 0.294 | 0.368 | 0.294 | 0.348 | 4.667 | 2.389 | 8.036 | 4.065 | 14.706 | 5.0 | 0.667 | False |
| Weekly | 20 | up | 1 | 51 | 28 | 33.333 | 20.633 | 49.023 | 32.381 | 22.934 | 0.627 | 0.601 | 0.706 | 0.632 | 0.714 | 0.652 | 3.034 | 2.389 | 4.156 | 4.065 | 25.49 | 5.0 | 0.741 | False |
| Weekly | 20 | up | 2 | 57 | 28 | 36.842 | 24.223 | 52.968 | 32.381 | 22.934 | 0.667 | 0.601 | 0.667 | 0.632 | 0.655 | 0.652 | 3.01 | 2.389 | 2.781 | 4.065 | 17.544 | 9.0 | 0.871 | False |
| Weekly | 20 | up | 3 | 54 | 27 | 33.333 | 18.004 | 46.857 | 32.381 | 22.934 | 0.741 | 0.601 | 0.685 | 0.632 | 0.648 | 0.652 | 3.013 | 2.389 | 3.822 | 4.065 | 9.259 | 11.0 | 0.493 | False |
| Weekly | 20 | up | 4 | 46 | 24 | 34.783 | 19.75 | 50.392 | 32.381 | 22.934 | 0.739 | 0.601 | 0.674 | 0.632 | 0.674 | 0.652 | 2.278 | 2.389 | 3.822 | 4.065 | 2.174 | 11.0 | 0.284 | False |
| Weekly | 20 | up | 5 | 56 | 25 | 26.786 | 12.066 | 39.018 | 32.381 | 22.934 | 0.607 | 0.601 | 0.571 | 0.632 | 0.571 | 0.652 | 0.765 | 2.389 | 2.341 | 4.065 | 1.786 | 9.0 | 0.727 | False |
Rules and parameters
Rules
- Signal: distance = (close − SMA)/SMA × 100, SMA includes the signal candle; first candle at or beyond ±T% (T = 1…5) after a candle inside the threshold; SMA 10 or 20 of the same timeframe; completed candles only.
- Repeats only after the distance has been back inside the threshold; nested thresholds are counted separately; confidence intervals use non-overlapping signals per horizon.
- Sustained trend: net move ≥ 3% / 4% / 6% (daily / weekly / monthly) over a 20 / 10 / 6-candle window, ≥70% of forward closes beyond the signal close, no close on the wrong side of the signal-time SMA.
- Alternatives: loose, strict, half and double windows. Context: onset, confirmation, mixed; overextended = at or above the expanding 90th percentile of |distance|.
- Executable view: entry at the next open (2013+), exit at the close of candle t+h or the open after a close back across the SMA, 0.10% round-trip cost.
Parameters
- data
- Nifty 50 spot; NSE official 2013-01-01+, Yahoo ^NSEI 2007-09-17 to 2012-12-31
- candles
- 4,687 daily, 997 weekly, 229 monthly (completed only)
- horizons
- 1, 3, 5, 10, 20 candles
- baseline
- all candles, and all candles already on the signal side of the SMA
- statistics
- Wilson and bootstrap 95% intervals; exact binomial test; Benjamini-Hochberg 10%
- specification
- research/smatrend/STUDY_SMATREND.md (fixed before the first signal was counted)
- report
- docs/nifty-sma-trend-study.html
Instrument
Descriptive study of the index; executable view = next-open entry, 0.10% round-trip cost · capital ₹0
Known limitations
- Pre-2013 data is Yahoo Finance (closes only used); earlier index history exists but was not available to us in reliable form.
- The first run used a normal-approximation test; replaced by an exact binomial test because it is invalid below 30 observations. A like-for-like baseline was added after the first run.
- Price index, dividends excluded; no slippage beyond 0.10% round trip; no taxes or leverage.
- Monthly samples are very small; weekly samples moderate; many cells have fewer than 30 non-overlapping signals (flagged).
- Overlapping windows are handled by non-overlapping subsets for inference; descriptive figures use all signals.
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.