irpas技术客

Python --相似K线匹配--实现股票走势预测 Tushare_KK LUO_python预测股票走势

网络 7133

Python --相似K线匹配–实现股票走势预测 Tushare


前言

同花顺和东方财富都提供了一个免费的功能可以查找相似走势的K线,提供参考。差不多,东方财富可以选择分析的周期,同花顺是固定120日的分析周期。我们可以通过tushare的数据源获取历史交易数据自己实现一个类似功能。 得到的K线匹配效果如下:

一、获取历史交易数据 1.引入库,读取历史交易数据

Tushare是一个免费、开源的python财经数据接口包。注册用户后到个人中心改一下名字获取积分,基本的功能都可以用了。大家可以用我的邀请码注册 ①首先要安装tushare库 pip install tushare --upgrade ②注册Tushare大数据社区的账号,在个人中心获取你的token ③Tushare官网接口使用手册,可以查看如何调用各个接口。

import tushare as ts # 个人账号tushareToken ts.set_token('dce74e113985d5da2a8dffe05cccdba7c72aa1e0c34601dbb8d2cbc0') pro = ts.pro_api() #调用000001.sz的的历史日线数据 df = pro.daily(ts_code='000001.SZ', start_date='20180701', end_date='20180718') print(df) 至此我们实现了某只股票的交易数据获取。

接下来,我们需要获取当前所有正常上市交易的股票列表,然后获取他们的的历史走势与我们选取的对象做比较。

import tushare as ts # 个人账号tushareToken ts.set_token('dce74e113985d5da2a8dffe05cccdba7c72aa1e0c34601dbb8d2cbc0') pro = ts.pro_api() # 获取当前所有正常上市交易的股票列表 stock_all = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date') for eachCode in stock_all.iterrows(): # 获取历史交易数据 stock_history=ts.get_hist_data(eachCode[1]['symbol']) # 打印调试 print(eachCode[1]['symbol'],eachCode[1]['name']) print(stock_history) 2.认识K线,如何分析走势

当我们描述股票的一根K线组成,会用开盘价open、收盘价close、最高价high、最低价low,因为周期不同,会使得K线表现形式产生差异,因此我们往往在讲K线时,在K线前指明周期,比如:日级K线、60分钟K线、15分钟K线等等。 均线指标是反映价格运行趋势的重要指标,其运行趋势一旦形成,将在一段时间内继续保持。五日均线指的是近5天内收盘价的加权平均价,是均线系统中的短期均线,反映股价或指数的短期运行趋势。如图所示,黑色的是5日均线,黄色为10日均线,粉色为20日均线。 那么我们如何定义一根K线相似,对于单根K线其开盘价、收盘价、最高价、最低价越相似那么它就越相似。同理我们如何定义短期趋势的相似,计算Ma5的相关系数。

在统计学中,皮尔逊相关系数( Pearson correlation coefficient),又称皮尔逊积矩相关系数,是用于度量两个变量X和Y之间的相关(线性相关),其值介于-1与1之间。我们可以利用numpy.corrcoef()函数,来计算两个矩阵之间的相关性。那么我们定义两段K线的相似度K=(开盘价相关系数+收盘价相关系数+最低价相关系数+最高价相关系数+5日均线的相似度)/5。

stock_compare=ts.get_hist_data(code)[0:day_range] #获取选取范围的分析对象的交易数据 compare_open=stock_compare['open'] compare_close=stock_compare['close'] compare_high=stock_compare['high'] compare_low=stock_compare['low'] compare_ma5=stock_compare['ma5'] stock_all = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date') stock_all = stock_all[0:100] # 逐一获取A股上市股票的历史走势做比较 for eachCode in stock_all.iterrows(): stock_history=ts.get_hist_data(eachCode[1]['symbol']) # 旧接口获取历史数据,因为就接口直接提供ma5数据 trade_days = len(stock_history) #获取的历史交易数据长度 k_list=[] x_list=[] # /**截取30_days的长度,滑动窗口为5*/ for i in range(5,trade_days, 5): # 截取判空,滑动数据不满足range后跳出 if(i+day_range>=trade_days): break stock_offer=stock_history[i:i+day_range] #截取后的数据 open_o =stock_offer['open'] close_o =stock_offer['close'] high_o =stock_offer['high'] low_o =stock_offer['low'] ma5_o =stock_offer['ma5'] open_k =np.corrcoef(compare_open,open_o)[0][1] #/**-------------计算相关系数-------------------*/ close_k=np.corrcoef(compare_close,close_o)[0][1] high_k =np.corrcoef(compare_high,high_o)[0][1] low_k =np.corrcoef(compare_low,low_o)[0][1] ma5_k =np.corrcoef(compare_ma5,ma5_o)[0][1] ave_k = (open_k+close_k+high_k+low_k+ma5_k)/5


总结

例如: 本文仅仅简单介绍了如何通过tushare数据源获取A股的历史交易数据,通过皮尔逊相关系数实现一种查找相似K线的算法。 资本市场没有新鲜事,历史总是重演但不是简单重复,该方法提供一种实现方法,并不构成投资建议。

enjoy🥰!

本文参考了以下博主的文章 如何用Python量化“相似K线”实现形态选股?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #python预测股票走势 #Python #相似K线匹配实现股票走势预测