社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

A股如今行情,都是历史重演?Python找出A股相似K线,量化验证股价未来会怎么走?

邢不行 • 6 月前 • 358 次点击  


这是邢不行第 127 期量化小讲堂的分享

作者 | 邢不行


你周围有没有一些交易高手,看一眼股票的K线就可以大致预测后续的走势。虽然不是完全准确,但也能说个七七八八。


这源于他们在市场较久,此前或多或少见过类似图形,对后市有一定判断。是长期的经验积累所致,而非真正的预测行情。



对经验不足的新手小白来说,很难在短时间内掌握这项技能。


但经验不够,可以科技来凑。对面任意行情,我们都可以借助Python程序找出历史上走势相似的K线,并分析其后续表现,以此给出参照。



本文我们就来做相应的研究,看这样操作对实战是否有帮助,又是否可以据此构建一些交易策略




01

相似K线


1

支付宝功能



2024年国庆节前后,大A经历了一轮完整的牛熊,更有大盘开盘涨停的盛况。



很多人问我如何看待这段行情,说实话我记忆中也没见过这样的走势。


但记忆可能出错,数据却不会骗人。


最好的办法,还是从过往指数K线中寻找有没有相似的走势,它们之后又是如何演绎行情的。


有同事说支付宝有类似的功能,可以实现我们的需求,叫相似K线。



选择任意股票,就会分别展示出它自身和所有股票历史上,与最近30日K线最相似的形态,并画出未来走势



对一个免费的功能来说,这个效果已经很好了。


但对我们做量化交易的来说,看到这些功能就想知道该如何计算,是否能将它复现出来,为自己所用。



在翻阅了一些研究资料后,我们最终复刻出了相似K线,还在原有功能上做了全面的升级,整理出了一份极其全面的文件,包含需要用到的数据、代码、各类教程文档



如果你需要的话,可以加我微信xbx7031,都是可以直接免费发给你的。


下文我们就带着大家一起,开始本次寻找相似K线之旅。



02

皮尔逊相关系数


1

皮尔逊相关系数概念



要在众多K线中找到相似度高的组合,就需要借助皮尔逊相关系数。


学过概率论、统计学的同学,应该很熟悉它,是一个比较基础的概念。


没学过的朋友也不用担心,皮尔逊相关系数,简单来说就是用来衡量两组数据之间的线性相关程度


皮尔逊相关系数计算公式


你不需要理解它的原理,只要会运用就可以了。


甚至Excel中就有现成的公式用于辅助计算:


用Excel计算皮尔逊相关系数


Python中更是有打包好的计算函数,只需一行代码就可以解决


用Python计算皮尔逊相关系数


2

皮尔逊相关系数应用



指标用法也很简单,比如图中几个点可以连成一条向上的直线,则认为相关系数为1,即x的数据增加时y也会按相同趋势增加



假若数据点是围绕图中直线分布,则说明它们之间是正相关关系,相关系数介于0-1,围绕的越紧密,指标越接近1



与之相反,如若是向下的直线则为负相关关系



若数据之间毫无关系,它们的相关系数则为0。



了解了上述内容,就可以借此构建出计算K线相似度的公式:


相似度在-100%-100%之间波动


具体用法也很简单,例如下图是股票A和股票B某时间段的K线图,它们的相似度高达98%,走势上也的确极其接近。



而股票C和A的相似度是75%,走势上也给人一种相像又不完全像的感觉。



再比如股票D和A的相似度只有0.05%,它们之间毫无关联也一目了然。



通过上述案例即可发现,相似度越接近100%,K线之间也就越相似




03

指数相似度


1

寻找指数相似K线



我们先用相似度指标来寻找上证指数最近20个交易日的相似K线。



理论上Excel也可以做相应的计算,我们则是直接编写了Python代码来辅助计算,如果你需要这个代码的话,可以加我的微信xbx7031,都是可以直接免费发给你的。



程序运行结果如图所示:上证指数历史上共出现了57次与近20日K线相似度超过了90%的情况。



其中相似度最高的是2016年7月29日-8月25日这段时间,高达96%



将两段K线放一起看,在走势上也极其接近。



如此看来,我们的经验和记忆有时确实会出现偏差,一些历史上存在过的K线走势,如果不借助数据和代码复现,可能就会被自然遗忘。



我们也可以稍微修改代码,去看指数最近30个交易日的相似K线是哪些时间段:


结果与20日完全不同


你也可以拿到代码后,选择自己感兴趣的时间段去做观察,类似操作就不再多加赘述。


2

未来表现统计



寻找历史上的相似K线,是想以史为鉴,去探究过去发生了什么,以便给当下的交易做出指导。



我们还不能只单纯看个例,应综合分析历史上相似度高于90%的所有情况,观察在这些K线产生后,买入并持有未来1天/5天/10天/20天后,赚钱的概率有多少获取的平均收益又有多少?


计算的代码我们也已经准备好了,感兴趣的可以加我微信xbx7031,都是可以免费发给你的。



上证指数历史上,与最近20个交易日的K线相似度超过90%的阶段共57次。


在这些K线出现后的第二天开盘去买入上证指数,持有1天的上涨概率是63.16%,平均收益是0.18%


持有5天/10天的上涨概率也都在50%以上,但收益率几乎可以忽略不计。


持有20天的上涨概率骤降至43%,收益率也来到了-1.39%



以上数据结果,也可以给我们的交易决策一定的底气和参考。


我们以上的所有研究都是基于上证指数,鉴于大家还是以交易个股为主,下文我们就将研究拓展到个股。


比如选取任意股票任意时间段的K线,在所有股票的历史数据中,找出相似度高的时段,并统计这些相似走势之后的市场表现。




04

全市场探究


以茅台为例,它最近20个交易的K线如图所示。站在这个时点,我们就想知道未来几天茅台的价格会如何变化,该直接进场还是等它继续下跌



但我们无法预知未来,最好的办法是通过分析历史相似K线,来辅助判断后续行情。


该思路类似于技术指标中归纳整理特殊形态,只不过我们寻找的是随机的相似K线,无需做特殊条件的归纳。



我们请出祖传的Python代码,相关功能已经帮大家准备好了,只需要根据我文档中的流程来操作即可。


数据和代码可以加我微信xbx7031获取


通过代码,我们先找出了2007年至今A股历史上和茅台最近20个交易日走势最相似的三段K线,并画了出来,相似度分别是97.7%97.6%


并标注出了它们的股票名称交易日期,甚至还将后续走势也画出供大家参考。



以上功能,支付宝也可以提供,虽然不如我们全面,但也确实不值得我们夸耀。



我们还额外添加了其它功能,比如历史上和茅台最近走势相似度最大的1万组K线,相似度最低的也有92%,说明彼此走势都很相似,那这些K线未来的整体表现又是如何?



我们计算了这些K线出现后未来1天/5天/10天/20天的上涨概率和平均涨跌幅,结果如图所示:



利用我们的工具,你既可以肉眼直观比较最相似K线的未来表现,也可以通过大数据分析最相似的前X组K线的整体表现,以此辅助你做出交易决策。



本文只是以茅台为例,你也可以拿了代码后,选择其他任意股票、任意时间段、任意X根K线去做走势的研究,这些完全可以实现,就看你如何使用。



如果你需要这个代码的话,可以加我微信xbx7031,都是可以直接发给你的。



最后再透露个小秘密,既然相似度是以开高收低价格为基础计算的,那是否可以将成交量也考虑进去?


是不是也可以融入技术指标,如均线的相似度计算,寻找更广泛意义上的相似K线?


篇幅有限,就不多加赘述了,感兴趣的朋友可以和我一起讨论,也可以问我要了数据和代码自己把玩修改,以上思路都是可以实践的。





05

后记


文章的最后,和大家分享一点量化投资的心得。


经常有人问我小白如何入门量化投资,有什么资料分享。


我特意为大家准备了一个《量化投资新手学习大礼包》






首先是我们自己总结的适合零基础新手的量化投资学习路径,可以让你知道自己每一步需要达到什么阶段。



接下来你可以通过我整理的量化文章合集,来更全面的了解量化投资到底是什么。



我还精选了适合各个学习阶段的策略研报合集,正如我一直所说,量化研报是很好的量化实践项目,深度研报可以显著提升你的量化水平。



这一份代码则适合喜欢研究技术指标的人,你可以跟着教程轻松计算出所有技术指标,并测试这个指标的有效性。



如果你有一定的基础,还可以尝试回测一些策略,我为你准备好了十几个不同类型的经典策略和它们的代码,相信总有一个适合你自己去魔改开发,运用到实盘。




最后也是最关键的,量化的基础就是准确的历史数据,我会送你一份股票历史日线数据和一份财务数据,你可以用它测试所有技术指标和财务指标,也可以用来回测大部分策略。




识货的你一定能够发现这个大礼包的价值吧。如果你需要的话,可以加我微信xbx7031,都是可以直接免费发给你的。





往期文章推荐

看懂成交量,赚钱如饮水?股票什么时候放量会上涨?

会缠论和不会缠论的都沉默了,缠论关键在笔和线段?| 全网独家

新手散户如何避免被割?有量化策略适应暴涨暴跌行情吗?|附代码

年度最佳,逆势大涨?什么量化策略今年比四大行还猛?甚至半年零回撤?

财务指标别乱用,实盘回测亏成狗?如何量化价值投资?财务指标,多少人用错了?

翻了20万份A股增减持公告,我找到了传说中的股神?| Python量化股东增减持数据,谁是真正的抄底逃顶高手?

A股熊市底在哪?还有多少人看涨?如何量化投资者情绪?

反常识!科研巨头扎堆夕阳行业?A股研发之王竟是它?万亿研发费用,A股都投了什么?

妙用市场情绪找出大盘买卖点,逆向交易5年3倍 | Python量化期权成交量,上证50ETF择时

300W才能开通,A股自动交易公平吗?散户如何实现程序化交易?| 附A股程序化交易实盘演示

趋势之王or虚有其表?Python量化25种均线用法,哪些有用,哪些没用?

低风险、高收益?可转债缘何走上神坛?网红可转债策略能赚钱吗? | 附Python量化选债代码

抱最狠的团,亏最多的钱?Python量化散户抱团,揭秘A股股东户数秘密 | 附代码

以前嗤之以鼻,现在逐字学习!用Python量化缠论,一键自动生成交易信号 | 附代码 |【邢不行】

技术指标消亡史:从独领风骚到泯然众人 | 量化交易者如何看待技术指标,技术分析还能用吗?| 【邢不行】

微盘股还能买吗?量化轮动策略轻松跑赢指数12倍?!只会买指数ETF也能做量化?| 【邢不行】

大A为何频繁跳水,Python量化1200W条交易数据给你答案!| 【邢不行】

A股贵如金?Python量化验证AH股溢价效应,跟着买15年18倍?| 附策略代码

跟着基金买,别墅靠大海?买基金重仓股票,会破产吗?| 附最新选股结果 |【邢不行】

抓了几千万条热门股数据,用Python量化验证后发现结果竟然...... | 【邢不行】

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/177195
 
358 次点击