Betting Against Beta — Đặt Cược Ngược Beta
Tác giả: Andrea Frazzini, Lasse Heje Pedersen (2014) Nguồn: Journal of Financial Economics, Vol. 111, No. 1 Tag:
mới:2026-05-16#low-beta#factor#leverage-constraint
Nội dung chính (Core Concept)
Theo CAPM, lợi nhuận kỳ vọng tỉ lệ thuận với beta — cổ phiếu beta cao phải có return cao. Nhưng thực tế cho thấy điều ngược lại: Security Market Line (SML) phẳng hơn CAPM dự đoán — high-beta stocks underperform, low-beta stocks outperform sau khi điều chỉnh rủi ro.
Frazzini & Pedersen giải thích hiện tượng này bằng leverage constraint: nhiều nhà đầu tư (mutual fund, retail) không thể vay đòn bẩy để khuếch đại tỷ suất sinh lợi của cổ phiếu thanh khoản tốt nhưng low-beta. Thay vào đó, họ "với" lên cổ phiếu high-beta để có exposure thị trường cao. Hệ quả: high-beta bị overpriced, low-beta bị underpriced.
Tác giả xây dựng nhân tố BAB (Betting Against Beta):
- Long danh mục low-beta (gia trọng theo
1/β), leverage lên để β = 1. - Short danh mục high-beta (gia trọng theo
1/β), deleverage xuống để β = 1. - BAB return = R_low_long - R_high_short.
Kết quả: BAB có Sharpe ratio ≈ 0.78 trên US equities 1926-2012, vượt xa Sharpe của market (≈0.4), value (≈0.4), momentum (≈0.5). BAB hoạt động trên 20 quốc gia, trên Treasury bonds, credit bonds, futures — universal.
Ý tưởng chính cho giao dịch (Key Trading Insight)
BAB là anomaly có cơ sở behavioral/institutional vững chắc — không phải data mining. Insight: khi đầu tư có constraint (không leverage được), rủi ro bị mispriced ở những cổ phiếu cực đoan. Smart money có thể arbitrage bằng cách take leveraged position trên low-vol, low-beta names.
Application beyond stocks: BAB-style works trên futures cross-asset (long low-vol commodities, short high-vol commodities, vol-target both), FX (long low-yield currencies leveraged, short high-yield), bond curve (long short-duration leveraged, short long-duration deleveraged).
Ứng dụng trên VN30F
Single-asset VN30F không thể chạy BAB trực tiếp (cần cross-section). Nhưng có 3 application:
- Cross-section trong VN30 stocks: Tính beta 60-day của 30 cổ phiếu VN30 vs VN-Index, long top-10 low-beta (vd. VNM, VRE, GAS), short top-10 high-beta (CTG, MBB, HPG), volatility-target để market-neutral.
- Vol-targeted exposure: Khi cầm VN30F long position, scale size theo
1/σthay vì size cố định — equivalent risk parity. Khi market vol thấp (low realized σ), tăng size; khi vol cao, giảm size. Mô phỏng "betting against vol". - Beta-neutral pair với stocks: Long basket low-beta VN30 stocks và short VN30F để hedge market exposure, capture low-beta alpha thuần.
Code minh họa (Python)
import pandas as pd
import numpy as np
def build_bab_factor(prices: pd.DataFrame, market_returns: pd.Series, lookback=60):
"""
prices: DataFrame [date, ticker] giá đóng cửa
market_returns: pd.Series returns của thị trường (vd. VN-Index)
"""
returns = prices.pct_change()
# Rolling beta của từng cổ phiếu vs market
def rolling_beta(stock_ret, mkt_ret, window):
cov = stock_ret.rolling(window).cov(mkt_ret)
var = mkt_ret.rolling(window).var()
return cov / var
betas = returns.apply(lambda s: rolling_beta(s, market_returns, lookback))
# Rank-based weights: w_i ∝ 1/beta_i
ranks = betas.rank(axis=1)
n = ranks.notna().sum(axis=1)
median_rank = (n + 1) / 2
# Long low-beta (rank < median), short high-beta (rank > median)
w_long = (-(ranks.sub(median_rank, axis=0))).clip(lower=0)
w_short = (ranks.sub(median_rank, axis=0)).clip(lower=0)
w_long = w_long.div(w_long.sum(axis=1), axis=0)
w_short = w_short.div(w_short.sum(axis=1), axis=0)
# Beta-adjusted leverage
beta_long = (w_long * betas).sum(axis=1)
beta_short = (w_short * betas).sum(axis=1)
bab = (1 / beta_long) * (w_long * returns).sum(axis=1) - \
(1 / beta_short) * (w_short * returns).sum(axis=1)
return babTài liệu tham khảo
- Frazzini, A., & Pedersen, L. H. (2014). Betting against beta. Journal of Financial Economics, 111(1), 1-25.
- Asness, C., Frazzini, A., & Pedersen, L. H. (2019). Quality minus junk. Review of Accounting Studies, 24(1).