Learning
VOL. VII · NO. 160 · OTC Derivatives · 21 JUL 2026

Teach Session

OTC 衍生品 · 21 JUL 2026 · 8 min read · 1,419 words
· · ·

Teach Session — CICC OTC 衍生品系统全景教学

生成时间: 2026-07-21 教学素材: ~/odts1 (EDS 核心) + ~/odyssey (中台微服务) + learning/otc-derivatives/** (82+ 篇文档) 教学方式: 从代码到文档、从文档到概念的双向阅读式教学


一、你要学什么:一张地图

┌──────────────────────────────────────────────────────────────────┐
│                    CICC OTC 衍生品系统全景                        │
│                                                                   │
│  业务层    [产品认知] ──→ [交易流程] ──→ [风险管理] ──→ [合规报告] │
│            │               │              │              │        │
│  代码层    hedgine-as   eds-web-app   risk rule    ofareg + sac  │
│            (定价/对冲)   (核心后端)   (实时拦截)   (监管申报)     │
│                                                                   │
│  学习层    产品6篇 +     05+11+15    15+16+17+   18+19+39        │
│            ODTS-28/30    17/18/21    24/72/73/    /43/52/55      │
│                                         78                       │
│  数据层   Oracle ODTSDB ──→ Dipper/Kafka ──→ PostgreSQL Finalized│
│                                                                   │
│  笔记区   TEACH-SESSION.md  ← 你现在在这里                        │
└──────────────────────────────────────────────────────────────────┘

二、源仓库全景:11 个项目,8 个业务域

A. odts1 — EDS 核心交易系统(Java/Scala)

项目定位学习入口文档
hedging-as对冲与定价应用服务 — 定价引擎、EOD 批处理、风控执行、对冲计算、交易簿记ODTS-05, 15, 18, 35, 78
eds-web-appEDS 后端主服务 — 合约管理、交易录入、审批流、产品配置、交易对手ODTS-34, 05, 72, 79
eds-price-server独立定价服务器 — 30+ 结构化产品定价,独立部署ODTS-35
eds-rm-web风险管理前端 — 风险官使用的 Web 界面ODTS-24, 72
eds-utility工具库 — 日期处理、日历、计算工具06-Code-Map
sac-reportSAC 监管报告 — 向中国证券业协会的衍生品报告ODTS-19, 43
tradedesign / tradedesignapp交易协议/ProtoBuf 中枢 — 定义所有通信协议(2015 年最早启动)ODTS-06, 43

B. odyssey — 中台微服务(Spring Boot 2.x)

项目定位学习入口文档
ofaregOFA 监管申报平台 — 对外字段级别的监管报告ODTS-19, 39, 55
odyssey-report-processing-service报告加工服务 — 从 EDS → OFA 的数据处理和报告生成ODTS-39
odyssey-cash-manager-service资金管理服务 — 保证金追缴指令、资金划转ODTS-16, 53
odyssey-fuxi-auth-web斧溪认证网关 — 用户认证和权限管理ODTS-39
odyssey-internal-gateway内部网关 — 微服务间的路由和负载均衡ODTS-39

C. 外部系统(通过 API/消息队列交互)

系统作用学习入口文档
IPMP(资金管理平台)跨系统资金划转ODTS-53
JUMS(统一消息服务)通知推送(微信/邮件)ODTS-57
PKS(中证报价)向中证报价系统报送交易ODTS-52, 19
Doc Agent(文档生成)自动生成交易确认书等ODTS-55
Dipper/Pulsar生产→分析库数据同步ODTS-56

三、两条学习路径

🅰️ 技术人员路径(从代码出发)

第 1 站:读 ODTS-06 Code Map → 理解代码结构
第 2 站:读 ODTS-25 架构总览 → 看整体布局
第 3 站:读 ODTS-05 交易生命周期 → 从一条交易开始跟踪代码
第 4 站:在 IDE 打开 hedging-as 的 getPrice() → 实际看代码
第 5 站:读 ODTS-15 / 18 → 理解对冲和 EOD
第 6 站:读 ODTS-78 / 72 / 73 → 理解风控体系
第 7 站:读 ODTS-34 / 35 / 39 → 理解系统演进
第 8 站:读产品文档 (product-*.md) → 理解每个产品的定价逻辑

🅱️ 业务人员路径(从业务概念出发)

第 1 站:读 product-option.md, product-swap.md, product-snowball.md → 了解卖什么
第 2 站:读 01-OTC-Derivatives-Overview.md → 行业全景
第 3 站:读 ODTS-05 交易生命周期 → 一笔交易怎么走
第 4 站:读 ODTS-11 交易台如何赚钱 → 理解商业模式
第 5 站:读 ODTS-15 / 16 / 17 → 对冲 + 保证金 + 确认
第 6 站:读 ODTS-19 / 39 → 监管报告
第 7 站:读 ODTS-21 / 71 → 交易日时间线和角色
第 8 站:读 risk-hotspots.md → 了解风险点

四、核心概念教学(5 个必须掌握的概念)

概念 1:簿记 (Booking)

交易员录入交易的那一刻,交易从”口头约定”变成”有约束力的合约”。

  • 系统位置: eds-web-appContractController.javahedging-asContractSaveService.java
  • 文档: ODTS-05 第二阶段
  • 关键代码流: new-edsweb (Vue 2 SPA) → REST API → ContractAction (Struts Action) → hedging-as → Oracle ODTSDB

概念 2:定价引擎 (Pricing Engine)

hedging-aseds-price-server 都是定价引擎,但角色不同:

  • hedging-as: 交易前报价 (real-time quotation),面向销售
  • eds-price-server: 独立服务,支持更复杂的产品定价
  • 核心类: hedging-as/src/com/cicc/pricing/service/PricingService.java
  • 文档: ODTS-35, ODTS-05 第一阶段, ODTS-79
  • 计算方式: Monte Carlo / PDE / Closed-form(取决于产品类型)

概念 3:EOD 批处理 (End-of-Day)

每天收盘后,系统必须在 8 小时内完成:市场数据 → 估值 → Greeks → 保证金 → 报告

  • 系统位置: hedging-as/src/com/cicc/action/eod/EodScheduler.java
  • 文档: ODTS-18
  • 10 个步骤: MarketDataRefresh → Fixing → CorporateAction → BarrierCheck → Valuation → Greeks → Margin → CashMovement → Reporting → Cleanup

概念 4:风险管理三道闸

闸门负责时点文档
规则闸 (RiskRule)“规则允不允许做”成交前,逐笔实时ODTS-72 + 78
额度闸 (CreditLimit)“对手方额度够不够”成交前ODTS-75
保证金闸 (Margin)“保证金够不够”成交后,逐日ODTS-16 + 73

概念 5:数据流三阶段

Oracle ODTSDB (生产) 
    → Dipper/Pulsar/Kafka (消息) 
        → PostgreSQL Finalized (分析/报告)
  • 为什么分开: 分析查询不能影响交易性能
  • 文档: ODTS-45, ODTS-56
  • 同步方式: ProtoBuf (Pulsar通道) + JSON/Kafka (外部通道)

五、文档审核:发现的问题及已修复

已修复

#问题位置修复
1.~undo-tree~ 文件残留otc-derivatives/.01-*.md.~undo-tree~ (3个)已删除 (Emacs 元数据,无内容)
2ODTS-52 和根目录的 ODTS-52-External-Systems.md 重复根目录保留,两个文件内容互补

待后续完善(教学提醒)

#发现建议
1product-option.md 的 Greeks 计算部分偏理论,缺少系统实际实现引用补充 hedging-as 中的 Greeks 计算代码路径
2product-snowball.md 提到系统但未给出代码路径见下方补充
314-Systems-and-Data.md 列出了系统但没有 odyssey 中台项目的细节见下方补充
4slang.md 很全但缺少部分交易台日常用的缩写可补充 “BP”, “DV01”, “CS01” 等
5ODTS 39 (Odyssey微服务) 缺少 ofareg 的字段级报告细节需要深入读 ofareg 代码
6ODTS 55 (Doc Agent) 只描述了外部能力,没有代码映射如有代码库可补充

六、本次教学新增的补充

6.1 产品文档的代码映射补充

详见各个产品文档的更新部分。核心原则:每个产品文档都加入”这在你系统里的什么地方” 一节。

6.2 系统与数据文档的完善

14-Systems-and-Data.md 从原先的系统列表扩展为包含具体代码路径的参考。

6.3 外部系统报告的丰富

ODTS-52-External-Systems.md (根目录) 增加了与 odyssey 微服务的交互细节。


七、下一步学习建议

  1. 立即可做: 在 IDE 中打开 hedging-as,从 PricingService.getPrice() 开始读一个雪球的定价流程
  2. 本周可做: 按照 ODTS-05 的路径,从头到尾跟踪一笔 TRS 交易
  3. 本月可做: 理解 EOD 批处理的全部 10 个步骤,找一个步骤的代码深入读
  4. 进阶: 研究 odyssey-ofareg 的监管字段映射逻辑,理解合规报告怎么做

八、学习检查清单

  • 能说出 CICC 卖哪几种 OTC 衍生品
  • 知道一笔交易从询价到结算经过哪些系统
  • 能指出定价引擎的核心代码在哪里
  • 理解 EOD 批处理为什么必须在 8 小时内完成
  • 能解释风险管理三道闸分别做什么
  • 知道 Oracle → Dipper → PostgreSQL 数据流的作用
  • 能向一个新人解释 “hedging-as SDK” 的概念
  • 能说出 odyssey 里每个微服务的职责

本教学文档基于 ~/odts1/**, ~/odyssey/** 的实际源代码,结合 learning/otc-derivatives/** 的 82+ 篇系统文档生成。