-
Notifications
You must be signed in to change notification settings - Fork 1
Pro FIX 市场数据API
FIX(金融信息交换)协议是在全球范围内被业内人士广泛使用的标准专业交易协议. 想要学习更多关于FIX协议的知识,请参考以下链接:
想要了解FIX协议的详尽说明文档,请参考以下链接:
- http://www.fixtradingcommunity.org/FIXimate/FIXimate3.0/ BTCC使用FIX 4.4协议。
ClOrdID (Tag 11) 每个客户端程序每个订单必须唯一,建议使用UUID生成,如果与他人重复会有安全问题!
客户端需要发送一个'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)以提供给用户实时的数据。
请参照以下各表来设置请求市场行情数据的各个字段。
标签 | 名称 | 数据类型 | 必选? | 注释 |
---|---|---|---|---|
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
在收到请求以后,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
标签 | 名称 | 数据类型 | 必选? | 注释 |
---|---|---|---|---|
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)个。
当客户端发送一个非法请求到服务器,服务器会返回一个市场行情请求拒绝('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