This project implements a reinforcement learning framework tailored for financial market environments. By simulating stock market behavior, it allows agents to interact with a dynamic environment and learn decision-making strategies to optimize their portfolio performance. The framework uses PPO (Proximal Policy Optimization) to train policies and provides tools for advanced analysis of financial returns.
- Custom Market Environment: A Gym-based environment (
MarketEnv) that models market dynamics using historical financial data. - Reinforcement Learning Integration: Utilizes PPO with actor-critic networks to train agents for predicting returns and optimizing rewards.
- Portfolio Analysis: Includes tools for ranking stocks, calculating Sharpe ratios, CAPM alpha, and analyzing maximum drawdowns.
- Model Flexibility: Supports regression models like Linear, Lasso, Ridge, and ElasticNet for performance comparison.
- Data Preprocessing: Features robust preprocessing, including standardization and rank transformation for stock predictors.
-
Prepare Data:
- Provide historical market data with predictors and return variables.
- Process data to handle missing values and normalize predictors.
-
Train Agents:
- Define training, validation, and test sets with an expanding window approach.
- Train PPO-based agents in the
MarketEnvto optimize decision-making.
-
Analyze Performance:
- Evaluate portfolio strategies using metrics like Sharpe ratio, alpha, and drawdowns.
- Compare regression models for prediction accuracy and out-of-sample R².
-
Customize Models:
- Modify actor-critic networks or integrate additional RL algorithms to explore diverse strategies.
- Python Libraries: Gym, PyTorch, NumPy, Pandas, StatsModels, Scikit-learn.
- Reinforcement Learning: PPO algorithm for policy optimization.
- Finance Metrics: Sharpe ratio, CAPM alpha, and portfolio turnover.
-
Clone the repository:
git clone <repository-url> cd portfolio-management
-
Install dependencies:
pip install -r requirements.txt
-
Run the training script:
python train_market_env.py
-
Evaluate results:
python analyze_portfolio.py
- Integration of advanced RL algorithms like DDPG or SAC.
- Support for real-time data streams for live trading simulations.
- Enhanced visualization of portfolio performance and agent strategies.