Py学习  »  Python

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

邢不行 • 2 年前 • 389 次点击  

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

作者 | 邢不行、密斯锌硒



2023年9月15日,A股中国人寿收盘价35.64人民币,同一天港股的价格却仅为12.1元港币,折合人民币11.1元,两者相去甚远。



但深究后会发现,两个股票代表的是同一家公司


中国人寿在香港和上海都发行了股票,无论在哪个交易所持有它的股票,享有的股东分红、投票等权利都一模一样



这不禁让人好奇,为什么同一家公司的股票,A股价格会比港股贵那么多?其他公司也是如此吗?


我们能否买港股股票到A股卖出赚取差价,或根据价差背后的信息来构建一个量化策略呢?




01

AH股溢价现象


1

AH股溢价现象


有一定交易经验的朋友都知道,很多公司会选择在多个不同市场同时上市


比如美团、阿里、京东等,就同时在美股和港股上市。



这样做可以扩大融资渠道,并且境外还能进行美元融资


此外也有很多公司选择在沪深交易所港交所同时上市,现在一般有以下两种方法实现:



根据公司法,同一公司在A、H股上市的股票是同股同权的,即享受的分红、投票等权利均一模一样



理论上股价也应当相同,但将两地上市的股票进行对比会发现,A股价格会普遍高于H股




这一现象被称为AH股溢价现象


2

溢价主因


AH股溢价现象产生的原因有很多,最重要的是A股和港股是两个完全独立的交易市场



尽管同一公司的股票同股同权,但A股买入后是无法平移到港股卖出的,反之亦然。


如果可以完全平移的话,价差也早已不复存在。


比如2017年马赛克市场就存在着很多不同的交易所


这些交易所中冰糖橙价格各不相同,部分价差甚至高达10%,但冰糖橙可以在交易所间自由转移



当时我们就会在一些交易所低价买入,再转到其他交易所高价卖出,以此实现无风险套利


但也因为套利者的存在,各交易所之间的价差会很快被抹平,这种机会也就逐渐消失了。


3

其他原因


至于其他造成AH股溢价现象的原因还有很多,比如两边不同的税务制度、监管环境投资者结构和成熟度都导致了股价不同。


更多具体的原因如下图所示:



当然以上种种仅是表层原因,真正的核心原因不方便讲,想必大家心里也都清楚。



至此我们了解了同一公司的AH股长期存在价差,那价差的背后是否蕴含着交易机会呢?



02

AH股溢价统计


1

AH股数据


要进行上述研究,们需要找来相应的AH股数据,并编写Python代码,分析AH股的溢价情况。


相关的数据我已经为大家准备好了,包含了所有AH股同时上市的股票和它们在AH股每天的开高收低价格


甚至还有人民币兑港币的汇率数据,以便两个市场的股价都可以用人民币计价。



懂行的朋友应该都能看出数据的珍贵。如果你需要的话,可以加我微信xbx297,都是可以直接免费发给你的。


2

AH溢价率计算


有了相应的数据,我们就可以借助Python代码对AH股价差进行分析。


先计算股票每天的AH股溢价率,即同一公司A股价格比港股价格高的比率,计算公式如图所示:



比如某公司A股价12元港股价格10元,则对应的AH溢价率为20%


同理我们可以算出所有两地上市股票的整体AH溢价率。



截至2023年6月30日,共148只股票同时在A股和港股上市,它们的平均溢价率114%,即这些股票的A股平均价格是H股价格的2倍多。


3

溢价率变化图


我们还计算出了AH股整体溢价率每天的变化图:



溢价率在2014年降至最低点20%,其他时间大多维持在100%左右。


也就是说A股相对于港股长期存在溢价,反映到估值上则是A股的估值普遍高于港股



更进一步,溢价率指数在市场底部相对较低,而随着牛市的兴起溢价率也会上涨。这也从一定程度上反映了市场的情绪波动



4

溢价率分布


理论上讲AH股溢价率应该越低越好,指标越低,代表A股股票处于超跌或低估状态,后续更易反转。



高溢价率则意味着A股在短期内被过分炒作或高估,后续有下跌的风险



除此以外我们还统计了2023年5月底所有溢价率高于100%的股票,共65只,它们在未来一个月的平均涨跌幅是-1.04%。



而其他84只溢价率低于100%的股票在未来1个月上涨了0.14%



以上似乎也都能证明AH股溢价率越低,股票未来收益越高这一理论。


但我们不能只看一个月的数据就得出结论,还是要拿整体数据说话,去计算每个股票每天的溢价率。


再结合Python代码构建买低溢价率股票的策略,看看在历史上买溢价率低的股票到底能不赚钱



03

AH股溢价率策略


1

策略构建


首先假设每月最后一个交易日结束后,把所有在AH两地同时上市的股票按溢价率从小到大进行排序。



删除当时处于ST/退市/停牌上市未满一年的股票,挑选出此时溢价率最小的10只。


比如2023年1月31日溢价率最低的是招商银行,为-6%中国平安为-2.64%,即它们A股价格比港股更便宜



选出股票后我们在下个月第一个交易日开盘去均仓买入


一直持有至下个月最后一个交易日收盘,全部卖出。



再重新选择下个月AH溢价率最小的10只股票,并在下下个月的月初买入,如此循环往复


2

举例说明


比如2023年5月31日,根据策略选出以下10只溢价率最低的股票:



就在6月1日买入并一直持有至6月30日卖出,再重新选择符合条件的股票。



假设我们一开始投入一笔钱去交易这个策略,最终是赚是亏


要验证这个想法,就需要借助相关历史数据Python代码,如果你需要的话,可以加我微信xbx297,都是可以直接免费给你的。



3

策略结果


程序运行结果如图所示:



代表策略的橙色曲线从一开始的1块钱涨到了9.94元,远超代表大盘的沪深300指数


分年度看,策略年化收益有17.21%,最大回撤也只有33.71%。


要知道这个策略是永远满仓运行的,当市场暴跌时策略也会下跌,但相对跌幅较小。




04

溢价率分组统计


1

前20%选股


我们还可以不仅只看溢价率前10的股票,还可以看溢价率最低的前20%的股票,这样更有说服力



比如有150只股票同时在AH股上市,前20%就是30只,我们需将它们一并买入。


我们只需修改一下代码,运行程序即可。如果你需要数据和代码的话,可以加我微信xbx297,都是可以直接发给你的。



2

策略结果


程序运行结果如图所示:



代表策略的橙色曲线从1元变为了6.86元,同样跑赢了代表大盘的沪深300指数


由于该策略的持股较多,我们还可以把它当作一个每月调仓的指数,调仓规则是选择溢价率最低的前20%的股票


3

分组统计


我们甚至还可以看溢价率前20%-40%、40%-60%、60%-80%及80%-100%的股票表现,也就是把所有股票按AH溢价率从小到大分为5组。



最终结果如图所示:



可以明显发现AH溢价率越低的股票未来收益越高,这也说明溢价率对股票未来的涨跌有显著的预测作用。



05

策略拓展


至此我们研究了AH股溢价率并据此构建了一个切实可行的量化策略


我们还能在这个基础策略上做哪些拓展呢?



比如基础策略中是买AH股溢价率最低的A股股票,买相应的港股股票又会如何


又或者在选出溢价率最低的一批股票后,结合其他财务或量价指标做进一步筛选呢?



这些都可以问我拿了数据和代码后自己去做验证,相信应该会有不错的结果



06

后记


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


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


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



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



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



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



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



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



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



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



联系作者



往期文章推荐

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

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

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

当我们谈论量化时,我们在谈论什么?量化投资常见策略有哪些?| 融券T0和高频交易详解|【邢不行】

散户反着买,别墅靠大海?股票上了龙虎榜还能买吗?【邢不行】

量化交易一定是机器人+自动化+高频交易吗?| 常见量化交易误区合集,新手脱坑入门指南 | 【邢不行】

抄底总在半山腰?抄底A股的时机何时到来?|【 邢不行】

投资不识筹码峰,炒遍A股也枉然?| 如何用python计算筹码分布数据 |【邢不行】

烂板如何出妖股?每天买炸板股票,不亏反赚100倍?| 【邢不行】

跟着社保买,别墅靠大海?跟着国家队炒股,还会亏钱吗?| 附最新选股结果【邢不行】

A股月份效应 | Python量化A股市场魔咒,5穷6绝7翻身准确吗?| 【邢不行】

股东刚减持,股价却起飞?用Python量化A股解禁数据,利空出尽是利好? | 【邢不行】

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/166413