TensorFlow+python股票价格预测

本文是基于Anaconda中Spyder(Python3.6)利用tushare财经数据接口包进行股票价格预测
原文链接:https://blog.csdn.net/luoganttcc/article/details/73863643?tdsourcetag=s_pctim_aiomsg
1、 Tushare简介
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。

import matplotlib.pyplot as plt
import numpy as np

#import numpy

from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY
from matplotlib.finance import quotes_historical_yahoo_ohlc, candlestick_ohlc
#import matplotlib
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.pylab import date2num
import datetime

df=ts.get_hist_data('000002',start='2017-04-25',end='2017-06-30')

fig = plt.gcf()
hist_data=df 
# 创建子图
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)
# 设置X轴刻度为日期时间
ax.xaxis_date()
plt.xticks(rotation=45)
plt.yticks()
plt.title("股票代码:000002")
plt.xlabel("时间")
plt.ylabel("股价(元)")
#candlestick_ohlc(ax,data_list,width=1.5,colorup='r',colordown='g')
plt.grid()

hist_data=df .sort_index()
# 对tushare获取到的数据转换成candlestick_ohlc()方法可读取的格式
data_list = []
for dates,row in hist_data.iterrows():
    # 将时间转换为数字
    date_time = datetime.datetime.strptime(dates,'%Y-%m-%d')
    t = date2num(date_time)
    open,high,close,low = row[:4]
    datas = (t,open,high,low,close)
    data_list.append(datas)



mondays = WeekdayLocator(MONDAY)            # 主要刻度
alldays = DayLocator()                      # 次要刻度
#weekFormatter = DateFormatter('%b %d')     # 如:Jan 12
mondayFormatter = DateFormatter('%m-%d-%Y') # 如:2-29-2015
dayFormatter = DateFormatter('%d')          # 如:12
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
candlestick_ohlc(ax,data_list,width=1.5,colorup='r',colordown='g')  

mid=np.array(data_list)

mm=np.ones((len(mid),5))

mm=np.ones((len(mid),5))
av=(mid[len(mid)-1,1]+mid[len(mid)-1,2]+mid[len(mid)-1,3]+mid[len(mid)-1,4])*0.25


for x in range(len(mid)):
    mm[x,0]=2*mid[len(mid)-1,0]-mid[x,0]
    mm[x,1]=2*av-mid[x,4]
    mm[x,2]=2*av-mid[x,3]
    mm[x,3]=2*av-mid[x,2]
    mm[x,4]=2*av-mid[x,1]

merge=np.concatenate((mm,mid))


if len(merge) == 0:
    raise SystemExit

fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)

ax.xaxis.set_major_locator(mondays)
ax.xaxis.set_minor_locator(alldays)
ax.xaxis.set_major_formatter(mondayFormatter)
#ax.xaxis.set_minor_formatter(dayFormatter)

#plot_day_summary(ax, quotes, ticksize=3)
candlestick_ohlc(ax, merge, width=0.6, colorup='r', colordown='g')

ax.xaxis_date()
ax.autoscale_view()
plt.setp(plt.gca().get_xticklabels(), rotation=45, horizontalalignment='right')

ax.grid(True)
plt.title('000002')
plt.show()    

注意:在运行此代码之前需要先利用Tushare导入数据
2、具体步骤
step1:在Anaconda中安装pandas
TensorFlow+python股票价格预测_第1张图片step2:在Anaconda中安装lxml
TensorFlow+python股票价格预测_第2张图片step3:在Anaconda中安装requests
TensorFlow+python股票价格预测_第3张图片step4:安装tushare

pip install tushare

TensorFlow+python股票价格预测_第4张图片注:在使用terminal安装时可能会遇到的问题
You are using pip version 9.0.1, however version 18.0 is available.
You should consider upgrading via the ‘python -m pip install --upgrade pip’ command.
TensorFlow+python股票价格预测_第5张图片
解决步骤如下:

conda install pip

TensorFlow+python股票价格预测_第6张图片解决问题之后就可以再次利用上述命令安装tushare
简单的股票预测练习就完成了!
TensorFlow+python股票价格预测_第7张图片

你可能感兴趣的:(TensorFlow+python股票价格预测)