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