📋 章节导航
💰 策略
4.1 定投策略 · Dollar Cost Averaging
白话版:每次固定买 N 股,不管涨跌。涨了买得贵但赚了,跌了买得便宜但套了。最终收益 = 平均成本 vs 当前价格。
核心公式
Cₜ = N · ΣPᵢ (累积成本)
Rₜ = tN · P̄ₜ − Cₜ (浮动收益)
rₜ = Rₜ / Cₜ (收益率)
Rₜ = tN · P̄ₜ − Cₜ (浮动收益)
rₜ = Rₜ / Cₜ (收益率)
关键结论:宁德时代期间涨 25.86%,但日定投收益仅 5.56%。因为高点也买了。定投不是为了收益最大化,而是纪律性 + 平滑波动。
核心代码
Python
import numpy as np import pandas as pd N = 100 # 每次买 100 股 cost_each = N * price # 每次花费 total_cost = cost_each.cumsum() # 累积成本 Cₜ shares = (N * ones).cumsum() # 累积持仓数量 mv = shares * price # 当前市值 profit = mv - total_cost # 浮动盈亏 Rₜ ret = profit / total_cost # 收益率 rₜ
⚡ 要点:累计持仓 → cumsum(),取最终值 → .iloc[-1]
📡 策略
4.2 事件驱动策略 · Event-Driven
白话版:利用重大事件(降准、并购)带来的股价异常波动获利。分为宏观(货币政策)、中观(产业政策)、微观(并购套利)。
📌 示例 1:降准事件
2021-12-06 央行宣布降准 0.5%。T 日后 3-5 个交易日 A 股普涨,但 T+30 日效应消退。
Python
P_new = P_index / P_index.loc['2021-12-06'] # 归一化 # 不同窗口的涨跌幅 R1 = P1.iloc[-1] / P1.iloc[0] - 1 # T-30 to T R2 = P2.iloc[5] / P2.iloc[0] - 1 # T to T+5
关键发现:降准对股市的拉动效应随 时间推移逐步消退,获利周期很短。创业板/科创 50 波动 > 上证/深证。
📌 示例 2:并购套利 — AMD 收购 Xilinx
2020-10-27 ~ 2022-02-14,对冲基金做空 AMD、做多 XLNX(按 1:1.7234 换股比例)。
Rₜ = −NA·(PtA − P0A) + NB·(PtB − P0B)
Python
N_AMD = 1.7234e5 N_XLNX = 1e5 profit_AMD = -N_AMD * (P_AMD - P_AMD.iloc[0]) # 空头 profit_XLNX = N_XLNX * (P_XLNX - P_XLNX.iloc[0]) # 多头 profit = profit_AMD + profit_XLNX
关键教训:328 个交易日中 >75% 的交易日亏损,最大浮亏超 400 万美元。并购套利绝非轻松盈利——能否完成并购有极大不确定性。
⚖️ 策略
4.3 多空头策略 · Long-Short Strategy
白话版:同一行业的两只股票,股价比值会在一个区间波动。比值高时做空贵的、做多便宜的,等比值回归。
案例:中信证券 vs 海通证券,股价比值在 2.0 ~ 2.2 区间震荡。
比值 < 2.0 → 买入中信、做空海通;比值 > 2.2 → 做空中信、买入海通。
Rₜ = NA·(PtA − P0A) − NB·(PtB − P0B) (做多 A + 做空 B)
Python
N_citics = 1e6 # 买入 100 万股中信 N_htsec = 1e6 # 做空 100 万股海通 profit = N_citics * (P_citics - P0_citics) \ - N_htsec * (P_htsec - P0_htsec)
🔬 β 中性调整
简单 1:1 做多/做空没有消除系统性风险。需要按 β 调整:
NA·βA = NB·βB → NB = NA·βA / βB
Python
import statsmodels.api as sm # 计算 β model = sm.OLS(endog=R_stock, exog=R_market_addcons) result = model.fit() beta = result.params[-1] # 调整后做空数量 N_htsec_new = N_citics * beta_citics / beta_htsec # → 做空 138.8 万股海通(原来 100 万股)
关键结论:β 中性调整后策略收益改善,日最高收益 ~11%,日最大亏损从 >3% 收窄至 <1%。
🌐 策略
4.4 跨市场套利 · A/H Share Arbitrage
白话版:同一公司在 A 股和 H 股上市,两个市场的价格比在合理范围波动。偏离了就做多便宜的、做空贵的。
案例:比亚迪 A/H 比价在 1.2 ~ 1.4 箱体震荡。
比价 > 1.4 → 做空 A 股 + 做多 H 股;比价 < 1.2 → 做多 A 股 + 做空 H 股。
PRₜ = PtA / (PtB × E) (E = 汇率,如港币/人民币)
Python
PR = P_A / (P_H * FX) # A/H 比价 N = 5e5 # 50 万股 profit_A = -N * (P_A - P0_A) # 做空 A 股 profit_H = N * (P_H - P0_H) * FX # 做多 H 股(汇率折算) profit = profit_A + profit_H # 回测:最高收益 ~20%(3 个月) # 实战:不到 2 个月最高 19%
关键结论:短期内收益可观(2 个月 ~19%),但拉长至 2 个月以上 大概率亏损(最大 >15%)。何时退出比何时进入更重要。
📏 绩效评估
4.5 绩效评估 · 5 大指标
核心问题:诺安新经济(累计 61.28%)vs 工银创新动力(累计 46.19%)——光看收益,诺安完胜。
但如果考虑风险调整后呢?
夏普比率
(Rₚ − Rf) / σₚ
每单位总风险的超额收益
索提诺比率
(Rₚ − Rf) / σd
只考虑下行风险
特雷诺比率
(Rₚ − Rf) / β
每单位系统性风险的超额收益
卡玛比率
Rₚ / MDD
每单位最大回撤的收益
信息比率
(Rₚ − Rb) / TE
每单位主动管理风险的超额收益
📊 4 只基金对比(2020-2022)
| 指标 | 诺安新经济 | 华宝品质 | 国寿安保 | ⭐工银创新 |
|---|---|---|---|---|
| 累计收益 | 61.28% | 58.99% | 48.69% | 46.19% |
| 夏普 | 0.5888 (2) | 0.5756 (3) | 0.5430 (4) | 0.7522 (1) |
| 索提诺 | 0.5596 (2) | 0.5391 (3) | 0.5072 (4) | 0.7072 (1) |
| 特雷诺 | 0.1426 (3) | 0.1406 (4) | 0.1504 (2) | 0.1902 (1) |
| 卡玛 | 0.5693 (3) | 0.5794 (2) | 0.4389 (4) | 0.9793 (1) |
| 信息比 | 1.4336 (1) | 1.3809 (2) | 1.0482 (4) | 1.3046 (3) |
核心认知:收益最高的诺安(61%)风险调整后表现并不出色。工银创新动力收益最低(46%)但 4/5 指标排名第 1——稳健才是长期赢家。
教训:只看收益率买基金 = 只看长相不看性格。
教训:只看收益率买基金 = 只看长相不看性格。
Python
# 夏普比率自定义函数(仅 3 行核心) def SR(Rp, Rf, Vp): return (Rp - Rf) / Vp # 计算年化收益率和波动率 R_mean = R_fund.mean() * 252 # 年化 Sigma = R_fund.std() * np.sqrt(252) # 年化 # 最大回撤率(双重循环) def Max_DD(data): N = len(data) DD = np.zeros((N-1, N-1)) for i in range(N-1): Pi = data.iloc[i] for j in range(i+1, N): DD[i, j-1] = (Pi - data.iloc[j]) / Pi return np.max(DD)
🔍 业绩归因
4.6 Brinson 模型 · 业绩归因
白话版:基金经理赚的钱,到底是因为选对了行业(配置)还是选对了股票(选择)?Brinson 模型把超额收益拆成 3 份。
配置收益
AR = Σ(wᵢᵖ − wᵢᵇ)·Rᵢᵇ
权重调整带来的收益
选择收益
SR = Σ(Rᵢᵖ − Rᵢᵇ)·wᵢᵇ
选股带来的收益
交互收益
IR = Σ(wᵢᵖ−wᵢᵇ)·(Rᵢᵖ−Rᵢᵇ)
配置与选股的协同
超额收益 ER = 配置收益 AR + 选择收益 SR + 交互收益 IR
📌 案例:D 组合 vs B 组合(基准)
| 来源 | 金额 | 占比 |
|---|---|---|
| 超额收益 | 18.17% | 100% |
| 其中:配置收益 | 6.11% | 33.6% |
| 其中:选择收益 | 12.08% | 66.4% |
| 其中:交互收益 | −0.02% | −0.1% |
Python
def Brinson_Model(Wp, Wb, Rp, Rb, types): """Brinson 归因分析""" if types == 'AR': # 配置收益 return np.sum((Wp - Wb) * Rb) elif types == 'SR': # 选择收益 return np.sum((Rp - Rb) * Wb) else: # 交互收益 return np.sum((Wp - Wb) * (Rp - Rb)) # 使用 AR = Brinson_Model(Wp, Wb, Rp, Rb, 'AR') SR = Brinson_Model(Wp, Wb, Rp, Rb, 'SR') IR = Brinson_Model(Wp, Wb, Rp, Rb, 'IR')
核心发现:全年来看,选择收益贡献最大(选股比调权重重要得多),交互收益最小。
实战含义:大部分超额收益来自选股能力,而非仓位管理。
实战含义:大部分超额收益来自选股能力,而非仓位管理。
Python 金融风险管理 · 应用卷 Ch04
生成日期:2026-05-26 | Cloudflare Pages 部署
生成日期:2026-05-26 | Cloudflare Pages 部署