
用 Python 揭秘均值回归策略:你的收益从何而来?
2026年重磅升级已全面落地!欢迎加入专注财经数据与量化投研的【数据科学实战】知识星球!您将获取持续更新的《财经数据宝典》与《量化投研宝典》,双典协同提供系统化指引;星球内含 500 篇以上独有高质量文章,深度覆盖策略开发、因子分析、风险管理等核心领域,内容基本每日更新;同步推出的「量化因子专题教程」系列(含完整可运行代码与实战案例),系统详解因子构建、回测与优化全流程,并实现日更迭代。我们持续扩充独家内容资源,全方位赋能您的投研效率与专业成长。无论您是量化新手还是资深研究者,这里都是助您少走弯路、事半功倍的理想伙伴,携手共探数据驱动的投资未来!
很多量化策略文章看起来很唬人:精美的收益曲线、挑选过的股票代码、看似完美的回测结果……但只要你真的把代码跑一遍,就会发现数据来源不清、时间点错乱、根本没法实盘。
这篇文章整理自 Quant Galore 的最新分享,带来 3 个真正可以跑起来的量化策略,全部使用 Python 实现,数据源自 Alphanume API。每个信号都是 point-in-time (时间点对齐)的,历史数据和实盘看到的完全一致,不存在未来函数。
对正在学 Python 的朋友来说,这是一份难得的实战素材:既能练习 API 调用和数据处理,又能接触真实的量化交易逻辑。
动量因子是股票市场最古老的因子之一。很多新手把动量理解成「最近涨得多的股票」,但横截面动量(Cross-Sectional Momentum)其实是一个相对排名的概念。
你不关心一只股票的绝对涨幅,而是关心它在整个流动性股票池中的排名。
资金流动具有黏性。上个月买入龙头股的基金,这个月大概率还在买;与热门主题(比如半导体、存储芯片)绑定的股票,会在主题持续期内被反复买入。
import requests
# Alphanume 动量指数接口
url = "https://api.alphanume.com/v1/quant-galore-momentum-index"
params = {
"api_key": "your_key_here" # 替换为你的 API Key
}
r = requests.get(url, params=params)
data = r.json()["data"]
# 只取最近一次再平衡的数据
latest_date = max(row["date"] for row in data)
latest_basket = [row for row in data if row["date"] == latest_date]
# 按排名排序
latest_basket.sort(key=lambda x: x["rank"])
# 打印最新 10 只成分股
for row in latest_basket:
print(f"日期: {row['date']} | 排名 {row['rank']}: {row['ticker']}")该策略每月初在首个交易日再平衡,精选 10 只股票等权买入。最近 12 个月的表现:
数据最早可追溯到 2017 年,是一个典型的系统化策略,完全无主观判断。
同日到期的 SPX (标普 500 指数)期权,是美国市场最大的散户波动率交易流。做市商不是猜指数会收在哪里,而是根据期权隐含分布反推出一个区间。
Alphanume 提供的 0-DTE Strike Band 数据集,每天给出 SPX 当天预期运行的上下轨。最常见的交易结构是铁鹰式价差(Iron Condor):
历史胜率约 87.86% (521 胜 / 72 负,共 593 个交易日)。
但卖方不能每天闭眼卖,必须避开大波动日。这时需要加上 Risk Regime (风险状态)过滤器:返回 1 表示风险关闭日,应该空仓观望;返回 0 则可以出手。
import requests
from datetime import datetime
API_KEY = "your_key_here"
today = datetime.now().strftime("%Y-%m-%d")
# 获取今日 SPX 隐含区间
band = requests.get(
"https://api.alphanume.com/v1/spx-0dte-strike-band",
params={"api_key": API_KEY, "date": today}
).json()["data"]
# 获取今日风险状态分类
regime = requests.get(
"https://api.alphanume.com/v1/sp500-risk-regime",
params={"api_key": API_KEY, "date": today}
).json()["data"]
if not band or not regime:
print(f"请求日期: {today}")
print("当前日期暂无数据发布(免费层可能有延迟)")
else:
b = band[0]
r = regime[0]
print(f"请求日期: {today}")
print(f"区间数据日期: {b['date']}")
print(f"风险状态日期: {r['date']}")
print()
# 核心过滤逻辑:风险关闭日不交易
if r["risk_regime"] == 1:
print(f"{r['date']} 为风险关闭日,今日不交易")
else:
print(f"卖出策略:下方卖出看跌 {b['lower_strike']},"
f"上方卖出看涨 {b['upper_strike']}")如果你想反向操作,Alphanume 还提供 Next-Day Movers 接口,用于筛选次日预期大幅波动的个股,适合跨式、宽跨式等 Long Gamma 策略:
import requests
from datetime import datetime
API_KEY = "your_key_here"
today = datetime.now().strftime("%Y-%m-%d")
# 获取次日预期波动较大的股票列表
movers = requests.get(
"https://api.alphanume.com/v1/next-day-movers",
params={"api_key": API_KEY}
).json()["data"]
# 最新一条数据的 return 字段为 None(尚未结算)
candidates = [row for row in movers if row["return"] is None]
if not candidates:
print(f"请求日期: {today}")
print("暂无待结算标的(免费层可能有延迟)")
else:
print(f"请求日期: {today}")
print(f"候选日期: {candidates[0]['date']}")
print()
print("次日预期波动较大的股票列表:")
for row in candidates:
print(f" {row['ticker']}")这其实是一个迷你版的离散度交易(Dispersion Trade):指数卖区间,个股买波动。
美股小盘股提交 S-1 注册声明,意味着公司即将发行新股,这会稀释现有股东的权益。一旦老股东反应过来,就会抛售,股价承压。
这是一个典型的基础设施红利型策略——不是信息不公开,而是处理它的工程成本让大多数人望而却步。
import requests
from datetime import datetime
API_KEY = "your_key_here"
today = datetime.now().strftime("%Y-%m-%d")
# 获取今日的 S-1 增发申报数据
filings = requests.get(
"https://api.alphanume.com/v1/dilution",
params={"api_key": API_KEY, "date": today}
).json()["data"]
# 筛选符合条件的候选标的:
# 1. 确认为稀释性增发
# 2. 非股东转售
# 3. 市值小于 5000 万美元(稀释压力最大的区间)
candidates = [
f for f in filings
if f["dilutive"] == 1
and f["resale"] == 0
and f["market_cap_at_filing"] is not None
and f["market_cap_at_filing"] < 50_000_000
]
if not candidates:
print(f"请求日期: {today}")
print("今日无符合条件的申报(免费层可能有延迟)")
else:
print(f"请求日期: {today}")
print(f"申报日期: {candidates[0]['date']}")
print()
print(f"{'代码':<8} {'稀释':<10} {'市值':>15}")
for c in candidates:
print(f"{c['ticker']:<8} {c['dilutive']:<10} "
f"${c['market_cap_at_filing']:>15,}")根据近期数据:
交易逻辑很简单:标记当日收盘后建仓做空,T+1 开盘卖出,在设定的窗口内平仓即可。
3 个策略,4 个 API 接口,没有一个需要预测模型。
这正是本文最想传递的核心观点:
真正的 Alpha 来自数据和时间点,而不是预测能力。
这些机会并非隐藏在暗处,只是运营上的不便利让大多数人懒得做。而这,恰恰就是 Edge 的所在。
对于学 Python 的朋友,建议你:
记住:代码能跑起来,只是第 1 步;能稳定赚钱,才是真本事。
2026年全面升级已落地!【数据科学实战】知识星球核心权益如下:
星球已沉淀丰富内容生态——涵盖量化文章专题教程库、因子日更系列、高频数据集、PyBroker实战课程、专家深度分享与实时答疑服务。无论您是初探量化的学习者,还是深耕领域的从业者,这里都是助您少走弯路、高效成长的理想平台。诚邀加入,共探数据驱动的投资未来!
好文推荐
1. 用 Python 打造股票预测系统:Transformer 模型教程(一)
2. 用 Python 打造股票预测系统:Transformer 模型教程(二)
3. 用 Python 打造股票预测系统:Transformer 模型教程(三)
4. 用 Python 打造股票预测系统:Transformer 模型教程(完结)
6. YOLO 也能预测股市涨跌?计算机视觉在股票市场预测中的应用
9. Python 量化投资利器:Ridge、Lasso 和 Elastic Net 回归详解
好书推荐