Tensorflow-for-stock-prediction

by kimber-chen

Use Tensorflow to run CNN for predict stock movement. Hope to find out which pattern will follow the...

420 Stars 225 Forks Last release: Not found 42 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Tensorflow work for stock prediction

Use Tensorflow to run CNN for predict stock movement. Hope to find out which pattern will follow the price rising. Different implement codes are in separate folder.

Feature include daily close price, MA, KD, RSI, yearAvgPrice..... Detail described as below. This work is just an sample to demo deep learning. The result is not well estimated.

All of the work are done by using the same stock(2330 in Taiwan stock) which are collected from yahoo.finance. Please notice that this stock perform a stable rise these years. But our result get a little better than just random guess.

For Brief tutorial slider please check (Distributed Tensorflow & Stock prediction)

For Chinese outline slider please check HERE(中文簡介)

requirement

  • Tensorflow
  • yahoo_finance
  • numpy If you run DQNKDvalue, DQNcnnimage you'll need extra
  • matplotlib
  • cv2

1.DQNCNNimage

The major work of this project. We feed data(yearline,monthline, closePrice) as image and use CNN to recognize their pattern. Some resources really help a lot while building DQN. The main difference is how to set the reward function and way to train Qnetwork. * https://zhuanlan.zhihu.com/p/21477488 * https://github.com/gliese581gg/DQNtensorflow

File: - DQNdrawyearline.py :use for making yearline img and closeprice img, and then build model. - DQNyearlinereward.py :to build model which should be train for about 24hr. //run DQNdrawyearline.py first - Test model by yearline.ipynb : There is one model exsit in savedyearr. The code create some img to test on that. - DQNimgclosePrice.py: build a model by closeprice img and do evaluation.

Performance

exp 1

  • Training: 2011~2014 15-day image with only daily close price.
  • Testing : 2016/01 ~2016/08
  • Trading strategy: Reward=(Tomorrow's close price)-(today's close price) if predict buy. Negate the number while predicting sell.
  • Bad performance.

alt tag

exp 2

  • Trading strategy: sell while meet +10% profit or -5% loss.
  • Baseline: Considering of the rising stock price, the baseline is the average profit takes buying times into account.
  • We get more profit then baseline. And the testing file can be used for evaluating whether to believe in the model.

alt tag

2.CNN_tsc

The model is originated from RobRomijnders 's work used for time series data (http://robromijnders.github.io/CNN_tsc/) I've change some parameter and use different indicators to find out when to buy the stock is good.

Performance

Part 1. Indicators

Feature MA can drop the loss compare with RSI and ClosePrice at training step.

alt tag

Part 2. When To Buy

With 10 days MA5 as an instance. * Training data (2330train15) : 2001~2014 2330.tw. Instance labeled as 1 when it rising dramatically up to 15% in 90 days. And mix with 4 times instance labeled as 0 * Testing data (2330_test) : 2015/07 ~ 2016/08 MA5.

After running CNN_Classifier.ipynb, Result will be visualized.

alt tag

3.DQNMLPclosePrice

My implement is under close price. This could be change to other features like RSI,KD,MA....Or, use all of them. There is CNN code that could be edit to meet the requirement (size of batch).

Performance

Not work in closePrice. Better with other feature.

4.DQNKDvalue

Use KD value picture to predict.

python DQN_kd_pic.py //this call KD_draw.py and build model.

Performance

  • Training: 2011~2014 15-day K value and D value image
  • Testing : 2015/07 ~2016/07
    alt tag

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.