fix协议的每一条消息都分为三部分,
即:消息头,消息内容,消息尾
下边是btcc的专业交易消息头
标签 | 名称 | 数据类型 | 必选? | 注释 |
---|---|---|---|---|
8 | BeginString | String | 是 | 'FIX.4.4'. |
9 | BodyLength | length | 是 | 消息长度的字节数. 永远在整条消息的第二个字段(不加密). |
35 | MsgType | String | 是 | 代表消息类型 |
34 | MsgSeqNum | SeqNum | 是 | 整型消息序列号. |
49 | SenderCompID | String | 是 | 您的访问秘钥. |
52 | SendingTime | UTCTimestamp | 是 | 消息发送时间, UTC时间(世界标准时间, 也称作 'GMT'). |
56 | TargetCompID | String | 是 | 'BTCC-PRO-EXCHANGE-SERVER'. |
消息头有第一个标签一般情况下都是8,表示消息使用的fix协议版本.接着9标签表示消息内容长度的字节数,第三个标签,消息类型,分为"A","U",等不同类型,"A"类型为登陆消息,"U"类型一般表示自定义消息类型.
标准消息尾#
标签 | 名称 | 数据类型 | 必选? | 注释 |
---|---|---|---|---|
10 | CheckSum | String | 是 | 三个字节的校验码 |
char *GenerateCheckSum( char *buf, long bufLen )
{
static char tmpBuf[ 4 ]; long idx;
unsigned int cks;
for( idx = 0L, cks = 0; idx < bufLen; cks += (unsigned int)buf[ idx++ ] ); sprintf( tmpBuf, “%03d”, (unsigned int)( cks % 256 ) );
return( tmpBuf );
}
账户信息查询请求--Account Info Request (U1000)#
账户信息查询请求消息('U1000'类型)用来请求用户账户余额信息。
标签 | 名称 | 数据类型 | 必选? | 注释 |
---|---|---|---|---|
35 | MsgType | String | 是 | 'U1000'. |
1 | Account | String | 是 | 经过秘钥加密后的字符串 |
8000 | AccReqID | String | 是 | 客户端请求的唯一标识ID. |
9263 | SubAccountInfoRequestType | Char | 否 | 值是‘0’或‘1’(BTCC自定义字段,如果想要使用推送功能,请参照selfFIX44.xml修改您的xml文件) |
账户信息查询请求消息样本#
注意:FIX消息是由一串”标签=数值”的字段表示的,它们之间的分隔符是SOH(0x01). SOH是不可见的字符,在下面的所有样本示例中,我们使用'|'代替SOH来分隔不同字段.
客户端发来的账户信息查询请求消息样本:
8=FIX.4.4 | 9=149 | 35=U1000 | 34=2 | 49=<ACCESS KEY>| 52=20150917-02:23:49.088 | 56=BTCC-PRO-EXCHANGE-SERVER | 1=1414580974252000:Basic YmQ2NzI4OTctMTA0ZC00OTRlLWE0ZjItMjI5N2M0ZjdlMTMxOmMzOTYyMTBkNWMyNDk1MjE4YzFkZThlYjczOWQzMjVlNTgyNjMzZmE= | 8000=3b0e8c02-1401-4316-a290-6341af439ce9 | 10=018 |
依据上述说明,这条消息表示:
BeginString: FIX.4.4
BodyLength: 149
MsgType: AccountInfoRequest (U1000)
MsgSeqNum: 2
SenderCompID: ACCESS KEY
SendingTime: 20150917-02:23:49.088
TargetCompID: BTCC-PRO-EXCHANGE-SERVER
Account: 经过秘钥加密后的字符串
AccReqID: 3b0e8c02-1401-4316-a290-6341af439ce9
CheckSum: 018
账户信息查询响应--User Account Info Response (U2001)#
成功收到用户发送的账户信息请求消息后,服务器会返回一个AccountInfoResponse ('U2001'类型)消息给客户端。
标签 | 名称 | 类型 | 必选? | 注释 |
---|---|---|---|---|
35 | MsgType | String | 是 | 'U2001'. |
1 | Account | String | Yes | 经过秘钥加密后的字符串. |
8000 | AccReqID | String | Yes | 和请求传过来的AccReqID一样 |
8002 | UserID | Int | Yes | 用户 id . |
8003 | SumOfDeposit | Double | Yes | 充值总和 |
8004 | Cash | Double | Yes | 现金 |
8005 | TotalProfit | Double | Yes | 总盈亏 |
8006 | TotalSize | Double | Yes | 总量 |
8007 | TotalInitMarginRequired | Double | Yes | 总共必须的初始保证金 |
8009 | TotalMaintenanceMarginRequired | Double | Yes | 总共必须的维持保证金 |
8010 | UsableMargin | Double | Yes | 可用的保证金 |
8011 | RemainEquity | Double | Yes | 保留的仓位 |
9001 | ContractList | NUMINGROUP | Yes | 合约数量 |
55 | Symbol | String | Yes | 标示 ,“XBTCNY”或“XBTUSD” |
8012 | TotalSellSize | Double | No | 总卖量 |
8013 | TotalBuySize | Double | No | 总买量 |
8014 | OpenPosition | Double | Yes | 持仓数量 |
6 | AvgPx | Double | Yes | 平均价格 |
8015 | Profit | Double | Yes | 收益 |
8016 | MarketValue | Double | Yes | 市场价 |
8017 | UnchargedFee | Double | Yes | 待收手续费 |
8018 | InitMarginRequired | Double | Yes | 需要的初始保证金 |
8019 | MaintenanceMarginRequired | Double | Yes | 需要的维持保证金 |
8020 | InitMarginFactor | Double | Yes | 初始保证金比例 |
8021 | MaintenanceMarginFactor | Double | Yes | 维持保证金比例 |
账户信息查询响应消息样本#
服务器返回的账户信息查询响应消息样本:
8=FIX.4.4 | 9=421 | 35=U2001 | 34=2 | 49=BTCC-PRO-EXCHANGE-SERVER | 52=20150917-02:23:52.330 | 56=<ACCESS KEY> | 8000=3b0e8c02-1401-4316-a290-6341af439ce9 | 8002=93 | 8003=0 | 8004=99889.2 | 8005=112.7 | 8006=17 | 8007=1278.4 | 8009=421.12 | 8010=98722.75 | 8011=99580.03 | 9001=2 | 55=XBTCNY | 8012=0 | 8014=14 | 6=1495.95 | 8015=112.6 | 8016=21056 | 8017=0.75 | 8018=0 | 8019=0 | 8020=0.05 | 8021=0.02 | 55=XBTCNY| 8012=0 | 8014=0 | 6=0 | 8015=0 | 8016=0 | 8017=0 | 8018=0 | 8019=0 | 8020=0.05 | 8021=0.02 | 10=129 |
依据上述说明,这条消息表示:
BeginString: FIX.4.4
BodyLength: 421
MsgType: AccountInfoResponse (U2001)
MsgSeqNum: 2
SenderCompID: BTCC-PRO-EXCHANGE-SERVER
SendingTime: 20150917-02:23:52.330
TargetCompID: ACCESS KEY
AccReqID: 3b0e8c02-1401-4316-a290-6341af439ce9
UserID: 93
SumOfDeposit: 0
Cash: 99889.2
TotalProfit: 112.7
TotalSize: 17
TotalInitMarginRequired: 1278.4
TotalMaintenanceMarginRequired: 421.12
UsableMargin: 98722.75
RemainEquity: 99580.03
ContractList: 2
Symbol: XBTCNY
TotalSellSize: 0
OpenSize: 14
AvgPx: 1495.95
Profit: 112.6
MarketValue: 21056
UnchargedFee: 0.75
InitMarginRequired: 0
MaintenanceMarginRequired: 0
InitMarginFactor: 0.05
MaintenanceMarginFactor: 0.02
CheckSum: 129