← 返回模块
4.4.3.4beta 可读 · 未来付费校验通过内容版本 2026-05-28

端到端组合构建管线、压力测试与部署

4.4.3 · 实践约束与压力测试 · 量化全流程

某沪深300指增私募的策略部署组组长周一早会带着三份交付物走进风控委员会。PM 刚审批通过一只新主动股票策略,研究组把 4.2 alpha 管线(截面动量 + 质量 + 价值的复合 alpha,样本内 IR 约 0.5)、4.3 因子暴露矩阵 B(Barra 风格 5 个 + 中信一级行业 10 个 + 国家因子)、4.4.2 Barra 风险模型 (Sigma_F, D) 全部交给她;委托合同写明:仅做多、相对沪深300 单名 ±3% 主动权重、相对中信一级行业中性、TE 预算 4% 年化、月度换手 ≤ 20%、月度成本拖累 ≤ 15 bp、主动份额 ≥ 30%、不准杠杆。她今天的任务是把这一整套机件组装成「每次再平衡真在跑」的生产管线,通过 2015 股灾和 2020 新冠的事前压力测试(pre-trade stress test),给交易台出一份干净的换仓单,并生成「合规 / 风控 / PM 三方都签字」的一页式部署报告。这堂课讲的就是她真在做的工作。它把 4.4.1(MV 理论 + Black-Litterman + Ledoit-Wolf)、4.4.2(Barra Sigma = B Sigma_F B' + D + 事前跟踪误差 + VaR / ES + FRTB)、4.4.3 L1(约束 QP)、L2(成本感知)、L3(鲁棒 + 区制)整合成一个端到端运行、能生产机构交付物的再平衡程序。

术语对齐表

本课新增的核心术语,与 data/glossaries/quant-glossary.yaml 标准译名一致:​​压力测试​​(stress test,风控委员会强制的事前情景测试)、​​夏普比率​​(Sharpe ratio,部署清单的关键指标)、​​因子模型​​(factor model,4.4.2 L1 的上游输入)。L1 / L2 / L3 沿用:​​组合优化​​(portfolio optimization)、​​均值方差优化​​(mean-variance optimization)、​​协方差矩阵​​(covariance matrix)、​​因子暴露​​(factor loading)、​​跟踪误差​​(tracking error)、​​Barra 模型​​(Barra model)、​​在险价值​​(value at risk)、​​条件在险价值​​(conditional VaR)。后续讨论统一使用上述标准译名。

七阶段生产管线的标准顺序

下面是 ​Inline-code listing​​,按固定顺序列出生产管线的七个阶段:

stage_1_input_ingestion: load alpha_signal (from 4.2.3), B / Sigma_F / D (from 4.4.2 L1), prices / returns / ADV (from market data), w_prev (from persistence), regime_indicator (VIX for us; CSI 300 cross-sec EWMA for cn)
stage_2_black_litterman_blend: mu_BL = blend(alpha_signal as views, pi = gamma * Sigma_BARRA @ w_B as equilibrium prior, tau = 0.025, Omega = diag(view_var))
stage_3_constraint_construction: long_only + budget + sector_neutral (CITIC for cn / GICS for us) + position_limit ±0.03 + active_share >=0.30 + liquidity 0.10 * ADV + turnover_budget 0.20 + TE_budget SOCP 4% annualised
stage_4_robust_regime_overlay: kappa = sqrt(chi2.ppf(0.95, N)), Sigma_mu = Sigma_BARRA / T_lookback; gamma_regime = regime_aware_overlay(regime_indicator)['gamma']
stage_5_cost_aware_qp_solve: max_w mu_BL @ w - gamma_regime/2 * w @ Sigma_BARRA @ w - kappa * sqrt(w @ Sigma_mu @ w) - c_linear @ abs(w - w_prev) * V_0 - c_q * impact_term * V_0; cvxpy + OSQP / MOSEK
stage_6_pre_trade_risk_report: ex_ante_TE, factor/specific split, top_5 PCTR, top_3 b_a, 95%/99% VaR, 97.5% ES, named-scenario stress (2008 GFC + regional)
stage_7_trade_list_generation: delta_w = w_star - w_prev; per-name notional / direction / participation_rate (= notional / ADV); flag participation > 5% for iceberg / VWAP execution

规则:stages 1-2 prepare inputs; stages 3-5 solve the constrained robust regime-aware cost-aware QP; stages 6-7 produce the deliverables (risk report + trade list)

​阶段 1:输入采集​​。从 4.2.3 信号合成端取已收缩、衰减、横截面 z-score 的 alpha 向量;从 4.4.2 L1 风险模型端取 Barra 暴露矩阵 B、因子协方差 Sigma_F、特异风险对角 D;从行情侧取价格 / 收益 / ADV;从持仓持久化层取上一期实盘权重 w_prev;CN 账户取沪深300 横截面已实现波动 EWMA 作区制指标。逐项校验维度、时间戳、币种。

​阶段 2:Black-Litterman 混合​​。把 alpha 信号当 Bayesian 观点,把均衡隐含收益 π=γΣBARRAwB\pi = \gamma \cdot \Sigma_{\text{BARRA}} \cdot w_B 当先验,tau = 0.025 作先验强度,Omega = diag(view_var) 作观点协方差;Bayesian 混合公式写作

μBL=[(τΣBARRA)1+Ω1]1[(τΣBARRA)1π+Ω1alpha_signal].\mu_{\text{BL}} = \left[(\tau \Sigma_{\text{BARRA}})^{-1} + \Omega^{-1}\right]^{-1} \left[(\tau \Sigma_{\text{BARRA}})^{-1} \pi + \Omega^{-1} \cdot \text{alpha\_signal}\right].

混合得到的 mu_BL 是后验均值——alpha 弱时贴近基准、alpha 强时朝 alpha 倾斜。这是 He-Litterman(1999)对 Black-Litterman(1992)的可计算化版本。

​阶段 3:约束构造​​。按委托合同搭出 L1 的全约束栈:仅做多 w >= 0;预算 1.T @ w == 1;中信一级行业中性 B_sector.T @ (w - w_B) == 0;位限制 cp.abs(w - w_B) <= 0.03;主动份额 0.5 * cp.sum(cp.abs(w - w_B)) >= 0.30;流动性 cp.multiply(w, V_0) <= 0.10 * ADV;换手率预算 cp.norm(w - w_prev, 1) <= 0.20;跟踪误差预算 (w - w_B).T @ Sigma_BARRA @ (w - w_B) <= (0.04/sqrt(12))^2(4% 年化 TE 对应月度的 SOCP 约束)。

​阶段 4:鲁棒 + 区制外壳​​。算 kappa = sqrt(chi2.ppf(0.95, N))Sigma_mu = Sigma_BARRA / T_lookback(L3 Goldfarb-Iyengar 鲁棒修正);调 regime_aware_overlay(regime_indicator) 拿区制条件的 gamma_regimeb_max_regimeTO_max_regime

​阶段 5:成本感知 QP 求解​​。在 cvxpy 里把 L2 的成本项 + L3 的鲁棒修正 + L1 / L2 的约束栈拼成统一目标,QP 走 OSQP、SOCP 走 MOSEK。断言 prob.status == 'optimal',读 w_star = w.value

​阶段 6:事前风险报告​​。从 w_star 算事前 TE sqrt((w_star - w_B).T @ Sigma_BARRA @ (w_star - w_B))、因子 / 特异方差占比、跟踪误差贡献前 5(PCTR)、活跃因子暴露 b_a = B.T @ (w_star - w_B) 的前 3、参数化 95% / 99% VaR、97.5% ES,以及 2015 股灾 / 2020 新冠的「命名情景」(named-scenario)P&L。这些是风控委员会真要看的数字。

​阶段 7:换仓单生成​​。算 delta_w = w_star - w_prev、单名名义金额 delta_w * V_0、方向(买 / 卖)、参与率(notional / ADV);参与率 > 5% 的标的打标签,交易台用冰山单(iceberg)或 VWAP 算法执行。中国 A 股市场还要关注两条额外的执行约束:一是涨跌停板对当日成交的物理限制——挂涨停 / 跌停的标的当日不可能拿到全单成交,需要拆到次日续做;二是大单交易的「特别交易方式」申报——单笔申报数量超过 50 万股或申报金额超过 300 万元的需要通过 SSE / SZSE 的大宗交易平台、协议转让或定向竞价,这条会影响换仓单的拆单策略。中信、华泰、中金的算法交易终端都内置了这两类约束的自动判断,把换仓单丢进 OMS(订单管理系统)后会自动路由。

​阶段 7.5:监管与合规拦截​​。在换仓单送达交易台之前还要过一道合规检查:中基协 AMAC 备案的私募基金需要每日把持仓快照报送给中国证券投资基金业协会的「资产管理业务综合报送平台」(简称「资管综合报送」);沪市 50 万股 / 深市 50 万股以上的单笔交易需要满足证监会「异常交易行为认定标准」;公募基金还要执行「双十规则」与「单一发行人 10%」的硬约束。所有这些都在 OMS 的 pre-trade-check 层做拦截,合规岗每天的 19:00 跑日终核对。

六点部署清单的标准顺序

下面是 ​Inline-code listing​​,按固定顺序列出六点部署检查:

check_1_monotone_improvement: utility(w_star) > utility(w_prev); else RED (alpha or constraint mis-specified)
check_2_constraint_slack: every binding constraint has non-zero shadow price; constraints that never bind => YELLOW (loosen or remove)
check_3_post_cost_sharpe: post_cost_sharpe within 10-20% of paper_sharpe; gap 20-40% => YELLOW (cost model refresh); gap > 40% => RED
check_4_regime_overlay_activation: gamma_t matches current regime_indicator schedule; else YELLOW
check_5_var_es_inside_mandate: VaR_99_1d <= 0.03 * V_0 AND ES_97_5_1d <= 0.04 * V_0; else RED until revised
check_6_frtb_capital: Capital_FRTB = max(ES_today, mean(ES_60d)) * 3.0 stays within institutional envelope; else YELLOW / RED

规则:deploy if all six GREEN; deploy with monitoring if any YELLOW; do not deploy if any RED

​检查 1​ 验证优化器真的改进了上一期。utility(w_star) <= utility(w_prev) 说明 alpha 误判或某条约束过紧——必须排查。​​检查 2​ 看 KKT 影子价格:6 次再平衡都不绑定的约束应该松开或删除——你为复杂度付费却拿不到价值。​​检查 3​ 把纸面 Sharpe 与 L2 事后 Sharpe 调和。20%-40% 的 gap 说明成本模型已老化、需要做事后成本分析(PTA)重标定;> 40% 是硬红灯。​​检查 4​ 验证 L3 区制外壳按调度切换。​​检查 5​ 验证 4.4.2 L3 的 VaR / ES 在委托合同的风险预算内。​​检查 6​ 验证 FRTB 资本耗用(4.4.2 L4)在机构总风险预算内。

事后归因的三类预测误差源

下面是 ​Inline-code listing​​,按固定顺序列出三类预测误差源:

factor_misattribution: regress realised period P&L on ex-ante factor exposures b_a = B.T @ (w - w_B); residual is the non-factor P&L; persistent non-zero residual => stale factor model (B drift)
cost_mismodelling: compare realised trade-by-trade slippage to modelled c_linear @ abs(trade) + c_q * impact_term; persistent under-counting => stale cost model
alpha_decay: compute realised IC of alpha_signal vs realised returns; decaying IC => signal decay or crowding (4.2.3 forward-pointer)

规则:the persistent components of the prediction error trigger a model-refresh workflow

每月再平衡之后 T+1 跑三套对账。​​因子误归因​​(factor misattribution)抓 Barra 因子漂移——B 暴露行每月做截面重拟,残差 P&L 连续 3 月同符号说明 B 矩阵需要重估。​​成本误模化​​(cost mis-modelling)抓 c_linearc_q 标定老化——每季度 PTA 一次。​​Alpha 衰减​​(alpha decay)抓信号退化——实盘 IC 跌穿样本内 IC 的 50% 持续 6 月,这个 alpha 信号要重写或换掉(4.2.3 范畴)。

实现:run_production_pipeline

下面是 ​Fenced​ Python 块,装配端到端管线:

import cvxpy as cp
import numpy as np
import pandas as pd
import scipy.stats

def run_production_pipeline(
    alpha_signal: np.ndarray,
    B: np.ndarray,
    Sigma_F: np.ndarray,
    D: np.ndarray,
    w_prev: np.ndarray,
    w_B: np.ndarray,
    B_sector: np.ndarray,
    prices: pd.DataFrame,
    returns_history: pd.DataFrame,
    ADV: np.ndarray,
    c_linear: np.ndarray,
    c_q: float,
    regime_indicator: float,
    V_0: float,
    tau: float = 0.025,
    confidence_level: float = 0.95,
) -> dict:
    # 七阶段端到端管线。返回 dict 含 w_star、mu_BL、Sigma_BARRA、regime、
    # gamma_regime、risk_report、trade_list、status。
    N = len(alpha_signal)
    # 阶段 2:Black-Litterman 混合。
    Sigma_BARRA = B @ Sigma_F @ B.T + np.diag(D)
    pi = 2.0 * Sigma_BARRA @ w_B
    Omega = np.diag(np.var(returns_history.values, axis=0))
    M = np.linalg.inv(tau * Sigma_BARRA) + np.linalg.inv(Omega)
    mu_BL = np.linalg.solve(M, np.linalg.solve(tau * Sigma_BARRA, pi) + np.linalg.solve(Omega, alpha_signal))
    # 阶段 3 + 4:约束 + 区制。
    from_overlay = regime_aware_overlay(regime_indicator)
    regime = from_overlay['regime']
    gamma_regime = from_overlay['gamma']
    b_max_regime = from_overlay['b_max']
    TO_max_regime = from_overlay['TO_max']
    Sigma_mu = Sigma_BARRA / 60.0
    kappa = float(np.sqrt(scipy.stats.chi2.ppf(confidence_level, N)))
    # 阶段 5:统一鲁棒成本感知 QP 求解。
    w = cp.Variable(N)
    trade = w - w_prev
    Sigma_mu_chol = np.linalg.cholesky(Sigma_mu)
    objective = cp.Maximize(
        mu_BL @ w
        - gamma_regime / 2 * cp.quad_form(w, Sigma_BARRA)
        - kappa * cp.norm(Sigma_mu_chol @ w, 2)
        - c_linear @ cp.abs(trade) * V_0
        - c_q * cp.quad_form(trade, np.diag(1.0 / ADV)) * V_0
    )
    constraints = [
        cp.sum(w) == 1,
        w >= 0,
        B_sector.T @ (w - w_B) == 0,
        cp.abs(w - w_B) <= b_max_regime,
        0.5 * cp.sum(cp.abs(w - w_B)) >= 0.30,
        cp.norm(trade, 1) <= TO_max_regime,
        cp.quad_form(w - w_B, Sigma_BARRA) <= (0.04 / np.sqrt(12)) ** 2,
    ]
    prob = cp.Problem(objective, constraints)
    prob.solve(solver=cp.OSQP)
    assert prob.status == 'optimal', f'solver failed: {prob.status}'
    w_star = w.value
    # 阶段 6:事前风险报告。
    ex_ante_TE = float(np.sqrt((w_star - w_B) @ Sigma_BARRA @ (w_star - w_B)) * np.sqrt(12))
    b_a = B.T @ (w_star - w_B)
    factor_var = float(b_a @ Sigma_F @ b_a)
    total_var = float((w_star - w_B) @ Sigma_BARRA @ (w_star - w_B))
    factor_var_pct = factor_var / max(total_var, 1e-12)
    specific_var_pct = 1.0 - factor_var_pct
    VaR_99 = 2.326 * np.sqrt(total_var) * V_0
    ES_97_5 = 2.338 * np.sqrt(total_var) * V_0
    risk_report = {
        'ex_ante_TE': ex_ante_TE,
        'factor_var_pct': factor_var_pct,
        'specific_var_pct': specific_var_pct,
        'top_3_b_a': dict(zip(np.argsort(-np.abs(b_a))[:3].tolist(), b_a[np.argsort(-np.abs(b_a))[:3]].tolist())),
        'VaR_99': float(VaR_99),
        'ES_97_5': float(ES_97_5),
    }
    # 阶段 7:换仓单。
    delta_w = w_star - w_prev
    trade_list = pd.DataFrame({
        'asset': returns_history.columns,
        'delta_w': delta_w,
        'notional': delta_w * V_0,
        'direction': np.where(delta_w > 0, 'buy', 'sell'),
        'participation_rate': np.abs(delta_w) * V_0 / ADV,
    })
    return {
        'w_star': w_star,
        'mu_BL': mu_BL,
        'Sigma_BARRA': Sigma_BARRA,
        'regime': regime,
        'gamma_regime': gamma_regime,
        'risk_report': risk_report,
        'trade_list': trade_list,
        'status': prob.status,
    }

函数签名、默认值 tau=0.025confidence_level=0.95、返回 dict 的键,与美国版按字节对齐,只有注释翻译。

实现:pre_trade_stress_test

下面是 ​Fenced​ Python 块,实现压力测试程序:

def pre_trade_stress_test(
    production_pipeline_kwargs: dict,
    stress_window_start: str,
    stress_window_end: str,
    factor_returns_history: pd.DataFrame,
) -> dict:
    # 只对因子块做压力;D 不变。
    f_stress = factor_returns_history.loc[stress_window_start:stress_window_end].values
    Sigma_F_stress = np.cov(f_stress, rowvar=False, ddof=1) * 252.0
    B = production_pipeline_kwargs['B']
    D = production_pipeline_kwargs['D']
    Sigma_BARRA_stress = B @ Sigma_F_stress @ B.T + np.diag(D)
    base_out = run_production_pipeline(**production_pipeline_kwargs)
    w_star_base = base_out['w_star']
    stressed_kwargs = dict(production_pipeline_kwargs)
    stressed_kwargs['Sigma_F'] = Sigma_F_stress
    stressed_out = run_production_pipeline(**stressed_kwargs)
    w_star_stress = stressed_out['w_star']
    V_0 = production_pipeline_kwargs['V_0']
    portfolio_shift = float(np.sum(np.abs(w_star_base - w_star_stress)) * V_0)
    top_10_concentration_base = float(np.sort(np.abs(w_star_base))[-10:].sum())
    top_10_concentration_stress = float(np.sort(np.abs(w_star_stress))[-10:].sum())
    concentration_increase = top_10_concentration_stress > top_10_concentration_base
    if portfolio_shift / V_0 < 0.15:
        verdict = 'GREEN (robust to stress)'
    elif concentration_increase:
        verdict = 'RED (concentrates under stress)'
    else:
        verdict = 'YELLOW (de-risks under stress; deployable with monitoring)'
    return {
        'w_star_base': w_star_base,
        'w_star_stress': w_star_stress,
        'portfolio_shift': portfolio_shift,
        'top_10_concentration_base': top_10_concentration_base,
        'top_10_concentration_stress': top_10_concentration_stress,
        'concentration_increase': concentration_increase,
        'verdict': verdict,
    }

函数签名、0.15 的 GREEN 阈值、三个判语标签(GREEN (robust to stress)RED (concentrates under stress)YELLOW (de-risks under stress; deployable with monitoring))、返回 dict 的键,与美国版按字节对齐。压力测试只动因子块、不动 D,反映特异风险对角在不同区制间比 Sigma_F 稳得多;只压因子块是机构标准做法。0.15 阈值是机构经验法则:15% 的组合位移划开了「平滑适应」和「失措恐慌」两种状态。如果优化器在压力下​​增加​​集中度(concentration_increase 触发),那是硬红——意味着约束在错误方向上松开,优化器在市场最不愿意接力的时点反而加大了单名风险。YELLOW 案例(位移大但方向是去风险化)在监控下可接受:优化器在切风险,这正是你想要的,只是幅度大到需要交易台关注执行时点。

中国市场实务上常加跑两个补充情景窗口:​​2015 年 6-7 月股灾​​(2015-06-15 到 2015-08-26)以及 ​2024 年 1 月雪球敲入冲击​​(2024-01-15 到 2024-02-08),前者覆盖千股跌停的极端流动性塌缩,后者覆盖结构化衍生品爆仓引发的中证 500 / 中证 1000 短期断崖。把这两个补充窗口和 2008 GFC + 2020 新冠并列跑,能筛掉只在主危机窗口看上去稳健、但在区域性「自家危机」上脆弱的优化器。cvxportfolio(Boyd 等 2017)是 Stanford 在 GitHub 开源的端到端管线参考实现,头部中国量化私募大多基于这套框架二次开发。

一页式生产部署报告

Formula Explorer

x^2

一页式生产部署报告包含七节。​​(1) 管线配置​​——宇宙规模、基准、委托、行业分类(中信一级)、Barra 模型版本、alpha 信号版本、成本模型标定日期。​​(2) 事前风险​​——ex_ante_TE、VaR_99、ES_97_5、PCTR 前 5、活跃因子暴露 b_a 前 3。​​(3) 换仓单摘要​​——笔数、总名义金额、最大参与率、需冰山 / VWAP 执行的标签清单。​​(4) 事前压力测试结果​​——每个情景窗口的判语。​​(5) 六点部署清单​​——逐点判语 + 整体判语。​​(6) 样本外回测摘要​​——年化 Sharpe、最大回撤、实盘 TE、对账 gap。​​(7) 前瞻日历​​——下次因子模型重拟、成本模型重标定、alpha 信号复审日。风控委员会 5 分钟读完;第 (5) 节全绿、第 (4) 节绿或黄,策略就放行。

压轴练习

Exercise

你是策略部署组组长。你刚拿到生产可用的管线(L1 / L2 / L3 助手加上面定义的 run_production_pipelinepre_trade_stress_test)。PM 已审批通过一只主动股票策略,V_0 = 100,000,000 人民币,宇宙 30 名(30 只 CSI 300 行业龙头),基准 w_B(沪深300 活跃成分股权重归一),委托(仅做多、单名 ±3% 主动权重、相对中信一级行业中性、TE 预算 4%、月度换手 <= 20%月度成本拖累 <= 15 bp)。按以下四项任务装出生产部署报告。(a) 样本内标定——2018-2023(60 月)月度跑管线;报告 (i) 平均月度换手,(ii) 平均月度成本拖累,(iii) 平均实盘 TE 与事前 TE 的对账 gap,(iv) 年化样本内 Sharpe,(v) 样本内最大回撤。(b) 样本外回测——2024-01 到 2024-12(12 月)月度跑管线;报告同样五个指标的样本外版本。(c) 事前压力测试——在最新一次样本外再平衡(2024-12)上,用 (2015-06-15 到 2015-08-26 沪深300 股灾窗口) 和 (2020-02-19 到 2020-03-23 新冠窗口)调用 pre_trade_stress_test;报告每个情景的 portfolio_shift / V_0、压力前后前十大集中度、判语。(d) 六点部署清单——把六项检查跑在样本外管线上,逐点出 green / yellow / red 判语;只要全部 green 则总判 GREEN,任何 yellow 则总判 YELLOW + 监控部署,任何 red 则总判 RED。把结果排成一页式生产部署报告,标题「Production Portfolio Deployment Report — [strategy name] — 2024-12 — V_0 = 100,000,000 RMB」,分节 (1) Pipeline configuration;(2) Ex-ante risk(TE、VaR_99、ES_97_5、PCTR 前 5、b_a 前 3);(3) Trade list summary(笔数、总名义、最大参与率);(4) Pre-trade stress test results;(5) Six-point deployment checklist 逐点判语;(6) OOS backtest summary;(7) Forward calendar(下次因子模型重拟 / 成本模型重标定 / alpha 信号复审)。

提示
把每次再平衡的 w_prev 持久化到下一期,首月冷启动可以用 w_prev = w_B。每月的所有产物都存到 dict[date, dict] 里方便样本内 / 样本外汇总。
提示
对账 gap(实盘 vs 事前 TE)应该控制在 20% 以内;爆掉就说明 4.4.2 L1 的 Sigma_F 老化——把第 (7) 节的「下次因子模型重拟」日期提前。

部署上线的真实节奏

一只新策略从研究端「研发完成」到生产端「正式上线」,头部中国量化私募的典型周期是 6-12 周。第 1-2 周做研究复盘:量化研究院把 alpha 信号、回测代码、风险模型版本号交给策略部署组。第 3-4 周做样本外回测扩展(out-of-sample extension):再延长 12-24 个月的样本外验证,验证 alpha 衰减率与回撤指标在新的 12 个月里仍然稳健。第 5-6 周做压力测试与部署清单:把本课的 pre_trade_stress_test 与六点部署清单全跑一遍,任何 RED 都要打回研究组重做。第 7-8 周做小资金试运行(paper trading 到 small-scale live):先用 1000 万人民币小资金跑一个月,真金白银验证滑点模型、对账机制。第 9-12 周做规模化(scale-up):按 1000 万 → 5000 万 → 1 亿 → 3 亿 → 10 亿的阶梯每周扩 1 倍上限,每次扩容前都要风控委员会重新审议事前压力测试。这是机构产品上线的真实节奏,也是策略部署组组长每年要协调 5-15 次的核心工作流。

桥接 4.5(执行与运营)

阶段 7 产出的换仓单是 4.5.1(执行算法——TWAP / VWAP / Implementation Shortfall / 智能订单路由)与 4.5.2(运营——结算、对账、公司行为、T+1 净值)的输入。这堂课装出来的生产再平衡管线落在「研究(4.2 / 4.3 / 4.4.1 / 4.4.2)」与「执行(4.5)」之间。策略部署组组长这一岗位是整个 4.4 栈的「运营中心」——没有这一岗位,alpha 永远到不了账户。围绕这一岗位的机构基础设施——求解端的 cvxpy / OSQP / MOSEK、数据端的 Tushare / Wind / 万得 / 同花顺 iFinD、风险模型端的开源 Barra 复刻 / 商业 MSCI Barra、合规端的 AMAC / CSRC 报送层——是支撑她从一只策略扩展到二十只的关键。这是每周一向风控委员会出具运营交付物的那把座椅,也是整门「组合构建与风险管理」学科的归宿。到此你已经把那把座椅从头到尾搭好。