📊 市场数据
MAF OA 系统中参考数据和工具定义的指南。
快速概览
系统将市场数据组织成两个层次:
- 🏷️ 市场数据产品 (MDP) — 主参考数据 (例如,"LNG 期货"、"汇丰股票")
- 📍 市场数据工具 (MDI) — 具体合约实例 (例如,"LNG 12月-2025"、"汇丰看涨期权 105.50")
两者都可来自 内部数据库 或 外部源 (MAF、供应商)
1️⃣ 市场数据产品 (MDP)
什么是 MDP?
市场数据产品 是定义可交易工具类别的 主记录:
- 一旦创建则不可变
- 由
mdp_key唯一标识 (例如,LNG_JKM) - 包括静态属性:交易所、货币、资产类别、类型
- 可引用外部产品 ID 用于集成 (例如,MAF 的
10123)
关键字段
| 字段 | 类型 | 示例 | 目的 |
|---|---|---|---|
mdp_key | 字符串 | LNG_JKM | 稳定的、人类可读的代码 |
exchange | 字符串 | ICE, SGX | 主要交易场所 |
name | 字符串 | JKM LNG 期货 | 显示名称 |
asset_class | 枚举 | COMMODITY, EQUITY, FX, RATE 等 | 资产类别 |
market_data_type | 枚举 | SPOT, FUTURE, FORWARD, OPTION 等 | 工具类型 |
description | 字符串 | 前月 LNG | 可选备注 |
base_unit | 枚举 | MMBTU, BBL, MT | 计价单位 |
base_currency | 枚举 | USD, EUR, CNY | 计价货币 |
source | 枚举 | MAF | 源系统 |
source_market_data_product_id | 字符串 | JKM_FUT_001 | 外部系统 ID |
option_style | 枚举 | EUROPEAN, AMERICAN | 期权类型 (如适用) |
underlying_mdp_id | 整数 | 1 | 父产品 (用于衍生品) |
示例
📈 LNG 期货
{
"mdp_key": "LNG_JKM",
"name": "JKM LNG 期货",
"exchange": "ICE",
"asset_class": "COMMODITY",
"market_data_type": "FUTURE",
"base_unit": "MMBTU",
"base_currency": "USD",
"source": "MAF",
"source_market_data_product_id": "JKM_FUT_001"
}
📊 股票
{
"mdp_key": "EQUITY_700",
"name": "汇丰控股有限公司",
"exchange": "HKEX",
"asset_class": "EQUITY",
"market_data_type": "SPOT",
"base_currency": "HKD"
}
📞 看涨期权 (带标的物)
{
"mdp_key": "FUTURE_OPTION_LNG",
"name": "LNG 期货看涨期权",
"exchange": "ICE",
"asset_class": "COMMODITY",
"market_data_type": "FUTURE_OPTION",
"option_style": "EUROPEAN",
"underlying_mdp_id": 1
}
2️⃣ 市场数据工具 (MDI)
什么是 MDI?
市场数据工具 是绑定到 MDP 的 具体合约实例:
- 一个 MDP → 多个 MDI (例如,一个"LNG 期货"产品 → 2512、2601、2602 等合约)
- 对于 现货/指数产品,MDI 是可选的 (与 MDP 1:1)
- 对于 衍生品,指定合约期限、执行价、看涨/看跌
关键字段
| 字段 | 类型 | 示例 | 目的 |
|---|---|---|---|
mdp_id | 整数 | 1 | 链接到父市场数据产品 |
contract_term | 字符串 | 2512, 241221 | 合约到期 (YYMM 或 YYMMDD) |
cp | 枚举 | C, P | 看涨或看跌 (期权仅) |
strike_price | 字符串 | 105.50 | 执行价 (期权仅) |
示例
🔄 期货合约 (2025年12月)
{
"mdp_id": 1,
"contract_term": "2512"
}
📊 期权合约 (看涨价格 105.50)
{
"mdp_id": 10,
"contract_term": "2412",
"cp": "C",
"strike_price": "105.50"
}
🔗 API 端点
市场数据产品
| 方法 | 端点 | 目的 |
|---|---|---|
| POST | /marketdata/product/insert | 创建新产品 |
| POST | /marketdata/product/select | 使用过滤器查询 |
| PUT | /marketdata/product/update | 更新现有产品 |
| DELETE | /marketdata/product/delete | 删除产品 |
市场数据工具
| 方法 | 端点 | 目的 |
|---|---|---|
| POST | /marketdata/instrument/insert | 创建新工具 |
| POST | /marketdata/instrument/select | 查询工具 |
| DELETE | /marketdata/instrument/delete | 删除工具 |
注意: 插入时,工具会根据其链接产品的
market_data_type进行验证。
📋 关键指南
对于数据消费者
- 按键查询 — 使用
mdp_key(例如,LNG_JKM) 进行确定性查询 - 解析工具 — 对于期权/期货,指定
contract_term、cp、strike_price - 外部映射 — 针对 MAF 集成,将您的产品 ID 与
source_market_data_product_id匹配 - 租户范围 — 所有查询都按您的已认证
tenant_id范围划分
对于数据维护者
- ✅ 检查唯一性 — 插入前防止重复
mdp_key值 - ✅ 引用验证 — 确保
underlying_mdp_id指向有效 MDP (用于衍生品) - ✅ 类型强制 — 仅对
*_OPTION类型设置option_style - ✅ 源协调 — 使外部供应商的 MAF 映射保持同步
📊 数据生命周期
| 事件 | 频率 | 备注 |
|---|---|---|
| 创建 MDP | 按需 | 创建后不可变 |
| 更新 MDP | 罕见 | 仅用于主数据更正 |
| 创建 MDI | 每周/每月 | 新合约期限/执行价 |
| 删除 | 临时 | 为合规性记录审计 |
所有更改跟踪包括:tenant_id、created_by、updated_by、created_at、updated_at
🔄 源和刷新
| 源 | 存储 | 刷新 | 使用场景 |
|---|---|---|---|
| 内部 | 数据库 | 按需 | 监管、审计记录 |
| 外部 (MAF) | 供应商源 | 每周/每日 | 市场比较、对账 |
📚 相关文档
- 市场数据价格 — 日终和实时定价查询
- 代码: 参见
app/model/market_models/中的 Pydantic 模型 - ORM: 参见
app/infra/orm/market_orms/中的数据库架构
❓ 问题?
- 数据问题 → 市场数据团队
- API 问题 → 后端团队
- 权限 → 租户管理员