当你的量化交易策略从单一的 A 股转向**跨境多资产(如 A/H/美股 对冲、跨市场套利、全球宏观配置)**时,你会一头撞进数据工程中最恶心的“时序对齐”大坑:
今天我们通过硬核的 Python 数据工程实践,聊聊如何利用 QuantDash 规范的多市场行情数据,优雅、安全地解决跨境时序对齐问题。
为了防止在清洗多市场数据时发生逻辑穿透,我们必须遵循以下原则:
我们通过 QuantDash 获取三个市场的龙头股日线,构建一个干净的、无未来函数的全局多资产 DataFrame。
import pandas as pd
import numpy as np
from quantdash import QuantDash
# 初始化客户端
qd = QuantDash(api_key="your_api_key_here")
def get_clean_klines(symbol: str, start: str, end: str) -> pd.DataFrame:
"""
获取指定标的的 K 线,并强制规范时间索引
"""
df = qd.klines.get(
symbol=symbol,
period="1d",
start_time=start,
end_time=end,
adjust="qfq",
to_dataframe=True
)
if df.empty:
return pd.DataFrame()
df["trade_date"] = pd.to_datetime(df["trade_date"])
# 强制将索引设为日期格式
df.set_index("trade_date", inplace=True)
return df[["close"]].rename(columns={"close": f"{symbol}_close"})
# 1. 异步或同步获取三地市场数据
start_date = "2025-01-01"
end_date = "2026-06-30"
sh_data = get_clean_klines("600519.SH", start_date, end_date) # A股
hk_data = get_clean_klines("00700.HK", start_date, end_date) # 港股
us_data = get_clean_klines("AAPL", start_date, end_date) # 美股
# 2. 构建一个完美的“全局标准交易日历”基准
# 这里我们采用“并集法”:只要有一个市场开盘,这一天就是有效交易日
combined_index = sh_data.index.union(hk_data.index).union(us_data.index).sort_values()
# 3. 使用 reindex 强制对齐到全局日历,并进行无特征泄露的安全填充
aligned_df = pd.DataFrame(index=combined_index)
# 合并各市场收盘价
aligned_df = aligned_df.join(sh_data, how="left")
aligned_df = aligned_df.join(hk_data, how="left")
aligned_df = aligned_df.join(us_data, how="left")
# 4. 关键安全步骤:仅能使用 ffill(用上一交易日收盘价填充休市日)
# 严禁使用 bfill 或 interpolate,否则会泄漏未来价格!
aligned_df.ffill(inplace=True)
# 5. 剔除最开始由于没有历史数据产生的 NaN 行
aligned_df.dropna(inplace=True)
# 6. 计算跨市场滚动相关性矩阵 (30日滚动)
rolling_corr = aligned_df["600519.SH_close"].rolling(30).corr(aligned_df["AAPL_close"])
print("--- 跨市场对齐数据集(样本展示) ---")
print(aligned_df.tail(10))
print("\n--- 30日跨市场滚动相关性(A股茅台 vs 美股苹果) ---")
print(rolling_corr.tail(5))很多开发者在处理多市场时序时,花在“脏数据清洗”上的时间占了 80%。如果你的数据接口在返回 A 股时用 date 代表交易日,港股用 DateTime,美股用 timestamp,且由于各地除权除息算法不一致,导致你还要去手工对齐除权因子,这无疑是一场灾难。
QuantDash 在底层通过高度一致的数据清洗管道(Data Pipeline),在云端就把格式统一好。你拿到的就是绝对干净、时间戳规范、前复权计算精准的 Pandas DataFrame,你可以直接把精力聚焦在跨市场统计套利、协整检验(Cointegration Test)等核心策略逻辑上。
如果你的跨境交易系统也在饱受多源数据对齐的折磨,不妨 pip install quantdash,在本地用几行代码验证这种丝滑的对齐方式。
参考文档:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。