企业微信

量化交易做港股到底行不行

身边不少做量化的朋友最近都在聊港股。有人觉得港股是量化的天堂,有人被老千股和流动性坑得欲哭无泪。今天咱们就把这事掰开揉碎说清楚,不绕弯子,不堆术语。

港股和A股的游戏规则不一样

A股量化最大的痛点是T+1,今天买明天才能卖,日内策略基本没戏。港股是T+0,当天可以来回做。这个差别有多大?想象一下打麻将,A股是你摸一张牌就得等一圈才能打出去,港股是你摸完立刻能打,还能反悔再摸。高频策略、日内反转策略在港股有天然土壤。

另一个关键是做空。A股做空工具少得可怜,融券成本高、券源少。港股有丰富的衍生品和卖空机制,只要你能借到票,就能做空。量化里经典的多空对冲策略在港股可以真正跑起来。

量化交易做港股真的能赚钱吗

交易费用也得算清楚。港股印花税双边各0.1%,加上交易征费、联交所交易费、券商佣金,单边成本大概0.15%到0.25%。A股印花税单边0.05%,佣金更低。港股摩擦成本高出好几倍,策略换手率不能太高,否则利润全交税了。

港股量化的机会在哪里

多空策略是最成熟的玩法。买一篮子你认为会涨的股票,同时做空一篮子你认为会跌的股票。市场整体涨跌跟你关系不大,你赚的是选股能力的钱。港股有大量基本面差、流动性尚可的标的可供做空,这是A股给不了的条件。

均值回归策略在港股也管用。港股散户少,机构主导,情绪化定价比A股温和,但遇到突发事件时,比如政策黑天鹅、财报暴雷,股价容易超跌。量化模型可以捕捉这种短期偏离,等价格回归均值时获利。

跨市场套利值得关注。同一家公司A股和港股股价经常不一样,恒生AH股溢价指数长期在130到150之间波动。量化模型可以监控溢价率,当价差拉大到历史极值时,做多折价股、做空溢价股。

事件驱动策略在港股特别丰富。港股财报季、指数调整、大股东增减持、回购注销,这些事件对股价的影响往往比A股更剧烈。量化模型可以提前扫描公告,在事件公布后毫秒级下单。

港股量化的坑比你想的多

老千股是港股独有的毒瘤。合股、供股、大比例配售,一套组合拳下来股价能跌99%。量化选股如果只看K线和财务数据,很容易掉进去。必须加入公司治理数据,比如审计意见、核数师变更、频繁供股记录,把这些股票拉黑。

流动性陷阱无处不在。港股有大量日均成交额不到100万港币的仙股,你想买买不到,想卖卖不掉。量化策略必须设置流动性过滤,只选日均成交额5000万以上的股票。小市值因子在港股容易变成流动性风险因子。

数据成本高。港股历史行情数据、财务数据、公告数据,免费的基本没法用。好一点的数据库一年几万到几十万。A股散户还能拿免费数据凑合跑回测,港股不行,数据质量直接决定策略生死。

交易接口限制。港股券商API不像A股那么开放,很多券商不提供程序化交易接口。想做港股量化,得找支持API的券商,比如盈透证券、富途、老虎。每家接口的延迟、稳定性差别很大,实盘前必须测试。

散户怎么上手港股量化

别一上来就写复杂模型。从最简单的双均线策略开始,选10只流动性好的港股,用5日均线和20日均线交叉做多,跌破20日线平仓。跑一年回测,看看最大回撤和夏普比率。如果连这个简单策略都跑不赢恒生指数,说明模型有问题。

港股通门槛50万,很多人达不到。替代方案是买港股ETF,比如恒生ETF、恒生科技ETF。这些ETF流动性好,没有老千股风险,还能T+0。用ETF做量化轮动,比如动量策略,每周选过去20天涨幅最强的ETF,持有到下周一换仓。

资金管理比策略本身更重要。港股波动大,单只股票仓位不超过总资金的5%,整个组合回撤超过15%就降仓。别想着满仓干一个策略,港股的黑天鹅比你想象的多。

程序化交易的代码框架

下面是一个简单的港股双均线策略伪代码,用Python描述,数据源用yfinance为例。


import yfinance as yf

import pandas as pd

# 下载港股数据,比如腾讯控股 0700.HK

df = yf.download('0700.HK', start='2023-01-01', end='2024-01-01')

# 计算均线

df['ma5'] = df['Close'].rolling(5).mean()

df['ma20'] = df['Close'].rolling(20).mean()

# 生成信号

df['signal'] = 0

df.loc[df['ma5'] > df['ma20'], 'signal'] = 1

df.loc[df['ma5'] < df['ma20'], 'signal'] = -1

# 计算持仓

position = 0

cash = 1000000

shares = 0

for i in range(20, len(df)):

    price = df['Close'].iloc[i]

    sig = df['signal'].iloc[i]

    if sig == 1 and position == 0:

        shares = cash / price

        cash = 0

        position = 1

    elif sig == -1 and position == 1:

        cash = shares * price

        shares = 0

        position = 0

print('最终资产:', cash + shares * df['Close'].iloc[-1])

这段代码没考虑交易成本和滑点,实盘必须减掉。港股印花税双边0.1%,买卖一次成本超过0.2%,高频策略根本扛不住。

港股量化的未来

港股市场机构化程度高,量化竞争比A股激烈。但港股通开通后,内地资金持续南下,定价权在慢慢变化。量化策略可以捕捉这种资金流动的规律。

人工智能模型在港股也有空间。港股财报数据规范,英文披露完整,适合做自然语言处理。用BERT模型分析财报电话会议记录,预测股价短期方向,已经有机构在做了。散户可以关注开源模型,比如FinBERT,自己微调。

风险控制永远是第一位。港股没有涨跌停,一天跌80%不是新闻。量化模型必须有止损机制,单笔亏损超过2%强制平仓。别跟市场讲道理,市场不认识你。

量化交易做港股,能赚钱,但赚的是辛苦钱。别信那些一个月翻倍的鬼话,踏踏实实做回测、控风险、慢慢迭代。港股是个好战场,前提是你得先活下来。