NSE PORTFOLIO

Experiment Objective

Test whether scaled training length and tuned hyperparameters for low-SNR financial data produce generalizable policies on NSE daily data that clear our promotion gates.

Setup (High-Level)

  • Universe: NIFTY 50 stocks by liquidity
  • Granularity: Daily bars
  • Algorithm: Actor-critic with dual value networks
  • Backend: JAX with XLA compilation
  • Training length: 5M steps
  • Parallel environments: 64
  • Episode length: 252 trading days
  • Action space: Discrete multi-slot portfolio

Key Results

0.49
Test Sharpe
65%
Test Win Rate
1.30
Val Sharpe
9700+
Steps/sec

Summary

  • Win rate 65%: Above threshold. The agent is reliably profitable across test episodes.
  • Test Sharpe ~0.5: Positive risk-adjusted return on held-out data.
  • Training speed 9700+ steps/sec: JAX XLA optimization delivered efficient throughput.

Known Limitations

  • Val/test gap persists: Significant gap between validation and test performance.
  • Test Sharpe below target: While positive, this is not yet competitive with sophisticated benchmarks on risk-adjusted terms.
  • Single seed: This run used one random seed. Multiple seeds required for statistical confidence.
  • No walk-forward yet: These results are from a single train/val/test split. Walk-forward validation may reveal additional gaps.

Next Steps

This run clears the training gate but does not yet justify live deployment. Our next experiments focus on:

  • Walk-forward validation: Multi-window rolling test to prove generalization
  • Multi-seed runs: 5 random seeds for statistical confidence
  • Adversarial stress tests: Flash crash, volatility spike, trend reversal
  • Longer training: Test whether 10M steps provides further improvement