跳到主要内容

📊 市场数据

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 进行验证。


📋 关键指南

对于数据消费者

  1. 按键查询 — 使用 mdp_key (例如,LNG_JKM) 进行确定性查询
  2. 解析工具 — 对于期权/期货,指定 contract_termcpstrike_price
  3. 外部映射 — 针对 MAF 集成,将您的产品 ID 与 source_market_data_product_id 匹配
  4. 租户范围 — 所有查询都按您的已认证 tenant_id 范围划分

对于数据维护者

  1. 检查唯一性 — 插入前防止重复 mdp_key
  2. 引用验证 — 确保 underlying_mdp_id 指向有效 MDP (用于衍生品)
  3. 类型强制 — 仅对 *_OPTION 类型设置 option_style
  4. 源协调 — 使外部供应商的 MAF 映射保持同步

📊 数据生命周期

事件频率备注
创建 MDP按需创建后不可变
更新 MDP罕见仅用于主数据更正
创建 MDI每周/每月新合约期限/执行价
删除临时为合规性记录审计

所有更改跟踪包括:tenant_idcreated_byupdated_bycreated_atupdated_at


🔄 源和刷新

存储刷新使用场景
内部数据库按需监管、审计记录
外部 (MAF)供应商源每周/每日市场比较、对账

📚 相关文档

  • 市场数据价格 — 日终和实时定价查询
  • 代码: 参见 app/model/market_models/ 中的 Pydantic 模型
  • ORM: 参见 app/infra/orm/market_orms/ 中的数据库架构

❓ 问题?

  • 数据问题 → 市场数据团队
  • API 问题 → 后端团队
  • 权限 → 租户管理员