QuickFIX/N入门:(三)如何配置QuickFIX/N

本文介绍了QuickFIX/N中如何配置FIX会话的唯一标识,包括BeginString、SenderCompID和TargetCompID等。通过SessionSettings类进行动态设置,支持从文件或自定义组件加载配置。文章详细讲解了配置文件的[DEFAULT]和[SESSION]节点,强调了配置完整性的必要性,以及Initiator和Acceptor的配置注意事项。
摘要由CSDN通过智能技术生成

Acceptor或者Initiator能够为您维护尽可能多的FIX会话,因而FIX会话标识的唯一性非常重要。在QuickFIX/N中,一个FIX会话的唯一标识是由:BeginString(FIX版本号)、SenderCompID(发送方ID)及TargetCompID(目标方ID)等标识字符组合而成。通常还会加上SessionQualifier来保证会话的唯一性。

每个FIX会话可以有很多与它们相关联的配置信息。在编译的时候,有些配置可能还是未知的,因此可以通过类SessionSettings来设置或加载。 SessionSettings是一个数据字典,可以随意设置和查询配置信息。

SessionSettings有两个带参数构造函数,其中一个是System.IO.TextReader的参数,它能够解析TextReader的配置信息;另外一个构造参数是文件名,把配置文件的文件路径作为参数传入,它可以解析当中的配置信息 ​​。当然,你也可以自己定义组件(例如,一个特定的数据库存储),然后使用SessionSettings存储配置信息(SessionSettings提供了一个Set方法)。

配置文件当中有两个类型的配置节点: [DEFAULT],[SESSION]。[SESSION]定义一个会话。[DEFAULT]节点定义与会话相关,但没在会话当中明确定义的相关配置,比如连接对手方的IP、端口、心跳间隔等。QuickFIX/N并不会为所有必需配置的定义默认值。如果配置有任何一个QuickFIX/N必需的配置项缺失,它将抛出ConfigError异常,提示配置缺少或格式不正确。

1)      会话配置(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或者r initiator

initiator

-

acceptor

StartTime

交易日的会话有效开始时间,这时FIX会话被激活

UTC时间,格式: HH:MM:SS,

-

EndTime

交易日的会话失效时间,FIX会话将被停止

同上

-

StartDay

对于为期一周的会话配置,一周会话开始的第一天。与STARTTIME结合使用。

使用一周中某天的英语任何缩写都是有效的(比如,mo, mon, mond, monda,Monday都是有效的)

-

EndDay

对于为期一周的会话配置,一周会话结束的最后一天。与EndTime结合使用。

同上

-

MillisecondsInTimeStamp

时间戳是否加入毫秒。FIX.4.2和更高版本可用。

Y

Y

N

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

 

2)      验证配置

 

配置

描述

有效值

默认

UseDataDictionary

告诉会话是否使用数据字典,或不希望使用数据字典。 如果你要使用repeating group,你必须使用DataDictionary

Y

Y

N

DataDictionary

XML定义文件用于验证传入的FIX消息。如果没有提供DataDictionary,只会做基本消息的验证。 

有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据

-

该配置只用于比FIXT.1.1还老的版本。详细参考FIXT.1.1的TransportDataDictionary和AppDataDictionary的配置。

FIX44.xml

FIX43.xml

FIX42.xml

FIX41.xml

FIX40.xml

TransportDataDictionary

XML定义文件用于验证传入的管理消息。如果没有提供DataDictionary,只会做基本消息的验证。该配置只用于FIXT.1.1(或更高版本)的会话。 

有效的XML数据字典文件。QuickFIX/N 配备默认的协议字典数据

-

更多信息请参考(FIX.4.0到 FIX.4.4)的DataDictionary。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值