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

2024-01-04 17:36

本文主要是介绍A股贵如金?Python量化验证AH股溢价效应,跟着买15年18倍?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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股每天的开高收低价格。

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

懂行的朋友应该都能看出数据的珍贵。如果你需要的话,可以在评论区留言和我交流,都是可以直接免费发给你的。

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代码,如果你需要的话,可以在评论区留言和我交流,都是可以直接免费发给你的。

3 策略结果

程序运行结果如图所示:

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

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

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

04 溢价率分组统计

1 前20%选股

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

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

我们只需修改一下代码,运行程序即可。如果你需要数据和代码的话,可以在评论区留言和我交流,都是可以直接发给你的。

2 策略结果

程序运行结果如图所示:

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

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

3分组统计

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

最终结果如图所示:

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

05 策略拓展

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

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

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

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

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

这篇关于A股贵如金?Python量化验证AH股溢价效应,跟着买15年18倍?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/570080

相关文章

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

Python实现精准提取 PDF中的文本,表格与图片

《Python实现精准提取PDF中的文本,表格与图片》在实际的系统开发中,处理PDF文件不仅限于读取整页文本,还有提取文档中的表格数据,图片或特定区域的内容,下面我们来看看如何使用Python实... 目录安装 python 库提取 PDF 文本内容:获取整页文本与指定区域内容获取页面上的所有文本内容获取

基于Python实现一个Windows Tree命令工具

《基于Python实现一个WindowsTree命令工具》今天想要在Windows平台的CMD命令终端窗口中使用像Linux下的tree命令,打印一下目录结构层级树,然而还真有tree命令,但是发现... 目录引言实现代码使用说明可用选项示例用法功能特点添加到环境变量方法一:创建批处理文件并添加到PATH1

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用