Stock Rnn
Predict stock market prices using RNN model with multilayer LSTM cells + optional multi-stock embeddings.
Install / Use
npx skills add lilianweng/stock-rnnInstalls into whichever agent you are using.
README
Predict stock market prices using RNN
Check my blog post "Predict Stock Prices Using RNN": Part 1 and Part 2 for the tutorial associated.
One thing I would like to emphasize that because my motivation is more on demonstrating how to build and train an RNN model in Tensorflow and less on solve the stock prediction problem, I didn't try too hard on improving the prediction outcomes. You are more than welcome to take this repo as a reference point and add more stock prediction related ideas to improve it. Enjoy.
- Make sure
tensorflowhas been installed. - First download the full S&P 500 data from Yahoo! Finance ^GSPC (click the "Historical Data" tab and select the max time period). And save the .csv file to
data/SP500.csv. - Run
python data_fetcher.pyto download the prices of individual stocks in S & P 500, each saved todata/{{stock_abbreviation}}.csv. (NOTE: Google Finance API returns the prices for 4000 days maximum. If you are curious about the data in even early times, try modifydata_fetcher.pycode to send multiple queries for one stock. Here is the data archive (stock-data-lilianweng.tar.gz) of stock prices I crawled up to Jul, 2017. Please untar this file to replace the "data" folder in the repo for test runs.) - Run
python main.py --helpto check the available command line args. - Run
python main.pyto train the model.
For examples,
- Train a model only on SP500.csv; no embedding
python main.py --stock_symbol=SP500 --train --input_size=1 --lstm_size=128 --max_epoch=50
- Train a model on 100 stocks; with embedding of size 8
python main.py --stock_count=100 --train --input_size=1 --lstm_size=128 --max_epoch=50 --embed_size=8
- Start your Tensorboard
cd stock-rnn
mkdir logs
tensorboard --logdir ./logs --port 1234 --debug
My python environment: Python version == 2.7
BeautifulSoup==3.2.1
numpy==1.13.1
pandas==0.16.2
scikit-learn==0.16.1
scipy==0.19.1
tensorflow==1.2.1
urllib3==1.8
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.6kCommit, push, and open a PR
