QuickFIX交易对手DataDictionary会发现无效的类型异常

时间:2016-07-04 10:39:01

标签: c# quickfix fix-protocol data-dictionary

我正在用C#开发一个FIX4.4消息传递应用程序,并试图使用交易对手提供的数据字典。在项目中,我使用QuickFIX作为库,当使用库中提供的原始字典(FIX44.xml)时,一切正常。

但是,使用这样的词典会导致一些拒绝,根据交易对手的说法,一旦我切换到他们自己的数据字典,它就会消失。

现在,当我这样做时,我得到以下类型'QuickFix.DictionaryParseException'的异常:

"invalid type: TENOR"

下面是我的配置文件,如果有帮助......

[DEFAULT]
ConnectionType=initiator
ReconnectInterval=20
FileStorePath=store
FileLogPath=log
StartTime=07:00:00
EndTime=00:00:00
UseDataDictionary=Y
ValidateFieldsHaveValues=N
ValidateFieldsOutOfOrder=N
ValidateUserDefinedFields=N
AllowUnknownMsgFields=Y
# DataDictionary=P:\...\FixSource\bin\spec\fix\FIX44.xml
#HttpAcceptPort=0000

[SESSION]
# inherit ConnectionType, ReconnectInterval and SenderCompID from default
BeginString=FIX.4.4
ResetOnLogon=Y
SenderCompID=MyID
TargetCompID=MyCPID
SocketConnectHost=xxx
# SocketConnectHost=yyy
SocketConnectPort=000
HeartBtInt=30 
DataDictionary=P:\...\MyCounterpartyDataDictionary.xml

此外,导致DD xml中出现问题的行如下:

<field number="6215" name="Tenor" type="TENOR"/>

另外两行提供相同的异常类型的结果是:

<field number="41135" name="OptionExerciseLatestTime" type="LOCALMKTTIME"/>
<field number="41510" name="LegOptionExerciseLatestTime" type="LOCALMKTTIME"/>

非常感谢你的帮助,

GPP

2 个答案:

答案 0 :(得分:3)

你的问题是在FIX 4.4 EP-1

之前没有引入Tenor FIX数据类型

http://fixwiki.org/fixwiki/TenorDataType

答案 1 :(得分:0)

显然,快速而肮脏的解决方案是Grant建议的解决方案,即使用字符串类型,它可以工作。谢谢你。