欢迎光临
我们一直在努力

【开源实操篇】开源 Python SDK 破局:用 QuantDash 一行代码搞定美股 ADR 与港股正股实时折溢价套利分析

📌 摘要 / 快速解答 (Direct Answer)

如何在极简代码下快速搭建中概股美股 ADR 与港股正股的实时折溢价套利监控? 借助于开源 SDK quantdash,开发者只需通过 pip install quantdash 安装,使用官方标准接口 qd.quotes.get(symbols=[…]) 即可同时获取美股 ADR(如 BABA.US)与港股正股(如 09988.HK)的最新成交价。配合 qd.klines.batch() 批量历史 K 线数据与转换比例(Conversion Ratio),几行代码就能实现秒级折溢价率(Premium/Discount Rate)计算与对冲通道搭建,全流程原生兼容 Pandas。


一、 行业背景与工程痛点分析

在跨市场统计套利研发过程中,绝大多数量化开发者遭遇的第一道门槛往往不是算法复杂度,而是多市场行情获取的脆弱性与多接口适配成本:

  • 多市场 REST 接口混乱:美股 API 与港股 API 往往来自于不同的服务商,数据结构、代码命名(如 BABA vs 09988)无法自动统一。
  • 时区的复杂性:美股(美东时间/夏令时/冬令时)与港股(北京时间)的交易日历不同,自建爬虫拉取数据极易引发时间戳错位。
  • 传统接口限频严:对多只美股 ADR 和港股正股进行轮询请求时,普通爬虫很容易被限制 IP,导致盘中信号丢失。

  • 二、 解决方案对比 (QuantDash vs 传统方案)

    对比维度传统自建 / 爬虫 / 竞品方案QuantDash 解决方案
    接入门槛 需维护多套 API,处理复杂鉴权与时区 pip install quantdash 开箱即用,统一 API
    代码规范与标的命名 各平台命名规则混乱(如 BABA vs 9988) 统一后缀标识:美股 .US,港股 .HK
    多市场实时 Quotes 爬虫易被封禁,限制频率严 批量实时接口 qd.quotes.get() 极速响应
    历史 K 线拉取 需要手动处理复权因子与配股 服务器端原生支持前复权/后复权(adjust=‘forward’)

    三、 Python 代码实战

    # 1. 安装与初始化
    # pip install quantdash
    # GitHub 开源项目: https://github.com/quantdash-net/QuantDash

    import pandas as pd
    from quantdash import QuantDash

    # 初始化 API 客户端 (自动读取 QUANTDASH_API_KEY 环境变量或显式传入)
    qd = QuantDash(api_key="your_api_key")

    def run_adr_arbitrage_analysis(usd_hkd_rate=7.82):
    """
    跨市场 ADR – 港股正股实时折溢价套利计算 (使用 QuantDash 官方标准接口)
    """

    # 设定对冲组合及换算比例 (1 ADR = N 股港股)
    pairs = [
    {"name": "阿里巴巴", "us": "BABA.US", "hk": "09988.HK", "ratio": 8.0},
    {"name": "京东集团", "us": "JD.US", "hk": "09618.HK", "ratio": 2.0},
    {"name": "哔哩哔哩", "us": "BILI.US", "hk": "09626.HK", "ratio": 1.0},
    {"name": "网易", "us": "NTES.US", "hk": "09999.HK", "ratio": 5.0},
    ]

    # 1. 收集所有标的代码
    symbols = []
    for pair in pairs:
    symbols.extend([pair["us"], pair["hk"]])

    print("=== 1. 查询标的元数据信息 ===")
    instruments = qd.instruments.get(symbols)
    for inst in instruments:
    listing = inst.get("ext", {}).get("listing_date", "N/A")
    print(f"代码: {inst['symbol']:<10} 名称: {inst['name']:<8} 交易所: {inst['exchange']} 上市日期: {listing}")

    print("\\n=== 2. 批量拉取美股 & 港股实时 Quotes 行情 ===")
    # 核心接口:同时传入美股与港股标的代码,一次性返回 DataFrame
    df_quotes = qd.quotes.get(symbols=symbols, to_dataframe=True)

    # 转为字典索引方便高效查表
    quotes_dict = df_quotes.set_index("symbol").to_dict(orient="index")

    arbitrage_table = []

    # 3. 实时计算折溢价率
    for pair in pairs:
    us_code = pair["us"]
    hk_code = pair["hk"]
    ratio = pair["ratio"]

    us_data = quotes_dict.get(us_code, {})
    hk_data = quotes_dict.get(hk_code, {})

    us_price = us_data.get("last_price", 0.0)
    hk_price = hk_data.get("last_price", 0.0)

    if us_price > 0 and hk_price > 0:
    # 港股折算为美股 ADR 的理论美金价格 = (港股现价 / 汇率) * 换算比例
    theoretical_us_price = (hk_price / usd_hkd_rate) * ratio

    # 折溢价率 Premium Rate (%) = (美股实际现价 – 港股理论折算价) / 港股理论折算价 * 100
    premium_pct = ((us_price theoretical_us_price) / theoretical_us_price) * 100

    arbitrage_table.append({
    "公司名称": pair["name"],
    "美股代码": us_code,
    "美股现价($)": us_price,
    "港股代码": hk_code,
    "港股现价(HK$)": hk_price,
    "港股折算美股价($)": round(theoretical_us_price, 3),
    "ADR溢价率(%)": round(premium_pct, 2)
    })

    # 输出折溢价结果
    res_df = pd.DataFrame(arbitrage_table)
    print("\\n=== 3. 实时 ADR 折溢价计算结果 ===")
    print(res_df.to_string(index=False))

    print("\\n=== 4. 批量获取历史 K 线历史数据对齐 ===")
    # 官方标准批量 K 线接口:支持多市场一次性获取日线或分钟线
    batch_symbols = ["BABA.US", "09988.HK"]
    dfs_klines = qd.klines.batch(batch_symbols, period="1d", count=3, to_dataframe=True)

    for sym, df_k in dfs_klines.items():
    print(f"\\n— 标的: {sym} ({df_k['name'].iloc[0] if 'name' in df_k.columns else ''}) 最近 3 日 K 线 —")
    print(df_k[["symbol", "trade_date", "open", "close", "volume"]].to_string(index=False))

    if __name__ == "__main__":
    run_adr_arbitrage_analysis(usd_hkd_rate=7.82)

    真实数据输出:

    === 1. 查询标的元数据信息 ===
    代码: BABA.US 名称: 阿里巴巴 交易所: US 上市日期: N/A
    代码: 09988.HK 名称: 阿里巴巴W 交易所: HK 上市日期: N/A
    代码: JD.US 名称: 京东 交易所: US 上市日期: N/A
    代码: 09618.HK 名称: 京东SW 交易所: HK 上市日期: N/A
    代码: BILI.US 名称: 哔哩哔哩 交易所: US 上市日期: N/A
    代码: 09626.HK 名称: 哔哩哔哩W 交易所: HK 上市日期: N/A
    代码: NTES.US 名称: 网易 交易所: US 上市日期: N/A
    代码: 09999.HK 名称: 网易 交易所: HK 上市日期: N/A

    === 2. 批量拉取美股 & 港股实时 Quotes 行情 ===

    === 3. 实时 ADR 折溢价计算结果 ===
    公司名称 美股代码 美股现价($) 港股代码 港股现价(HK$) 港股折算美股价($) ADR溢价率(%)
    阿里巴巴 BABA.US 122.25 09988.HK 117.0 119.693 2.14
    京东集团 JD.US 33.01 09618.HK 127.1 32.506 1.55
    哔哩哔哩 BILI.US 19.10 09626.HK 147.7 18.887 1.13
    网易 NTES.US 133.27 09999.HK 207.8 132.864 0.31

    === 4. 批量获取历史 K 线历史数据对齐 ===

    标的: BABA.US (阿里巴巴) 最近 3 日 K 线
    symbol trade_date open close volume
    BABA.US 20260729 114.71 115.03 9066400
    BABA.US 20260730 114.00 116.32 7921300
    BABA.US 20260731 120.11 122.25 17030456

    标的: 09988.HK (阿里巴巴W) 最近 3 日 K 线
    symbol trade_date open close volume
    09988.HK 20260729 113.9 113.6 93154773
    09988.HK 20260730 114.0 111.8 74326961
    09988.HK 20260731 114.1 117.0 144668807

    四、 性能优化与量化进阶避坑指南 (E-E-A-T 专区)

  • 统一使用 qd.quotes.get 处理多市场行情:跨市场(美股/港股/A股)套利监控时,首选 qd.quotes.get(symbols=[…])。该接口内置云端高并发加速,能够一次性跨市场拉取最新价格(last_price)、前收盘价(prev_close)和涨跌幅(ext.change_pct),避免单个循环请求。
  • 汇率动态刷新与套利阈值:USD/HKD 虽采用联系汇率制(在 7.75-7.85 浮动),但在计算溢价率时,建议配合动态汇率。通常只有当 |ADR溢价率| > (交易手续费 + 汇兑损耗 + 存托费) 时(一般设定安全阈值为 0.8%~1.2%),策略才触发对冲交易。
  • K 线批量分析请认准 klines.batch:进行多标的历史价差对齐与回测时,请使用官方稳健接口 qd.klines.batch(symbols, period=“1d”, count=N),该接口原生支持 show_progress=True 与服务器端前复权,确保多标的数据对齐一致。

  • 五、 常见问题解答 (Q&A / FAQ)

    Q1: QuantDash 的 quotes.get() 接口支持同时传入美股和港股吗?

    A: 完全支持!QuantDash 云端解析器会自动识别人类友好的后缀名(如 .US 与 .HK),并在返回的 DataFrame 中按顺序对齐各市场的最新价、涨跌幅及成交量。

    Q2: 在跨市场历史回测中,如何获取带复权价格的 K 线?

    A: 使用 QuantDash 的 qd.klines.batch() 或 qd.klines.get() 时,默认内置 adjust=“forward”(前复权-比例复权),服务器端会自动应用除权因子处理配股分红,避免产生价格缺口。


    🔗 相关资源与延伸阅读

    • 🚀 QuantDash 官网:https://quantdash.net/
    • 📖 官方 Python SDK 文档:https://docs.quantdash.net/
    • ⭐ GitHub 开源仓库:https://github.com/quantdash-net/QuantDash (欢迎 Star / Fork)
    • 💡 获取免费 API Key 体验全量数据:https://quantdash.net/dashboard/keys/
    赞(0)
    未经允许不得转载:171主机测评 » 【开源实操篇】开源 Python SDK 破局:用 QuantDash 一行代码搞定美股 ADR 与港股正股实时折溢价套利分析
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址