ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

港股通数据深度分析:用Python构建AH股溢价监测系统 IG50免费开源股票数据API接口

港股通数据深度分析:用Python构建AH股溢价监测系统 IG50免费开源股票数据API接口 港股通数据深度分析用Python构建AH股溢价监测系统2024年港股通的日均成交额突破了500亿越来越多的投资者开始关注AH股的投资机会。所谓AH股就是同一家公司同时在A股和港股上市由于两个市场的投资者结构、流动性、估值体系不同AH股之间通常存在溢价。如果能捕捉到溢价的变化趋势就能找到低估值的投资标的。去年我做了一个AH股溢价监测系统每天自动计算所有AH股的溢价率找出溢价最高和最低的股票结合资金流向和基本面数据进行分析。这篇文章就把系统的核心逻辑和Python实现完整分享出来。先说一下AH股数据的获取。本地数据引擎提供了AH股比价接口存放在time/history/trade目录下分别有A股和港股的历史行情数据。还有一个专门的AH股列表接口存放在base/gplist目录下包含了所有AH股的对应关系。importjsonimportosimportpandasaspdimportnumpyasnpfromdatetimeimportdatetime,timedelta data_dirD:/ig50_datadefread_ah_stock_list():file_pathos.path.join(data_dir,base,gplist)withopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[dm,mc,dmHk,mcHk,isAH,isSH,isSZ]returndf[df[isAH]1]defread_a_kline(dm,periodday):file_pathos.path.join(data_dir,time,history,trade,dm,period)withopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[dm,cjsj,cjjg,cjl,cje,zf]df[cjsj]pd.to_datetime(df[cjsj])returndfdefread_hk_kline(dmHk,periodday):file_pathos.path.join(data_dir,time,history,trade,dmHk,period)withopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[dmHk,cjsj,cjjg,cjl,cje,zf]df[cjsj]pd.to_datetime(df[cjsj])returndfAH股列表的字段dm是A股代码mc是A股名称dmHk是港股代码mcHk是港股名称isAH标记是否为AH股。K线数据的字段cjsj是成交时间cjjg是成交价格cjl是成交量cje是成交额zf是涨跌幅。港股的价格是港币需要换算成人民币才能比较。获取到数据之后第一步是计算AH股溢价率。溢价率的计算公式是(A股价格 - 港股价格 × 汇率) / (港股价格 × 汇率) × 100%。当前港币兑人民币的汇率大概是0.92。HKD_TO_CNY0.92defcalc_ah_premium(dm,dmHk,periodday,lookback_days60):df_aread_a_kline(dm,period)df_hkread_hk_kline(dmHk,period)df_adf_a.tail(lookback_days).copy()df_hkdf_hk.tail(lookback_days).copy()mergeddf_a.merge(df_hk,left_oncjsj,right_oncjsj,howinner)iflen(merged)20:returnNonemerged[price_a]merged[cjjg_x]merged[price_hk_cny]merged[cjjg_y]*HKD_TO_CNY merged[premium](merged[price_a]-merged[price_hk_cny])/merged[price_hk_cny]*100returnmerged[[cjsj,price_a,price_hk_cny,premium]]计算出溢价率之后我会对溢价率做进一步分析。主要关注以下几个指标当前溢价率、溢价率的历史分位数、溢价率的变化趋势。defanalyze_premium(series):iflen(series)20:returnNonecurrentseries.iloc[-1]meanseries.mean()stdseries.std()min_valseries.min()max_valseries.max()percentile(seriescurrent).sum()/len(series)*100trendnp.polyfit(range(len(series[-10:])),series[-10:],1)[0]return{current_premium:current,mean_premium:mean,std:std,min:min_val,max:max_val,percentile:percentile,trend_10d:trend}有了溢价率分析之后我会结合资金流向数据来做更深入的分析。北向资金的流向数据存放在time/zijin/zjlrqs目录下行业资金流向在all/zjlx/zjhhy目录下。defread_northbound_flow(dm,lookback_days30):file_pathos.path.join(data_dir,time,zijin,zjlrqs,dm)withopen(file_path,r,encodingutf-8)asf:datajson.load(f)dfpd.DataFrame(data)df.columns[dm,mc,cjsj,zlJlr,zlJlb,shJlb]df[cjsj]pd.to_datetime(df[cjsj])returndf.tail(lookback_days)资金流向的字段zlJlr是主力净流入万元zlJlb是主力净比%shJlb是散户净比%。现在把这些功能整合起来构建一个AH股溢价监测系统。系统每天盘后自动运行计算所有AH股的溢价率找出溢价最高和最低的股票结合资金流向进行分析。defah_premium_monitor():df_ahread_ah_stock_list()print(f共找到{len(df_ah)}只AH股)results[]for_,rowindf_ah.iterrows():dmrow[dm]mcrow[mc]dmHkrow[dmHk]mcHkrow[mcHk]try:df_premiumcalc_ah_premium(dm,dmHk)ifdf_premiumisNone:continueanalysisanalyze_premium(df_premium[premium])ifanalysisisNone:continueflowread_northbound_flow(dm)total_flowflow[zlJlr].sum()iflen(flow)0else0latest_flowflow[zlJlr].iloc[-1]iflen(flow)0else0result{dm:dm,mc:mc,dmHk:dmHk,mcHk:mcHk,current_premium:analysis[current_premium],mean_premium:analysis[mean_premium],percentile:analysis[percentile],trend:analysis[trend_10d],total_north_flow:total_flow,latest_north_flow:latest_flow}results.append(result)except:continuedf_resultpd.DataFrame(results)high_premiumdf_result.nlargest(10,current_premium)low_premiumdf_result.nsmallest(10,current_premium)print(\nAH股溢价最高TOP10)print(high_premium[[mc,current_premium,percentile,trend]].to_string(indexFalse))print(\nAH股溢价最低TOP10)print(low_premium[[mc,current_premium,percentile,trend]].to_string(indexFalse))returndf_result实际运行下来这个系统每天可以处理100多只AH股的数据分析整个过程大概需要30秒。系统输出的溢价排名和趋势分析可以帮助投资者快速定位投资机会。在使用过程中我发现了一些有意思的规律。第一当AH股溢价率处于历史高位80%时港股往往有更好的投资价值因为同一家公司的港股更便宜而且港股通的流动性在改善。第二当北向资金连续净流入某只AH股时往往预示着溢价率会收窄因为资金在同时买入A股和港股。第三银行、保险等金融股的AH溢价通常较高而消费、科技等行业的溢价相对较低。去年我用这个系统发现了一个投资机会招商银行的AH溢价率在2024年3月达到了历史高位85%同时北向资金连续10天净流入。我买入了港股招商银行持有3个月获得了25%的收益而同期A股招商银行只涨了8%。当然AH股投资也有风险。港股的流动性不如A股买卖价差较大港股的分红税也比A股高还有汇率风险。所以在做AH股投资时需要综合考虑这些因素不能只看溢价率。这个系统还在持续优化中。我计划加入更多的分析维度比如港股通的持股比例变化、行业对比分析、估值模型等。这些改进可以让系统的分析更加全面选股更加精准。做AH股投资数据是基础。你需要准确的AH股对应关系、实时的行情数据、完整的历史数据才能做出合理的分析。本地数据引擎提供的AH股数据接口为构建这样的分析系统提供了可能。我用的数据来自本地数据引擎接口完整、更新及时做二次开发很方便。感兴趣的朋友可以参考这个思路根据自己的投资风格来调整分析模型。接口说明base/gplist - 股票列表含AH股标记本地路径数据存放目录/base/gplist主要字段股票代码(dm)、股票名称(mc)、港股代码(dmHk)、港股名称(mcHk)、是否AH股(isAH)time/history/trade/{股票代码}/{周期} - 历史K线数据本地路径数据存放目录/time/history/trade/{dm}/{day|week|month}A股和港股的K线数据分别存放港股代码以H开头主要字段成交时间(cjsj)、成交价格(cjjg)、成交量(cjl)、涨跌幅(zf)time/zijin/zjlrqs/{股票代码} - 个股资金流向本地路径数据存放目录/time/zijin/zjlrqs/{dm}主要字段主力净流入(zlJlr)、主力净比(zlJlb)、散户净比(shJlb)all/zjlx/zjhhy - 行业资金流向本地路径数据存放目录/all/zjlx/zjhhy各行业的资金流入流出汇总数据gitee开源地址github开源地址
返回列表