第一章.FIX网关介绍
`方正证券的FIX网关主要是为其交易系统提供FIX协议接入。实现国际标准协议FIX与方正证券交易系统的对接。?FIX网关的功能定义:实现FIX协议和证券集中交易系统内部协议(或第三方协议)的转换,转发服务请求和发送成交回报。在集中交易系统与其它交易系统之间通过FIX协议进行互通连接。提供了如下功能:?提供FIX连接服务???管理FIX连接与会话接收和发送FIX协议报文报文转换??将FIX协议报文转换成柜台接口报文其它协议到FIX协议?业务处理???管理业务转换流程调用柜台接口,执行业务请求,返回执行报告成交回报推送有关FIX的详细介绍可以在官方网站上找到:http://www.fixprotocol.org/有关FIX报文的详细介绍可以在下面的站点中查询:http://btobits.com/fixopaedia/fixdic42/index.html6第二章.FIX网关接口说明
2.1FIX版本
方正证券FIX网关是在FIX4.2基础协议上,扩展了部分tag和MsgType。交易类消息完全符合FIX4.2标准,头寸管理变更查询以及担保品划转业务参考了FIX5.0的接口定义。用户数据字典文件为FIX4.2.XML。2.2连接模式
标准模式以网关为Acceptor,客户端为Initiator做为常用模式。也支持客户为Acceptor,服务端为Initiator模式,此模式与标准模式的区别仅限于连接由谁发起,其它会话控制、消息请求应答同标准模式。2.3会话控制
a.会话序号SeqNum以网关为唯一标准,对端如果收到如”MsgSeqNumtoolow,expecting92butreceived22”,这样的提示,需要主动设置会话序号为网关期待值,以便进行正常通讯。b.在交易时间以及非交易时间,允许多次重置序号。c.会话序号应允许手动修改,以便在异常情况时,能双方协商重置到一个安全数值。d.网关支持7x24小时连续工作。但在每天交易时间过后,网关会自动进行复位,并发送Logout消息,消息体内的TEXTtag会被设置为”GWRESET”,表示网关主动复位。对端在收到此消息以后,需要重新发起登录logon,并把141(ResetSeqNumFlag)=Y或者把MsgSeqNum设为1,双方重置会话序号。此时网关系统会清除掉之前保存的临时缓存数据,对端的ClOrdID可以复位为1.另外网关也支持第二个交易日后自动重设序号模式,即双方在新的交易日自动将序号重置为1,而不需发送重置序号消息。e.目前仅支持单Session单帐户模式,登录必须送入帐户和密码校验通过以后,才允许进行后续业务f.为了避免重复委托,网关在交易时间,拒绝重发委托消息。2.4帐户模式
目前仅支持单Session单帐户模式,登录必须送入帐户和密码校验通过以后,才允许进行后续业务。如果同一个帐户在多个不同Session上登录,也可以正常下单和返回成交回报,但异常成交回报(NOE)消息只会从第一次登录的Session上返回。异常成交回报(NOE)消息通常是由另一个系统发起的委托产生成交,但成交信息被网关接受,本地无对应的合同序号时产生,网关会发送ExecReport(8),但ClOrdID不送,表示异常成交回报。第三章.消息格式说明
3.1会话层消息
3.1.1.登录请求(A)
登录消息是在FIX会话开始时,连接双方发送的第一个消息。登录消息总是成对出现,接收方在接收登录消息时,将验证发起方身份的合法性,并且同样发出登录消息给发送方以确认连接请求已被接受。登录时不强制使用资金账户类别,既可以使用普通资金账户登录,也可以使用信用资金账户登录(如果有的话)。对于同一个客户号下既有普通资金账户,也有信用资金账户的情况,用任何一个资金账户登陆后,可以同时进行普通交易业务和信用交易业务。登陆所采用的资金账户将会作为默认值保存在网关的会话中,如果之后的业务报文中未送资金账户,网关将使用默认值。登录消息支持两种模式:(1).Custom用户登录模式:Tag字段名称<标准消息头>98EncryptMethod密码字段加密方式字段说明必送YY注释MsgType=A指明RawData字段中,密码字段加密方式。加密后的二进制密文必须按16进制序列化成可传输文本。支持以下几种方式:’0’:不加密‘2’:DES-ECB‘101’:BlowFish缺省公钥为:”foundersc”108HeartBtInt心跳时间Y心跳间隔在消息交换的空闲期间,连接双方传输有规则的心跳消息,以监控通讯连接的状态。心跳间隔时间HeartBtInt由会话发起人在登录时向登录接受方发出,并得到确认。连接双方使用相同的心跳FIX间隔时间。在发送任何消息后,引擎将心跳间隔计时器清零。896RawData用户密户参数Y格式为“帐号类型:帐号:密码:”帐号类型目前仅支持’Z’表示使用资金帐号登录。密码字段可以通过在EncryptMethod上指明加密方式加密。例”Z:100012345678:888888:”95RawDataLength数据区长度C如果不送,使用strlen得到RawData字段长度141ResetSeqNumFlag序号重置标记NY表示序号重置N表示序号不重置仅当天第一次登录允许重置或者收到网关发来的Logout带Text=”GWRESET”以后,才允许置上此标志,否则会被拒绝掉。<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符<
Tag字段名称字段说明必送注释10