问题
I am developing a FIX4.4 messaging application in C# and trying to use a counterparty provided data dictionary. In the project I use QuickFIX as a library, and when using the original dictionary provided within the library (FIX44.xml) everything works fine.
However, using such dictionary causes some rejections which, according to the counterparty, should disappear once I switch to their own data dictionary.
Now, when I do that I get the following exception of type 'QuickFix.DictionaryParseException':
"invalid type: TENOR"
Below is my config file, if it might help...
[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
Also, the line that causes the issue in the DD xml is the following:
<field number="6215" name="Tenor" type="TENOR"/>
and another two lines that give the same exception type turned out to be:
<field number="41135" name="OptionExerciseLatestTime" type="LOCALMKTTIME"/>
<field number="41510" name="LegOptionExerciseLatestTime" type="LOCALMKTTIME"/>
Thanks a lot for your help,
GPP
回答1:
Your problem is the Tenor FIX datatype was not introduced until FIX 4.4 EP-1
http://fixwiki.org/fixwiki/TenorDataType
回答2:
Apparently the quick and dirty solution is the one suggested by Grant i.e. using the string type, it works. Thanks for that.
来源:https://stackoverflow.com/questions/38182680/quickfix-counterparty-datadictionary-gieves-invalid-type-exception