Skip to content

Pro FIX 市场数据API

Wenqing Yu edited this page May 26, 2016 · 1 revision

FIX API 文档

BTCC Pro Exchange Market FIX API

FIX(金融信息交换)协议是在全球范围内被业内人士广泛使用的标准专业交易协议. 想要学习更多关于FIX协议的知识,请参考以下链接:

想要了解FIX协议的详尽说明文档,请参考以下链接:

ClOrdID (Tag 11)

ClOrdID (Tag 11) 每个客户端程序每个订单必须唯一,建议使用UUID生成,如果与他人重复会有安全问题!

登陆--Logon (A)

客户端需要发送一个'A'类型的登陆消息登陆到BTCC的FIX API服务器。 若登陆成功,服务器会返回一个'A'类型的确认消息;否则,若登录失败,服务器会返回一个登出消息。 Pro人民币客户端的配置文件需要包含以下项目:

[session]
BeginString=FIX.4.4
SocketConnectPort=9880
SocketConnectHost=pro-fix.btcc.com
SenderCompID=[ACCESS KEY]
TargetCompID=BTCC-PRO-EXCHANGE-SERVER

Pro美元客户端配置:

[session]
BeginString=FIX.4.4
SocketConnectPort=9880
SocketConnectHost=prousd-fix.btcc.com
SenderCompID=[ACCESS KEY]
TargetCompID=BTCC-PRO-EXCHANGE-SERVER

注意:您须使用您的访问秘钥作为SenderCompID,您可以登录到我们的官方网站生成相应的访问秘钥和秘密秘钥: *https://exchange.btcc.com/account/apikeys 当会话建立以后,用户即可请求市场行情数据(Market Data Snapshot Full Refresh)。 目前登录方法无需密码验证。

市场行情数据

市场行情数据方法用来请求市场上的数据。可以用来获取买卖两个方向的所有买单、买单、最新成交、收盘价、24小时最低成交价 24小时内平均成交价和24小时内成交量。服务器根据用户请求中的请求(263)标示给出回应。如果263=0(市场快照)则返回给用户市场的快照(35=W),请求一次只能获得一个响应。如果263=1(市场快照及更新),则返回用户一个市场快照(35=W)和多个增量更新(35=X)以提供给用户实时的数据。

市场行情数据请求--Market Data Snapshot Full Refresh Request (V)

请参照以下各表来设置请求市场行情数据的各个字段。

请求消息头

标签 名称 数据类型 必选? 注释
8 BeginString String 'FIX.4.4'.
9 BodyLength length 消息长度的字节数. 永远在整条消息的第二个字段(不加密).
35 MsgType String 'V'.
34 MsgSeqNum SeqNum 整型消息序列号.
49 SenderCompID String 您的访问秘钥.
52 SendingTime UTCTimestamp 消息发送时间, UTC时间(世界标准时间, 也称作 'GMT').
56 TargetCompID String 'BTCC-PRO-EXCHANGE-SERVER'.

市场行情数据请求体

标签 名称 数据类型 必选? 注释
55 Symbol String 支持三种种符号,XBTCNY、XBTUSD 和 BPICNY。请求BPICNY时需配合269=2来查询BPI 的变动
146 NoRelatedSym NumInGroup '1'.
262 MDReqID String 任意值.
263 SubscriptionRequestType char 此处使用'0'来请求市场行情快照,'1'请求市场行情快照加增量更新。
264 MarketDepth int
267 NoMDEntryTypes NumInGroup 请求的MDEntryType(269)字段的条目数量.
269 MDEntryType char 市场数据类型: 0=买单, 1=卖单, 2=最新成交价, 5=昨日收盘价, 7=24小时内最高成交价, 8=24小时内最低成交价, 9=24小时内平均成交价, B=24小时内成交量.

标准消息尾

标签 名称 数据类型 必选? 注释
10 CheckSum String 三个字节的校验码.

市场行情数据请求样本

注意:FIX 消息是由一串”标签=数值”的字段表示的,它们之间的分隔符是SOH(0x01). SOH是不可见的字符,在下面的所有样本示例中,我们使用'|'代替SOH来分隔不同字段. 客户端发来的市场行情数据快照请求样本:

8=FIX.4.4 | 9=227 | 35=V | 34=2 | 49=<您的访问秘钥>| 52=20150916-08:24:46.196 | 56=BTCC-PRO-EXCHANGE-SERVER | 262=76c7ec15-1fc2-4c23-acd0-5635fd10ac7e | 263=0 | 264=10 | 146=1 | 55=XBTCNY | 267=13 | 269=0 | 269=1 | 269=2 | 269=3 | 269=4 | 269=5 | 269=6 | 269=7 | 269=8 | 269=9 | 269=A | 269=B | 269=C | 10=042 | 

依据上述说明,这条消息表示:

BeginString: FIX.4.4
BodyLength: 227
MsgType: MarketDataRequest (V) 
MsgSeqNum: 2
SenderCompID: Your Access Key
SendingTime: 20150916-08:24:46.196 
TargetCompID: BTCC-PRO-EXCHANGE-SERVER
MDReqID: 76c7ec15-1fc2-4c23-acd0-5635fd10ac7e
SubscriptionRequestType:1 (SNAPSHOT_PLUS_UPDATES)
MarketDepth: 10
NoRelatedSym: 1
Symbol: XBTCNY
NoMDEntryTypes: 13
MDEntryType: BID (0)
MDEntryType: OFFER (1)
MDEntryType: TRADE (2)
MDEntryType: Index Value (3)
MDEntryType: Opening Price (4)
MDEntryType: Closing Price (5)
MDEntryType: Settlement Price (6)
MDEntryType: Trading Session High Price (7)
MDEntryType: Trading Session Low Price (8)
MDEntryType: Imbalance (9)
MDEntryType: Trade Volume (A)
MDEntryType: Open Interest (B)
MDEntryType: Composite Underlying Price (C)
CheckSum: 039

市场行情数据响应 -- Market Data Snapshot Full Refresh Reception (W) and MarketDataIncrementalRefresh

在收到请求以后,BTCCFIX服务器会返回一个市场行情数据快照('W'类型)消息给客户端,格式如下:

响应消息头

标签 名称 数据类型 必选? 注释
8 BeginString String 'FIX.4.4'.
9 BodyLength length 消息长度的字节数. 永远在整条消息的第二个字段(不加密).
35 MsgType String 'W'.
34 MsgSeqNum String 整型消息序列号.
49 SenderCompID String 'BTCC-PRO-EXCHANGE-SERVER'.
52 SendingTime UTCTimestamp 消息发送时间, UTC时间 (世界标准时间, 也称作 'GMT').
56 TargetCompID String 与客户端请求中的SenderCompID相同.

市场行情数据响应体

标签 名称 数据类型 必选? 注释
55 Symbol String 与客户端请求中的Symbol相同.
268 NoMdEntries NumInGroup 市场数据的条目数量.
269 MDEntryType char 市场数据类型: 0=买单, 1=卖单, 2=最新成交价, 5=昨日收盘价, 7=24小时内最高成交价, 8=24小时内最低成交价, 9=24小时内平均成交价, B=24小时内成交量.
270 MDEntryPx Price 价格.
271 MDEntrySize Qty 数量,可正可负,如果为负数则代表减少。
272 MDEntryDate UTCDateOnly UTC日期.
273 MDEntryTime UTCTimeOnly UTC时间.

标准消息尾

标签 名称 数据类型 必选? 注释
10 CheckSum String 三个字节的校验码.

市场行情数据响应样本

服务器发出的市场行情数据快照响应样本:

8=FIX.4.4 | 9=399 | 35=W | 34=2 | 49=BTCC-PRO-EXCHANGE-SERVER | 52=20150916-08:24:46.197 | 56=<您的访问秘钥> | 55=XBTCNY | 262=76c7ec15-1fc2-4c23-acd0-5635fd10ac7e | 268=7 | 269=0 | 270=1499 | 271=50 | 269=1 | 270=1509 | 271=50 | 269=2 | 270=1504 | 272=20150916 | 273=08:00:00.000 | 269=5 | 270=1432.8 | 272=20150916 | 273=08:00:00.000 | 269=7 | 270=1700 | 272=20150916 | 273=08:00:00.000 | 269=8 | 270=1144.9 | 272=20150916 | 273=08:00:00.000 | 269=B | 271=1 | 272=20150916 | 273=08:00:00.000 | 10=135 |   

依据上述说明,这条消息表示:

BeginString: FIX.4.4
BodyLength: 399
MsgType: MarketDataSnapshotFullRefresh (W)
MsgSeqNum: 2
SenderCompID: BTCC-PRO-EXCHANGE-SERVER
SendingTime: 20150916-08:24:46.197
TargetCompID: Your Access Key
Symbol: XBTCNY
MDReqID:  76c7ec15-1fc2-4c23-acd0-5635fd10ac7e
NoMDEntries: 7
----
MDEntryType: BID (0)
MDEntryPx: 1499
MDEntrySize: 50
----
MDEntryType: OFFER (1)
MDEntryPx: 1509
----
MDEntryType: TRADE (2)
MDEntryPx: 1504 
MDEntryDate: 20150916 
MDEntryTime: 08:00:00.000
----
MDEntryType: CLOSING PRICE (5)
MDEntryPx: 1432.8 
MDEntryDate: 20150916
MDEntryTime: 08:00:00.000
----
MDEntryType: 24 HOUR TRADING HIGH PRICE (7)
MDEntryPx: 1700 
MDEntryDate: 20150916
MDEntryTime: 08:00:00.000
----
MDEntryType: 24 HOUR TRADING LOW PRICE (8)
MDEntryPx: 1144.9 
MDEntryDate: 20150916
MDEntryTime: 08:00:00.000
----
MDEntryType: 24 HOUR TRADE VOLUME (B)
MDEntrySize: 1 
MDEntryDate: 20150916
MDEntryTime: 08:00:00.000
----
CheckSum: 135

市场行情数据增量更新 MarketDataIncrementalRefresh(X)

响应消息头

标签 名称 数据类型 必选? 注释
8 BeginString String 'FIX.4.4'.
9 BodyLength length 消息长度的字节数. 永远在整条消息的第二个字段(不加密).
35 MsgType String 'X'.
34 MsgSeqNum String 整型消息序列号.
49 SenderCompID String 'BTCC-PRO-EXCHANGE-SERVER'.
52 SendingTime UTCTimestamp 消息发送时间, UTC时间 (世界标准时间, 也称作 'GMT').
56 TargetCompID String 与客户端请求中的SenderCompID相同.

响应体

标签 名称 数据类型 必选? 注释
262 MDReqID String 请求ID.
268 NoMdEntries NumInGroup 市场数据的条目数量.
279 MDUpdateAction char 0=新增, 1=改变, 2=删除
269 MDEntryType char 市场数据类型: 0=买单, 1=卖单, 2=最新成交价, 5=昨日收盘价, 7=24小时内最高成交价, 8=24小时内最低成交价, 9=24小时内平均成交价, B=24小时内成交量.
55 Symbol String 与客户端请求中的Symbol相同.
270 MDEntryPx Price 价格.
271 MDEntrySize Qty 数量,可正可负,如果为负数则代表减少。
272 MDEntryDate UTCDateOnly UTC日期.
273 MDEntryTime UTCTimeOnly UTC时间.

标准消息尾

标签 名称 数据类型 必选? 注释
10 CheckSum String 三个字节的校验码.
8=FIX.4.4|9=191
|35=X|34=3|49=BTCC-PRO-EXCHANGE-SERVER|52=20160112-07:54:48.102|
56=<访问秘钥>|262=req111253|268=1|279=1|269=0|55=XBTCNY|270=2493|271=-1|
272=20160112|273=07:54:48.102|10=084

以上信息表示价格(Tag270)2,493 的买单(269=0)减少1(271=-1)个。

市场行情请求拒绝--Market Data Request Reject (Y)

当客户端发送一个非法请求到服务器,服务器会返回一个市场行情请求拒绝('Y'类型)消息给客户端,并在消息中通过MDReqRejReason(标签281)参数注明拒绝原因. 具体格式如下:

响应消息头

标签 名称 数据类型 必选? 注释
8 BeginString String 'FIX.4.4'.
9 BodyLength length 消息长度的字节数. 永远在整条消息的第二个字段(不加密).
35 MsgType String 'Y'.
34 MsgSeqNum SeqNum 整型消息序列号.
49 SenderCompID String 'BTCC-PRO-EXCHANGE-SERVER'.
52 SendingTime UTCTimestamp 消息发送时间, UTC时间 (世界标准时间, 也称作 'GMT').
56 TargetCompID String 与客户端请求中的SenderCompID相同.

市场行情请求拒绝体

标签 名称 数据类型 必选? 注释
262 MDReqID String 与客户端请求中的MDReqID相同.
281 MDReqRejReason char 拒绝客户端市场行情请求的理由: 0 = 不支持的symbol,4 = 不支持的SubscriptionRequestType,5 = 不支持的MarketDepth,6 = 不支持的MDUpdateType.

标准消息尾

标签 名称 数据类型 必选? 注释
10 CheckSum String 三个字节的校验码.

市场行情请求拒绝样本

服务器返回的市场行情请求拒绝样本:

8=FIX.4.4| 9=87| 35=Y| 34=2 |49=BTCC-PRO-EXCHANGE-SERVER| 52=20140904-09:41:48.538| 56=<您的访问秘钥>| 262=123| 281=0| 10=218 

依据上述说明,这条消息表示:

 BeginString: FIX.4.4
BodyLength: 87
MsgType: MarketDataRequestReject (Y)
MsgSeqNum: 2
SenderCompID: BTCC-PRO-EXCHANGE-SERVER
SendingTime: 20140904-09:41:48.538 
TargetCompID:您的访问秘钥
MDReqID: 123
MDReqRejReason: Unkown Symbol (0)
CheckSum: 218