# 基于 Python 的股票价格序列相似性分析
摘要:本文主要能够根据用户所提供的股票寻找同行业内与其价格序列相似的股票,并能通过其在历史中的重复性对今后的趋势做预测。使用 Python 及相关库,结合动态时间弯曲(DTW)算法,用折线图的方式形象直观地展现出分析结果。
关键字:Python;股票价格序列;相似性;时间动态弯曲法;DTW
## 研究目的与意义
随着经济的发展,人民生活水平的提高,越来越多的人开始在股票、债券、基金等金融产品中投资理财。其中,股票市场无疑是非常火热的一个地方。如何找到一个好的投资策略无疑是大家最关心的问题。股票之间的关联度非常高,因此股市之间的联动性研究成为了股票市场研究的一个重要内容。股票市场联动性的研究不仅能够帮助投资者分析股票信息、掌握市场动态,还能够协助投资者做出相对正确的投资策略,从而实现收益增加[1]。
证券市场是否有效率,一直是金融理论界和业界关注的问题。1965 年,美国学者尤金·法马提出了“市场有效性假说”(EMH)。在这个假说下,证券市场的有效性是指信息的有效性,也就是说,若“市场内所有证券的价格在任何时候都能准确地反映出所有有关的信息”,则称市场是有效的。从法马提出 EMH 之后的近 40 多年来,市场有效性假说一直是金融学理论的核心命题。按照这一理论,证券市场的许多现象都可以用理性交易者模型来诠释[2]。
本项目基于时间动态弯曲算法(DTW)对股票市场进行分析,得到样本空间中与给定股票同行业内九支最相似的股票序列,并得到此支股票特定时间段的涨跌幅在历史上的可重复性与未来的可预测性,以供投资者做决策参考。
## 研究内容与方法
时间动态弯曲算法(DTW)
本算法通过动态规划计算两个序列的相似距离,其本质与求解字符串的最长公共子串类似[3]。
dp[i][j]表示序列 a[0:i]和 b[0:j]之间的相似距离的平方,状态转移方程为:
```c++
+b[0])2 i=0,j=0
-b[j])2+dp[0][j-1] i=0
-b[0])2+dp[i-1][0] j=0
-b[j])2+min(dp[i-1][j], dp[j-1][i], dp[i-1][j-1]) i,j>0
```
dp[len(a)-1][len(b)-1]即为两个序列相似距离的平方。
![](https://www.writebug.com/myres/static/uploads/2022/6/8/ffc44a12003dea49cb1067fa34d9669a.writebug)
![](https://www.writebug.com/myres/static/uploads/2022/6/8/354e510907c0752162e5a7d8e49075d4.writebug)
图 1 两序列距离比较 图 2 两序列通过 DTW 比较距离
图 1 中可以直观看出实线与虚线序列相似度很高,距离很小,只是在时间轴上未对齐。若是采用左侧红色的欧氏距离进行计算,显然是不合理的,应采用右侧蓝线进行比较,如图 2 所示即为 DTW 算法找到两个序列波形对齐的点计算距离,可对两个序列可进行错位匹配[4]。
股票序列获取及处理
图 3 算法流程图
由投资者输入特定股票、时间段和分析指标和历史可追溯年数,通过 tushare 的接口获取其每日开盘价、收盘价、最高价、最低价、昨收价,并对每个指标除以第一个值获得其增幅序列,后文简称此增幅序列为序列。假定此股票为 A。
与股票 A 同行业股票分析
通过 tushare 接口筛选与 A 同时间段同行业(industry)的所有序列,并将其写入 database 数据库中的 industry_same 表中,对每一支序列计算其与 A 序列相似距离,取前 9 支距离最小的序列,利用 Python 的 tkinter 窗体展示这 9 支股票名称、对应曲线以供投资者做决策参考。
股票 A 自身涨跌幅的未来预测
通过 tushare 接口将股票 A 从回溯年数前至今的序列写入 database 数据库中的 self_future 表中,采用滚动窗口构建模型计算每一段子序列与 A 序列的相似距离,取前 9 支距离最小的序列,利用 Python 的 tkinter 窗体展示该序列。
## 数据结果
![](https://www.writebug.com/myres/static/uploads/2022/6/8/9a77f87801f5594397d7164d24e9dccf.writebug)
以平安银行(000001.SZ),日期始末为 2018.9.1~2018.11.1,评价指标收盘价,追溯 5 年为例。
图 4 用户输入界面
![](https://www.writebug.com/myres/static/uploads/2022/6/8/29af3069b97a9c16e84be8912a3f03ab.writebug)
图 5 同行业股票绘图
其中蓝线为特定股票 A,红线为筛选出的股票序列
![](https://www.writebug.com/myres/static/uploads/2022/6/8/ce2aeebf08802d4f48098a808e44757d.writebug)
图 6 自身涨跌幅预测绘图
其中蓝线为特定股票 A,红线为股票 A 历史 5 年中与之相近的序列和之后 5 天的序列。
## 结论
通过图 5 可筛选出与平安银行(000001.SZ)同行业的银行股票中最相近的 9 支,分别是:宁波银行(002141.SZ)、南京银行(601009.SH)、工商银行(601398.SH)、张家港行(002839.SZ)、常熟银行(601128.SH)、江阴银行(002807.SZ)、民生银行(600016.SH)、华夏银行(600015.SH)、苏农银行(603323.SH)。
通过图 6 可知平安银行在 2018.9.1 至 2018.11.1 的收盘价收益率序列后续在 5 年内有 78% 的概率是上涨的,可供投资者做决策参考。
## 个人体会
通过本项目我不仅对金融中的股票领域有了初步的认知,了解股票分析一般用哪些参数,掌握了两个不同序列求距离可以利用时间动态弯曲算法求解;对 Python 的运用也更加熟练。因为代码量较大,需要及时进行 try、except 检验,如图 7 所示。
![](https://www.writebug.com/myres/static/uploads/2022/6/8/f86cf16a1c836781a1f3b3f7e0b04aeb.writebug)
图 7 检验程序在每个关键处是否出现异常
## 总结与反思
本项目我认为还应该完善的是搜索,相似度算法以及存储数据方面的优化。目前时间复杂度较高,后期可将全盘数据提前存入数据库,并运用搜索算法,改进相似度算法以使程序运行更高效,缩短投资者的等待时间。
## 致谢
感谢华东理工大学信息科学与工程学院提供的“创新实践育人”平台
感谢陈苏老师的悉心指导
## 参考文献
林星.基于局部相似性分析的股票市场投资策略研究[D].山东:山东大学,2017.
田存志.市场非有效性:基于理性或行为金融学[J].广西社会科学,2004,(4):45-47. DOI:10.3969/j.issn.1004-6917.2004.04.015.
孙宏伟,王会青,张建辉.基于滑动窗口分段的动态时间弯曲下界算法[J].小型微型计算机系统,2016,37(4):768-772.
```c++
Wang X, Mueen A, Ding H, et al. Explerimental comparison of representation methods and distance measures foe time series data[J]. Data Mining and Knowledge Discovery, 2013, 26(2):275-309.
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
《计算机毕业设计:Python实现的股票价格序列相似性分析(源码+数据集+详细说明)》是一项集数据分析、算法设计与Python编程于一体的综合性资源,特别适用于本科课程设计、毕业设计以及Python学习等多个领域。该资源通过运用Python编程语言,结合股票价格序列数据,实现了对股票价格的相似性分析,为投资者提供决策支持。 该资源以股票价格序列数据为基础,利用Python中的数据处理和可视化库,对股票数据进行清洗、整理和可视化展示。通过选择合适的相似度度量方法,如欧氏距离、余弦相似度等,对股票价格序列进行相似性分析,找出具有相似价格走势的股票。这种相似性分析有助于投资者发现潜在的投资机会,降低投资风险。 在资源中,我们提供了完整的源码和详细说明文档,帮助学习者逐步理解并掌握股票价格序列相似性分析的整个流程。源码部分包括数据预处理、相似度计算、结果展示等关键环节的实现,注释清晰,易于理解。详细说明文档则对项目的背景、目的、方法以及实现过程进行了全面介绍,帮助学习者快速上手。
资源推荐
资源详情
资源评论
收起资源包目录
Python实现的股票价格序列相似性分析(源码+数据集+详细说明).zip (10个子文件)
Python实现的股票价格序列相似性分析(源码+数据集+详细说明)
tushare-analysis
source.py 3KB
LICENSE 1KB
database.db 10.62MB
Main.py 10KB
requirements.txt 2KB
README.md 7KB
说明.txt 487B
300套计算机本科毕业设计题目.xlsx 19KB
计算机专业炫酷答辩PPT模板.zip 339.51MB
报告.doc 524KB
共 10 条
- 1
资源评论
小新要变强
- 粉丝: 2w+
- 资源: 537
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功