`
囧囧有神
  • 浏览: 206591 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

FIX协议学习笔记

    博客分类:
  • FIX
阅读更多

Fix 协议可以分两大部分,会话层协议和业务层协议。会话层定义了数据通信相关的协议,业务层定义了金融活动相关的业务数据结构。 Fix 的会话层设计时候充分考虑了

稳定性,安全性,健壮性,高效性。稳定性指会话协议中定义了心跳消息来维护会话连接,安全性指协议从消息结构上支持数据加密,出错重传指

每个会话在两个端点各自维护一套消息序列号,防止消息丢失,漏发漏收,出现这种情况只要检查两边序列号的连续性就可以确定需要重传哪些消息。

  1. session 的通信各方维护一个 incomming 一个 outgoing 序列号。 Incomming 序列号用来检测序列号是否乱序或跨越。
  2. 心跳在 initiator 发送 logon 消息时候设置在心跳域上, acceptor initiator 的心跳间隔时间一致。
  3. Fix 消息要按序列号从小到大顺序处理,若收发过程中出现丢包则有两种策略:重传序列号出错的包及以后所有收到得包;另一种是只重传出错的包;
  4. Fix 协议没有定义应答消息,使用序列号不连贯来检测消息丢失,用 checksum ,签名或消息体长度来检测消息错误;
  5. Logon 阶段,客户端选择了了一个加密密钥,但服务器选择了不同的密钥放在返回的 logon 消息中,这时候客户端还得发一个 logon 消息应答服务器端,两个作用: 1). 让服务器知道密钥变更获得了客户端的响应; 2). 下面的消息开始要加密了
  6. logon 阶段完成后必须马上检查序列号,同步收发的消息,比如一端发送了消息但另一端没收到,这时候需要重传。可以通过对比 logon 消息中的序列号和通信一方的期望收到的消息序列号来检测消息漏收发。
  7. 序列号最好每隔 24 小时重置一次,重置前要商量好哪一方来首先发送重置请求及发重置请求的时间。重置之前要一方首先发送 testrequest 消息,等待收 heartbeat 消息来确认连接是否正常,然后才发送 logon 消息,并把消息中的序列号重置域设为 Y ,并且序列号置为 1 ,接收方回复同样消息,重置成功;
  8. Logout 之前需要发送 testrequest 消息强制心跳,检测消息序列号是否连续, logout 消息发送出去之后,需要等待一段时间接收 logout 回应消息,这段时间让双方来处理序列号不一致的问题,一旦序列号同步之后 logout 接收者马上发送回应的 Logout 消息, Logout 发起方收到回应后负责来关闭会话。
  9. Fix4.4 中在 logon 消息中加入了 NextExceptedSeqNumb 域,用来表示本方期望对方发过来的下一个序列号,这样 logon 阶段完成后直接就是漏发消息的重发,不需要再发送 testrequest, heartbeat ResendRequest消息了。
  10. possResend possDupFlag 区别就是前者使用了新序列号发送老的消息,可以通过检查消息中的域来确定是否已经收到过改消息,比如 order ID 等;后者是用老的序列号重发消息,可以直接检查序列号来确定是否已经收到过该消息,若已收到过了就丢弃该消息。
  11. logon 消息中有两个字段 RAW Data Length RAW data 用来存放认证需要的数据;
分享到:
评论

相关推荐

    fix协议接口示例

    通过这个DEMO,开发者可以学习如何在实际项目中实现与FIX服务器的交互,理解FIX协议的工作原理,并能够根据需求定制自己的FIX客户端应用。在金融交易系统中,对FIX协议的熟练掌握至关重要,因为它提供了高效、可靠的...

    标准化与FIX协议-金融协议

    标准化与FIX协议,讲述FIX协议在中国市场的应用,及讲解FIX对中国金融市场的影响。

    香港证券交易所fix协议离线测试工具

    本主题聚焦于香港证券交易所(HKEx)提供的FIX协议离线测试工具,这是一款对于开发和维护与HKEx连接的交易系统的开发者非常重要的工具。 该离线测试工具的主要目的是帮助系统开发者在实际接入HKEx交易网络前,进行...

    QuickFix协议

    QuickFix协议,全称为"Quick Financial Information eXchange",是一种专为金融行业设计的、开源的、高速的、可靠的报文传输协议。它在银行和外汇交易领域中广泛应用,旨在提高交易效率,减少错误,并确保交易数据的...

    fix协议logon实现

    fix协议实现 logon消息 heart beat消息 ,验证了test request。

    Fix4.2 protocol

    FIX4.2是FIX协议的一个版本,发布于2001年,是早期较为流行的一个版本,虽然现在已经有了更高级的版本如FIX5.0 SP2,但FIX4.2仍然在许多机构中使用。 **一、协议结构** FIX4.2协议基于ASCII字符编码,以消息为基础...

    金融信息交换协议fix 5.0

    FIX协议的设计目标是提高交易效率,降低通信成本,确保数据传输的准确性和及时性。FIX 5.0作为FIX协议的最新版本,进一步增强了其功能性和灵活性,为全球金融市场的参与者提供了更强大的工具。 FIX 5.0协议的主要...

    标准化和FIX协议:建立标准的市场源头

    ### 标准化和FIX协议:建立标准的市场源头 #### 一、标准化的重要性 在当今高度发达且竞争激烈的金融市场中,标准化对于提高效率、降低成本和促进全球化具有至关重要的作用。标准化不仅能够确保不同系统之间的互...

    fix协议接口

    fix协议接口源码,The purpose of this document is to give brief details about FIX and basic implementation of messages using QuickFix .NET library.

    FIX Pusher:FIX协议管理工具-开源

    FIX协议是由FIX协议有限公司发布和维护的,用于与贸易相关的消息进行电子通信的行业驱动标准。FIX Pusher可以发送和接收FIX消息。 它支持您使用具有FIX协议的第三方系统来模拟工作流。 该应用程序充当接受者或发起...

    专题资料(2021-2022年)FIX协议介绍v0.5.docx

    《FIX协议详解——2021-2022年度专题》 FIX(Financial Information eXchange)协议,是金融行业内广泛使用的实时交易通信标准,主要用于证券交易、行情数据的快速交换。该协议自1992年由FPL(Financial Protocol ...

    quick fix tester

    FIX协议是一种标准化的通信协议,主要用于在金融机构之间交换诸如订单、报价等交易信息。Quick Fix库提供了处理和解析FIX消息的能力,支持多种编程语言,包括C++、Java和Python等。 在"quickfix-1.13.3.rar"文件中...

    Fixie:Python FIX 协议实现和工具

    Fixie 是一个 Python FIX 解析库和用于处理 FIX 数据的最终用户工具集合。 工具 独立的可执行工具位于Fixie.Tools模块中。 FixToJson.py 将 FIX 逐行转换为 JSON。 接受来自stdin或单个文件参数的输入(可能是...

    btc的fix协议

    btc的fix协议

    FIX Pusher:FIX 协议管理工具-开源

    FIX Pusher 是一款供开发人员和管理员使用金融信息交换(“FIX”)协议的工具。 FIX 协议是行业驱动的贸易相关消息电子通信标准,由 FIX Protocol, Ltd. 发布和维护。FIX Pusher 可以发送和接收 FIX 消息。 它支持您...

    fix-42-with_errata_20010501.pdf

    本文档标题为“fix-42-with_errata_***.pdf”,描述内容为金融信息交换协议(FIX协议)版本4.2的修正版,包含了2001年5月1日前的勘误调整。标签指明文档与FIX协议相关。文档的一部分内容包含了对FIX 4.2协议的技术...

    quickfix:Go中实现的FIX协议库

    QuickFIX /转到 网站: : 邮件列表: Go中实现的开源库 入门和文档 安装 要安装QuickFIX / Go,请使用go get : $ go get github.com/quickfixgo/quickfix 保持最新 要更新QuickFIX / Go到最新版本,请使用go ...

    万能句型-fix-ma笔记

    总的来说,“万能句型-fix-ma笔记”是六级作文备考的有力工具,通过深入学习和实践,考生可以有效提高自己的作文能力,写出更有深度和亮点的文章。同时,对于K12阶段的学生来说,这不仅是提升英语写作水平的一个途径...

    CTP FIX接口使用规范说明1

    CTP(China Trading Platform)FIX接口是上海期货信息技术有限公司为金融交易者提供的一种标准化、高效的金融数据传输协议,主要用于实现金融机构与交易系统之间的实时通讯。本文档详细介绍了使用CTP FIX接口的规范...

Global site tag (gtag.js) - Google Analytics