金融信息交换协议-FIX.ppt

上传人:豆**** 文档编号:60900523 上传时间:2022-11-19 格式:PPT 页数:23 大小:798.50KB
返回 下载 相关 举报
金融信息交换协议-FIX.ppt_第1页
第1页 / 共23页
金融信息交换协议-FIX.ppt_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《金融信息交换协议-FIX.ppt》由会员分享,可在线阅读,更多相关《金融信息交换协议-FIX.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 Financial Information Exchange(FIX)Financial Information Exchange(FIX)金融信息交换协议金融信息交换协议 目录1.1.背景背景背景背景2.2.架构架构架构架构3.3.FIXFIX语法规则语法规则语法规则语法规则4.4.FIXFIX消息消息消息消息5.5.数据包格式数据包格式数据包格式数据包格式6.6.登陆消息登陆消息登陆消息登陆消息7.7.心跳消息心跳消息心跳消息心跳消息8.8.测试请求测试请求测试请求测试请求9.9.重传请求重传请求重传请求重传请求10.10.驳回驳回驳回驳回11.11.注销注销注销注销12.12.下单下单

2、下单下单13.13.撤单请求撤单请求撤单请求撤单请求14.14.改单改单改单改单15.15.委托单状态委托单状态委托单状态委托单状态Financial Information eXchange(FIX)金融信息交换协议的制定是由多个致力金融信息交换协议的制定是由多个致力于提升其相互间交易流程效率的金融机构和经纪商于于提升其相互间交易流程效率的金融机构和经纪商于1992年共同发起。这些企年共同发起。这些企业把他们及他们的行业视为一个整体,认为能够从对交易指示,交易指令及交易业把他们及他们的行业视为一个整体,认为能够从对交易指示,交易指令及交易执行的高效电子数据交换中获利。执行的高效电子数据交换中

3、获利。FIX由此诞生,它是不受某个商业机构控制的由此诞生,它是不受某个商业机构控制的开放消息标准,一个能够被调整组建适用于任何一个企业的商务需求的协议。开放消息标准,一个能够被调整组建适用于任何一个企业的商务需求的协议。FIX协议是一个消息标准,促进与安全交易相关的信息交换,在希望进行自动通协议是一个消息标准,促进与安全交易相关的信息交换,在希望进行自动通信的交易方之间进行使用。该消息协议将支持各种商务功能。信的交易方之间进行使用。该消息协议将支持各种商务功能。FIX最早用于支持最早用于支持美国国内的委托人之间基于直接信息流转的证券交易。随着协议本身的发展,增美国国内的委托人之间基于直接信息流

4、转的证券交易。随着协议本身的发展,增加了大量的支持多边界交易的、衍生工具及其它产品的数据域。加了大量的支持多边界交易的、衍生工具及其它产品的数据域。FIX协议包含协议包含2个层次:会话层和应用层。会话层与数据的通信相关;而应用层定个层次:会话层和应用层。会话层与数据的通信相关;而应用层定义了商务相关数据内容。义了商务相关数据内容。2006年年10月,月,FPL(FIX Protocol Limited)发布了)发布了FIX5.0。FIX5.0引入引入TI(the transport independence)传输无关框架。)传输无关框架。TI将将FIX会话层从应用层协会话层从应用层协议中分离出

5、来。在议中分离出来。在TI框架下,应用层协议消息可以通过任意合适的传输技术进行框架下,应用层协议消息可以通过任意合适的传输技术进行传送,在这里,传送,在这里,FIX会话层协议是会话层协议是FIX应用层消息的可选传输传输协议之一。应用层消息的可选传输传输协议之一。背景背景背景背景FIXFIXFIXFIX是用来做什么的?是用来做什么的?是用来做什么的?是用来做什么的?FIX协议是用于封装通讯数据包的一套规则架构图架构图架构图架构图 FIX协议存在2种语法格式:1“标记=值”语法格式2“FIXML语法”语法格式同一个商业信息流适用于任何一种语法FIXFIXFIXFIX语法规则语法规则语法规则语法规则

6、 “标记=值”语法格式:8=FIX.4.29=25135=D49=AFUNDMGR56=ABROKER34=252=20030615-01:14:4911=123451=11111163=064=2003062121=3110=1000111=5000055=IBM48=45920010122=154=160=2003061501:14:4938=500040=144=15.7515=USD59=010=127FIXML语法格式:语法格式:会话层消息会话层消息:Heartbeat心跳消息管理TestRequest网路测试请求ResendRequest重传请求Reject驳回(会话级)Seque

7、nceReset序列号复位Logout注销Logon登录验证FIXFIXFIXFIX消息消息消息消息 (部分部分部分部分)应用层消息应用层消息:ExecutionReport执行报告Order-Single下新单OrderCancelReject驳回撤单OrderCancelRequest撤单请求OrderCancel/ReplaceRequest撤单/改单请求OrderStatusRequest状态请求BusinessMessageReject驳回(商业级)FIX会话即一个在连接双方用带有连续序列号的有序消息双向传输流。FIX会话连接由3部分组成:logon登录,消息传输,和logout注销

8、。一般建议每24小时重新建立一次会话,同时在新的会话中设置在Logon消息中的ResetSeqNumFlag建立一套新的序列号。会话层会话层会话层会话层BodyLength:为数据体长度,如:“abcd”长度为4校验和计算:一个FIX消息校验和通过计算从开头标志8到标志10前一个字符的每个字节和得到。然后,校验和被转换为模256的数字用于传送和比较。数据包格式(消息头和消息尾)数据包格式(消息头和消息尾)数据包格式(消息头和消息尾)数据包格式(消息头和消息尾)标记标记参数名参数名中文名中文名必输必输8BeginStringFIX.4.2Y9BodyLength包长Y35MsgType消息类别Y

9、49SenderCompID发送方Y56TargetCompID接收方Y34MsgSeqNum消息序列号Y43PossDupFlag复制标志97PossResend重传标志52SendingTime发送时间Y(数据体部分)10CheckSum 校验和YLogon消息认证一个连接到一个远程系统的用户。Logon消息必须是应用程序用于请求初始化一个FIX会话的第一个消息。HeartBtInt(108)域用于申明产生心跳消息的时间间隔,连接双方使用形同的HeartBtInt值。其值应被双方企业一致同意,由Logon消息发起者初始化,并被Logon接收者回应。当接收到Logon消息,会话接收者将认证参

10、与者的连接请求,并发出一个Logon消息确认连接请求被接受。这个确认Logon消息也能用于发起者验证连接已经与对端正确建立。在接收到Logon消息后会话接收者必须立即准备好开始处理消息。会话发起者可以选择在收到Logon确认消息前传输FIX消息,但推荐在收到返回的Logon消息后,完成加密秘要协商后进行正常的消息传输。确认Logon消息可以用于加密秘要协商。如果一个会话密钥被认为是弱秘要,一个推荐的新的更加强状的会话秘要将在Logon消息中返回。这仅在加密协议允许秘要协商时有效。Logon消息能用于确定支持的消息最大长度MaxMessageSize(能用于控制将大消息进行分节的规则)。也能用于

11、确定双方接收和发送所支持的消息的类型MsgType。登陆消息登陆消息登陆消息登陆消息 LogonLogonLogonLogon心跳消息监控通信链路的状态,用于识别一连串消息中最后没有收到的消息。当如果一个FIX连接的任何一方在超过HeartBtInt规定的时间间隔后没有收到任何数据,将发送一个Hearbeat消息。当如果一个FIX连接的任何一方在超过HeartBtInt规定的时间间隔加上一些传输时间后没有收到任何数据,将发送一个TestRequest测试请求消息。如果在超过HeartBtInt规定的时间间隔加上一些传输时间后仍然没有收到Heartbeat消息,那么应视为连接断开并应采取纠错处理

12、。如果HearBtInt设置为0,则不会产生常规的Heartbeat消息。注意,一个测试请求消息能够不间隔HeartBtInt的值被发送,用于强制请求一个Heartbeat消息。Heartbeat消息作为测试请求消息的响应,必须包含在请求测试消息中的TestReqID值,用于验证Heartbeat消息是测试请求消息的响应而不是常规超时的响应。心跳消息心跳消息心跳消息心跳消息测试请求消息强制对方发送一个Heartbeat消息。测试请求消息检查序列号或验证通信线路状态。对端应用程序响应一个包含TestReqID的Heartbeat消息。TestReqID用于检查对端应用是依据测试请求消息产生的He

13、artbeat消息,而不是通常的超时。对端应用程序将TestReqID包含在响应Heartbeat消息中。测试请求测试请求测试请求测试请求重传请求消息由接收用用程序发送用于开始消息的重传。这个功能在序列号间隙被侦测到时,在接受应用程序丢失消息时,或者作为一个初始化处理功能时非常实用。重传请求消息能用于请求一个单一消息,一定范围内的消息,或者一个特定消息的所有后续消息。注意:发送应用程序可能希望考虑重传消息的消息类型。如:如果在重传序列中的一个新指令消息在其最初发送后经过一段相当长的时间,那么发送方可能不希望重传该消息以提供改变市场条件的潜在可能性。(SeqenceReset-GapFill消息

14、用于发送方不希望发送而跳过这类消息。)注意:接收程序必须按照顺序处理消息。如:如果收到消息8和9,消息7丢失,程序应忽略消息8和9,并要求重传消息7到9,或者最好重传消息7到0(0表示序列号无穷大)。后者,作为当序列号出现混乱,双方同时尝试恢复一个间隙时,从当前的某些竞争条件下快速恢复的推荐方法。1.为请求一个单一消息,BeginSeqNo=EndSeqNo2.为请求一定范围内的消息,BeginSeqNo=请求范围内第一个消息,EndSeqNo=请求范围内最后一个消息。3.请求特定消息的所有后续消息:BeginSeqNo=请求范围内第一个消息,EndSeqNo=0。重传请求重传请求重传请求重传

15、请求当一个接收消息由于违背会话层规则,不能被正确的处理,应发送驳回消息。一个例子是:当一个接收消息通过解密,效验和检查,及数据体长度检查后没有有效的基础数据(如,MsgType=&),将产生一个驳回消息。结果是,这些消息将传递给交易应用程序,如果需要,将产生商业逻辑级的驳回。驳回消息应记录到日志中,且接收序列号应增加。注意:接收应用程序应忽略任何干扰消息,不能被解析的及未通过数据完整性检查的消息。处理下一个FIX消息将导致检测到一个序列号间隙并产生一个ResendRequest消息。FIX引擎应包含处理在此情况下的无限重传循环。生成和接收到一个驳回消息表明一个接收或发送程序的逻辑错误导致的严重

16、的错误。如果发送程序选择重传驳回消息,该消息应赋予一个新的序列号值,且PossResend设置为Y。无论何时,强烈推荐将描述失败原因在Text域中描述(如,INVALIDDATA(35)。如果接收到的一个应用级消息满足所有会话级规则,该消息应在商业消息级被处理。如果在处理过程中检测到规则冲突,将产生发送一个商业级驳回。许多商业级消息都有自己特定的驳回消息。如果没有,则产生发送一个BusinessMessageReject消息。注意,在收到一个商业消息,满足会话级规则,但不能被传送给商业级处理系统时,一个带有BusinessRjectReason=“Applicationnotavailable

17、atthistime”的BusinessMessageReject消息将被发出。驳回驳回驳回驳回(会话级会话级会话级会话级)会话级驳回哪些情况会产生驳回哪些情况会产生驳回哪些情况会产生驳回哪些情况会产生驳回以下内容从FIX协议规范中的Reject消息定义中摘抄:注意:接收程序应忽略任何文本混乱,不能被解析以及数据完整性检查失败的消息。处理下一个右下的FIX消息将导致检测到一个序列号间隙并产生一个重传请求消息ResendRequest。这种情况下,FIX引擎应包含识别重传无限循环的逻辑。FIX协议采取乐观的观点。它假设一个混乱的消息是由于传输中出现的错误,而不是FIX系统的问题。因此,如果发送一

18、个重传请求消息(ResendRequest),该混乱消息将被正确得重传。如果一个消息没被认为是混乱的,那么,推荐发送一个会话级驳回消息。混乱消息混乱消息-发送一个重传请求发送一个重传请求非混乱消息非混乱消息-发送一个会话级驳回消息发送一个会话级驳回消息忽略任何文本混乱、不能被解析以及数据完整性检查失败的消息忽略任何文本混乱、不能被解析以及数据完整性检查失败的消息 驳回、重传与忽略驳回、重传与忽略驳回、重传与忽略驳回、重传与忽略 什么样的情况认为是一个混乱消息1.BeginString(tag#8)不是一个消息中的第一个tag或不是8=FIXT.n.m.的格式。2.BogyLength(tag#

19、9)不是一个消息中的第二个tag或没有包含正确的字节数。3.MsgType(tag#35)不是一个消息中的第三个tag。4.Checksum(tag#10)不适最后一个tag或没有包含正确的值。如果丢失MsgSeqNum(tag#34),一个Logout消息将被发送以终止FIX连接。因为这种情况意味着一个严重的应用程序错误。Logout消息发起或确认一个FIX会话的终止。没有Logout消息交换的连接断开应被视为一个异常情况。在实际的关闭会话前,Logout发起者应等待对端的Logout确认消息的响应。这样可以给远端在必要时执行一些GapFill操作的机会。如果远端在规定的时间间隔后没有响应,

20、会话可以终止。在发送Logout消息后,注销发起者不应发送任何消息,除非注销的接收者通过ResendRequest消息请求发送消息。注销注销注销注销LogoutLogoutLogoutLogout一般情况下,一个Logout消息应在关闭一个连接前发送。如果这个Logout消息是源于一个错误条件,Logout的Text域应提供错误原因的描述,为远端FIX系统提供问题诊断的操作支持。这里有2个例外,推荐不发送Logout消息:1、在登陆阶段,如果会话发起者的SenderCompID,TargetCompID或IP其中一个无效时,推荐立即终止会话,不发送Logout消息。这个登陆尝试有可能使一个未经

21、授权的破坏系统的未认证尝试,因此,企业不希望泄露其FIX系统的任何信息,如,哪个SenderCompID,TargetCompID是有效的,或所支持的FIX版本。2、在登陆阶段,当一个有效的FIX会话已经被一个企业使用时,该企业的第2次连接尝试的Logon消息被接受时,推荐会话接收者立即中断该第2次连接尝试,不发送Logout消息。发送一个Logout消息将冒着妨碍和影响当前FIX连接的风险。例如:在一些FIX实现系统中,发送一个Logout消息可能会消耗一个序列号,这样将会导致在一个已经建立的FIX会话中的序列号混乱。在其他情况下,如果发送一个Logout消息不产生风险和安全冲突,Logou

22、t消息应随同描述信息一起发送。何时发送何时发送何时发送何时发送LogoutLogoutLogoutLogout与仅断开连接与仅断开连接与仅断开连接与仅断开连接1、为新单生成一个新的ClOrdID,将新单发到AccepterFIX网关。2、如果信息有问题,会收到一个驳回消息,驳回处理一般是记录日志并通知Client端等待改正后再下单3、如果没有问题会收到一个接收核实消息,并返回单号Orderid。4、接着会收到一个Executionreport消息,会返回这个单的执行状态:接收下单或拒绝下单。5、将Executionreport中的成交量、未成交量、总数量、成交均价、最新价等信息报给算法服务器。

23、下单下单下单下单ConnecterFIXAccepterFIX1.NewOrder:ClOrdID=G01/OrderID=(空)2.ExecutionReport:ClOrdID=G01/OrderID=1ExecType=A(pendingnew)3.ExecutionReport:ClOrdID=G01/OrderID=1ExecType=0或8(New或Rejected)2.ExecutionReport:ClOrdID=G01ExecType=8(Rejected)4.ExecutionReport:ClOrdID=G01/OrderID=1ExecType=1或2(Partialf

24、ill或Fill)1、为新单生成一个新的ClOrdID,将新单发到AccepterFIX网关2、如果没有问题会收到一个接收核实消息,并返回单号Orderid3、将刚才的单发送一个撤单请求4、如果信息内容有错,会收到驳回消息;否则就收到撤单核实消息PendingCancel5、最后撤单成功了会收到Executionreport撤单请求撤单请求撤单请求撤单请求ConnecterFIXAccepterFIX1.NewOrder:ClOrdID=G01/OrderID=(空)2.ExecutionReport:ClOrdID=G01/OrderID=1ExecType=0(new)3.OrderCan

25、celRequest:ClOrdID=G02/OrgClOrdID=G01OrderID=14.OrderCancelReject:ClOrdID=G02OrgClOrdID=G01OrderID=14.ExecutionReport:OrderID=1ClOrdID=G02ExecType=4(PendingCancel)OrgClOrdID=G015.ExecutionReport:ClOrdID=G02/OrderID=1ExecType=4(Canceled)OrgClOrdID=G011、为新单生成一个新的ClOrdID,将新单发到AccepterFIX网关2、如果没有问题会收到一个

26、接收核实消息,并返回单号Orderid3、将刚才的单发送一个改单请求4、如果信息内容有错,会收到驳回消息;否则就收到撤单核实消息PendingReplace5、最后撤单成功了会收到Executionreport改单改单改单改单ConnecterFIXAccepterFIX1.NewOrder:ClOrdID=G01/OrderID=(空)2.ExecutionReport:ClOrdID=G01/OrderID=1ExecType=0(new)3.ReplaceRequest:ClOrdID=G02/OrgClOrdID=G01OrderID=14.OrderCancelReject:ClOr

27、dID=G02OrgClOrdID=G01OrderID=14.ExecutionReport:OrderID=1ClOrdID=G02ExecType=4(PendingReplace)OrgClOrdID=G015.ExecutionReport:ClOrdID=G02/OrderID=1ExecType=5(Replace)OrgClOrdID=G01委托单的状态对应FIX的消息返回状态有:未报:网关还没有将下单发给AccepterFIX待报:收到ExecutionReport消息ExecType=PendingNew已报:收到ExecutionReport消息ExecType=New部

28、成:收到ExecutionReport消息ExecType=Partialfill已成:收到ExecutionReport消息ExecType=Fill待撤:收到ExecutionReport消息ExecType=PendingCancel已撤:收到ExecutionReport消息ExecType=Canceled待改:收到待改:收到ExecutionReport消息消息ExecType=Pending Replace已改:收到已改:收到ExecutionReport消息消息ExecType=Replace拒绝:收到拒绝:收到ExecutionReport消息消息ExecType=Rejected此外,如果交易成功,在此外,如果交易成功,在ExecutionReport消息中会有以下信息:消息中会有以下信息:CumQty (tag 14)=成交量成交量Avgpx (tag 6)=成交均价成交均价Orderqty (tag 38)=单的总量单的总量Leavesqty (tag 151)=剩下未成交量剩下未成交量Price (tag 44)=最新价格最新价格(ordtype=2 時才有時才有 即即Limit单单)委托单状态委托单状态委托单状态委托单状态结束!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁