FIXML和FpML有什么不同
技术百科
幻夢星雲
发布时间:2025-12-22
浏览: 次 FIXML是FIX协议的XML表达形式,仅转换格式不定义新逻辑;FpML是专为OTC衍生品独立设计的业务建模语言,覆盖全生命周期并严格约束语义。
FIX
ML 和 FpML 都是基于 XML 的金融行业标准,但定位、设计目标和适用场景完全不同,不能互相替代,也不属于同一协议家族。
核心定位不同
FIXML 是 FIX 协议的 XML 表达形式,本质是“FIX 的另一种写法”——它把原本用标签-值(tag=value)格式传输的 FIX 消息,改写成结构清晰、带层级关系的 XML 文档。它不定义新业务逻辑,只是换了一种更易读、易存、易解析的表达方式。
FpML 是独立设计的标记语言,专为场外衍生品(OTC Derivatives)构建,从头定义了合约结构、交易生命周期、风险参数、信用支持附件(CSA)等完整语义。它不是某个协议的“XML 版本”,而是一套业务建模语言。
覆盖的业务范围不同
FIXML 主要用于:
• 订单生命周期的后台延伸:如交易确认(ExecutionReport)、成交分配(AllocationReport)、结算指令(SettlementInstruction)
• 监管报送:向监管机构提交标准化的交易快照(如 MiFID II 的 transaction reporting)
• 系统间异步数据交换:比如交易系统 → 风控系统 → 清算所 → 会计系统
FpML 主要用于:
• 场外利率、外汇、信用、商品类衍生品的全生命周期管理
• 交易前:报价请求(QuoteRequest)、意向书(Indication of Interest)
• 交易中:交易确认(TradeConfirmation)、主协议(ISDA Master Agreement)条款嵌入
• 交易后:估值报告(ValuationReport)、保证金通知(MarginCallNotification)、展期/终止事件
技术设计重点不同
FIXML 强调与 FIX 协议的双向可转换性:一条 FIX 4.4 的 ExecutionReport 消息,可以无损转成 FIXML,也能再还原回去。它依赖 FIX 字典(FIX Dictionary),字段含义完全对齐。
FpML 不绑定任何传输协议,可走 HTTP、MQ、FTP 或嵌入 SWIFT 报文;它用 XSD 模式严格约束业务语义,比如一个 InterestRateSwap 元素必须包含 floatingRate、fixedRate、notionalSchedule 等子结构,这些是业务规则,不是通信约定。
谁在用、为什么选它
券商、做市商、算法交易团队常用 FIXML —— 因为他们已有成熟 FIX 基础设施,只需扩展后台能力,不想重写业务逻辑。
投行、对冲基金、中央对手方(CCP)、托管行更依赖 FpML —— 因为场外衍生品结构复杂、定制化强,需要能精确表达“五年期美元 IRS、含阶梯式浮动利差、按季付息、以 SOFR 为基准、含提前终止条款”的语言,FIXML 做不到这点。
基本上就这些。
# 金融
# 都是
# 也不
# 已有
# 换了
# 只需
# 五年
# 专为
# http
# xml
# 为什么
# 异步
# 事件
# 算法
# 主要用于
# 场外
# swift
# 衍生品
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Python实现图数据库操作_Neo4j核心CRU
- LINUX怎么设置系统语言_LINUX修改中文环境
- php与c语言在嵌入式中有何区别_对比两者在硬件控
- Win11怎么查看局域网电脑_Windows 11
- Python对象比较排序规则_集合使用说明【指导】
- Win11怎么关闭应用权限_Windows11相机
- Win11如何设置电源计划_Win11电源计划优化
- 如何使用Golang实现多重错误处理_Golang
- 获取 PHP 文件最后修改时间的正确方法
- Python数据挖掘进阶教程_分类回归与聚类案例解
- Mac版Final Cut Pro入门_Mac视频
- 如何在 PHP 单元测试中正确模拟带方法的图像处理
- 如何在Golang中处理JSON字段缺失_Gola
- c++怎么使用std::unique实现去重_c+
- c# await 一个已经完成的Task会发生什么
- 如何使用Golang实现跨域请求支持_Golang
- Python异步编程高级项目教程_asyncio协
- 电脑的“网络和共享中心”去哪了_Windows 1
- PHP主流架构怎么集成Redis缓存_配置步骤【方
- Windows10如何更改桌面背景_Win10个性
- 如何在 Go 中可靠地测试含 time.Time
- Windows资源管理器总是卡顿或重启怎么办?(修
- Linux怎么查找死循环进程_Linux系统负载分
- Python抽象类与接口设计_规范说明【指导】
- c++怎么实现大文件的分块读写_c++ 文件指针s
- Windows如何拦截2345弹窗广告_Windo
- MAC怎么解压RAR格式文件_MAC第三方解压工具
- 如何快速验证Golang安装是否成功_运行go v
- 如何用正则与预处理结合精准拦截拼接式垃圾域名
- Windows系统被恶意软件破坏后的恢复策略_错误
- 如何在Golang中实现邮件发送功能_Golang
- Win11玩游戏全屏闪退怎么办_Win11全屏优化
- Win11怎么设置开机问候语_自定义Win11锁屏
- Mac怎么安装软件_Mac安装dmg与pkg文件的
- Win11文件扩展名怎么显示 Win11查看文件后
- 如何在Golang中写入JSON文件_保存结构体数
- Bpmn 2.0的XML文件怎么画流程图
- 如何在Windows上设置闹钟和计时器_系统自带的
- Win10如何更改任务栏高度_Windows10解
- 如何在Golang中处理通道发送接收错误_防止阻塞
- Win11怎么设置麦克风权限_允许应用访问Win1
- php485函数执行慢怎么优化_php485性能提
- Win11如何设置系统语言_Win11系统语言切换
- Win11更新后变慢怎么办_Win11系统更新后卡
- Django 密码修改后会话失效的解决方案
- C#如何使用XPathNavigator高效查询X
- C#如何序列化对象为XML XmlSerializ
- 如何在Golang中写入XML文件_生成符合规范的
- mac怎么退出id_MAC退出iCloud账号与A
- 如何关闭Win10自动更新更新_Win10系统自动

QQ客服