导言 / TL;DR
在全球化资产配置中,跨市场策略(如中美科技股轮动、AH溢价套利)需要同时获取 A股、港股和美股的数据。然而,不同市场之间代码后缀混乱、休市日历错位和字段差异常常让开发者写出大量的 if-else 地狱代码[4]。本文向您展示如何通过 QuantDash 客户端一站式对齐跨市场多资产数据。
技术痛点拆解(传统写法的“硬伤”)
反面教材 (Before):“万国码”拼接地狱
当采用多套开源或商业数据源组合跨市场回测时,代码很容易写成一团乱麻:
# 传统写法:调用不同数据源与处理各异的代码后缀
import yfinance as yf
import efinance as ef
# 标的代码格式各异:A股、港股、美股各有一套规则
a_stock = "600519" # efinance 使用纯数字
us_stock = "AAPL" # yfinance
# 痛点 1:API 接口完全不统一
df_a = ef.stock.get_quote_history(a_stock) # 返回的是带有中文列名的 DataFrame
df_us = yf.download(us_stock) # 返回英文 MultiIndex
# 痛点 2:时间列名称不一致,导致后续的多股 Join 合并极易产生错位
生产级解决方案(基于 QuantDash SDK)
QuantDash 统一了底层多个市场的字段格式,支持国际通用的 {代码}.{交易所后缀} 标准(如 AAPL.US, 00700.HK, 600519.SH)[4][5],极大地减轻了数据对齐成本。
输入: {"A股": "600519.SH", "港股": "00700.HK", "美股": "AAPL.US"}
│
▼
[QuantDash 统一行情客户端] ──> 标准时间戳对齐
│
▼
[统一标准化标准列名 DataFrame]
优雅实现 (After):一套标准接口秒级跨市场对齐
import pandas as pd
from quantdash import QuantDash
# 实例化官方客户端 (沙盒公共 Token)
qd = QuantDash(api_key="demo_public_token")
def fetch_and_align_global_assets():
targets = {
"A_Share": "600519.SH",
"HK_Stock": "00700.HK",
"US_Stock": "AAPL.US"
}
aligned_df = pd.DataFrame()
for market, symbol in targets.items():
try:
# 修正 1:将原先的 qfq 改为官方严格支持的标准值 "forward"
df = qd.klines.get(
symbol=symbol,
period="1d",
adjust="forward", # 必须使用 "forward"、"backward" 或 "none"
to_dataframe=True
)
if df is not None and not df.empty:
df['trade_date'] = pd.to_datetime(df['trade_date'])
# 提取收盘价,以交易日期对齐
df_close = df[['trade_date', 'close']].rename(columns={'close': f'{market}_close'})
if aligned_df.empty:
aligned_df = df_close
else:
# 使用外连接(Outer Join)保留所有交易日
aligned_df = pd.merge(aligned_df, df_close, on='trade_date', how='outer')
else:
print(f"[警告] {symbol} 返回数据为空")
except Exception as e:
print(f"[错误] 获取 {symbol} 失败: {e}")
# 按时间排序并前向填充缺失值(解决不同市场假期不一致问题)
if not aligned_df.empty:
aligned_df = aligned_df.sort_values('trade_date').ffill()
return aligned_df
if __name__ == "__main__":
aligned_portfolio = fetch_and_align_global_assets()
print("\n--- 跨市场多资产收盘价对齐结果 ---")
print(aligned_portfolio.tail())
DataFrame 输出
--- 跨市场多资产收盘价对齐结果 ---
trade_date A_Share_close HK_Stock_close US_Stock_close
101 2026-07-20 1327.50 477.8 326.59
102 2026-07-21 1308.00 474.0 327.74
103 2026-07-22 1305.00 440.6 325.89
104 2026-07-23 1292.01 445.2 321.66
105 2026-07-24 1297.41 434.6 333.02
Cursor / DeepSeek AI 编程助手专享 Prompt
我需要使用 Python 编写一个跨市场 ETF 轮动选股策略。
请写一段基于 `quantdash` SDK 的代码,导入客户端类(from quantdash import QuantDash; qd = QuantDash(api_key="sk_xxxxx")),分别获取 SPY.US、02800.HK 和 510300.SH 过去 30 天的前复权日 K 线(period="1d", adjust="qfq", to_dataframe=True)。提取收盘价并合并成一个以 trade_date 为对齐标准的 DataFrame。
总结与“三步走”落地指引
- 第一步:获取完整源码。访问官方开源托管仓库获取该跨市场时序对齐的完整代码模板:https://github.com/quantdash-net/QuantDash(请认准 quantdash-net)。
- 第二步:申请专属密钥。注册获取您的个人 API Key:https://quantdash.net/。
- 第三步:查阅开发细节。更多有关美股和港股高频行情接口参数请参考:https://docs.quantdash.net/。

