为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

国信证券FIX网关接入说明_20120310

2018-09-09 26页 doc 656KB 234阅读

用户头像

is_166477

暂无简介

举报
国信证券FIX网关接入说明_20120310国信证券FIX网关接口说明 国信证券 FIXGW接入说明 (2012-03-10) 公司名称 金证股份、国信证券 文档编号 APIFIXGW_20110804 文档名称 FIX网关接入说明 文档版本 1.0 起 草 沈涛、陈佳驹、罗时俊、邢明金 起草日期 20110804 审 批 审批日期 修订历史 版本号 日期 状态 修订人 摘要 V1.0 2011/8/4 C 沈涛、陈佳驹、罗时俊、邢明金 创建 V1.0.1 2011/8/9 M ...
国信证券FIX网关接入说明_20120310
国信证券FIX网关接口说明 国信证券 FIXGW接入说明 (2012-03-10) 公司名称 金证股份、国信证券 文档编号 APIFIXGW_20110804 文档名称 FIX网关接入说明 文档版本 1.0 起 草 沈涛、陈佳驹、罗时俊、邢明金 起草日期 20110804 审 批 审批日期 修订历史 版本号 日期 状态 修订人 摘要 V1.0 2011/8/4 C 沈涛、陈佳驹、罗时俊、邢明金 创建 V1.0.1 2011/8/9 M 罗时俊 V1.0.2 2011/8/30 M 邢明金 按照陈家驹的要求修改相关细节 V1.0.3 2011/09/20 M 罗时俊 UAP增加account字段 V1.0.4 2011/09/26 M 邢明金 修改执行回报中某些的字段 V1.0.5 2011/12/19 M 罗时俊 增加OpenSSL加密方式的补充说明 V1.0.5 2012/02/07 M 邢明金 修改主动复位和序号重置功能介绍 V1.0.6 2012/03/10 M 罗时俊 优化头寸查询UAP,增加成本盈亏等字段 状态标识:C – Created A - Added M - Modified D - Deleted 目录 51 国信证券FIX网关交易介绍 6第二章 FIX简介 61 FIX协议 61.1 什么是FIX协议 61.2 FIX的特点 61.3 FIX协议结构 61.4 FIX信息格式 71.5 消息头结构 71.6 标准消息尾结构 71.7 FIX引擎的选择 72 QuickFIX引擎 72.1 什么是QuickFIX 82.2 QuickFix的特点 82.3 QuickFIX的下载与使用 82.4 QuickFIX编程指南 8第三章 国信证券FIX网关接口说明 81 协议说明 81.1 FIX版本 81.2 连接模式 81.3 会话控制 91.4 帐户模式 92 消息格式说明 92.1会话层消息 92.1.1登录请求(A) 112.1.2登录应答(A) 112.1.3注销请求(5) 122.1.4注销应答(5) 122.1.5心跳包请求(0) 122.1.6心跳包应答(0) 122.2应用层消息 122.2.1单笔委托(D) 132.2.2委托确认,New(8) 142.2.3委托拒绝,Reject(8) 152.2.4执行回报(8) 152.2.5撤单请求(F) 162.2.6撤单确认,PendingCancel(8) 172.2.7撤单拒绝(9) 172.2.8撤单回报,Cancel(8) 182.2.9委托状态查询请求(H) 182.2.10委托状态查询应答 (8) 192.2.11资金股份查询(UAN) 192.2.12资金股份查询回报(UAP) 212.2.14业务消息拒绝(j) 第一章 系统介绍 1 国信证券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 1.5 标准消息头结构 Tag 字段名称 字段说明 必送 注释 8 BeginString 版本号 Y 固定为FIX.4.2(不能加密,必须是消息的第1个字段) 9 BodyLength 消息体长度 Y (不能加密,必须是消息的第2个字段),不包括8\9\10字段长度 35 MsgType 消息类型 Y (不能加密,必须是消息的第3个字段) 49 SenderCompID 发送者ID Y (不能加密) 56 TargetCompID 接收者ID Y (不能加密) 34 MsgSeqNum 会话序号 Y 开市期间不允许重置,除非当天第一次登录 52 SendingTime 发送时间 Y 使用UTC时间格式 (注: 必送字段中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查看。 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. 会话序号应允许手动修改,以便在异常情况时,能双方协商重置到一个安全数值。 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 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = A 98 EncryptMethod 密码字段加密方式 Y 指明RawData字段中,密码字段加密方式。加密后的二进制密文必须按16进制序列化(参见附录:26)成可传输文本。支持以下几种方式: ’0’:不加密 ‘2’:DES-ECB ‘101’:BlowFish 缺省公钥为:”GSFIXGW” 客户端的加密推荐使用OpenSSL里的加密库,可参见附录《1.1 OpenSSL加密库使用说明》。 108 HeartBtInt 心跳时间 Y 心跳间隔 在消息交换的空闲期间,连接双方传输有规则的心跳消息,以监控通讯连接的状态。心跳间隔时间HeartBtInt由会话发起人在登录时向登录接受方发出,并得到确认。连接双方使用相同的心跳间隔时间。在发送任何消息后,FIX引擎将心跳间隔计时器清零。 96 RawData 用户密户参数 Y 格式为“帐号类型:帐号:密码:”帐号类型目前仅支持’Z’表示使用资金帐号登录。密码字段可以通过在EncryptMethod上指明加密方式加密。 例如“Z:100012345678:888888: 加密方式:“ “Z:800100000002:844dece73a23:” 95 RawDataLength 数据区长度 C 如果不送,使用strlen得到RawData字段长度 141 ResetSeqNumFlag 序号重置标记 N Y表示序号重置 N表示序号不重置 仅当天第一次登录允许重置 或者收到网关发来的Logout带Text=”GWRESET”以后,才允许置上此标志,否则会被拒绝掉。 <标准消息尾> 接收者ID Y 报文范例:(注意:两个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 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = A 98 EncryptMethod 密码字段加密方式 Y 指明RawData字段中,密码字段加密方式。加密后的二进制密文必须按16进制序列化(参见附录:26)成可传输文本。支持以下几种方式: ’0’:不加密 ‘2’:DES-ECB ‘101’:BlowFish 缺省公钥为:”GSFIXGW” 108 HeartBtInt 心跳时间 Y 心跳间隔 在消息交换的空闲期间,连接双方传输有规则的心跳消息,以监控通讯连接的状态。心跳间隔时间HeartBtInt由会话发起人在登录时向登录接受方发出,并得到确认。连接双方使用相同的心跳间隔时间。在发送任何消息后,FIX引擎将心跳间隔计时器清零。 553 Username 用户名 Y 554 Password 用户密码 Y 密码字段可以通过在EncryptMethod上指明加密方式加密。 95 RawDataLength 数据区长度 C 如果不送,使用strlen得到RawData字段长度 141 ResetSeqNumFlag 序号重置标记 N Y表示序号重置 N表示序号不重置 仅当天第一次登录允许重置 或者收到网关发来的Logout带Text=”GWRESET”以后,才允许置上此标志,否则会被拒绝掉。 <标准消息尾> 接收者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 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = A 98 EncryptMethod 加密方式 Y 固定为’0’,表示不加密 108 HeartBtInt 心跳时间 Y 95 RawDataLength 数据区长度 C 如果不送,使用strlen得到RawData字段长度 <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=75 35=A 34=1 49=SERVER 52=20110803-02:47:17.397 56=CLIENT01 98=0 108=20 141=Y 10=042 8=FIX.4.2 9=156 35=5 34=1 49=SERVER 52=20110803-06:49:12.250 56=CLIENT01 58=Rejected Logon Attempt: erorr_business: Broker return: Code:-410301080 Msg:-410301080客户密码错 10=002 2.1.3注销请求(5) 注销消息是发起或确认FIX会话终止的消息。未经注销消息交换而断开连接,一律视为非正常的断开。 在最后终止会话之前,注销的发起人应该等待连接对方发送确认的注销消息。这使得连接对方有机会进行有必要的缺口填补。如果连接对方没有在适当的时间间隔里作回应,那么会话也可以强行终止。 注销发起人在发送注销消息之后不应发送任何消息,除非接收到连接对方发出的重发请求消息。 Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = 5 58 Text 注销原因 C 如果是网关主动复位,会在此字段填入”GWRESET” <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=58 35=5 34=13 49=CLIENT02 52=20110812-05:52:52.330 56=SERVER 10=255 2.1.4注销应答(5) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = 5 58 Text 注销原因 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=58 35=5 34=13 49=SERVER 52=20110812-05:52:52.331 56=CLIENT02 10=000 2.1.5心跳包请求(0) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = 0 <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=57 35=0 34=3 49=SERVER 52=20110706-02:38:52.209 56=CLIENT01 10=207 2.1.6心跳包应答(0) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = 0 <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=57 35=0 34=4 49=CLIENT01 52=20110706-02:39:12.149 56=SERVER 10=208 2.1.7会话拒绝(3) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType =3 45 RefSeqNum 被拒消息序号 Y 371 RefTagID 参考字段 Y 372 RefMsgType 参考的消息类型 Y 373 SessionRejectReason 拒绝原因类型 Y 58 Text 拒绝原因说明 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=114 35=3 34=3 49=CLIENT02 52=20110826-06:22:26.400 56=SERVER 45=2 58=Tag specified without a value 371=37 372=8 373=4 10=185 2.1.8重发请求(2) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = 2 7 BeginSeqNo 开始序号 Y 16 EndSeqNo 结束序号 Y <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=69 35=2 34=140 49=CLIENT04 52=20110920-10:26:10.457 56=SERVER 7=50 16=0 10=225 2.1.9序号重置(4) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = 4 123 GapFillFlag 序号重置模式 Y Y: 序号重设-缺口填补 N: 序号重设-重设 36 NewSeqNo 新序号 Y <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=101 35=4 34=50 43=Y 49=SERVER 52=20110920-10:25:45.812 56=CLIENT04 122=20110920-10:25:45.812 36=82 123=Y 10=098 2.1.10 心跳测试(1) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = 1 112 TestReqID 测试请求标识符 Y <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=67 35=1 34=71 49=SERVER 52=20110919-07:02:52.171 56=CLIENT04 112=TEST 10=027 2.2应用层消息 2.2.1单笔委托(D) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = D 11 ClOrdID 请求唯一标识符 Y 用于标识此数据包的数字或字符 需要确保该字段的唯一性 21 HandlInst 报盘模式 Y 1直通私有 2直通公开 3交易所 一般使用直通私有(DMA) 40 OrdType 委托类型 Y 1市价 2限价 54 Side 买卖方向 Y 1买入 2卖出 55 Symbol 证券代码 Y 60 TransactTime 数据包产生时间 Y 38 OrderQty 委托数量 Y 44 Price 委托价格 C 如果40字段为2,限价订单时则必送 15 Currency 币种 C CNY人民币 USD美元 HKD港币 当需要明确市场时,必须送入此字段,否则按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 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType =8 6 AvgPx 平均成交价 Y 14 CumQty 累计成交数量 Y 17 ExecId 执行结果唯一标识符 Y 20 ExecTransType 应答发送类别 Y 只为0 37 OrderID 应答唯一标识符 Y 38 OrderQty 委托数量 Y 39 OrdStatus 委托状态 Y 0,表示委托确认 44 Price 委托价格 C 当订单是限价委托时必送 54 Side 买卖方向 Y 1买入 2卖出 55 Symbol 证券代码 Y 150 ExecType 执行结果 Y 同39字段 151 LeavesQty 未成交股数 Y 11 ClOrdID 委托请求唯一标识符 Y 标识委托请求中所对应的ClOrdID 31 LastPx 本次成交均价 N 32 LastShares 本次成交数量 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=146 35=8 34=53 49=SERVER 52=20110804-09:33:46.560 56=CLIENT01 6=0 11=106 14=0 17=3 20=0 32=0 37=XX00280057 38=1000 39=0 54=1 55=600446 150=0 151=1000 10=233 2.2.3委托拒绝,Reject(8) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType =8 6 AvgPx 平均成交价 Y 14 CumQty 累计成交数量 Y 17 ExecId 执行结果唯一标识符 Y 20 ExecTransType 应答发送类别 Y 只为0 37 OrderID 应答唯一标识符 Y 38 OrderQty 委托数量 Y 39 OrdStatus 委托状态 Y 8,表示委托拒绝 44 Price 委托价格 C 当订单是限价委托时必送 54 Side 买卖方向 Y 1买入 2卖出 55 Symbol 证券代码 Y 103 OrdRejReason 拒绝原因代码 Y 150 ExecType 执行结果 Y 同39字段 151 LeavesQty 未成交股数 Y 11 ClOrdID 委托请求唯一标识符 N 标识委托请求中所对应的ClOrdID 31 LastPx 本次成交均价 N 32 LastShares 本次成交数量 N 58 Text 备注 N 拒绝原因 <标准消息尾> 接收者ID Y 报文范例:(注意:两个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 2.2.4执行回报(8) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType =8 6 AvgPx 平均成交价 Y 14 CumQty 累计成交数量 Y 17 ExecId 执行结果唯一标识符 Y 20 ExecTransType 应答发送类别 Y 只为0 37 OrderID 应答唯一标识符 Y 38 OrderQty 委托数量 Y 39 OrdStatus 委托状态 Y 1为部分成交,2为全部成交,6为待撤 44 Price 委托价格 C 当订单是限价委托时必送 54 Side 买卖方向 Y 1买入 2卖出 55 Symbol 证券代码 Y 150 ExecType 执行结果 Y 1为部分成交,2为全部成交 151 LeavesQty 未成交股数 Y 11 ClOrdID 委托请求唯一标识符 N 标识委托所对应的ClOrdID 当收到未知成交回报时,此tag可不送 31 LastPx 本次成交均价 N 32 LastShares 本次成交数量 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个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 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = F 11 ClOrdID 请求唯一标识符 Y 用于标识此数据包的数字或字符 需要确保该字段的唯一性 38 OrderQty 撤单数量 Y 必送字段,数据类型为整型 41 OrigClOrdID 被撤包请求唯一标识符 Y 用于标识被撤委托唯一标识符 54 Side 买卖方向 Y 1买入 2卖出 55 Symbol 证券代码 Y 60 TransactTime 数据包产生时间 Y <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=111 35=F 34=3 49=CLIENT04 52=20110928-02:57:35.447 56=SERVER 11=19024 41=19023 54=1 55=000001 60=20110928-02:57:35 10=016 2.2.6撤单确认,PendingCancel(8) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType =8 6 AvgPx 平均成交价 Y 14 CumQty 累计成交数量 Y 17 ExecId 执行结果唯一标识符 Y 20 ExecTransType 应答发送类别 Y 只为0 37 OrderID 应答唯一标识符 Y 38 OrderQty 委托数量 Y 39 OrdStatus 委托状态 Y 6, 待撤 41 OrigClOrdID 源委托请求符 Y 44 Price 委托价格 C 当订单是限价委托时必送 54 Side0 买卖方向 Y 1买入 2卖出 55 Symbol 证券代码 Y 150 ExecType 执行结果 Y 同39字段 151 LeavesQty 未成交股数 Y 11 ClOrdID 委托请求唯一标识符 Y 表示撤销委托中对于的ClOrdID字段 41 OrigClOrdID 原始订单clordid Y 表示撤单的那笔委托 31 LastPx 本次成交均价 N 32 LastShares 本次成交数量 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=156 35=8 34=3 49=SERVER 52=20110830-02:18:49.049 56=CLIENT02 6=0 11=315 14=0 17=40000765 20=0 31=0 32=0 37=XX00331212 39=6 41=314 54=1 55=600446 150=1 151=1000 10=187 2.2.7撤单拒绝(9) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = 9 11 ClOrdID 撤单请求符 Y 表示撤销委托中对于的ClOrdID字段 37 OrderID 合同序号 Y 39 OrdStatus 委托状态 Y 订单状态不一定是拒绝(8),该订单可能全部成交(2)不能再撤单 41 OrigClOrdID 被撤包请求标识符 Y 102 CancelRejReason 拒绝原因类型 Y 434 CxlRejResponseTo 拒绝类型 Y 58 Text 说明 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个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 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType =8 6 AvgPx 平均成交价 Y 14 CumQty 累计成交数量 Y 17 ExecId 执行结果唯一标识符 Y 20 ExecTransType 应答发送类别 Y 只为0 37 OrderID 应答唯一标识符 Y 38 OrderQty 委托数量 Y 39 OrdStatus 委托状态 Y 4,表示已撤销 41 OrigClOrdID 源委托请求符 Y 44 Price 委托价格 C 当订单是限价委托时必送 54 Side 买卖方向 Y 1买入 2卖出 55 Symbol 证券代码 Y 150 ExecType 执行结果 Y 同39字段 151 LeavesQty 未成交股数 Y 11 ClOrdID 委托请求唯一标识符 Y 标识委托所对应的ClOrdID 41 OrigClOrdID 原始订单clordid Y 表示撤单的那笔委托 31 LastPx 本次成交均价 N 32 LastShares 本次成交数量 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=159 35=8 34=5 49=SERVER 52=20110830-02:25:35.933 56=CLIENT02 6=16.57 11=319 14=500 17=40000778 20=0 31=0 32=0 37=XX00331214 39=4 41=318 54=1 55=600446 150=4 151=0 10=111 2.2.9委托状态查询请求(H) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = H 11 ClOrdID 委托请求唯一标识符 Y 表示要查询的委托请求标志符 54 Side 买卖方向 Y 1买入2卖出 55 Symbol 证券代码 Y <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=80 35=H 34=29 49=CLIENT01 52=20110803-05:49:31.240 56=SERVER 11=102 54=1 55=600446 10=253 2.2.10委托状态查询应答 (8) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType =8 6 AvgPx 平均成交价 Y 14 CumQty 累计成交数量 Y 17 ExecId 执行结果唯一标识符 Y 20 ExecTransType 应答发送类别 Y 只为3 37 OrderID 应答唯一标识符 Y 38 OrderQty 委托数量 Y 39 OrdStatus 委托状态 Y 取数据库中的字段值 44 Price 委托价格 C 当订单是限价委托时必送 54 Side 买卖方向 Y 1买入 2卖出 55 Symbol 证券代码 Y 150 ExecType 执行结果 Y 同39字段 151 LeavesQty 未成交股数 Y 31 LastPx 本次成交均价 N 32 LastShares 本次成交数量 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH) 8=FIX.4.2 9=144 35=8 34=31 49=SERVER 52=20110803-05:49:31.242 56=CLIENT01 6=13 14=500 17=9 20=0 31=13.33 32=500 37=XX00280053 39=1 54=1 55=600446 150=1 151=500 10=171 2.2.11资金股份查询(UAN) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = UAN 710 PosReqID 请求唯一标识符 Y 用于标识请求唯一标识符 724 PosReqType 请求类别 Y 0查询股份 9查询资金 15 Currency 币种 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[资金查询] 8=FIX.4.2 9=75 35=UAN 34=61 49=CLIENT01 52=20110803-05:59:52.946 56=SERVER 710=1234 724=9 10=119 报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[股份查询] 8=FIX.4.2 9=75 35=UAN 34=81 49=CLIENT01 52=20110803-06:06:21.182 56=SERVER 710=1234 724=0 10=093 2.2.12资金股份查询回报(UAP) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = UAP 721 PosMaintRptID 响应消息唯一标识符 Y 用于标识本响应消息唯一标识符 710 PosReqID 请求唯一标识符 Y 用于标识请求唯一标识符 724 PosReqType 请求类别 Y 0查询股份 9查询资金 727 TotalNumPosReports 返回报告条数 Y 728 PosReqResult 报告返回代码 Y 0 成功 其他 失败 912 LastRptRequested 后续结果 Y N 还有后续报告 Y 本报告为最后一条报告 58 Text 说明 C 只有728不为0时返回 Group NoPositions C 703 PosType 类型说明 C 当724=0时 SB股份余额 SAV股份可用余额 SQ当前拥股数 LB:昨日余额 SS:卖出冻结数 SF:人工冻结数 SBQ:今日买入数量 此字段必须为group item的第一个字段 704 LongQty 多仓数量 C 表示多仓数量(当703SB、SAV、SQ、LB、SBQ时) 705 ShortQty 空仓数量 C 表示空仓数量(当703= SS、SF时) Group NoPosAmt C 707 PosAmtType 金额类型 C 当724=9时 FB资金余额 FAV资金可用余额 MV资产总值 F资金资产 SV市值 FBF资金买入冻结 当724=0时 BC 当前成本 SMV:个股市值 IC:盈亏 PC:持仓成本 BPL:买入盈亏 此字段必须为group item的第一个字段 708 PosAmt 金额 C 15 Currency 币种 N 55 Symbol 证券代码 N 207 SecurityExchange 市场代码 N XSHG沪 XSHE深 48 SecurityID 证券标识 N 1 Account 股东代码 N 当724=0时必送 <标准消息尾> 接收者ID Y · 当通过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 2.2.14业务消息拒绝(j) Tag 字段名称 字段说明 必送 注释 <标准消息头> Y MsgType = j 372 RefMsgType 被拒绝的消息的消息类型 Y 380 BusinessRejectReason 业务消息拒绝原因 Y 45 RefSeqNum 被拒绝的消息的序号 N 58 Text 说明 N <标准消息尾> 接收者ID Y 报文范例:(注意:两个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 第四章 附录 1.1 OpenSSL加密库使用说明 下载地址: http://www.openssl.org/ 推荐使用OpenSSL加密库进行加解密操作: 加入头部 #include "openssl/des.h" #include "openssl/blowfish.h" #ifdef _DEBUG #pragma comment(lib,"../lib/openssl/libeay32MDd.lib") #else #pragma comment(lib,"../lib/openssl/libeay32MD.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=iSizeDest) break; strcat(pszDataDest, szValue); } return pszDataDest; } 1.3 其它 1.4 无
/
本文档为【国信证券FIX网关接入说明_20120310】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索