在量化投资的世界里,盈利的来源可以归结为两个核心概念:阿尔法(α) 和 贝塔(β)。理解这两个希腊字母,就理解了量化交易的盈利本质。
什么是贝塔(β)?——市场给予的收益#
贝塔代表系统性风险暴露,通俗地说,就是”跟着市场赚钱”。
贝塔的本质#
假设你买入沪深300指数基金:
- 市场涨5%,你赚5%
- 市场跌5%,你亏5%
- 你的收益 = 市场收益 × 1.0
这就是纯粹的贝塔收益。你承担市场风险,获得市场平均回报。
贝塔的策略实现#
指数增强策略是典型的贝塔+轻度阿尔法策略:
# 指数增强策略示例(简化版)
def index_enhancement_strategy():
# 持仓:80% 指数ETF + 20% 精选个股
portfolio = {
'510300.ETF': 0.80, # 沪深300 ETF
'selected_stocks': 0.20 # 超配低估个股
}
# 目标:跑赢指数 5-10%
target_excess_return = 0.05 # 5% 超额收益python优势:
- 风险可控(跟踪误差有限)
- 容量大(适合大资金)
- 成本较低(换手率低)
劣势:
- 收益受市场波动影响大
- 熊市中难以盈利
什么是阿尔法(α)?——超越市场的智慧#
阿尔法代表超额收益,即”不靠市场,靠策略赚钱”。
阿尔法的本质#
假设今年沪深300跌了10%,但你的策略赚了5%:
- 市场收益 = -10%
- 你的收益 = +5%
- 阿尔法 = 15%(你跑赢市场15%)
阿尔法来源于:
- 信息优势(更快的数据、更深的调研)
- 模型优势(更好的算法、更有效的因子)
- 执行优势(更低的交易成本、更快的成交)
阿尔法的策略类型#
1. 多因子选股(Alpha Model)#
# 多因子模型示例
def multi_factor_model(stock_data):
factors = {
'value': compute_pe_pb(stock_data), # 价值因子
'momentum': compute_12m_return(stock_data), # 动量因子
'quality': compute_roe_growth(stock_data), # 质量因子
'size': compute_market_cap(stock_data) # 市值因子
}
# 综合打分
alpha_score = (
factors['value'] * 0.3 +
factors['momentum'] * 0.3 +
factors['quality'] * 0.2 +
factors['size'] * 0.2
)
return alpha_score # 高分 = 高阿尔法python2. 统计套利(Statistical Arbitrage)#
配对交易是经典的统计套利策略:
# 配对交易示例
def pair_trading(strategy):
# 找到协整配对(如:中国平安 vs 中国太保)
stock_A = '601318.SH' # 中国平安
stock_B = '601601.SH' # 中国太保
# 计算价差(Spread)
spread = price_A - hedge_ratio * price_B
# 当价差偏离均值时交易
if spread > mean_spread + 2 * std_spread:
sell(stock_A) # 价差过大,做空A
buy(stock_B) # 做多B
elif spread < mean_spread - 2 * std_spread:
buy(stock_A) # 价差过小,做多A
sell(stock_B) # 做空Bpython3. 机器学习预测(ML Alpha)#
# LSTM 预测下一期收益
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
def build_lstm_model(input_shape):
model = Sequential([
LSTM(64, input_shape=input_shape, return_sequences=True),
LSTM(32),
Dense(16, activation='relu'),
Dense(1) # 输出:预期收益
])
model.compile(optimizer='adam', loss='mse')
return model
# 训练模型
model = build_lstm_model((lookback_days, n_features))
model.fit(X_train, y_train, epochs=50, batch_size=32)
# 预测阿尔法
predicted_alpha = model.predict(X_test)python如何获取贝塔收益?#
工具与平台#
| 工具/平台 | 用途 | 适用场景 |
|---|---|---|
| 聚宽 (JoinQuant) | 指数增强回测 | 因子研究、策略验证 |
| 优矿 (Uqer) | 风险模型 | 组合优化、风险归因 |
| Tushare | 指数数据 | 获取沪深300、中证500等 |
| Backtrader | 自定义回测 | 复杂指数增强策略 |
实战步骤#
- 选择基准指数(如沪深300)
- 构建组合(指数ETF + 优化个股)
- 控制跟踪误差(信息比率 IR > 0.5)
- 定期再平衡(月度/季度)
# 简化的指数增强回测框架
import backtrader as bt
class IndexEnhancementStrategy(bt.Strategy):
def __init__(self):
self.index_etf = self.datas[0] # 指数ETF
self.stock_pool = self.datas[1:] # 个股池
def next(self):
# 1. 计算指数权重(80%)
index_weight = 0.80
# 2. 选股(20%)
selected_stocks = select_top_stocks(
self.stock_pool,
n=10, # 选10只
factor='alpha_score'
)
# 3. 再平衡
self.rebalance_portfolio(index_weight, selected_stocks)python如何获取阿尔法收益?#
阿尔法的三大来源#
1. 因子溢价(Factor Premium)#
价值因子:低PE、低PB的股票长期跑赢
# 价值因子策略
value_stocks = get_stocks_by_percentile('pe_ratio', 0, 20) # 最低的20%
portfolio = equal_weight(value_stocks)python动量因子:过去涨的继续涨
# 动量因子策略
momentum_stocks = get_stocks_by_return(period='12M', top=20) # 过去一年涨幅前20%
portfolio = equal_weight(momentum_stocks)python2. 事件驱动(Event Driven)#
财报事件:业绩超预期后的价格漂移
# 财报超预期策略
for stock in all_stocks:
earnings_surprise = actual_eps - consensus_eps
if earnings_surprise > 0.1: # 超预期10%
buy(stock, weight=0.05)python高管增持:内部人买入是强信号
# 跟踪高管增减持
for insider_trade in get_insider_trades():
if insider_trade.type == 'BUY' and insider_trade.amount > 1e6:
buy(insider_trade.stock, weight=0.03)python3. 市场微观结构(Market Microstructure)#
反转效应:短期超跌反弹
# 反转策略
oversold_stocks = get_stocks_by_rsi(period=14, threshold=30) # RSI < 30
portfolio = equal_weight(oversold_stocks)python成交量异动:放量突破
# 成交量突破策略
for stock in all_stocks:
volume_ratio = current_volume / avg_volume_20d
if volume_ratio > 2.0 and price_change > 0.03:
buy(stock, weight=0.02)python机器学习挖掘阿尔法#
随机森林选股:
from sklearn.ensemble import RandomForestRegressor
# 特征工程
features = [
'pe_ratio', 'pb_ratio', 'roe', 'market_cap',
'12m_return', 'volatility', 'volume_change',
'rsi_14', 'macd', 'boll_position'
]
X = stock_data[features]
y = stock_data['next_20d_return'] # 标签:未来20日收益率
# 训练模型
model = RandomForestRegressor(n_estimators=100, max_depth=10)
model.fit(X, y)
# 预测阿尔法
predicted_alpha = model.predict(X_test)pythonLSTM 时序预测:
# 使用深度学习捕捉非线性模式
model = Sequential([
LSTM(128, input_shape=(lookback, n_features), return_sequences=True),
Dropout(0.2),
LSTM(64),
Dropout(0.2),
Dense(32, activation='relu'),
Dense(1) # 输出:预期收益
])python风险管理:保护你的阿尔法#
1. 止损策略#
# 移动止损
highest_price = max(historical_prices)
stop_loss_price = highest_price * 0.90 # 回撤10%止损
if current_price < stop_loss_price:
sell(position)python2. 仓位管理#
凯利公式(Kelly Criterion):
def kelly_position_size(win_rate, win_loss_ratio):
kelly = win_rate - (1 - win_rate) / win_loss_ratio
return kelly * 0.5 # 半凯利(更保守)python风险平价(Risk Parity):
# 使每个因子的风险贡献相等
def risk_parity_weights(cov_matrix):
n = cov_matrix.shape[0]
weights = np.ones(n) / n
# 迭代优化
for _ in range(100):
portfolio_var = weights.T @ cov_matrix @ weights
marginal_risk = cov_matrix @ weights / np.sqrt(portfolio_var)
weights = 1 / marginal_risk # 反比于边际风险
weights /= weights.sum()
return weightspython3. 最大回撤控制#
# 动态仓位调整
max_drawdown = compute_max_drawdown(portfolio_value)
if max_drawdown < -0.15: # 回撤超过15%
reduce_position_to(0.5) # 减仓至50%python实盘部署:从回测到交易#
1. 交易接口#
vnpy(开源量化交易平台):
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy_ctastrategy import CtaTemplate
class MyAlphaStrategy(CtaTemplate):
def __init__(self, cta_engine, strategy_name, vt_symbol, setting):
super().__init__(cta_engine, strategy_name, vt_symbol, setting)
def on_bar(self, bar):
# 阿尔法信号
alpha_signal = compute_alpha(bar)
if alpha_signal > 0.5:
self.buy(bar.close_price, 1)
elif alpha_signal < -0.5:
self.short(bar.close_price, 1)python2. 订单管理#
# 智能订单路由(SOR)
def smart_order_routing(order):
# 选择最优交易所/流动性池
venues = ['SH', 'SZ', 'HK']
best_venue = min(venues, key=lambda v: get_spread(v))
send_order(order, venue=best_venue)python3. 实时监控#
# 监控阿尔法衰减
alpha_decay = compute_alpha_decay(predicted_alpha, realized_alpha)
if alpha_decay > 0.3: # 阿尔法衰减30%
alert('Alpha decay detected! Model needs retraining.')python总结:量化盈利的铁三角#
量化盈利 = 贝塔 × 市场风险暴露 + 阿尔法 × 策略能力 - 交易成本plaintext成功量化的关键:
- 贝塔为基础:获取市场平均收益
- 阿尔法为核心:持续挖掘超额收益
- 风控为保障:保护资本,活得更久
下一步行动:
- 学习Backtrader搭建回测框架
- 研究Fama-French多因子模型
- 实践配对交易和机器学习策略
- 模拟盘验证至少3个月再上实盘
记住:阿尔法永远不会消失,只会转移。持续学习,保持迭代,才是量化交易的长久之道。
参考资料:
- Fama, E. F., & French, K. R. (1993). Common risk factors in the returns on stocks and bonds.
- Jegadeesh, N., & Titman, S. (1993). Returns to buying winners and selling losers.
- 聚宽学院:多因子选股模型实战
- vnpy文档:实盘交易系统搭建

阿尔法与贝塔的关系:贝塔是市场给的,阿尔法是自己挣的

多因子模型:通过多个维度捕捉阿尔法