本文我們基於CNN進行建模單變量時間序列,預測股票的漲跌。
關於神經網絡學習和實現,大家可以參考我們公眾號上推出的一些文章。
解答:關於卷積神經網絡(CNN)
教學日記:商務智能之多層神經網絡實現--以選導師為例
那些年我們追過的羅伯特巴喬遇到神經網絡
足球啊足球!今晚Sweden會贏!基於神經網絡的預測!
Tensorflow2.0 深度學習實踐
基於TensorFlow 2 的 Fashion MNIST數據集分類問題
一、數據準備
對於股票等數據的獲取,大家可以使用以下幾種常見的渠道。
(1)證券寶www.baostock.com是一個免費、開源的證券數據平臺(無需註冊)。
提供大量準確、完整的證券歷史行情數據、上市公司財務數據等。通過python API獲取證券數據信息,滿足量化交易投資者、數量金融愛好者、計量經濟從業者數據需求。
http://baostock.com/baostock/index.php/%E9%A6%96%E9%A1%B5
(2)TuShare是實現對股票/期貨等金融數據從數據採集、清洗加工 到 數據存儲過程的工具,滿足金融量化分析師和學習數據分析的人在數據獲取方面的需求,它的特點是數據覆蓋範圍廣,接口調用簡單,響應快速。
https://tushare.pro
Github地址:
https://github.com/waditu/tushare
(3)DTShare是一個完全開源、免費的數據開放項目。
在DT和AI時代,數據是最寶貴的資源,是驅動信息智能化的第一生產資料。我們立志收集和整理各行各業的開放數據,為用戶實現數據便捷的獲取。截至到目前,我們主要從證券金融作為為出發點,提供了包括股票、期貨、基金和宏觀經濟等方面的數據。
http://dt-share.com/
Github地址:
https://github.com/DTShare/dtshare
(4)AkShare 是基於 Python 的財經數據接口庫, 目的是實現對股票、期貨、期權、基金、外匯、債券、指數、加密貨幣等金融產品的基本面數據、實時和歷史行情數據、衍生數據從數據採集、數據清洗到數據落地的一套工具, 主要用於學術研究目的.
https://www.akshare.xyz/zh_CN/latest/
Github地址:
https://github.com/jindaxiang/akshare
本文以baostock為例,給大家簡單嘮嘮。
首先大家可以通過清華大學的鏡像進行安裝:
pip install baostock -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
調用登錄
import baostock as bs
import pandas as pd
#### 登陸系統 ####
lg = bs.login()
# 顯示登陸返回信息
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)
#### 獲取歷史K線數據 ####
# 詳細指標參數,參見「歷史行情指標參數」,以三峽水利為例
# 獲取指數(綜合指數、規模指數、一級行業指數、二級行業指數、策略指數、成長指數、價值指數、主題指數)K線數據
# 綜合指數,例如:sh.000001 上證指數,sz.399106 深證綜指 等;
# 規模指數,例如:sh.000016 上證50,sh.000300 滬深300,sh.000905 中證500,sz.399001 深證成指等;
# 一級行業指數,例如:sh.000037 上證醫藥,sz.399433 國證交運 等;
# 二級行業指數,例如:sh.000952 300地產,sz.399951 300銀行 等;
# 策略指數,例如:sh.000050 50等權,sh.000982 500等權 等;
# 成長指數,例如:sz.399376 小盤成長 等;
# 價值指數,例如:sh.000029 180價值 等;
# 主題指數,例如:sh.000015 紅利指數,sh.000063 上證周期 等;
#### 列印結果集 ####
返回數據說明
#### 查看數據集 ####
看下開盤價的情況
看下開盤、收盤、漲跌情況
當然把取到的數據結果也可以保存下來,以後使用
二、建模:單變量CNN
CNN可以將過去的觀測序列作為輸入映射到輸出觀測,考慮給定的單變量序列:
我們可以把以上序列分為多個樣本的輸入/輸出模式,比如使用三個時間步長作為輸入,一個時間步長作為輸出,用於單步預測。
這裡我們使用用pctChg漲跌幅序列進行預測
建立模型
模型如下
擬合模型
進行預測
我們以12.28-12.30日數據為例預測31日的漲跌情況
31日實際的漲跌為2.184500
這裡我們用最簡單的單變量CNN為例給大家做了個股票預測演示,大家還可以用其他CNN、其他序列預測的方法進行預測。
更多大家可以參考
時間序列預測(SVR支持向量機回歸、LSTM長短期記憶網絡)
教學日記:商務智能之可視化--股票分析
基於技術指標的股票趨勢預測 --基於Python的特徵工程和分類模型
本文僅作為投資方法的參考,沒有考慮其他各種因素,大家買股票需謹慎!萬老師對大家的盈虧不負任何責任