Python预测股票走势

最新代码:股票预测配套代码(jupyter版)-机器学习文档类资源-CSDN下载

视频:基于python进行股票趋势预测_哔哩哔哩_bilibili

Python的功能可谓相当强大,在很多行业具有相当的优势,这种优势很大程度上来源于各种第三方库。本文介绍了如何利用时间序列模型ARIMA进行股票走势预测。

环境:windows 64

平台:Jupyter Notebook (Kernel python3)

库:tushare  statsmodels pandas numpy  seaborn matplotlib

先来看看效果吧

                                   

图1 预测结果图

图1中橙色线条为股票行情实际数据,蓝色线条为模型预测的行情走势,预测结果显示股票呈上涨趋势,从长期来看,还是符合实际走势的,证明了ARIMA模型具有一定的可信性。但是在这里还是要提醒大家一句,股市有风险,投资需谨慎。模型只能提供一个参考,并不能完全正确的指导用户投资。

股票行情数据获取

数据的获取利用第三方库tushare,tushare是一个免费、开源的python财经数据接口包, 具体的介绍点我。
tushare的安装方法很简单, pip install tushare即可。
import tushare  
data=tushare.get_h_data('600000',start='2005-05-05') 
data.to_csv('600000_2005.csv')
导入库,然后调用get_h_data函数获取数据,‘600000’指定股票代码,start指定数据开始的日期,最后将获取的数据使用to_csv函数以csv格式保存到本地。
注意:调用get_h_data时有时会出现错误,可能是由于服务器不稳定,重新执行即可。但两次调用之间要间隔一定时间。

数据读取与预处理

df=pd.read_csv('600000_2005.csv',index_col=0,parse_dates=[0])
#index_col表示把第一列设为index,parse_dates=[0]表示把第一列按datetime格式解析
使用pandas的read_csv函数进行读取数据,各指标意义见代码段中的注释。
图2 读取数据展示
pandas读取出的数据如图2所示,我们将选取close,即收盘价作为考核指标来建立ARIMA模型。

ARIMA模型建立

stock_week=df['close'].resample('W-TUE').mean() 
#将收盘价作为评判标准,resample指按周统计平均数据(可以指定哪天为基准日,此处是周二为基准)
stock_train=stock_week['2005':'2017'].dropna()
#选取2005-2017的数据
原始数据是股票每天的行情,我们这里将数据进行重采样,按每周的平均行情来进行分析,‘W-TUE’表示按周为单位,指定周二为基准日,即周二到下个周二为一个计算周期。
画图看一下现在的数据
图3 重采样后的数据
图3使用matplotlib和seaborn绘制,代码如下
stock_train.plot(figsize=(12,8))
# plt.legend(bbox_to_anchor=(1.25,0.5))
plt.title('Close Price')
sns.despine() #边框控制,默认没有上方和右方的框
plt.show()

由图3可以看出,数据波动比较大,而时间序列模型要求数据平缓,满足平稳性的要求。因此需要对数据进行差分处理。
stock_diff=stock_train.diff().dropna() #对数据进行差分,目的使数据平缓,满足平稳性的要求
plt.figure()
plt.plot(stock_diff)
font_loc=''
plt.title('一阶差分',fontproperties=font_set)  #注意要设置字体,否则会乱码
plt.show()

                                  
图4 一阶差分结果图
一阶差分的结果如图4所示,图4可以看出数据基本已经趋于平缓,为了确定一阶差分足以满足需求,再进行ACF和PACF检验,ACF和PACF可以直接调用statemodel里的函数进行求算。
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf
acf=plot_acf(stock_diff,lags=20)
plt.title('ACF')
acf.show()
plt.show()
pacf=plot_pacf(stock_diff,lags=20)
plt.title('PACF')
pacf.show()
plt.show()

                                    
图5 ACF结果图
图6 PACF结果图
由图5和图6可以看出,进行一阶差分时,结果已经落在了置信区间内(图中蓝色区域),因此可以确定进行一阶差分是可靠有效的。
接下来就可以进行ARIMA模型训练了
model=ARIMA(stock_train,order=(1,1,1),freq='W-TUE')#训练模型,order表示(p,d,q)
result=model.fit()
参数order=(1,1,1)表示一阶差分,ACF和PACF的取值均为1,关于差分阶数、ACF、PACF取值详细介绍 点我。
最后一步就是利用建立好的result模型来预测走势了
pred=result.predict('20160816','20180112',dynamic=True,typ='levels')#注意预测的起始时间要在训练时间的范围内,结束时间没有要求
需要注意的是,预测数据起始时间必须在训练集内,而终止时间则没有限制
plt.figure(figsize=(6,6))
plt.xticks(rotation=45)
plt.plot(pred)
plt.plot(stock_train)
plt.show()

画图
就可以看见文章开头的结果了

 

注:第一次发博客,不足之处欢迎大家提意见,另外该博文主要参考了唐宇迪机器学习视频以及很多已有博客,在此予以声明。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8628.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用python对股票数据分析预测

安装quandl 安装Pandas_Datareader 1、获取数据 import Pandas_Datareader.data as web import datetime startdatetime.datetime(2018,1,1) enddatetime.datetime.now() SZ000001web.DataReader(000001.SZ,yahoo,start,end) 可以获取最高价,最低价&#xf…

使用新闻预测股票走势-----Kaggle经典ph.D操作分析

General information Two Sigma金融新闻竞赛是一项独特的竞赛:不仅仅是内核竞争,而且我们不应该下载数据,在第二阶段,我们的解决方案将用于预测未来的真实数据。 我将尝试为本次比赛进行广泛的EDA,并尝试找到一些有关…

tushare单个股票过去五年的数据整理与预测

文章目录 前言:1. 导入相关包2. 数据预处理3. 构建模型3. 模型训练4. 检查数据6. 工作中其他常用包记录 前言: %md 在量化投资中,计算收益率是更常见的做法,而不是仅计算股价。计算收益率可以更好地反映投资的回报情况&#xff0c…

使用chatSonic代替chatGPT实现代码智能编写与应答

WriteSonic地址 WriteSonic—其中,提供chatSonic功能app. 注册 使用google账户登录即可. 界面 登录后的界面](https://img-blog.csdnimg.cn/bff0283f8b5f43dd8483caef62784b37.png) 使用 点击上图中的chatSonic链接. 问答窗口 测试智能编码 在文本框中输入…

有了ChatGPT 微软对元宇宙不香了?

押注ChatGPT是微软最近的主要发力点,另一边,它开始向元宇宙业务挥出裁员“大刀”。海外消息称,微软解散了成立仅四个月的工业元宇宙团队,约100名员工被全被解雇。 这只是微软放缓元宇宙战略的长尾动作,此前&#xff0…

ChatGPT 之父推出加密货币钱包;Intel 被曝预算砍掉 10%、裁员 20%;Firefox 113 发布|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

阿里版ChatGPT突然上线邀测!大模型热战正剧开始,这是第一手体验实录

阿里正式加入ChatGPT战局! 就在刚刚,阿里版类ChatGPT突然官宣正式对外开放企业邀测。 它叫通义千问,由达摩院开发。 嗯,是大模型版十万个为什么那个味儿了。 事实上,早在这个月初,就传出过不少阿里要推出…

python 调试大法

说在前面 我觉得没有什么错误是调试器无法解决的,如果没有,那我再说一遍,如果有,那当我没说 一、抛出异常 可以通过 raise 语句抛出异常,使程序在我们已经知道的缺陷处停下,并进入到 except 语句 raise…

获得北大新材料学院夏令营offer的艰险历程(附面试答辩PPT)

知乎原文获得北大新材料学院夏令营offer的艰难历程(附面试答辩PPT) - 知乎 视频版 05:27 获得北大新材料学院夏令营offer的艰险历程 科大云炬 的视频 698 播放 文字版 相继6月15日以来北大、清华、浙大、西交、复旦、大连理工等10几个夏令营被拒后,我被打击得渐…

概率图模型 - 学习笔记

文章目录 教材与公开课视频概率图模型例子如何理解BP算法?概率图模型相比有监督学习的优势 教材与公开课视频 国外经典教材 英文版:Probabilistic Graphical Models: Principles and Techniques中文版:《概率图模型:原理与技术》…

从文本创建艺术,AI图像生成器的数据集是如何构建的

AIGC系列分享是整数智能推出的一个全新分享系列,在这个系列中,我们将介绍与AIGC概念相关的有趣内容。AIGC系列主要分为以下几篇文章: 被称为下一代风口的AIGC到底是什么? AIGC的数据集构建方案分享系列 从文本创建艺术&#xff0c…

【軟體架構師如何煉成?硬功夫軟技能點滿技能樹】

軟體架構師如何煉成?硬功夫軟技能點滿技能樹 協助企業資訊系統轉型,架構師擔任關鍵角色如何成為軟體架構師技術領域硬技能職場領域軟技能結語 協助企業資訊系統轉型,架構師擔任關鍵角色 「人無遠慮,必有近憂」,套用到…

巧用提示语,说说话就能做个聊天机器人

你好,我是徐文浩。 这一讲,我们来看看Open AI提供的Completion这个API接口。相信已经有不少人试过和ChatGPT聊天了,也有过非常惊艳的体验,特别是让ChatGPT帮我们写各种材料。那么,我们不妨也从这样一个需求开始吧。 …

量化选股——基于动量因子的行业风格轮动策略(第1部分—因子测算)

文章目录 动量因子与行业轮动概述动量因子的理解投资视角下的行业轮动现象投资者视角与奈特不确定性 动量因子在行业风格上的效果测算动量因子效果测算流程概述1. 行业选择:申万一级行业2. 动量因子选择:阿隆指标(Aroon)3. 测算方…

苹果微软等科技巨头紧急叫停,chatgpt翻车了?(文末附联名信)

一、千名大佬集体叫停GPT研发 3月29日,一封联名信刷爆了各大媒体热榜,上面有一千多位大佬签名,其中包括埃隆马斯克、约书亚本吉奥(Yoshua Bengio,2018年图灵奖获得者)和史蒂夫沃兹尼亚克(Steve…

免费!终极ChatGPT提示+Midjourney宝藏神图,1200+图片,震撼人心

新智元报道 编辑:Aeneas 【新智元导读】一位网友花费一周,用从ChatGPT生成的prompt,在Midjourney中生成了一千多张精彩的作品。 Midjourney虽然功能神奇,但在prompt能力平平的人手里,它并不能绽放自己的魔力。 国外的…

ChatGPT专业应用:生成各类通知

正文共 821 字,阅读大约需要 3 分钟 游戏/用户运营等必备技巧,您将在3分钟后获得以下超能力: 生成各类通知 Beezy评级 :B级 *经过简单的寻找, 大部分人能立刻掌握。主要节省时间。 推荐人 | nanako 编辑者 | Linda ●…

ChatGPT Plus停售 留出防治AI风险空窗期

能体验GPT-4模型的ChatGPT,因需求量太大而暂停了升级为Plus的功能,算力似乎爆表了。 这下,有钱都没地儿充会员了,用户们暂时需要回到“GPT-3.5时代”。这或许留给人类一个空窗期,可以好好思考一下前段时间上千名科技精…

【重制版】10分钟学会WINDOWS、MAC、LINUX如何安装GPT桌面版

文章目录 1 前言2 Windows版下载安装2.1 安装包2.2 winget下载 (注意看,不是wget!) 3 Mac版下载安装3.1 安装包3.2 homebrew安装 4 Linux版下载安装4.1 安装包4.2 终端下载 5 特点5.1 软件特点5.2 菜单功能(个人喜好特…

英伟达黄老板成身价350亿美元CEO!做AIGC淘金时代送铲子的

Datawhale干货 英伟达CEO:黄仁勋,来源:新智元 【导读】90年代显卡芯片的红海市场中,为什么是英伟达脱颖而出?3D、矿卡、移动构架、人工智能,老黄带着英伟达,踏准了一个个风口,笑到了…