“动量因子”是量化投资中非常经典和常用的因子之一,用来衡量一只股票、行业或指数在过去一段时间内的价格变化趋势,即——涨得多的可能继续涨,跌得多的可能继续跌。
📌 什么是动量因子(Momentum Factor)?
动量因子是指:资产在过去某一时间段内的收益率,用来预测未来表现。
它基于这样一个假设:过去表现好的股票,未来一段时间可能还会表现好(惯性)。
🧮 常见的动量因子公式:
pythonCopyEditmomentum = (当前价格 - N天前价格) / N天前价格
= 收益率 = pct_change(N)
也可以简单写为:
pythonCopyEditmomentum = df['收盘'].pct_change(periods=N)
- N 可以是:20(日动量)、60(季度)、120(半年)、250(一年)
- 也可以用累计收益率表示: pythonCopyEdit
momentum = df['收盘'].iloc[-1] / df['收盘'].iloc[0] - 1
✅ 示例代码(股票/指数动量因子计算):
pythonCopyEditimport akshare as ak
import pandas as pd
# 取某个指数的数据,例如:申万一级行业 - 农林牧渔(801010)
df = ak.sw_index_daily(symbol="801010", start_date="20240101", end_date="20240410")
# 确保日期排序
df.sort_values("日期", inplace=True)
# 计算20日动量(20日收益率)
df["momentum_20"] = df["收盘"].pct_change(periods=20)
# 也可以计算累计收益率(动量强度)
momentum_score = df["收盘"].iloc[-1] / df["收盘"].iloc[-21] - 1
print(f"20日动量因子:{momentum_score:.2%}")
📊 应用场景:
用途 | 示例 |
---|---|
板块轮动 | 比较多个行业过去一个月/季度的动量表现 |
股票选股 | 选出最近涨得最猛的股票 |
动量策略回测 | 多头强势动量,空头弱势动量 |
构建因子组合 | 和其他因子结合,比如价值因子、反转因子等 |
🔁 动量 vs 反转?
策略 | 思路 |
---|---|
动量策略 | 趋势跟随,买强者、卖弱者 |
反转策略 | 均值回复,买弱者、卖强者 |
Leave a Reply