Nifty RL Trading Results

Reinforcement Learning trading strategy using PPO

⚠️ Research Only — Not Production
This is a short / bounded training run (80,000 timesteps on CPU) for research purposes only. It is not a production model and not intended for live trading. The agent still shows a negative absolute return (-6.40%), though it outperforms buy-and-hold by +5.29 percentage points.
Adapted from: ZiadFrancis/Reinforcement_Trading_Part_2 (PPO + MultiDiscrete bracket environment)
Changes for Nifty: Indian equity index data, IST timezone, adjusted trading costs, calendar-based splits

Key Results Summary

PPO Agent

-6.40%
Total Return

554 trades • 42.78% win rate
Max DD: -13.27% • PF: 0.948
Final equity: 9,360

Buy & Hold

-11.69%
Total Return

1 trade (hold entire period)
Max DD: -15.72%
Final equity: 8,831

Excess Return

+5.29 pp
vs Buy & Hold

Agent outperforms baseline by
5.29 percentage points
(still negative absolute return)

Equity Curve — Test Period

Equity curve: PPO agent vs Buy & Hold

Test Metrics (2025-07-10 to 2026-10-01)

Metric PPO Agent Buy & Hold
Total Return -6.40% -11.69%
Max Drawdown -13.27% -15.72%
Final Equity 9,360 8,831
Number of Trades 554 1
Win Rate 42.78% —
Profit Factor 0.948 —
Excess vs B&H +5.29 pp —

Data Splits

Split Start Date End Date
Train 2022-02-22 2024-12-19
Validation 2025-01-10 2025-06-19
Test 2025-07-10 2026-10-01

Data: Nifty 50 1-minute bars (440,167 bars total from 2022-01-03 to 2026-10-01 IST)
Source: s3://analyticsdata123/options-ml-platform/data/timeframes/1m/nifty50.parquet (region ap-south-2)

Method Summary

Algorithm

Decision & Execution

Features & Reward

Trading Costs (Nifty index points)

Limitations & Next Steps

Limitations

Potential Improvements

Files & Code

This project is part of the s1a2t3y4/trading_algo monorepo under aiprojects/rl-trading-nifty/.

Upstream source: github.com/ZiadFrancis/Reinforcement_Trading_Part_2

Legal & Disclaimers

This repository is for education and research purposes only. Nothing here is investment advice. Past backtest results do not guarantee future performance. The strategy shows a net loss on the test period and should not be used for live trading without extensive further validation, risk management, and paper trading.

Note: The matching VecNormalize pickle is not included in the repo. To reload the policy for inference, you will need to retrain or provide the vecnorm file separately.


Generated: Oct 4, 2026 • Test period: Jul 10, 2025 – Oct 1, 2026