Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kh-kim/stock_market_reinforcement_learning
This project provides a stock market environment using OpenGym with Deep Q-learning and Policy Gradient.
https://github.com/kh-kim/stock_market_reinforcement_learning
Last synced: 3 months ago
JSON representation
This project provides a stock market environment using OpenGym with Deep Q-learning and Policy Gradient.
- Host: GitHub
- URL: https://github.com/kh-kim/stock_market_reinforcement_learning
- Owner: kh-kim
- Created: 2016-10-04T14:42:19.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2016-12-23T07:34:59.000Z (about 8 years ago)
- Last Synced: 2024-08-01T10:21:54.132Z (6 months ago)
- Language: Python
- Size: 368 KB
- Stars: 787
- Watchers: 75
- Forks: 323
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-ai-in-finance - stock_market_reinforcement_learning - Stock market trading OpenAI Gym environment with Deep Reinforcement Learning using Keras. (Strategies & Research / Time Series Data)
README
# Stock Trading Market OpenAI Gym Environment with Deep Reinforcement Learning using Keras
## Overview
This project provides a general environment for stock market trading simulation using [OpenAI Gym](https://gym.openai.com/).
Training data is a close price of each day, which is downloaded from Google Finance, but you can apply any data if you want.
Also, it contains simple Deep Q-learning and Policy Gradient from [Karpathy's post](http://karpathy.github.io/2016/05/31/rl/).In fact, the purpose of this project is not only providing a best RL solution for stock trading, but also building a general open environment for further research.
**So, please, manipulate the model architecture and features to get your own better solution.**## Requirements
- Python2.7 or higher
- Numpy
- HDF5
- Keras with Beckend (Theano or/and Tensorflow)
- OpenAI Gym## Usage
Note that the most sample training data in this repo is Korean stock.
You may need to re-download your own training data to fit your purpose.After meet those requirements in above, you can begin the training both algorithms, Deep Q-learning and Policy Gradient.
Train Deep Q-learning:
$ python market_dqn.py [model filename]
Train Policy Gradient:
$ python market_pg.py [model filename]
For example, you can do like this:
$ python market_pg.py ./kospi_10.csv pg.h5
Aware that the provided neural network architecture in this repo is too small to learn.
So, it may under-fitting if you try to learn every stock data.
It just fitted for 10 to 100 stock data for a few years. (I checked!!)
Thus you need to re-design your own architecture and
**let me know if you have better one!**Below is training curve for Top-10 KOSPI stock datas for 4 years using Policy Gradient.
![Training Curve](./pg_over_top_10.png)## To do
- Test environment to check overfitting.
- Elaborate the PG's train interface.## Reference
[1] [Playing Atari with Deep Reinforcement Learning](http://arxiv.org/abs/1312.5602)
[2] [Deep Reinforcement Learning: Pong from Pixels](http://karpathy.github.io/2016/05/31/rl/)
[3] [KEras Reinforcement Learning gYM agents, KeRLym](https://github.com/osh/kerlym)
[4] [Keras plays catch, a single file Reinforcement Learning example](http://edersantana.github.io/articles/keras_rl/)