Product Swap
产品深度:收益互换(Equity Swap)
收益互换是券商OTC业务量最大的产品。如果你只能深入理解一个产品,选它。
一、一句话定义
收益互换 = 客户付固定利率 → 券商付标的资产收益
flowchart LR
subgraph 客户
A[支付 LPR+利差<br/>年化] -->|融资成本| B{收益互换}
end
subgraph 券商
C[支付标的涨幅+分红] -->|资产收益| B
end
客户:支付 LPR + 利差(年化)
券商:支付 标的涨幅 + 分红
二、业务规则(PM必须知道的细节)
2.1 资金利率
互换交易中客户向券商支付的融资成本:
| 利率基准 | 适用场景 | 典型加点 |
|---|---|---|
| LPR 1Y | 人民币普通产品 | +100~300bps |
| LPR 5Y | 长期限产品 | +150~350bps |
| SHIBOR 3M | 短期产品 | +80~200bps |
| HIBOR | 港股产品 | +200~400bps |
| SOFR + Spread | 美元产品 | +150~350bps |
系统字段:
funding_rate_type(基准类型)、funding_rate_spread(加点)、funding_rate_formula(计算公式)
2.2 保证金计算
初始保证金 = 名义本金 × 保证金比例
系统字段:
initial_margin_rate(15%~50%)、maintenance_margin_rate(维持追保线,通常初始的 80%)
每日保证金计算:
当前保证金余额 = 初始保证金 + 累计盈亏 - 累计费用
追保触发条件:当前保证金余额 < 名义本金 × 维持保证金比例
追保金额 = 名义本金 × 初始保证金比例 - 当前保证金余额
平仓线(追保未及时补足):
平仓触发:保证金余额 < 名义本金 × 强制平仓比例(通常 10~15%)
平仓动作:券商有权强制平仓客户头寸
系统需求:实时保证金计算、追保触发→通知→跟踪→升级→平仓 全流程
2.3 盯市计算(每日)
当日互换价值 = 名义本金 × (当日标的价格 / 期初标的价格 - 1) - 累计融资成本
融资成本 = 名义本金 × 资金利率 × 计息天数 / 360
PNL分配:
券商赚取:资金利差(客户支付的利率 - 券商融资成本)
客户获得:标的涨跌收益 - 资金成本
2.4 公司行动调整
| 事件 | 调整方式 |
|---|---|
| 现金分红 | 客户应收分红,直接计入互换价值 |
| 送股/转增 | 调整名义本金:× (1+送股比例) |
| 配股 | 调整名义本金和期初价格 |
| 拆股 | 调整份额,期初价格等比调整 |
计算公式:调整后期初价 = 原期初价 × (原流通股数 + 新增股数) / 原流通股数
三、四种主流业务场景
3.1 杠杆配资(占比最大)
| 场景 | 客户出20%保证金,券商配80%资金 |
|---|---|
| 客户收益 | 标的涨跌幅 × 名义本金 - 资金成本 |
| 券商收益 | 资金利差 |
| 风险控制 | 追保、强制平仓 |
3.2 跨境收益互换(Cross-border TRS)
| 场景 | 客户投境外股票,通过互换间接持有 |
|---|---|
| 客户收益 | 港股/美股涨跌 - 资金成本 |
| 券商收益 | 资金利差 + 跨境通道费 |
| 特殊要求 | 外管局额度管理、多币种结算 |
3.3 市值管理
| 场景 | 上市公司股东锁定减持价格 |
|---|---|
| 结构 | 股东→券商支付股息(标的下跌时券商补足) |
| 用途 | 减持规划、融资需求 |
3.4 多空策略
| 场景 | 客户同时持有多头和空头互换 |
|---|---|
| 用途 | 配对交易、市场中性策略 |
四、系统数据模型
{
"swap_trade": {
"trade_id": "TRS20240101-001",
"status": "active", // pending/active/terminated/matured
"counterparty_id": "CUST001",
"underlying": "000300.SH", // 标的代码
"initial_price": 3500.00, // 期初价格
"notional": 100000000.00, // 名义本金
"currency": "CNY",
"funding_rate_type": "LPR1Y",
"funding_rate_spread": 200, // 加点(bps)
"funding_rate_current": 4.35, // 当前资金利率(%)
"initial_margin_rate": 0.20,
"maintenance_margin_rate": 0.16,
"forced_liquidation_rate": 0.10,
"start_date": "2024-01-01",
"end_date": "2024-12-31",
"termination_date": null,
"collateral_current": 25000000.00, // 当前保证金余额
"mtm_value": 3200000.00, // 当前互换价值
"margin_call_amount": 0.00 // 待追保金额
}
}
五、系统功能清单
| 功能 | 说明 | 优先级 |
|---|---|---|
| 交易录入 | 收益互换专用界面,支持键盘快速操作 | P0 |
| 每日盯市 | 自动计算互换价值、盈亏 | P0 |
| 保证金计算 | 初始/维持/追保/平仓线计算 | P0 |
| 追保流程 | Margin Call通知→跟踪→升级→平仓 | P0 |
| 公司行动处理 | 分红/配股/拆股自动调整 | P0 |
| 资金利率管理 | LPR动态跟踪、利率调整 | P0 |
| 到期处理 | 自动到期结算、展期处理 | P1 |
| 提前终止 | 计算终止金额、结算 | P1 |
| 客户对账单 | 每日/每月自动发送 | P1 |
六、收益互换黑话
| 黑话 | 意思 | 系统字段 |
|---|---|---|
| ”今天点了几笔” | 今天做了几笔互换 | 交易计数 |
| ”穿仓了” | 亏损超过保证金 | forced_liquidation |
| ”追保线到了” | 保证金不足需补缴 | margin_call_flag |
| ”提杠杆” | 提高杠杆比例 | initial_margin_rate |
| ”过券” | 通过别的机构做交易 | 通道字段 |
| ”年底额度紧” | 年末授信额度紧张 | credit_limit |
| ”LPR降了” | 贷款利率下调 | funding_rate |
| ”分红到了” | 标的股票发分红 | dividend_amount |
| ”这个票停牌了” | 标的暂停交易 | 公司行动处理 |
| ”套出来” | 通过互换提取资金 | 资金操作 |
七、系统实现(ODTS 中的互换处理)
基于
~/odts1/hedging-as+~/odts1/eds-web-app+~/odyssey/odyssey-cash-manager-service。
7.1 交易簿记路径
| 步骤 | 系统 | 核心代码路径 |
|---|---|---|
| 询价 | hedging-as | action/quotation/QuotationAction.java (productType=SWAP/TRS) |
| 定价 | hedging-as | pricing/SwapPricingService.java — 折现现金流 |
| 前端录入 | new-edsweb | src/views/swap-contract/ (Vue 2 SPA) |
| 合约存储 | hedging-as | ContractSaveService.java → Oracle ODTSDB |
| 对冲指令 | hedging-as | EOD 第 2 步启动对冲订单 → 交易员执行 |
7.2 互换的保证金管理
互换的保证金计算与期权不同——它是基于名义本金的百分比:
| 步骤 | 系统 | 路径 |
|---|---|---|
| 初始保证金 | hedging-as | margin/CalculateInitialMarginService.java |
| 变动保证金 | hedging-as | margin/CalculateVariationMarginService.java — 每日 NY |
| 追保触发 | odyssey-cash-manager-service | MarginCallProcessor.java |
| 资金划转 | odyssey-cash-manager-service → IPMP | MoneyTransferClient.java |
7.3 股票互换(TRS)的特色处理
TRS 需要在系统中处理额外的维度:
- 公司行动:EOD 第 3 步
CorporateActionStep.java— 微调标的物变化(分红、拆分、配股) - 资金端利息:利率基准(LPR/Shibor)每日更新 →
eds-utility日历服务 - 跨境 TRS:QDI/收益互换跨境 → 监管字段映射到
ofareg申报
7.4 信用敏感度 CS01(概念+推导)
注意:
~/odts1源码里没有名为CS01的类(已检索CS01|CreditSpread0 命中)。DV01 由 FIVS 引擎直接返回(见IRSValuation.calIRSnew()的dv01Swap1),而 CS01 在系统里是由”信用利差 shock 1bp”推导的派生指标,并非独立存储字段。
CS01 含义:标的信用利差变动 1bp 时,TRS 价值的美元变化。它只在标的本身是信用债/个券的 TRS(而非指数 TRS)上显著——因为指数 TRS 的融资 leg 利差由 LPR/SHIBOR 决定,不含个券信用风险。
系统里它怎么来:
| 来源 | 路径 / 说明 |
|---|---|
| 融资 leg 的信用利差 | funding_rate_spread(LPR+加点)本身不是信用利差,是券商融资溢价;CS01 针对的是底层个券的信用利差 |
| 推导方式 | 对底层债券/个券的信用利差施加 ±1bp 平移,重跑 SwapPricingService 折现现金流,差额即 CS01 |
| 与 DV01 并列 | DV01(利率曲线 shock)已由 FIVS 给出;CS01(信用利差 shock)需单独 shock,二者共同构成 TRS 的”双 01”敏感度 |
更多:见 Lesson 0003 利率互换(DV01 主场)、Lesson 0004 收益互换、ODTS-62 利率衍生品
下一产品:product-option.md 场外期权深度