FIX网关接入说明 - 20120310

更新时间:2024-04-26 00:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

国信证券FIX网关接口说明

国信证券 FIXGW接入说明 (2012-03-10)

公司名称 文档名称 金证股份、国信证券 FIX网关接入说明 APIFIXGW_20110804 文档版本 1.0 文档编号 国信证券FIX网关接口说明

起 草 审 批 沈涛、陈佳驹、罗时俊、邢明金 起草日期 20110804 审批日期 修订历史

版本号 V1.0 日期 2011/8/4 状态 C 修订人 摘要 沈涛、陈佳创建 驹、罗时俊、邢明金 罗时俊 邢明金 罗时俊 邢明金 罗时俊 邢明金 罗时俊 修改会话控制相关 按照陈家驹的要求修改相关细节 UAP增加account字段 修改执行回报中某些的字段 增加OpenSSL加密方式的补充说明 修改主动复位和序号重置功能介绍 优化头寸查询UAP,增加成本盈亏等字段 V1.0.1 V1.0.2 V1.0.3 V1.0.4 V1.0.5 V1.0.5 V1.0.6 2011/8/9 2011/8/30 2011/09/20 2011/09/26 2011/12/19 2012/02/07 2012/03/10 M M M M M M M 状态标识:C – Created A - Added M - Modified D - Deleted 国信证券FIX网关接口说明

目录

1 国信证券FIX网关交易介绍 .......................................................................................... 5 第二章 FIX协议简介 ..................................................................................................................... 6

1 FIX协议 ........................................................................................................................... 6

1.1 什么是FIX协议 .................................................................................................. 6 1.2 FIX的特点 ........................................................................................................... 6 1.3 FIX协议结构 ....................................................................................................... 6 1.4 FIX信息格式 ....................................................................................................... 6 1.5 标准消息头结构 ................................................................................................... 7 1.6 标准消息尾结构 ................................................................................................... 7 1.7 FIX引擎的选择 ................................................................................................... 7 2 QuickFIX引擎 ................................................................................................................. 7

2.1 什么是QuickFIX.................................................................................................. 7 2.2 QuickFix的特点 ................................................................................................... 8 2.3 QuickFIX的下载与使用 ...................................................................................... 8 2.4 QuickFIX编程指南.............................................................................................. 8

第三章 国信证券FIX网关接口说明 ............................................................................................ 8

1 协议说明 ........................................................................................................................... 8

1.1 FIX版本 ............................................................................................................... 8 1.2 连接模式 ............................................................................................................... 8 1.3 会话控制 ............................................................................................................... 8 1.4 帐户模式 ............................................................................................................... 9 2 消息格式说明 ................................................................................................................... 9

2.1会话层消息 ................................................................................................................. 9

2.1.1登录请求(A) .................................................................................................... 9 2.1.2登录应答(A) .................................................................................................. 12 2.1.3注销请求(5) ................................................................................................... 12 2.1.4注销应答(5) ................................................................................................... 13 2.1.5心跳包请求(0) ............................................................................................... 13 2.1.6心跳包应答(0) ............................................................................................... 13 2.2应用层消息 ............................................................................................................... 15

2.2.1单笔委托(D) .................................................................................................. 15 2.2.2委托确认,New(8) ........................................................................................ 16 2.2.3委托拒绝,Reject(8) ..................................................................................... 17 2.2.4执行回报(8) ................................................................................................... 18 2.2.5撤单请求(F) ................................................................................................... 18 2.2.6撤单确认,PendingCancel(8) ....................................................................... 19 2.2.7撤单拒绝(9) ................................................................................................... 20 2.2.8撤单回报,Cancel(8) .................................................................................... 20 2.2.9委托状态查询请求(H) .................................................................................. 21

国信证券FIX网关接口说明

2.2.10委托状态查询应答 (8) ............................................................................... 21 2.2.11资金股份查询(UAN) ................................................................................... 22 2.2.12资金股份查询回报(UAP) ........................................................................... 23 2.2.14业务消息拒绝(j) .......................................................................................... 25

国信证券FIX网关接口说明

第一章 系统介绍

1 国信证券FIX网关交易介绍

国信证券的FIX网关主要是为其交易系统提供FIX协议接入。实现国际标准协议FIX与国信交易系统的对接。

? FIX网关的功能定义:

实现Fix协议和证券集中交易系统内部协议(或第三方协议)的转换,转发服务请求和发送成交回报。在集中交易系统与其它交易系统之间通过FIX协议进行互通连接。提供了如下功能: ? 提供Fix连接服务

? 管理Fix连接与会话 ? 接收和发送Fix协议报文 ? 报文转换

? 将Fix协议报文转换成柜台接口报文 ? 其它协议到Fix协议 ? 业务处理

? 管理业务转换流程

? 调用柜台接口,执行业务请求,返回执行报告 ? 成交回报推送

国信证券FIX网关接口说明

第二章 FIX协议简介

1 FIX协议

1.1

什么是FIX协议

它是由国际FIX协会组织提供的一个开放式协议,目的是推动国际贸易电子化的进程,在各类参与者之间,包括投资经理、经纪人,买方、卖方建立起实时的电子化通讯协议。Fix协议的目标是把各类证券金融业务需求流程格式化,使之成为一个个可用计算机语言描述的功能流程,并在每个业务功能接口上统一交换格式,方便各个功能模块的连接。

目前,欧、美主要发达国家都是FIX协会的成员,国内的期货交易也以FIX协议为主。 有关FIX的详细介绍可以在官方网站上找到:http://www.fixprotocol.org/

1.2

FIX的特点

使用简单,各类应用系统可以依据FIX协议规则,编写自身的应用程序,应用于任何希望自动连接的交易双方,能支持各种商务功能。

规则开放透明,具有不断扩充的能力。为了把最大的灵活性给予用户,FIX鼓励用户自定义域。这些域应在已达成有关共识的交易各方范围内使用,并应小心使用,以避免在各方实施该协议之初的时候容易引发的冲突。FIX由一个非盈利的FIX组织管理维护,公布FIX协议的标准化格式,在鼓励卖主加入该标准的同时,FIX始终保持中立。

不受载体的限制,它可通过租用数据申、数据转接介质或在互联网上使用,它留下诸如以上的选择让使用的商号自己做出决定。也不依靠任何特定的通信协议(如X. 25,异步,TCP/IP等)。

在安全机制方面,FIX不提供特定的安全机制,它只是一个信息交换平台。但它支持任何双方允许的加密体系。

1.3

FIX协议结构

FIX协议的格式存在着两种结构:\〈标记(Tag)〉=〈值(Value)〉\域结构和 FIXML 结构。目前采用的都是第一种方式来完成数据交换,下面是关于连接建立、信息交换方法等进行简要的说明,以便于了解FIX协议的概念。

1.4

FIX信息格式

一条FIX协议信息的基本格式是:《标准消息头》+《信息正文域》+《标准消息尾》

每条信息都是由一系列带有〈标记(Tag)〉=〈值(Value)〉的域组成的。在每个域之间通过\>\分开。除了一些特殊规定外,信息中的域可按照任意顺序排列。所有域在都以\定界符\(#001;0x01H,文档中写为)表示终止

国信证券FIX交易网关使用FIX.4.2为基础版本,在此基础上,扩展了其它自定义Tag

国信证券FIX网关接口说明

1.5

Tag 8 9 标准消息头结构

字段名称 BeginString字段说明 版本号 消息体长度 必送 Y Y 注释 固定为FIX.4.2(不能加密,必须是消息的第1个字段) (不能加密,必须是消息的第2个字段),不包括8\\9\\10字段长度 BodyLength35 49 56 34 52 MsgType消息类型 发送者ID 接收者ID 会话序号 发送时间 Y Y Y Y Y (不能加密,必须是消息的第3个字段) (不能加密) (不能加密) 开市期间不允许重置,除非当天第一次登录 使用UTC时间格式 SenderCompIDTargetCompIDMsgSeqNumSendingTime

(注: 必送字段中Y表示必送,N表示不送,C表示按条件。 下同) 1.6

Tag 10 标准消息尾结构

字段名称 CheckSum字段说明 校验位 必送 Y 注释 整包校验码,收发检查 1.7

FIX引擎的选择

开发FIX应用一般基于一个符合FIX标准的底层库(engine)来做。这个库有商业化的、有开源的、也有完全是自己写的。相对而言,商业化的库管理功能更丰富,开源的库参考资源更多,而自己写的可能性能会好一些。我们推荐在一般应用要求的客户端使用开源的QuickFix引擎。

2 QuickFIX引擎

2.1

什么是QuickFIX

QuickFIX是一个开源的,跨语种的应用程序,它可以灵活的运用在C++、C#、Java、Python、Ruby等编程语言之中。该引擎是目前应用较为广泛的FIX协议应用程序,但关于QuickFIX的文档还不是很多,有关它的技术资料可以登陆http://www.quickfixengine.org查看。

国信证券FIX网关接口说明

2.2 QuickFix的特点

Quickfix有几个优秀的特性,首先它已经把socket通讯,重连,心跳包,数据包匹配等底层的通讯工作全部完成,用户使用时,只需要关心怎样去实现业务逻辑即可,不需要再从头开始编码。其次,QuickFIX实现了多线程并发发送,异步线程接收的功能,对于高频交易者而言是一个必不可少特性。最后,QuickFIX在海外市场中已有广泛应用,它的稳定性和高效率已得到市场的认可。

2.3

QuickFIX的下载与使用

用户可以到http://www.quickfixengine.org/download.html上下载QuickFIX引擎的源代码,编译后会生成quickfix_net.dll和quickfix_net_message.dll两个文件(.net版本),在.\\bin\\cfg\\下有所需的配置文件(注意acceptor和initiator所用的配置是不同的,一般客户只需要使用initiator端配置即可),在.\\ spec\\有FIX的包格式,国信证券使用的是FIX4.2格式。

2.4

QuickFIX编程指南

有关QuickFIX编程的上手指南可以在http://www.hylt.net/vb/showthread.php?t=29701上查看,或者登陆http://code.google.com/p/gsfix4net/source/browse/?r=9#svn/trunk/ gsfix4net下载QuickFIX的应用Demo。

第三章 国信证券FIX网关接口说明

1 协议说明

1.1

FIX版本

国信Fix网关是在Fix4.2基础协议上,扩展了部分tag和MsgType。 用户数据字典文件为FIX4.2.XML 1.2

连接模式

标准模式以网关为Acceptor,客户端为Initiator做为常用模式。

也支持客户为Acceptor,服务端为Initiator模式,此模式与标准模式的区别仅限于连接由谁发起,其它会话控制、消息请求应答同标准模式。 1.3

会话控制

a. 会话序号SeqNum以网关为唯一标准,对端如果收到如” MsgSeqNum too low,

expecting 92 but received 22”,这样的提示,需要主动设置会话序号为网关期待值,以便进行正常通讯。

b. 在交易时间以及非交易时间,允许多次重置序号

c. 会话序号应允许手动修改,以便在异常情况时,能双方协商重置到一个安全数值。

国信证券FIX网关接口说明

d. 网关支持7x24小时连续工作。但在每天交易时间过后,网关会自动进行复位,并

发送Logout消息,消息体内的TEXT tag会被设置为”GWRESET”,表示网关主动复位。对端在收到此消息以后,建议重新发起登录logon(对端在logon时把141(ResetSeqNumFlag)=Y,双方重置会话序号),此时网关系统会清除掉之前保存的临时缓存数据,对端的ClOrdid可以复位为1。对端也可选择不发起重置会话序号消息。另外,网关也支持第二个交易日后自动重设序号模式,即双方在新的交易日自动将序号重置为1即可正常登陆,而不需发送重置序号消息。

e. 目前仅支持单Session单帐户模式,登录必须送入帐户和密码校验通过以后,才允

许进行后续业务

f. 为了避免重复委托,网关在交易时间,拒绝重发委托消息。

1.4

帐户模式

目前仅支持单Session单帐户模式,登录必须送入帐户和密码校验通过以后,才允许进行后续业务。如果同一个帐户在多个不同Session上登录,也可以正常下单和返回成交回报,但异常成交回报(NOE)消息只会从第一次登录的Session上返回。

异常成交回报(NOE)消息通常是由另一个系统发起的委托产生成交,但成交信息被网关接受,本地无对应的合同序号时产生,网关会发送ExecReport(8),但clordid不送,表示异常成交回报。

2 消息格式说明

2.1会话层消息

2.1.1登录请求(A)

登录消息是在FIX会话开始时,连接双方发送的第一个消息。登录消息总是成对出现,接收方在接收登录消息时,将验证发起方身份的合法性,并且同样发出登录消息给发送方以确认连接请求已被接受。 登录消息支持两种模式: (1).Custom用户登录模式:

Tag 98 字段名称 <标准消息头> EncryptMethod 密码字段加密方式 字段说明 必送 Y Y 注释 MsgType = A 指明RawData字段中,密码字段加密方式。加密后的二进制密文必须按16进制序列化(参见附录:27)成可传输文本。支持以下几种方式: ’0’:不加密 国信证券FIX网关接口说明

‘2’:DES-ECB ‘101’:BlowFish 缺省公钥为:”GSFIXGW” 客户端的加密推荐使用OpenSSL里的加密库,可参见附录《1.1 OpenSSL加密库使用说明》。 108 HeartBtInt心跳时间 Y 心跳间隔 在消息交换的空闲期间,连接双方传输有规则的心跳消息,以监控通讯连接的状态。心跳间隔时间HeartBtInt由会话发起人在登录时向登录接受方发出,并得到确认。连接双方使用相同的心跳间隔时间。在发送任何消息后,FIX引擎将心跳间隔计时器清零。 96 RawData用户密户参数 Y 格式为“帐号类型:帐号:密码:”帐号类型目前仅支持’Z’表示使用资金帐号登录。密码字段可以通过在EncryptMethod上指明加密方式加密。 例888: 加密方式:“ “Z:800100000002:844dece73a23:” 如“Z:100012345678:88895 RawDataLength数据区长度 序号重置标记 C N 如果不送,使用strlen得到RawData字段长度 Y表示序号重置 N表示序号不重置 仅当天第一次登录允许重置 或者收到网关发来的Logout带Text=”GWRESET”以后,才允许置上此标志,否则会被拒绝掉。 141 ResetSeqNumFlag <标准消息尾> 接收者ID Y

国信证券FIX网关接口说明

报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2??9=110??35=A??34=6??49=CLIENT02??52=20110812-10:42:52.097??56=SERVER??96=Z:100000000001:ec9f2461774c39b5:??98=2??108=5??141=N??10=073??

(2). username_password用户登录模式:

Tag 98 字段名称 <标准消息头> EncryptMethod 密码字段加密方式 字段说明 必送 Y Y 注释 MsgType = A 指明RawData字段中,密码字段加密方式。加密后的二进制密文必须按16进制序列化(参见附录:27)成可传输文本。支持以下几种方式: ’0’:不加密 ‘2’:DES-ECB ‘101’:BlowFish 缺省公钥为:”GSFIXGW” 108 HeartBtInt心跳时间 Y 心跳间隔 在消息交换的空闲期间,连接双方传输有规则的心跳消息,以监控通讯连接的状态。心跳间隔时间HeartBtInt由会话发起人在登录时向登录接受方发出,并得到确认。连接双方使用相同的心跳间隔时间。在发送任何消息后,FIX引擎将心跳间隔计时器清零。 553 Username 554 Password 用户名 用户密码 Y Y 密码字段可以通过在EncryptMethod上指明加密方式加密。 95 RawDataLength数据区长度 序号重置标记 C N 如果不送,使用strlen得到RawData字段长度 Y表示序号重置 N表示序号不重置 仅当天第一次登录允许重置 或者收到网关发来的Logout带Text=”GWRESET”以后,才允许置上此标志,否则会被拒绝掉。 141 ResetSeqNumFlag国信证券FIX网关接口说明

<标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2??9=113??35=A??34=14??49=CLIENT02??52=20110812-05:52:53.332??56=SERVER??98=2??108=5??141=N??553=100000000001??554=ec9f2461774c39b5??10=123?? 2.1.2登录应答(A)

Tag 98 字段名称 <标准消息头> EncryptMethod 字段说明 加密方式 心跳时间 必送 Y Y Y C Y 注释 MsgType = A 固定为’0’,表示不加密 如果不送,使用strlen得到RawData字段长度 108 HeartBtInt95 RawDataLength<标准消息尾> 数据区长度 接收者ID 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=7535=A34=149=SERVER52=20110803-02:47:17.39756=CLIENT0198=0108=20141=Y10=042 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[密码错误] 8=FIX.4.29=15635=534=149=SERVER52=20110803-06:49:12.25056=CLIENT0158=Rejected Logon Attempt: erorr_business: Broker return: Code:-410301080 Msg:-410301080客户密码错10=002 2.1.3注销请求(5)

注销消息是发起或确认FIX会话终止的消息。未经注销消息交换而断开连接,一律视为非正常的断开。

在最后终止会话之前,注销的发起人应该等待连接对方发送确认的注销消息。这使得连接对方有机会进行有必要的缺口填补。如果连接对方没有在适当的时间间隔里作回应,那么会话也可以强行终止。

注销发起人在发送注销消息之后不应发送任何消息,除非接收到连接对方发出的重发请求消息。

Tag 58 字段名称 <标准消息头> Text <标准消息尾> 注销原因 接收者ID 字段说明 必送 Y C Y 注释 MsgType = 5 如果是网关主动复位,会在此字段填入”GWRESET” 国信证券FIX网关接口说明

报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=5835=534=1349=CLIENT0252=20110812-05:52:52.33056=SERVER10=255

2.1.4注销应答(5)

Tag 58 字段名称 <标准消息头> Text <标准消息尾> 注销原因 接收者ID 字段说明 必送 Y N Y 注释 MsgType = 5 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=5835=534=1349=SERVER52=20110812-05:52:52.33156=CLIENT0210=000 2.1.5心跳包请求(0)

Tag 字段名称 <标准消息头> <标准消息尾> 接收者ID 字段说明 必送 Y Y 注释 MsgType = 0 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=5735=034=349=SERVER52=20110706-02:38:52.20956=CLIENT0110=207

2.1.6心跳包应答(0)

Tag 字段名称 <标准消息头> <标准消息尾> 接收者ID 字段说明 必送 Y Y 注释 MsgType = 0 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=5735=034=449=CLIENT0152=20110706-02:39:12.14956=SERVER10=208

国信证券FIX网关接口说明

2.1.7会话拒绝(3)

Tag 45 字段名称 <标准消息头> RefSeqNum 字段说明 被拒消息序号 参考字段 必送 Y Y Y Y Y N Y 注释 MsgType =3 371 RefTagID372 RefMsgType参考的消息类型 373 SessionRejectReason58 Text拒绝原因类型 拒绝原因说明 接收者ID <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=11435=334=349=CLIENT0252=20110826-06:22:26.40056=SERVER45=258=Tag specified without a value371=37372=8373=410=185 2.1.8重发请求(2)

Tag 7字段名称 <标准消息头> BeginSeqNo字段说明 开始序号 结束序号 接收者ID 必送 Y Y Y Y 注释 MsgType = 2 16 EndSeqNo<标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=6935=234=14049=CLIENT0452=20110920-10:26:10.45756=SERVER7=5016=010=225 2.1.9序号重置(4)

Tag 字段名称 <标准消息头> 序号重置模式 新序号 接收者ID 字段说明 必送 Y Y Y Y 注释 MsgType = 4 Y: 序号重设-缺口填补 N: 序号重设-重设 123 GapFillFlag 36 NewSeqNo <标准消息尾>

国信证券FIX网关接口说明

报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=10135=434=5043=Y49=SERVER52=20110920-10:25:45.81256=CLIENT04122=20110920-10:25:45.81236=82123=Y10=098 2.1.10 心跳测试(1)

Tag 字段名称 <标准消息头> 测试请求标识符 接收者ID 字段说明 必送 Y Y Y 注释 MsgType = 1 112 TestReqID <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=6735=134=7149=SERVER52=20110919-07:02:52.17156=CLIENT04112=TEST10=027

2.2应用层消息

2.2.1单笔委托(D)

Tag 11 字段名称 <标准消息头> ClOrdID 请求唯一标识符 字段说明 必送 Y Y 注释 MsgType = D 用于标识此数据包的数字或字符 需要确保该字段的唯一性 21 HandlInst 报盘模式 Y 1直通私有 2直通公开 3交易所 一般使用直通私有(DMA) 40 54 55 60 38 44 15 OrdType Side Symbol TransactTimeOrderQty Price Currency委托类型 买卖方向 证券代码 数据包产生时间 委托数量 委托价格 币种 Y Y Y Y Y C C 1市价 2限价 1买入 2卖出 如果40字段为2,限价订单时则必送 CNY人民币 USD美元 HKD港币 当需要明确市场时,必须送

国信证券FIX网关接口说明

入此字段,否则按Symbol,自动判断,可能出错识别错误 207 SecurityExchange 市场代码 C XSHG沪 XSHE深 当需要明确市场时,必须送入此字段,否则按Symbol,自动判断,可能出错识别错误 <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=144 35=D 34=4 49=CLIENT01 52=20110711-06:51:11.273 56=SERVER 11=1234 15=CNY 21=1 38=1000 40=2 44=10.33 54=1 55=600446 60=20110711-06:51:11 207=XSHG 10=112 2.2.2委托确认,New(8)

Tag 6 14 17 20 37 38 39 44 54 55 字段名称 <标准消息头> AvgPx CumQty ExecId ExecTransType OrderID OrderQty OrdStatus Price Side Symbol 平均成交价 累计成交数量 执行结果唯一标识符 应答发送类别 应答唯一标识符 委托数量 委托状态 委托价格 买卖方向 证券代码 执行结果 未成交股数 委托请求唯一标识符 31 32 LastPx LastShares <标准消息尾> 本次成交均价 本次成交数量 接收者ID N N Y Y Y Y Y C Y Y Y Y Y 字段说明 必送 Y Y Y Y 注释 MsgType =8 只为0 0,表示委托确认 当订单是限价委托时必送 1买入 2卖出 同39字段 标识委托请求中所对应的ClOrdID 150 ExecType 151 LeavesQty 11 ClOrdID 国信证券FIX网关接口说明

报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=14635=834=5349=SERVER52=20110804-09:33:46.56056=CLIENT016=011=10614=017=320=032=037=XX0028005738=100039=054=155=600446150=0151=100010=233

2.2.3委托拒绝,Reject(8)

Tag 6 14 17 20 37 38 39 44 54 55 字段名称 <标准消息头> AvgPx CumQty ExecId ExecTransType OrderID OrderQty OrdStatus Price Side Symbol 字段说明 平均成交价 累计成交数量 执行结果唯一标识符 应答发送类别 应答唯一标识符 委托数量 委托状态 委托价格 买卖方向 证券代码 拒绝原因代码 执行结果 未成交股数 委托请求唯一标识符 本次成交均价 本次成交数量 备注 接收者ID 必送 Y Y Y Y Y Y Y Y C Y Y Y Y Y N N N N Y 注释 MsgType =8 只为0 8,表示委托拒绝 当订单是限价委托时必送 1买入 2卖出 同39字段 标识委托请求中所对应的ClOrdID 拒绝原因 103 OrdRejReason150 ExecType 151 LeavesQty 11 31 32 58 ClOrdID LastPx LastShares Text <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=181 35=8 34=2 49=SERVER 52=20110711-07:37:42.144 56=CLIENT01 6=0 11=1249 14=0 17=10000085 20=0 37=1249 39=8 54=1 55=000001 58=account is null, use logon or with account tag 150=8 151=0 10=133 国信证券FIX网关接口说明

2.2.4执行回报(8)

Tag 6 14 17 20 37 38 39 44 54 55 字段名称 <标准消息头> AvgPx CumQty ExecId ExecTransType OrderID OrderQty OrdStatus Price Side Symbol 平均成交价 累计成交数量 执行结果唯一标识符 应答发送类别 应答唯一标识符 委托数量 委托状态 委托价格 买卖方向 证券代码 执行结果 未成交股数 委托请求唯一标识符 31 32 LastPx LastShares <标准消息尾> 本次成交均价 本次成交数量 接收者ID N N Y Y Y Y Y C Y Y Y Y N 字段说明 必送 Y Y Y Y 注释 MsgType =8 只为0 1为部分成交,2为全部成交,6为待撤 当订单是限价委托时必送 1买入 2卖出 1为部分成交,2为全部成交 标识委托所对应的ClOrdID 当收到未知成交回报时,此tag可不送 150 ExecType 151 LeavesQty 11 ClOrdID 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=152 35=8 34=155 49=SERVER 52=20110712-06:43:08.197 56=CLIENT01 6=13 14=666 17=10000288 20=0 31=13.33 32=333 37=2p51197511 39=1 54=1 55=600446 150=1 151=334 10=086 2.2.5撤单请求(F)

Tag 11 字段名称 <标准消息头> ClOrdID 请求唯一标识符 字段说明 必送 Y Y 注释 MsgType = F 用于标识此数据包的数字或字符 需要确保该字段的唯一性 38 OrderQty撤单数量 Y 必送字段,数据类型为整型 国信证券FIX网关接口说明

41 54 55 60 OrigClOrdID Side Symbol TransactTime被撤包请求唯一标识符 买卖方向 证券代码 数据包产生时间 接收者ID Y Y Y Y Y 用于标识被撤委托唯一标识符 1买入 2卖出 <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=11135=F34=349=CLIENT0452=20110928-02:57:35.44756=SERVER11=1902441=1902354=155=00000160=20110928-02:57:3510=016 2.2.6撤单确认,PendingCancel(8)

Tag 6 14 17 20 37 38 39 41 44 54 55 字段名称 <标准消息头> AvgPx CumQty ExecId ExecTransType OrderID OrderQty OrdStatus OrigClOrdID Price Side0 Symbol 平均成交价 累计成交数量 执行结果唯一标识符 应答发送类别 应答唯一标识符 委托数量 委托状态 源委托请求符 委托价格 买卖方向 证券代码 执行结果 未成交股数 委托请求唯一标识符 41 31 32 OrigClOrdID LastPx LastShares <标准消息尾> 原始订单clordid 本次成交均价 本次成交数量 接收者ID Y N N Y Y Y Y Y Y C Y Y Y Y Y 字段说明 必送 Y Y Y Y 注释 MsgType =8 只为0 6, 待撤 当订单是限价委托时必送 1买入 2卖出 同39字段 表示撤销委托中对于的ClOrdID字段 表示撤单的那笔委托 150 ExecType 151 LeavesQty 11 ClOrdID 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 国信证券FIX网关接口说明

8=FIX.4.29=15635=834=349=SERVER52=20110830-02:18:49.04956=CLIENT026=011=31514=017=4000076520=031=032=037=XX0033121239=641=31454=155=600446150=1151=100010=187

2.2.7撤单拒绝(9)

Tag 11 37 39 字段名称 <标准消息头> ClOrdID字段说明 撤单请求符 合同序号 委托状态 必送 Y Y Y Y 注释 MsgType = 9 表示撤销委托中对于的ClOrdID字段 订单状态不一定是拒绝(8),该订单可能全部成交(2)不能再撤单 OrderID OrdStatus 41 OrigClOrdID被撤包请求标识符 拒绝原因类型 Y Y Y N Y 102 CancelRejReason 434 CxlRejResponseTo58 Text <标准消息尾> 拒绝类型 说明 接收者ID 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=129 35=9 34=17 49=SERVER 52=20110712-07:50:12.634 56=CLIENT01 11=1475 37=NONE 39=0 41=1488 58=error origClOrdID, Reject! 102=1 434=1 10=175 2.2.8撤单回报,Cancel(8)

Tag 6 14 17 20 37 38 39 字段名称 <标准消息头> AvgPx CumQty ExecId ExecTransType OrderID OrderQty OrdStatus 平均成交价 累计成交数量 执行结果唯一标识符 应答发送类别 应答唯一标识符 委托数量 委托状态 Y Y Y Y 字段说明 必送 Y Y Y Y 注释 MsgType =8 只为0 4,表示已撤销

国信证券FIX网关接口说明

41 44 54 55 OrigClOrdID Price Side Symbol 源委托请求符 委托价格 买卖方向 证券代码 执行结果 未成交股数 委托请求唯一标识符 原始订单clordid 本次成交均价 本次成交数量 接收者ID Y C Y Y Y Y Y Y N N Y 当订单是限价委托时必送 1买入 2卖出 同39字段 标识委托所对应的ClOrdID 表示撤单的那笔委托 150 ExecType 151 LeavesQty 11 41 31 32 ClOrdID OrigClOrdID LastPx LastShares <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=15935=834=549=SERVER52=20110830-02:25:35.93356=CLIENT026=16.5711=31914=50017=4000077820=031=032=037=XX0033121439=441=31854=155=600446150=4151=010=111

2.2.9委托状态查询请求(H)

Tag 11 54 55 字段名称 <标准消息头> ClOrdIDSide Symbol字段说明 委托请求唯一标识符 买卖方向 证券代码 接收者ID 必送 Y Y Y Y Y 注释 MsgType = H 表示要查询的委托请求标志符 1买入2卖出 <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=8035=H34=2949=CLIENT0152=20110803-05:49:31.24056=SERVER11=10254=155=60044610=253

2.2.10委托状态查询应答 (8)

Tag 字段名称 字段说明 必送 注释 国信证券FIX网关接口说明

6 14 17 20 37 38 39 44 54 55 <标准消息头> AvgPx CumQty ExecId ExecTransType OrderID OrderQty OrdStatus Price Side Symbol 平均成交价 累计成交数量 执行结果唯一标识符 应答发送类别 应答唯一标识符 委托数量 委托状态 委托价格 买卖方向 证券代码 执行结果 未成交股数 本次成交均价 本次成交数量 接收者ID Y Y Y Y Y Y Y Y C Y Y Y Y N N Y MsgType =8 只为3 取数据库中记录的字段值 当订单是限价委托时必送 1买入 2卖出 同39字段 150 ExecType 151 LeavesQty 31 32 LastPx LastShares <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.29=14435=834=3149=SERVER52=20110803-05:49:31.24256=CLIENT016=1314=50017=920=031=13.3332=50037=XX0028005339=154=155=600446150=1151=50010=171

2.2.11资金股份查询(UAN)

Tag 字段名称 <标准消息头> 字段说明 请求唯一标识符 请求类别 币种 接收者ID 必送 Y Y Y N Y 注释 MsgType = UAN 用于标识请求唯一标识符 0查询股份 9查询资金 710 PosReqID724 PosReqType15 Currency <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[资金查询] 8=FIX.4.29=7535=UAN34=6149=CLIENT0152=20110803-05:59:52.94656=SERVER710=1234724=910=119 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[股份查询] 国信证券FIX网关接口说明

8=FIX.4.29=7535=UAN34=8149=CLIENT0152=20110803-06:06:21.18256=SERVER710=1234724=010=093 2.2.12资金股份查询回报(UAP)

Tag 字段名称 <标准消息头> 响应消息唯一标识符 710 PosReqID 724 PosReqType 727 TotalNumPosReports 728 PosReqResult 912 LastRptRequested 58 Text 字段说明 必送 Y Y Y Y Y Y Y C C C 注释 MsgType = UAP 用于标识本响应消息唯一标识符 用于标识请求唯一标识符 0查询股份 9查询资金 0 成功 其他 失败 N 还有后续报告 Y 本报告为最后一条报告 只有728不为0时返回 721 PosMaintRptID 请求唯一标识符 请求类别 返回报告条数 报告返回代码 后续结果 说明 Group NoPositions 703 PosType 类型说明 当724=0时 SB股份余额 SAV股份可用余额 SQ当前拥股数 LB:昨日余额 SS:卖出冻结数 SF:人工冻结数 SBQ:今日买入数量 此字段必须为group item的第一个字段 表示多仓数量(当703SB、SAV、SQ、LB、SBQ时) 表示空仓数量(当703= SS、SF时) 704 705 LongQty ShortQty 多仓数量 空仓数量 C C C C Group NoPosAmt 707 PosAmtTyp金额类型 e 当724=9时 FB资金余额 FAV资金可用余额 国信证券FIX网关接口说明

MV资产总值 F资金资产 SV市值 FBF资金买入冻结 当724=0时 BC 当前成本 SMV:个股市值 IC:盈亏 PC:持仓成本 BPL:买入盈亏 此字段必须为group item的第一个字段 15 55 708 Currency Symbol PosAmt 金额 币种 证券代码 市场代码 证券标识 股东代码 接收者ID C N N N N N Y XSHG沪 XSHE深 48 1 SecurityID Account <标准消息尾> 207 SecurityExchange 当724=0时必送 ? 当通过UAN查询/UAP返回资金数据时,无须填送Symbol,通过NoPosAmt组件取得资金信息; ? 当通过UAN查询/UAP返回股份数据时,必须填送Symbol,用户将从NoPositions组件获得与

symbol相关的股份数量数据,同时从NoPosAmt组件得到与symbol相关的股份金额数据; ?

报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[资金查询回报] 8=FIX.4.2??9=220??35=UAP??34=2??49=SERVER??52=20120309-16:20:16.808??56=CLIENT01??15=CNY??710=1234??721=3??724=9??727=1??728=0??753=6??707=FB??708=123456789.0??707=FAV??708=123456789.0??707=MV??708=N??707=F??708=123456789??707=SV??708=123456789??707=FBF??912=Y??10=026?? 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[股份查询回报] 8=FIX.4.2??9=272??35=UAP??34=2??49=SERVER??52=20120309-16:20:44.944??56=CLIENT01??1=A10000001??15=CNY??55=600446??207=XSHG??702=7??703=SB??704=1??703=SAV??704=1??703=SQ??704=1??703=LB??703=SBQ??703=SS??703=SF??710=1234??721=4??724=0??727=1??728=0??753=5??707=BC??708=1??707=SMV??708=1??707=IC??708=1??707=PC??707=BPL??912=Y??10=085??

国信证券FIX网关接口说明

2.2.14业务消息拒绝(j)

Tag 字段名称 <标准消息头> 字段说明 被拒绝的消息的消息类型 业务消息拒绝原因 被拒绝的消息的序号 说明 接收者ID 必送 Y Y Y N N Y 注释 MsgType = j 372 RefMsgType380 BusinessRejectReason45 58 RefSeqNumText <标准消息尾> 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=119 35=j 34=2 49=SERVER 52=20110712-07:31:03.029 56=CLIENT01 45=2 58=Conditionally Required Field Missing (38) 372=D 380=5 10=114

国信证券FIX网关接口说明

第四章 附录

1.1 OpenSSL加密库使用说明

下载地址:

http://www.openssl.org/

推荐使用OpenSSL加密库进行加解密操作:

加入头部

#include \#include \

#ifdef _DEBUG

#pragma comment(lib,\#else

#pragma comment(lib,\#endif

{//des加密 DES_cblock stKey = {0};

DES_string_to_key(szKey, &stKey); DES_key_schedule stSchedule = {0};

if(DES_set_key_checked(&stKey, &stSchedule)!=0)

//1.加密的密文必须是8位的

//2.只能加密8位,如果有多组,需要反复调用DES_ecb_encrypt int iBlockCount;

if (pi_iDataRawSize%8==0)

iBlockCount = pi_iDataRawSize/8; else

iBlockCount = (pi_iDataRawSize / 8)+1; for (int i=0; i

DES_ecb_encrypt((DES_cblock

*)(pszDataRaw+i*8),

*)(po_pszDataEncrypt+i*8), &stSchedule, DES_ENCRYPT); }

iRetSize = iBlockCount*8; }

{//blowfish 加密

BF_KEY stBF_Key = {0}; (DES_cblock

国信证券FIX网关接口说明

}

BF_set_key(&stBF_Key, strlen(szKey), (unsigned char *)szKey); int nNum = 0;

BF_cfb64_encrypt((unsigned char *)pszDataRaw, (unsigned char *)po_pszDataEncrypt,

&stBF_Key, (unsigned char *)&ivec, &nNum, BF_ENCRYPT); char ivec[32] = {0};

pi_iDataRawSize,

iRetSize = pi_iDataRawSize;

1.2 序列化

方法:把缓冲区按字节进行16进制转换,生成ASC字符串

示例函数:

char * SerializeData(const char *pszDataSrc, int iSizeSrc, char *pszDataDest, int iSizeDest) {//序列化

memset(pszDataDest, 0, iSizeDest); for (int i=0; i

char szValue[32] = {0};

_snprintf(szValue, sizeof(szValue)-1, \ }

return pszDataDest; }

if (i*2>=iSizeDest)

break;

strcat(pszDataDest, szValue);

1.3 其它 1.4 无

本文来源:https://www.bwwdw.com/article/pt6p.html

Top