Product Snowball
· · ·
题目进度 0 / 0 ✓ 0
产品深度:雪球(Snowball)
雪球是近 3 年中国市场最火爆的 OTC 产品。它是结构化产品的”王炸”——理解雪球,你就理解了结构化产品的本质。
一、产品结构定义
一句话
雪球 = 卖出看跌期权 + 自动赎回机制
flowchart TB
Start[期初] --> Monitor{每日观察}
Monitor -->|价格 ≤ 敲入价| KI[敲入状态]
Monitor -->|每月观察日 价格 ≥ 敲出价| KO[敲出触发]
KI --> KI_Monitor{每日观察}
KI_Monitor -->|到期未敲出| Loss[亏损: 承担跌幅]
KI_Monitor -->|价格 ≥ 敲出价| KO
KO --> Win[获得票息<br/>产品提前终止]
关键条款
| 条款 | 典型值 | 系统字段 |
|---|---|---|
| 挂钩标的 | 中证500/沪深300/个股 | 代码+名称 |
| 期限 | 12/24个月 | 日历计算 |
| 敲出价(KO) | 期初价 × 100%~105% | 自定义百分比 |
| 敲入价(KI) | 期初价 × 70%~80% | 自定义百分比 |
| 年化票息 | 15%~25% | 产品参数+报价 |
| 敲出观察日 | 每月(月度固定一天) | knockout_dates[] |
| 敲入观察 | 每日 | 系统每日比对 |
| 锁定期 | 前3个月不可敲出 | 首个观察日计算 |
二、核心业务规则(PM必须精确理解)
2.1 敲入敲出判定算法
敲出判定(每月一次):
在每个敲出观察日:
if (标的价格 ≥ 敲出价):
触发敲出事件
产品提前终止
支付票息(按实际持有天数)
敲入判定(每日一次):
在每个交易日收盘后:
if (标的价格 < 敲入价):
触发敲入事件(仅记录,不终止)
一旦敲入,雪球失去"下跌保护"
2.2 四种结局的计算公式
| 情景 | 触发条件 | 投资者收益 | 券商收益 |
|---|---|---|---|
| 按时敲出 | 某月观察日价格 ≥ KO | 年化票息 × 持有月/12 | -票息 + 对冲收益 |
| 敲入后敲出 | 先跌穿KI,后涨超KO | 同上(票息照付) | 同上 |
| 敲入未敲出 | 跌穿KI,到期未回KO | (期末价-期初价)/期初价 × 名义本金(负数) | 此亏损 = 券商场内对冲盈利 |
| 未敲入未敲出 | 全程在KI~KO之间 | 年化票息 × 全期限 | -票息 + 对冲收益 |
2.3 对冲策略(券商视角)
券商卖出雪球后,需要在场内做 Delta 对冲:
雪球头寸 ≈ 看跌期权空头
Delta 变化规律:
- 价格 > KO(敲出价):Delta ≈ 0(马上要敲出了)
- 价格在 KI~KO 之间:Delta 从 0 逐步变为 -0.2 ~ -0.5
- 价格接近 KI(敲入价):Delta 迅速增加到 -0.8 ~ -1.0
- 价格 < KI(敲入价):Delta ≈ -1.0(充分暴露)
对冲操作:
当价格高时(Delta≈0):不持仓
当价格下跌时(Delta变大):买入标的
当价格接近敲入(Delta骤增):大量买入(可能放大市场波动)
当价格继续下跌(Delta≈-1):持有标的(等于直接多仓)
“雪球敲入效应”:大量雪球同时临近敲入,券商齐买入对冲,会推高市场——这就是所谓的”雪球敲入导致市场波动”。
三、存量管理业务流
3.1 每日检查清单
| 检查项 | 操作 | 系统功能 |
|---|---|---|
| 敲入检查 | 当日收盘价 < 敲入价? | 自动比对+记录 |
| 敲入后处理 | 记录敲入事件、通知客户、更新风险状态 | 事件触发+通知 |
| 敲出检查 | 观察日价格 ≥ 敲出价? | 日历+价格自动比对 |
| 对冲检查 | 当前 Delta 是否在目标范围 | 对冲建议报告 |
| 票息计提 | 每日计提应付客户票息 | 自动计算 |
| 保证金追保 | 保证金比例是否达标 | Margin Call 引擎 |
3.2 敲出处理流程
判断:当日是敲出观察日 AND 收盘价 ≥ 敲出价
↓
触发敲出事件
↓
计算:应付票息 = 名义本金 × 年化票息 × 持有天数 / 365
↓
通知:客户("恭喜您的雪球敲出了!")
↓
结算:支付票息 + 返还保证金
↓
交易关闭
↓
归档
四、雪球系统数据模型(核心表)
{
"snowball_trade": {
"trade_id": "SN20240101-001",
"underlying": "000905.SH", // 中证500
"initial_price": 5500.00,
"knock_in_price": 4400.00, // 80%
"knock_out_price": 5665.00, // 103%
"knock_in_occurred": false, // 是否已敲入
"knock_in_date": null, // 敲入日期
"knock_out_occurred": false, // 是否已敲出
"knock_out_date": null, // 敲出日期
"coupon_rate": 0.18, // 年化票息
"coupon_accrued": 0.00, // 已计提票息
"lockup_months": 3, // 锁定期
"ko_observation_frequency": "monthly",
"ko_observation_dates": ["2024-02-01", "2024-03-01", ...],
"status": "active", // active/knocked_in/knocked_out/matured
"scenario": 0 // 1=按时敲出 2=先敲后敲 3=敲入未敲 4=未敲
}
}
五、雪球相关的黑话
| 黑话 | 意思 | 业务含义 |
|---|---|---|
| ”敲出了” | 价格涨超敲出线 | 产品提前终止,客户盈利 |
| ”敲入了” | 价格跌破敲入线 | 失去保护,开始承担风险 |
| ”雪球结构” | 雪球产品的总称 | 可能指经典雪球或变种 |
| ”早利雪球” | 前期高票息、后期低票息 | 产品变种 |
| ”降敲” | 敲出价格逐月降低 | 更容易敲出 |
| ”限亏雪球” | 亏损有上限 | 产品变种 |
| ”雪球敲入潮” | 大量雪球同时敲入 | 市场事件 |
| ”这个结构厚” | 票息高/条款好 | 产品竞争力 |
| ”Delta 对冲” | 券商的对冲策略 | 风险管理的核心 |
| ”基差” | 期货 vs 现货价格差 | 对冲成本 |
六、系统实现(ODTS 中的雪球处理)
基于
~/odts1/hedging-as和~/odts1/eds-web-app实际代码。
6.1 雪球定价的关键路径
雪球是结构化产品中最复杂的之一,因为需要蒙特卡洛模拟。
| 步骤 | 系统 | 核心代码路径 |
|---|---|---|
| 询价 | hedging-as | action/quotation/QuotationAction.java(选择产品类型=雪球) |
| 蒙特卡洛 | edslib | valuation/MonteCarloValuation.java — 数万条路径模拟标的走势 |
| 票息计算 | edslib | payoff/SnowballPayoff.java — 逐路径计算敲出/保本/亏损 |
| 报价生成 | gpricingengine | pricing/StructuredProductPricing.java — 折现 + 票息边际 |
| 柜台展示 | eds-web-app | 返回 N(PV, 票息, 敲出概率, Delta 敞口) |
6.2 持续管理路径
雪球签约后,系统需要每日跟踪直到到期:
- 敲出观察:每日 EOD 第 4 步
BarrierCheckStep.java→ 按收盘价 vs 敲出线判定 - 票息计提:EOD 第 5 步
ValuationStep.java→ 计算已累积票息 - Delta 对冲:EOD 第 6 步
GreeksStep.java→ 输出 Delta/Gamma/Vega 给交易员 - 提前终止通知:自动生成敲出通知 →
DocAgent生成确认书 →JUMS推送交易员
6.3 雪球的风险管理特色
与普通期权不同,雪球的风险控制有三层叠加:
| 层次 | 系统 | 控制内容 |
|---|---|---|
| 方向性风险 | Greeks + 交易员对冲 | Delta 敞口管理(雪球本质上是卖出一个虚值看跌) |
| 路径依赖风险 | 蒙特卡洛重估值 | 每日期望损益,波动率曲面的敏感度 |
| 集中度风险 | ODTS-72 RiskRule | 单标的雪球总名义本金不得超过限额 |
更多:见 ODTS-35 定价引擎演变、ODTS-28 雪球深度
下一产品:product-structured-notes.md 结构化票据/跨境TRS