('国信证券FIX网关接口说明国信证券FIXGW接入说明(2012-03-10)公司名称金证股份、国信证券文档编号APIFIXGW_20110804文档名称FIX网关接入说明文档版本1.0起草沈涛、陈佳驹、罗时俊、邢明金起草日期20110804审批审批日期国信证券FIX网关接口说明修订历史版本号日期状态修订人摘要V1.02011/8/4C沈涛、陈佳驹、罗时俊、邢明金创建V1.0.12011/8/9M罗时俊修改会话控制相关V1.0.22011/8/30M邢明金按照陈家驹的要求修改相关细节V1.0.32011/09/20M罗时俊UAP增加account字段V1.0.42011/09/26M邢明金修改执行回报中某些的字段V1.0.52011/12/19M罗时俊增加OpenSSL加密方式的补充说明V1.0.52012/02/07M邢明金修改主动复位和序号重置功能介绍V1.0.62012/03/10M罗时俊优化头寸查询UAP,增加成本盈亏等字段状态标识:C–CreatedA-AddedM-ModifiedD-Deleted国信证券FIX网关接口说明目录1国信证券FIX网关交易介绍...........................................................................................5第二章FIX协议简介......................................................................................................................61FIX协议...........................................................................................................................61.1什么是FIX协议...................................................................................................61.2FIX的特点...........................................................................................................61.3FIX协议结构.......................................................................................................61.4FIX信息格式.......................................................................................................61.5标准消息头结构...................................................................................................71.6标准消息尾结构...................................................................................................71.7FIX引擎的选择...................................................................................................72QuickFIX引擎.................................................................................................................72.1什么是QuickFIX..................................................................................................72.2QuickFix的特点...................................................................................................82.3QuickFIX的下载与使用......................................................................................82.4QuickFIX编程指南..............................................................................................8第三章国信证券FIX网关接口说明..............................................................................................81协议说明..........................................................................................................................81.1FIX版本...............................................................................................................81.2连接模式..............................................................................................................81.3会话控制..............................................................................................................81.4帐户模式..............................................................................................................92消息格式说明..................................................................................................................92.1会话层消息.................................................................................................................92.1.1登录请求(A)....................................................................................................92.1.2登录应答(A)..................................................................................................112.1.3注销请求(5)...................................................................................................112.1.4注销应答(5)...................................................................................................122.1.5心跳包请求(0)...............................................................................................122.1.6心跳包应答(0)...............................................................................................122.2应用层消息...............................................................................................................122.2.1单笔委托(D)..................................................................................................122.2.2委托确认,New(8)........................................................................................132.2.3委托拒绝,Reject(8).....................................................................................142.2.4执行回报(8)...................................................................................................152.2.5撤单请求(F)...................................................................................................152.2.6撤单确认,PendingCancel(8).......................................................................162.2.7撤单拒绝(9)...................................................................................................172.2.8撤单回报,Cancel(8)....................................................................................172.2.9委托状态查询请求(H)..................................................................................18国信证券FIX网关接口说明2.2.10委托状态查询应答(8)................................................................................182.2.11资金股份查询(UAN)...................................................................................192.2.12资金股份查询回报(UAP)...........................................................................192.2.14业务消息拒绝(j)..........................................................................................21国信证券FIX网关接口说明第一章系统介绍1国信证券FIX网关交易介绍国信证券的FIX网关主要是为其交易系统提供FIX协议接入。实现国际标准协议FIX与国信交易系统的对接。\uf06cFIX网关的功能定义:实现Fix协议和证券集中交易系统内部协议(或第三方协议)的转换,转发服务请求和发送成交回报。在集中交易系统与其它交易系统之间通过FIX协议进行互通连接。提供了如下功能:\uf06e提供Fix连接服务\uf075管理Fix连接与会话\uf075接收和发送Fix协议报文\uf06e报文转换\uf075将Fix协议报文转换成柜台接口报文\uf075其它协议到Fix协议\uf06e业务处理\uf075管理业务转换流程\uf075调用柜台接口,执行业务请求,返回执行报告\uf075成交回报推送国信证券FIX网关接口说明第二章FIX协议简介1FIX协议1.1什么是FIX协议它是由国际FIX协会组织提供的一个开放式协议,目的是推动国际贸易电子化的进程,在各类参与者之间,包括投资经理、经纪人,买方、卖方建立起实时的电子化通讯协议。Fix协议的目标是把各类证券金融业务需求流程格式化,使之成为一个个可用计算机语言描述的功能流程,并在每个业务功能接口上统一交换格式,方便各个功能模块的连接。目前,欧、美主要发达国家都是FIX协会的成员,国内的期货交易也以FIX协议为主。有关FIX的详细介绍可以在官方网站上找到:http://www.fixprotocol.org/1.2FIX的特点使用简单,各类应用系统可以依据FIX协议规则,编写自身的应用程序,应用于任何希望自动连接的交易双方,能支持各种商务功能。规则开放透明,具有不断扩充的能力。为了把最大的灵活性给予用户,FIX鼓励用户自定义域。这些域应在已达成有关共识的交易各方范围内使用,并应小心使用,以避免在各方实施该协议之初的时候容易引发的冲突。FIX由一个非盈利的FIX组织管理维护,公布FIX协议的标准化格式,在鼓励卖主加入该标准的同时,FIX始终保持中立。不受载体的限制,它可通过租用数据申、数据转接介质或在互联网上使用,它留下诸如以上的选择让使用的商号自己做出决定。也不依靠任何特定的通信协议(如X.25,异步,TCP/IP等)。在安全机制方面,FIX不提供特定的安全机制,它只是一个信息交换平台。但它支持任何双方允许的加密体系。1.3FIX协议结构FIX协议的格式存在着两种结构:"〈标记(Tag)〉=〈值(Value)〉"域结构和FIXML结构。目前采用的都是第一种方式来完成数据交换,下面是关于连接建立、信息交换方法等进行简要的说明,以便于了解FIX协议的概念。1.4FIX信息格式一条FIX协议信息的基本格式是:《标准消息头》+《信息正文域》+《标准消息尾》每条信息都是由一系列带有〈标记(Tag)〉=〈值(Value)〉的域组成的。在每个域之间通过"<>"分开。除了一些特殊规定外,信息中的域可按照任意顺序排列。所有域在都以"定界符"(#001;0x01H,文档中写为)表示终止国信证券FIX网关接口说明国信证券FIX交易网关使用FIX.4.2为基础版本,在此基础上,扩展了其它自定义Tag1.5标准消息头结构Tag字段名称字段说明必送注释8BeginString版本号Y固定为FIX.4.2(不能加密,必须是消息的第1个字段)9BodyLength消息体长度Y(不能加密,必须是消息的第2个字段),不包括8\\9\\10字段长度35MsgType消息类型Y(不能加密,必须是消息的第3个字段)49SenderCompID发送者IDY(不能加密)56TargetCompID接收者IDY(不能加密)34MsgSeqNum会话序号Y开市期间不允许重置,除非当天第一次登录52SendingTime发送时间Y使用UTC时间格式(注:必送字段中Y表示必送,N表示不送,C表示按条件。下同)1.6标准消息尾结构Tag字段名称字段说明必送注释10CheckSum校验位Y整包校验码,收发检查1.7FIX引擎的选择开发FIX应用一般基于一个符合FIX标准的底层库(engine)来做。这个库有商业化的、有开源的、也有完全是自己写的。相对而言,商业化的库管理功能更丰富,开源的库参考资源更多,而自己写的可能性能会好一些。我们推荐在一般应用要求的客户端使用开源的QuickFix引擎。2QuickFIX引擎2.1什么是QuickFIXQuickFIX是一个开源的,跨语种的应用程序,它可以灵活的运用在C++、C#、Java、Python、Ruby等编程语言之中。该引擎是目前应用较为广泛的FIX协议应用程国信证券FIX网关接口说明序,但关于QuickFIX的文档还不是很多,有关它的技术资料可以登陆http://www.quickfixengine.org查看。2.2QuickFix的特点Quickfix有几个优秀的特性,首先它已经把socket通讯,重连,心跳包,数据包匹配等底层的通讯工作全部完成,用户使用时,只需要关心怎样去实现业务逻辑即可,不需要再从头开始编码。其次,QuickFIX实现了多线程并发发送,异步线程接收的功能,对于高频交易者而言是一个必不可少特性。最后,QuickFIX在海外市场中已有广泛应用,它的稳定性和高效率已得到市场的认可。2.3QuickFIX的下载与使用用户可以到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.4QuickFIX编程指南有关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.1FIX版本国信Fix网关是在Fix4.2基础协议上,扩展了部分tag和MsgType。用户数据字典文件为FIX4.2.XML1.2连接模式标准模式以网关为Acceptor,客户端为Initiator做为常用模式。也支持客户为Acceptor,服务端为Initiator模式,此模式与标准模式的区别仅限于连接由谁发起,其它会话控制、消息请求应答同标准模式。国信证券FIX网关接口说明1.3会话控制a.会话序号SeqNum以网关为唯一标准,对端如果收到如”MsgSeqNumtoolow,expecting92butreceived22”,这样的提示,需要主动设置会话序号为网关期待值,以便进行正常通讯。b.在交易时间以及非交易时间,允许多次重置序号c.会话序号应允许手动修改,以便在异常情况时,能双方协商重置到一个安全数值。d.网关支持7x24小时连续工作。但在每天交易时间过后,网关会自动进行复位,并发送Logout消息,消息体内的TEXTtag会被设置为”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字段名称字段说明必送注释国信证券FIX网关接口说明<标准消息头>YMsgType=A98EncryptMethod密码字段加密方式Y指明RawData字段中,密码字段加密方式。加密后的二进制密文必须按16进制序列化(参见附录:27)成可传输文本。支持以下几种方式:’0’:不加密‘2’:DES-ECB‘101’:BlowFish缺省公钥为:”GSFIXGW”客户端的加密推荐使用OpenSSL里的加密库,可参见附录《1.1OpenSSL加密库使用说明》。108HeartBtInt心跳时间Y心跳间隔在消息交换的空闲期间,连接双方传输有规则的心跳消息,以监控通讯连接的状态。心跳间隔时间HeartBtInt由会话发起人在登录时向登录接受方发出,并得到确认。连接双方使用相同的心跳间隔时间。在发送任何消息后,FIX引擎将心跳间隔计时器清零。96RawData用户密户参数Y格式为“帐号类型:帐号:密码:”帐号类型目前仅支持’Z’表示使用资金帐号登录。密码字段可以通过在EncryptMethod上指明加密方式加密。例如“Z:100012345678:888888:加密方式:““Z:800100000002:844dece73a23:”95RawDataLength数据区长度C如果不送,使用strlen得到RawData字段长度141ResetSeqNumFlag序号重置标记NY表示序号重置N表示序号不重置国信证券FIX网关接口说明仅当天第一次登录允许重置或者收到网关发来的Logout带Text=”GWRESET”以后,才允许置上此标志,否则会被拒绝掉。<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=11035=A34=649=CLIENT0252=20110812-10:42:52.09756=SERVER96=Z:100000000001:ec9f2461774c39b5:98=2108=5141=N10=073(2).username_password用户登录模式:Tag字段名称字段说明必送注释<标准消息头>YMsgType=A98EncryptMethod密码字段加密方式Y指明RawData字段中,密码字段加密方式。加密后的二进制密文必须按16进制序列化(参见附录:27)成可传输文本。支持以下几种方式:’0’:不加密‘2’:DES-ECB‘101’:BlowFish缺省公钥为:”GSFIXGW”108HeartBtInt心跳时间Y心跳间隔在消息交换的空闲期间,连接双方传输有规则的心跳消息,以监控通讯连接的状态。心跳间隔时间HeartBtInt由会话发起人在登录时向登录接受方发出,并得到确认。连接双方使用相同的心跳间隔时间。在发送任何消息后,FIX引擎将心跳间隔计时器清零。553Username用户名Y554Password用户密码Y密码字段可以通过在EncryptMethod上指明加密方式加密。95RawDataLength数据区长度C如果不送,使用strlen得到RawData字段长度国信证券FIX网关接口说明141ResetSeqNumFlag序号重置标记NY表示序号重置N表示序号不重置仅当天第一次登录允许重置或者收到网关发来的Logout带Text=”GWRESET”以后,才允许置上此标志,否则会被拒绝掉。<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=11335=A34=1449=CLIENT0252=20110812-05:52:53.33256=SERVER98=2108=5141=N553=100000000001554=ec9f2461774c39b510=1232.1.2登录应答(A)Tag字段名称字段说明必送注释<标准消息头>YMsgType=A98EncryptMethod加密方式Y固定为’0’,表示不加密108HeartBtInt心跳时间Y95RawDataLength数据区长度C如果不送,使用strlen得到RawData字段长度<标准消息尾>接收者IDY报文范例:(注意:两个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=RejectedLogonAttempt:erorr_business:Brokerreturn:Code:-410301080Msg:-410301080客户密码错10=0022.1.3注销请求(5)注销消息是发起或确认FIX会话终止的消息。未经注销消息交换而断开连接,一律视为非正常的断开。在最后终止会话之前,注销的发起人应该等待连接对方发送确认的注销消息。这使得连接对方有机会进行有必要的缺口填补。如果连接对方没有在适当的时间间隔里作回应,那么国信证券FIX网关接口说明会话也可以强行终止。注销发起人在发送注销消息之后不应发送任何消息,除非接收到连接对方发出的重发请求消息。Tag字段名称字段说明必送注释<标准消息头>YMsgType=558Text注销原因C如果是网关主动复位,会在此字段填入”GWRESET”<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=5835=534=1349=CLIENT0252=20110812-05:52:52.33056=SERVER10=2552.1.4注销应答(5)Tag字段名称字段说明必送注释<标准消息头>YMsgType=558Text注销原因N<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=5835=534=1349=SERVER52=20110812-05:52:52.33156=CLIENT0210=0002.1.5心跳包请求(0)Tag字段名称字段说明必送注释<标准消息头>YMsgType=0<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=5735=034=349=SERVER52=20110706-02:38:52.20956=CLIENT0110=207国信证券FIX网关接口说明2.1.6心跳包应答(0)Tag字段名称字段说明必送注释<标准消息头>YMsgType=0<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=5735=034=449=CLIENT0152=20110706-02:39:12.14956=SERVER10=2082.1.7会话拒绝(3)Tag字段名称字段说明必送注释<标准消息头>YMsgType=345RefSeqNum被拒消息序号Y371RefTagID参考字段Y372RefMsgType参考的消息类型Y373SessionRejectReason拒绝原因类型Y58Text拒绝原因说明N<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=11435=334=349=CLIENT0252=20110826-06:22:26.40056=SERVER45=258=Tagspecifiedwithoutavalue371=37372=8373=410=1852.1.8重发请求(2)Tag字段名称字段说明必送注释<标准消息头>YMsgType=27BeginSeqNo开始序号Y16EndSeqNo结束序号Y<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)国信证券FIX网关接口说明8=FIX.4.29=6935=234=14049=CLIENT0452=20110920-10:26:10.45756=SERVER7=5016=010=2252.1.9序号重置(4)Tag字段名称字段说明必送注释<标准消息头>YMsgType=4123GapFillFlag序号重置模式YY:序号重设-缺口填补N:序号重设-重设36NewSeqNo新序号Y<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=10135=434=5043=Y49=SERVER52=20110920-10:25:45.81256=CLIENT04122=20110920-10:25:45.81236=82123=Y10=0982.1.10心跳测试(1)Tag字段名称字段说明必送注释<标准消息头>YMsgType=1112TestReqID测试请求标识符Y<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=6735=134=7149=SERVER52=20110919-07:02:52.17156=CLIENT04112=TEST10=0272.2应用层消息2.2.1单笔委托(D)Tag字段名称字段说明必送注释<标准消息头>YMsgType=D11ClOrdID请求唯一标识符Y用于标识此数据包的数字或国信证券FIX网关接口说明字符需要确保该字段的唯一性21HandlInst报盘模式Y1直通私有2直通公开3交易所一般使用直通私有(DMA)40OrdType委托类型Y1市价2限价54Side买卖方向Y1买入2卖出55Symbol证券代码Y60TransactTime数据包产生时间Y38OrderQty委托数量Y44Price委托价格C如果40字段为2,限价订单时则必送15Currency币种CCNY人民币USD美元HKD港币当需要明确市场时,必须送入此字段,否则按Symbol,自动判断,可能出错识别错误207SecurityExchange市场代码CXSHG沪XSHE深当需要明确市场时,必须送入此字段,否则按Symbol,自动判断,可能出错识别错误<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=14435=D34=449=CLIENT0152=20110711-06:51:11.27356=SERVER11=123415=CNY21=138=100040=244=10.3354=155=60044660=20110711-06:51:11207=XSHG10=1122.2.2委托确认,New(8)Tag字段名称字段说明必送注释<标准消息头>YMsgType=86AvgPx平均成交价Y14CumQty累计成交数量Y17ExecId执行结果唯一标识符Y国信证券FIX网关接口说明20ExecTransType应答发送类别Y只为037OrderID应答唯一标识符Y38OrderQty委托数量Y39OrdStatus委托状态Y0,表示委托确认44Price委托价格C当订单是限价委托时必送54Side买卖方向Y1买入2卖出55Symbol证券代码Y150ExecType执行结果Y同39字段151LeavesQty未成交股数Y11ClOrdID委托请求唯一标识符Y标识委托请求中所对应的ClOrdID31LastPx本次成交均价N32LastShares本次成交数量N<标准消息尾>接收者IDY报文范例:(注意:两个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=2332.2.3委托拒绝,Reject(8)Tag字段名称字段说明必送注释<标准消息头>YMsgType=86AvgPx平均成交价Y14CumQty累计成交数量Y17ExecId执行结果唯一标识符Y20ExecTransType应答发送类别Y只为037OrderID应答唯一标识符Y38OrderQty委托数量Y39OrdStatus委托状态Y8,表示委托拒绝44Price委托价格C当订单是限价委托时必送54Side买卖方向Y1买入2卖出55Symbol证券代码Y103OrdRejReason拒绝原因代码Y150ExecType执行结果Y同39字段151LeavesQty未成交股数Y国信证券FIX网关接口说明11ClOrdID委托请求唯一标识符N标识委托请求中所对应的ClOrdID31LastPx本次成交均价N32LastShares本次成交数量N58Text备注N拒绝原因<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=18135=834=249=SERVER52=20110711-07:37:42.14456=CLIENT016=011=124914=017=1000008520=037=124939=854=155=00000158=accountisnull,uselogonorwithaccounttag150=8151=010=1332.2.4执行回报(8)Tag字段名称字段说明必送注释<标准消息头>YMsgType=86AvgPx平均成交价Y14CumQty累计成交数量Y17ExecId执行结果唯一标识符Y20ExecTransType应答发送类别Y只为037OrderID应答唯一标识符Y38OrderQty委托数量Y39OrdStatus委托状态Y1为部分成交,2为全部成交,6为待撤44Price委托价格C当订单是限价委托时必送54Side买卖方向Y1买入2卖出55Symbol证券代码Y150ExecType执行结果Y1为部分成交,2为全部成交151LeavesQty未成交股数Y11ClOrdID委托请求唯一标识符N标识委托所对应的ClOrdID当收到未知成交回报时,此tag可不送31LastPx本次成交均价N32LastShares本次成交数量N<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)国信证券FIX网关接口说明8=FIX.4.29=15235=834=15549=SERVER52=20110712-06:43:08.19756=CLIENT016=1314=66617=1000028820=031=13.3332=33337=2p5119751139=154=155=600446150=1151=33410=0862.2.5撤单请求(F)Tag字段名称字段说明必送注释<标准消息头>YMsgType=F11ClOrdID请求唯一标识符Y用于标识此数据包的数字或字符需要确保该字段的唯一性38OrderQty撤单数量Y必送字段,数据类型为整型41OrigClOrdID被撤包请求唯一标识符Y用于标识被撤委托唯一标识符54Side买卖方向Y1买入2卖出55Symbol证券代码Y60TransactTime数据包产生时间Y<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=11135=F34=349=CLIENT0452=20110928-02:57:35.44756=SERVER11=1902441=1902354=155=00000160=20110928-02:57:3510=0162.2.6撤单确认,PendingCancel(8)Tag字段名称字段说明必送注释<标准消息头>YMsgType=86AvgPx平均成交价Y14CumQty累计成交数量Y17ExecId执行结果唯一标识符Y20ExecTransType应答发送类别Y只为037OrderID应答唯一标识符Y38OrderQty委托数量Y39OrdStatus委托状态Y6,待撤41OrigClOrdID源委托请求符Y44Price委托价格C当订单是限价委托时必送国信证券FIX网关接口说明54Side0买卖方向Y1买入2卖出55Symbol证券代码Y150ExecType执行结果Y同39字段151LeavesQty未成交股数Y11ClOrdID委托请求唯一标识符Y表示撤销委托中对于的ClOrdID字段41OrigClOrdID原始订单clordidY表示撤单的那笔委托31LastPx本次成交均价N32LastShares本次成交数量N<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)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=1872.2.7撤单拒绝(9)Tag字段名称字段说明必送注释<标准消息头>YMsgType=911ClOrdID撤单请求符Y表示撤销委托中对于的ClOrdID字段37OrderID合同序号Y39OrdStatus委托状态Y订单状态不一定是拒绝(8),该订单可能全部成交(2)不能再撤单41OrigClOrdID被撤包请求标识符Y102CancelRejReason拒绝原因类型Y434CxlRejResponseTo拒绝类型Y58Text说明N<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=12935=934=1749=SERVER52=20110712-07:50:12.63456=CLIENT0111=147537=NONE39=041=148858=errororigClOrdID,Reject!102=1434=110=175国信证券FIX网关接口说明2.2.8撤单回报,Cancel(8)Tag字段名称字段说明必送注释<标准消息头>YMsgType=86AvgPx平均成交价Y14CumQty累计成交数量Y17ExecId执行结果唯一标识符Y20ExecTransType应答发送类别Y只为037OrderID应答唯一标识符Y38OrderQty委托数量Y39OrdStatus委托状态Y4,表示已撤销41OrigClOrdID源委托请求符Y44Price委托价格C当订单是限价委托时必送54Side买卖方向Y1买入2卖出55Symbol证券代码Y150ExecType执行结果Y同39字段151LeavesQty未成交股数Y11ClOrdID委托请求唯一标识符Y标识委托所对应的ClOrdID41OrigClOrdID原始订单clordidY表示撤单的那笔委托31LastPx本次成交均价N32LastShares本次成交数量N<标准消息尾>接收者IDY报文范例:(注意:两个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=1112.2.9委托状态查询请求(H)Tag字段名称字段说明必送注释<标准消息头>YMsgType=H11ClOrdID委托请求唯一标识符Y表示要查询的委托请求标志符国信证券FIX网关接口说明54Side买卖方向Y1买入2卖出55Symbol证券代码Y<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=8035=H34=2949=CLIENT0152=20110803-05:49:31.24056=SERVER11=10254=155=60044610=2532.2.10委托状态查询应答(8)Tag字段名称字段说明必送注释<标准消息头>YMsgType=86AvgPx平均成交价Y14CumQty累计成交数量Y17ExecId执行结果唯一标识符Y20ExecTransType应答发送类别Y只为337OrderID应答唯一标识符Y38OrderQty委托数量Y39OrdStatus委托状态Y取数据库中记录的字段值44Price委托价格C当订单是限价委托时必送54Side买卖方向Y1买入2卖出55Symbol证券代码Y150ExecType执行结果Y同39字段151LeavesQty未成交股数Y31LastPx本次成交均价N32LastShares本次成交数量N<标准消息尾>接收者IDY报文范例:(注意:两个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国信证券FIX网关接口说明2.2.11资金股份查询(UAN)Tag字段名称字段说明必送注释<标准消息头>YMsgType=UAN710PosReqID请求唯一标识符Y用于标识请求唯一标识符724PosReqType请求类别Y0查询股份9查询资金15Currency币种N<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[资金查询]8=FIX.4.29=7535=UAN34=6149=CLIENT0152=20110803-05:59:52.94656=SERVER710=1234724=910=119报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[股份查询]8=FIX.4.29=7535=UAN34=8149=CLIENT0152=20110803-06:06:21.18256=SERVER710=1234724=010=0932.2.12资金股份查询回报(UAP)Tag字段名称字段说明必送注释<标准消息头>YMsgType=UAP721PosMaintRptID响应消息唯一标识符Y用于标识本响应消息唯一标识符710PosReqID请求唯一标识符Y用于标识请求唯一标识符724PosReqType请求类别Y0查询股份9查询资金727TotalNumPosReports返回报告条数Y728PosReqResult报告返回代码Y0成功其他失败912LastRptRequested后续结果YN还有后续报告Y本报告为最后一条报告58Text说明C只有728不为0时返回GroupNoPositionsC703PosType类型说明C当724=0时SB股份余额SAV股份可用余额SQ当前拥股数国信证券FIX网关接口说明LB:昨日余额SS:卖出冻结数SF:人工冻结数SBQ:今日买入数量此字段必须为groupitem的第一个字段704LongQty多仓数量C表示多仓数量(当703SB、SAV、SQ、LB、SBQ时)705ShortQty空仓数量C表示空仓数量(当703=SS、SF时)GroupNoPosAmtC707PosAmtType金额类型C当724=9时FB资金余额FAV资金可用余额MV资产总值F资金资产SV市值FBF资金买入冻结当724=0时BC当前成本SMV:个股市值IC:盈亏PC:持仓成本BPL:买入盈亏此字段必须为groupitem的第一个字段708PosAmt金额C15Currency币种N55Symbol证券代码N207SecurityExchange市场代码NXSHG沪XSHE深48SecurityID证券标识N1Account股东代码N当724=0时必送<标准消息尾>接收者IDY•当通过UAN查询/UAP返回资金数据时,无须填送Symbol,通过NoPosAmt组件取得资金信息;•当通过UAN查询/UAP返回股份数据时,必须填送Symbol,用户将从NoPositions组件获得与symbol相关的股份数量数据,同时从NoPosAmt组件得到与symbol相关的股份金额数据;国信证券FIX网关接口说明•报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[资金查询回报]8=FIX.4.29=22035=UAP34=249=SERVER52=20120309-16:20:16.80856=CLIENT0115=CNY710=1234721=3724=9727=1728=0753=6707=FB708=123456789.0707=FAV708=123456789.0707=MV708=N707=F708=123456789707=SV708=123456789707=FBF912=Y10=026报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)[股份查询回报]8=FIX.4.29=27235=UAP34=249=SERVER52=20120309-16:20:44.94456=CLIENT011=A1000000115=CNY55=600446207=XSHG702=7703=SB704=1703=SAV704=1703=SQ704=1703=LB703=SBQ703=SS703=SF710=1234721=4724=0727=1728=0753=5707=BC708=1707=SMV708=1707=IC708=1707=PC707=BPL912=Y10=0852.2.14业务消息拒绝(j)Tag字段名称字段说明必送注释<标准消息头>YMsgType=j372RefMsgType被拒绝的消息的消息类型Y380BusinessRejectReason业务消息拒绝原因Y45RefSeqNum被拒绝的消息的序号N58Text说明N<标准消息尾>接收者IDY报文范例:(注意:两个Tag间的空格实际上是不可见字符SOH)8=FIX.4.29=11935=j34=249=SERVER52=20110712-07:31:03.02956=CLIENT0145=258=ConditionallyRequiredFieldMissing(38)372=D380=510=114国信证券FIX网关接口说明第四章附录1.1OpenSSL加密库使用说明下载地址:http://www.openssl.org/推荐使用OpenSSL加密库进行加解密操作:加入头部#include"openssl/des.h"#include"openssl/blowfish.h"#ifdef_DEBUG#pragmacomment(lib,"../lib/openssl/libeay32MDd.lib")#else#pragmacomment(lib,"../lib/openssl/libeay32MD.lib")#endif{//des加密DES_cblockstKey={0};DES_string_to_key(szKey,&stKey);DES_key_schedulestSchedule={0};if(DES_set_key_checked(&stKey,&stSchedule)!=0)//1.加密的密文必须是8位的//2.只能加密8位,如果有多组,需要反复调用DES_ecb_encryptintiBlockCount;if(pi_iDataRawSize%8==0)iBlockCount=pi_iDataRawSize/8;elseiBlockCount=(pi_iDataRawSize/8)+1;for(inti=0;i=iSizeDest)break;strcat(pszDataDest,szValue);}returnpszDataDest;}1.3其它1.4无',)