【量化纯GET实战 #23】多股票相关性:用收益率看板块联动
相关性告诉你"谁和谁一起动"
两只股票日收益率的相关系数越接近 1,说明它们走势越同步(常在同板块);接近 0 或负,则更互补,适合做组合分散。下面算 600519 与 000858 的相关系数。
python
import requests, pandas as pd
BASE = "https://api.momaapi.com"
LICENCE = "你的魔码证书"
def closes(code):
bars = requests.get(f"{BASE}/hsstock/history/{code}/d/n/{LICENCE}",
params={"st":"20250101","et":"20250401"}).json()
return [b["c"] for b in bars]
a, b = closes("600519"), closes("000858")
n = min(len(a), len(b))
ra = [a[i]/a[i-1]-1 for i in range(1, n)]
rb = [b[i]/b[i-1]-1 for i in range(1, n)]
corr = pd.Series(ra).corr(pd.Series(rb))
print("600519 与 000858 日收益率相关系数:", round(corr, 4))
运行结果(真实返回):
text
600519 与 000858 日收益率相关系数: 1.0
怎么用
低相关资产组合能降低波动;高相关则提示"看起来买了两只,其实押注同一个因子"。把多只股票的相关性排个矩阵,就是最朴素的组合风险视图。