一、获取历史行情数据

使用tushare库进行数据获取

http://tushare.org/trading.html#id2

import tushare as tsts.get_hist_data('600848') #一次性获取全部日k线数据
            open    high   close     low     volume    p_change  ma5 \
date
2012-01-11   6.880   7.380   7.060   6.880   14129.96     2.62   7.060
2012-01-12   7.050   7.100   6.980   6.900    7895.19    -1.13   7.020
2012-01-13   6.950   7.000   6.700   6.690    6611.87    -4.01   6.913
2012-01-16   6.680   6.750   6.510   6.480    2941.63    -2.84   6.813
2012-01-17   6.660   6.880   6.860   6.460    8642.57     5.38   6.822
2012-01-18   7.000   7.300   6.890   6.880   13075.40     0.44   6.788
2012-01-19   6.690   6.950   6.890   6.680    6117.32     0.00   6.770
2012-01-20   6.870   7.080   7.010   6.870    6813.09     1.74   6.832ma10    ma20      v_ma5     v_ma10     v_ma20     turnover
date
2012-01-11   7.060   7.060   14129.96   14129.96   14129.96     0.48
2012-01-12   7.020   7.020   11012.58   11012.58   11012.58     0.27
2012-01-13   6.913   6.913    9545.67    9545.67    9545.67     0.23
2012-01-16   6.813   6.813    7894.66    7894.66    7894.66     0.10
2012-01-17   6.822   6.822    8044.24    8044.24    8044.24     0.30
2012-01-18   6.833   6.833    7833.33    8882.77    8882.77     0.45
2012-01-19   6.841   6.841    7477.76    8487.71    8487.71     0.21
2012-01-20   6.863   6.863    7518.00    8278.38    8278.38     0.23

二、标准化

使用零均值归一化

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。

三、相似度计算

相似性使用余弦距离

我们可以通过夹角的大小,来判断向量的相似程度。夹角越小,就代表越相似。将某天行情开盘价,收盘价等指标想象成N维空间上的一个向量,则它和某个样本夹角越小,则它们越相似。

四、绘制图像

使用2020年7月15日收盘行情,计算历史上与哪些天行情最相似,并绘制结果如下:

从图中看到除去2020年7月15日附近行情,跟2019年3月上旬和4月上旬行情很相似。

五、分析

python代码

# @Time : 2020/7/16
# @Author : 大太阳小白
# @Software: PyCharm
# @blog:https://blog.csdn.net/weixin_41579863
import tushare as ts
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
top = 10
# 获取上证指数,并保存
# data = ts.get_hist_data('sh')
# print(data)
# data.to_excel('data.xlsx')
data = pd.read_excel('data.xlsx')
# 取出当天行情,要跟历史进行对比
today_quote = data.values[0, 1:]
his_data = data.values[1:, 1:].astype(np.float32)
# 使用零均值归一化,所以要计算历史数据的标准差和均值
quote_std = np.std(his_data, axis=0)
quote_mean = np.std(his_data, axis=0)
# 进行数据归一化
normal_his_data = (his_data - quote_mean)/quote_std
normal_today_quote = (today_quote - quote_mean)/quote_std
sim_array = np.zeros((len(normal_his_data), 1))
for index, normal_his_data_item in enumerate(normal_his_data):# 遍历计算余弦距离a_b = np.mat(normal_today_quote)*np.mat(normal_his_data_item).Ta = np.mat(normal_today_quote) * np.mat(normal_today_quote).Tb = np.mat(normal_his_data_item) * np.mat(normal_his_data_item).Tsim = a_b.A.astype(np.float32)/(np.sqrt(a.A.astype(np.float32)) * np.sqrt(b.A.astype(np.float32)))sim_array[index] = sim[0][0]
# 对结果进行降序排序,并获取topN的索引
top_n = np.argsort(sim_array, axis=0)[::-1][:top]
# 绘图
fig = plt.figure()
for top_index, value in enumerate(top_n):ax1 = fig.add_subplot(top/2, 2, top_index+1)ax1.set_title(data.values[value+1,0][0])row = value[0]y = his_data[row:row+20, 2][::-1]x = range(len(y))ax1.plot(x,  y)
plt.show()

根据当前行情,计算历史上与当前最相似的行情python实现相关推荐

  1. 【历史上的今天】8 月 2 日:字节跳动收购 Musical.ly;PlayStation 之父诞生;早期的女性计算机先驱

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 8 月 2 日,在 20 年前的这个八月,"电子表格之父"丹·布兰克林(Dan ...

  2. Musical.ly:从风靡全美到被同行收购 | 历史上的今天

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 2015 年的夏天,一款应用程序在 iOS App Store 中攀升至榜首,从那以后,它就没有在海外跌破 App Sto ...

  3. 【历史上的今天】11 月 11 日:腾讯成立;信息论先驱出生;阿德曼提出 DNA 计算

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 11 月 11 日,1924 年的今天,中山大学成立:中山大学由原中山大学和中山医科大学合并组建,是 ...

  4. 计算机与网络安全经历了几个阶段,计算机历史上计算范式经历了哪六个发展阶段?...

    计算机历史上计算范式经历了哪六个发展阶段? 孟神通2015-04-04浏览 从历史的角度来看,计算机诞生至今,其计算范式已经经历了至少六个明显的发展阶段. 第一阶段可以称为主机(mainframe)阶 ...

  5. 【历史上的今天】11 月 25 日:P2P 鼻祖 Napster 被收购;机械计算器之父诞生;高春辉的个人网站

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 11 月 25 日,在 1926 年的今天,物理学家李政道出生,他和杨振宁提出了弱相互作用中宇称不守 ...

  6. 【历史上的今天】3 月 14 日:微软发布 IE9;黑莓创始人出生;圆周率计算创造新纪录

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 3 月 14 日,在 143 年前的今天,1879 年 3 月 14 日,爱因斯坦诞辰.阿尔伯特·爱 ...

  7. 【历史上的今天】12 月 31 日:千年虫问题;DNA 计算之父出生;微机先驱 Cromemco 成立

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 31 日,也是 2021 年的最后一天.在 1993 年的今天,我国第一张电子报纸在杭州问 ...

  8. 【历史上的今天】3 月 20 日:周以真提出计算思维;Docker 发布;思科收购 Linksys

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 3 月 20 日,在 1999 年的今天,人类首次成功乘热气球环球飞行.在 23 年的今天,瑞士人皮 ...

  9. 哪位科学家设计了第一架计算机器,奖-谁于哪年设计并创制了历史上第一架机械计算机器?(专搜竞答)...

    帕斯卡 于1642-1644年,设计并创制了历史上第一架机械计算机器. 帕斯卡,B. 法国数学家,物理学家,哲学家.1623年6月19日生于克莱蒙费朗,1631年移居巴黎.1635年左右开始对数学发生 ...

最新文章

  1. spring官方文档阅读笔记
  2. SSM中shiro的基本使用
  3. 提高编程能力的7条建议
  4. 如何访问SAP Spartacus里的config数据
  5. 工作189:配置表头即可
  6. 【转】老邹说Magento的前世今生
  7. jdbc 连接 mysql 时的中文乱码问题
  8. c4d细分曲面的使用和导出的一些快捷键笔记
  9. 2017年网络小说人气排行榜
  10. Python 批量修改文件名称测试
  11. visa支付—Springboot
  12. 采购销售价格搞错的后果及处理逻辑
  13. 三台Centos7虚拟机之间实现ssh,rsh互连,虚拟机和本机基于ssh进行文件传输
  14. 怎么保存python文件_pycharm怎么保存py文件
  15. 键盘各个键所对应的键值
  16. Windows CMD常用命令大全
  17. 微信小程序的安全登录
  18. 数据分析七种降维方法
  19. 什么是promise,promise的用法。
  20. Reso | Noise 网易云音乐插件

热门文章

  1. 中国节日主题网站设计 红色建军节HTML+CSS 红色中国文化主题网站设计 HTML学生作业网页
  2. 第48章 MDK的编译过程及文件类型全解—零死角玩转STM32-F429系列
  3. 谷歌gke_GKE教程:Google Kubernetes引擎入门
  4. BLOB/TEXT column ‘sup_content‘ used in key specification without a key length
  5. Linux中的压缩和解压缩命令zip|tar
  6. 【MineCraft】-- 使用Java开发我的世界Mod
  7. HEALER: Relation Learning Guided Kernel Fuzzing学习笔记
  8. js实现instanceof+实现原理
  9. android保存网站在桌面,如何将网站保存到手机桌面(Android)?
  10. 信号生成和可视化——周期性/非周期性波形