常见域
Tag(标记) |
FieldName(域名) |
备注 |
8 |
BeginString 起始串,FIX协议版本 |
|
9 |
BodyLength 消息长度 |
|
35 |
MsgType 消息类型:例如F=Order Cancel Request,取消订单 |
|
11 |
ClOrdID 客户端订单ID |
|
37 |
OrderID 服务端订单ID |
|
41 |
OrigClOrdID 原始客户端订单ID |
|
54 |
Side 买卖类型。例如:1 = Buy,2 = Sell |
|
55 |
Symbol 股票代码。例如:YRD |
|
10 |
CheckSum 校验码 |
|
消息头
每一个会话或应用消息有一个消息头,该消息头指明消息类型、消息体长度、发送目的地、消息序号、发送起始点和发送时间。
Tag |
域名 |
必需 |
说明 |
8 |
BeginString |
Y |
起始串,取值:FIX.4.2(不可加密,消息的第一个域) |
9 |
BodyLength |
Y |
消息体长度(不可加密,消息的第二个域) |
35 |
MsgType |
Y |
消息类型(不可加密,消息的第三个域) |
49 |
SenderCompID |
Y |
发送方代码(不可加密,发送方标识符) |
56 |
TargetCompID |
Y |
接收方代码(不可加密,接收方标识符) |
115 |
OnBehalfOfCompID |
N |
最初发送方标识符(可加密),用于经第三方发送。 |
128 |
DeliverToCompID |
N |
最终接收方标识符(可加密),用于经第三方发送。 |
90 |
SecureDataLen |
N |
密文数据长度 |
91 |
SecureData |
N |
密文数据(紧跟密文数据长度域) |
34 |
MsgSeqNum |
Y |
消息序号(可加密),如果交易双方不采用 FIX 会话 机制,可将该 tag 置为一个固定的值,例如 0。 |
50 |
SenderSubID |
N |
发送方子标识符(可加密) |
142 |
SenderLocationID |
N |
发送方方位标识符(可加密) |
57 |
TargetSubID |
N |
接收方子标识符(可加密) |
143 |
TargetLocationID |
N |
接收方方位标识符(可加密) |
116 |
OnBehalfOfSubID |
N |
最初发送方子标识符(可加密) |
144 |
OnBehalfOfLocationID |
N |
最初发送方方位标识符(可加密) |
129 |
DeliverToSubID |
N |
最终接收方子标识符(可加密) |
145 |
DeliverToLocationID |
N |
最终接收方方位标识符(可加密) |
43 |
PossDupFlag |
N |
可能重复标志,重复发送时,作此标记。(可加密) |
97 |
PossResend |
N |
可能重发标志。(可加密) |
52 |
SendingTime |
Y |
发送时间(可加密) |
122 |
OrigSendingTime |
N |
原始发送时间(可加密) |
347 |
MessageEncoding |
N |
消息中 Encoded 域的字符编码类型(非 ASCII 码) |
369 |
LastMsgSeqNumProcessed |
N |
最后处理消息序号(可加密) |
370 |
OnBehalfOfSendingTime |
N |
最初发送时间(用 UTC 表示时间) |
消息尾
每一个消息(会话或应用消息)有一个消息尾,并以此终止。消息尾可用于分隔多个消息,包含有 3 位数的校验和值。
Tag |
域名 |
必需 |
说明 |
93 |
SignatureLength |
N |
数字签名长度(不可加密) |
89 |
Signature |
N |
数字签名(不可加密) |
10 |
CheckSum |
Y |
校验和,消息的最末域。(不可加密) |
新订单消息
新订单消息(MsgType=D)
对于在消息头中设置了 PossResend 标志的订单消息,应当使用交易客户方订单编号(ClOrdID)核
实是否已收到该订单,具体实现时还应检查订单参数(买卖方向、证券代码、数量等)进行核实。如果 之前收到该订单,应以执行报告消息回应订单状态。如果之前未收到,则以执行报告消息回应订单确认。
Tag |
域名 |
必需 |
说明 |
|
标准消息头 |
Y |
MsgType=D |
11 |
ClOrdID |
Y |
交易客户方订单编号,在订单有效交易日内必需 |
109 |
ClientID |
Y |
客户资金帐号 |
1 |
Account |
Y |
客户交易编码 |
110 |
MinQty |
N |
最小成交量。 |
55 |
Symbol |
Y |
期货合约代码 |
167 |
SecurityType |
N |
FUT = 期货 |
200 |
MaturityMonthYear |
N |
用于指定期货到期的年和月 |
205 |
MaturityDay |
N |
用于期货的到期日期,并被与到期年月 (MaturityMonthYear)联合使用 |
207 |
SecurityExchange |
Y |
用于指定交易所 |
77 |
OpenClose |
Y |
指明开仓,平仓 |
8009 |
HedgeFlag |
Y |
投机套保标志 |
8010 |
TouchCondition |
N |
触发条件 |
54 |
Side |
Y |
买卖方向 |
38 |
OrderQty |
N |
委托手数 |
60 |
TransactTime |
Y |
订单发起时间 |
40 |
OrdType |
Y |
订单类型 |
44 |
Price |
N |
价格(限价订单时有效) |
423 |
PriceType |
N |
价格类型 |
99 |
StopPx |
N |
停止价 |
15 |
Currency |
N |
币种 |
59 |
TimeInForce |
N |
新订单生效时间,默认为当日有效 |
168 |
EffectiveTime |
N |
用于指定定单有效的时间 |
432 |
ExpireDate |
N |
有条件地用于在生效时间(TimeInForce)=在某 日前有效(GTD),而没有指定截止时间 (ExpireTime)的情况之下 |
126 |
ExpireTime |
N |
有条件地用于生效时间(TimeInForce) = 在某 日前有效(GTD)和到期日没有被指定的情况之 下 |
8096 |
MacNetInfo |
N |
委托方的机器网络信息 |
|
标准消息尾 |
Y |
|
执行报告消息(MsgType=8)
- 订单确认
- 订单状态变化确认(如撤单确认)
- 发送订单的成交回报
- 订单拒绝
Tag |
域名 |
必需 |
说明 |
|
标准消息头 |
Y |
MsgType=8 |
37 |
OrderID |
Y 期货公司委托号,同个交易日必需保证唯一 |
11 |
ClOrdID |
N 交易客户方订单编号。如果是强平回报,则该值 取值为以”NONE”开头的当天交易日唯一的字符 串标识 |
41 |
OrigClOrdID |
N 原始交易客户方订单编号,指示被撤消订单的 ClOrdID |
17 |
ExecID |
Y 期货公司的执行编号,在订单有效交易日内应保 证唯一 |
150 |
ExecType |
Y 执行类型 |
39 |
OrdStatus |
Y 订单状态 |
103 |
OrdRejReason |
N 订单拒绝时需要 |
109 |
ClientID |
Y 客户资金帐号 |
1 |
Account |
Y 客户交易编码 |
55 |
Symbol |
Y 期货合约代码 |
167 |
SecurityType |
N FUT=期货 |
200 |
MaturityMonthYear N 到期年月 |
205 |
MaturityDay |
N 到期日期 |
207 |
SecurityExchange Y 用于指定交易所 |
77 |
OpenClose |
N 指明开仓,平仓 |
54 |
Side |
Y 买卖方向 |
38 |
OrderQty |
Y |
委托手数 |
40 |
OrdType |
N |
订单类型 |
44 |
Price |
N |
订单价格 |
99 |
StopPx |
N |
停止价 |
59 |
TimeInForce |
N |
新订单生效时间,默认为当日有效 |
15 |
Currency |
N |
币种 |
32 |
LastShares |
N |
上一成交数(最近一笔成交数量) |
31 |
LastPx |
N |
上一成交价(最近一笔成交价格) |
30 |
LastMkt |
N |
上一成交市场 |
151 |
LeavesQty |
Y |
订单剩余数量 |
14 |
CumQty |
Y |
成交总数 |
6 |
AvgPx |
Y |
成交平均价 |
60 |
TransactTime |
N |
执行报告时间 |
381 |
GrossTradeAmt |
N |
成交总金额 |
110 |
MinQty |
N |
最小成交量 |
8500 |
OrderEntryTime |
N |
订单申报时间 |
8093 |
DeclarationID |
N |
报单号 |
8094 |
TradeID |
N |
撮合编号 |
|
标准消息尾 |
Y |
|
订单状态请求消息(MsgType=H)
订单状态请求用于向交易服务方请求某订单的状态,交易服务方通过执行报告消息返回订单状态。
Tag |
域名 |
必需 |
说明 |
|
标准消息头 |
Y |
MsgType=H |
37 |
OrderID |
Y |
期货公司委托号,同个交易日必需保证唯一 |
11 |
ClOrdID |
Y |
交易客户方订单编号 |
109 |
ClientID |
Y |
客户资金帐号 |
1 |
Account |
Y |
客户交易编码 |
55 |
Symbol |
Y |
期货合约代码 |
207 |
SecurityExchange |
Y |
用于指定交易所 |
167 |
SecurityType |
N |
FUT=期货 |
200 |
MaturityMonthYear |
N |
用于指定期货到期的年和月 |
205 |
MaturityDay |
N |
用于期货的到期日期,并被与到期年月 (MaturityMonthYear)联合使用 |
54 |
Side |
Y |
买卖方向 |
|
标准消息尾 |
Y |
|
撤单消息(MsgType=F)
撤单消息用以撤消订单的全部订单剩余数量。
撤单消息也被赋予一个 ClOrdID,可视作另外一个订单。如果被拒绝,撤单拒绝消息的 ClOrdID 放置撤单消息的 ClOrdID,而原始订单的 ClOrdID 则放入 OrigClOrdID 域。ClOrdID 要保证唯一。
Tag |
域名 |
必需 |
说明 |
|
标准消息头 |
Y |
MsgType=F |
41 |
OrigClOrdID |
Y |
原始交易客户方订单编号,指示被撤消订单的ClOrdID |
37 |
OrderID |
Y |
期货公司委托号,同个交易日必需保证唯一 |
11 |
ClOrdID |
Y |
交易客户方订单编号 |
109 |
ClientID |
Y |
客户资金帐号 |
1 |
Account |
Y |
客户交易编码 |
55 |
Symbol |
Y |
期货合约代码。 |
167 |
SecurityType |
N |
证券代码源 |
200 |
MaturityMonthYear |
N |
FUT=期货 |
205 |
MaturityDay |
N |
期货到期年月 |
207 |
SecurityExchange |
Y |
期货到期日期 |
54 |
Side |
Y |
买卖方向 |
60 |
TransactTime |
Y |
订单发起时间 |
40 |
OrdType |
Y |
订单类型 |
38 |
OrderQty |
Y |
委托手数 |
8093 |
DeclarationID |
N |
报单号 |
58 |
Text |
N |
|
标准消息尾 |
Y |
|
撤单拒绝消息(MsgType=9)
本消息用于撤单消息的拒绝。
交易服务方接收到撤单发现无法执行(已成交订单不可更改等),将发送撤单拒绝。
拒绝撤单时,撤单拒绝消息应用 ClOrdID 指示撤单的 ClOrdID,用 OrigClOrdID 指示之前最后接受的订单(除非拒绝原因是“未知订单”)。
Tag |
域名 |
必需 |
说明 |
|
标准消息头 |
Y |
MsgType=9 |
37 |
OrderID |
Y |
期货公司委托号,同个交易日必需保证唯一 |
11 |
ClOrdID |
Y |
交易客户方订单编号 |
41 |
OrigClOrdID |
Y |
原始交易客户方订单编号,指示被撤消订单的ClOrdID |
39 |
OrdStatus |
Y |
订单状态 |
109 |
ClientID |
Y |
客户资金帐号 |
1 |
Account |
Y |
客户交易编码 |
60 |
TransactTime |
N |
订单发起时间 |
434 |
CxlRejResponseTo |
N |
撤单拒绝回应类型 |
102 |
CxlRejReason |
N |
撤单拒绝原因 |
58 |
Text |
N |
|
标准消息尾 |
Y |
|
FIX配置
会话配置(SESSION)
配置 |
描述 |
有效值 |
默认 |
BeginString |
会话使用的FIX版本号(发送和接收消息起始字符串) |
FIXT.1.1、FIX.4.4、FIX.4.3、FIX.4.2、FIX.4.1、FIX.4.0 |
|
SenderCompID |
会话当中定义本方的ID |
区分大小写的字符串 |
SenderSubID |
会话相关的本方的子ID号 (可选) |
区分大小写的字符串 |
|
SenderLocationID |
会话相关的本方的locationID号 (可选) |
区分大小写的字符串 |
|
TargetCompID |
本会话当中的对方ID |
区分大小写的字符串 |
TargetSubID |
本会话当中的对方SubID (可选) |
区分大小写的字符串 |
|
TargetLocationID |
本会话当中的对方locationID (可选) |
区分大小写的字符串 |
|
SessionQualifier |
附加的限定词,用于消除歧义,保证会话的唯一性 |
区分大小写的字符串 |
|
DefaultApplVerID |
仅FIXT1.1(或以上版本)需要。忽略早期版本的传输。指定会话的默认应用程序的版本ID。ApplVerID的枚举值(请看ApplVerID字段详细介绍),或默认BeginString。 |
FIX.5.0SP2、FIX.5.0SP1、FIX.5.0、FIX.4.4、FIX.4.3、FIX.4.2、FIX.4.1、FIX.4.0 |
|
ConnectionType |
定义会话当中本方的角色:acceptor或者initiator |
initiator、acceptor |
|
StartTime |
交易日的会话有效开始时间,这时FIX会话被激活 |
UTC时间,格式: HH:MM:SS |
|
EndTime |
交易日的会话失效时间,FIX会话将被停止 |
UTC时间,格式: HH:MM:SS |
|
StartDay |
对于为期一周的会话配置,一周会话开始的第一天。与STARTTIME结合使用。 |
使用一周中某天的英语任何缩写都是有效的(比如,mo, mon, mond, monda,Monday都是有效的) |
|
EndDay |
对于为期一周的会话配置,一周会话结束的最后一天。与EndTime结合使用。 |
使用一周中某天的英语任何缩写都是有效的(比如,mo, mon, mond, monda,Monday都是有效的) |
|
MillisecondsInTimeStamp |
时间戳是否加入毫秒。FIX.4.2和更高版本可用。 |
Y、N |
Y |
ResetOnLogon |
接收登录请求时,序列号是否要复位。只用于Acceptor |
Y、N |
N |
ResetOnLogout |
正常注销登录时,序列号是否要复位 |
Y、N |
N |
ResetOnDisconnect |
连接异常断开后是否要将序列号重置为1 |
Y、N |
N |
RefreshOnLogon 确定是否应当从持久层登录时恢复会话状态。在创建热故障切换会话时有用。 |
Y、N |
N |
EnableLastMsgSeqNumProcessed 是否在header中添加最后一条消息的序列号(可选tag369)。 |
Y、N |
N |
MaxMessagesInResendRequest 设置一次重发请求的消息的最大消息数。 任何大于0的整数。使用0为无穷大(默认)。 0 |
SendLogoutBeforeDisconnectFromTimeout 指定是否因超时断开连接之前发送logout消息 |
Y、N |
N |
IgnorePossDupResendRequests 当PossDupFlag(tag 43)设置为true时,是否忽略一次重发请求 |
Y、N |
N |
验证配置
配置 描述 有效值 默认
|UseDataDictionary 告诉会话是否使用数据字典,或不希望使用数据字典。 如果你要使用repeating group,你必须使用DataDictionary。 |Y、N |Y|
|DataDictionary 该配置只用于比FIXT.1.1还老的版本。详细参考FIXT.1.1的TransportDataDictionary和AppDataDictionary的配置。 FIX44.xml、FIX43.xml、FIX42.xml、FIX41.xml、FIX40.xml
|TransportDataDictionary XML定义文件用于验证传入的管理消息。如果没有提供DataDictionary,只会做基本消息的验证。该配置只用于FIXT.1.1(或更高版本)的会话。 FIXT1.1.xml
|AppDataDictionary 用于验证应用层消息的XML定义文件。仅对FIXT.1.1(或更高版本)的会话有效。更多信息请参考(FIX.4.0到 FIX.4.4)的DataDictionary。该配置可以为每个会话指定一个自定义应用的数据字典。该配置仅用于FIXT.1.1或更新的传输协议。使用FIXT传输时,该配置可以作为指定多个应用的数据字典的前缀。例如: DefaultApplVerID=FIX.4.2 # For default application version ID AppDataDictionary=FIX42.xml # For nondefault application version ID # Use BeginString suffix for app version AppDataDictionary.FIX.4.4=FIX44.xml 有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据:FIX50SP2.xml、FIX50SP1.xml、FIX50.xml、FIX44.xml、FIX43.xml、FIX42.xml、FIX41.xml、FIX40.xml
|ValidateFieldsOutOfOrder 如果设置为N,字段放置区域错误(例如,body字段在header区域内,或在header字段在body区域内)将不会被拒绝。用于连接字段要求不严格的系统。 |Y、N |Y|
|ValidateFieldsHaveValues 如果设置为N,没有值的字段将不会被拒绝。用于连接到系统不当发送空标签。 |Y、N |Y|
|ValidateUserDefinedFields 如果设置为N,用户自定义的字段将不会被拒绝,即使没有在数据字典中定义,或没出现在消息中。 |Y、N |Y|
Initiator
配置 |
描述 |
有效值 |
默认 |
ReconnectInterval |
尝试重新连接的时间间隔(秒)。仅用于 initiator。 |
正整数 |
30 |
HeartBtInt |
心跳间隔(秒)。仅用于initiator。 |
正整数 |
- |
LogonTimeout |
登录超时时间间隔(秒) |
正整数 |
10 |
LogoutTimeout |
注销登录超时时间间隔(秒) |
正整数 |
2 |
SocketConnectPort |
Socket服务端口,用于建立会话。仅用于 initiator |
正整数 |
- |
SocketConnectHost |
连接主机.仅用于 initiator |
x.x.x.x格式IP地址或域名 |
- |
SocketConnectPort |
一组备用Socket端口,用于连接会话的故障转移,n是正整数。SocketConnectPort1,SocketConnectPort2 … |
必须是连续的,并有一个与之相匹配的数组SocketConnectHost 正整数 |
- |
SocketConnectHost |
一组备用Socket服务主机,用于连接会话的故障转移,n是正整数。SocketConnectHost1, SocketConnectHost2… |
必须是连续的,并有一个与之相匹配的数组SocketConnectPort x.x.x.x格式IP地址或域名 |
- |
SocketNodelay |
连接是否禁用Nagle算法。在[DEFAULT]配置节点定义。 |
Y、N |
Y |
ReconnectInterval |
尝试重新连接的时间间隔(秒)。仅用于 initiator。 |
正整数 |
30 |
Acceptor
配置 |
描述 |
有效值 |
默认 |
SocketAcceptPort |
监听接入连接Socket端口。仅用于acceptor |
正整数,有效的、开放的套接字端口 |
- |
SocketAcceptHost |
监听接入连接的Socket服务的主机。如果不提供,acceptor将监听所有网络端口(0.0.0.0) |
有效的x.x.x.x格式IP地址 |
0.0.0.0 |
SocketNodelay |
连接是否禁用Nagle算法。在[DEFAULT]配置节点定义。 |
Y、N |
Y |
Storage
配置 |
描述 |
有效值 |
默认 |
PersistMessages |
如果设置为N,被不会保存消息。这样将迫使quickfix总是发送GapFills,而不是重新发送消息。如果你知道你永远不需要重新发送消息,使用此配置。有用的市场数据流。 |
Y、N |
Y |
File Storage
配置 |
描述 |
有效值 |
默认 |
FileStorePath |
存储序列号和消息的文件目录。 |
有效的文件存储目录,必须有写入权限。 |
- |
Logging
配置 |
描述 |
有效值 |
默认 |
FileLogPath |
存储日志的目录。 |
有效的文件存储目录,必须有写入权限。 |
- |