fix协议中消息尾校验方法

fix协议的每一条消息都分为三部分,
即:消息头,消息内容,消息尾

消息头和消息尾

FIX 协议每个消息都包括标准消息头和标准消息尾。在标准消息头和标准消息尾中间的是消息体。消息的类型在标准消息头中标签信息类型35=

标准消息头#

下边是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 三个字节的校验码
btcc的专业交易标准消息尾只有一个三字节的消息效验码。
 
    

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=| 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= | 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

你可能感兴趣的:(经济学)