2016-07-04 6 views
0

Я разрабатываю приложение обмена сообщениями FIX4.4 на C# и пытаюсь использовать предоставленный контрагентом словарь данных. В проекте я использую QuickFIX в качестве библиотеки, а при использовании оригинального словаря, предоставляемого в библиотеке (FIX44.xml), все работает нормально.Контрагент QuickFIX DataDictionary исключает недопустимое исключение типа

Однако использование такого словаря вызывает некоторые отклонения, которые, по мнению контрагента, должны исчезнуть после переключения на их собственный словарь данных.

Теперь, когда я делаю, что я получаю следующее исключение типа '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

ответ

0

По-видимому, быстрое и грязное решение - это предложение, предложенное Grant, то есть использование строкового типа, оно работает. Спасибо за это.

2

Ваша проблема не является FIX тип данных Тенор не был введен до FIX 4.4 EP-1

http://fixwiki.org/fixwiki/TenorDataType

+0

Благодарим за это, фактически переместившись в FIX 5.0, исправлено это. Тем не менее, я был бы заинтересован сохранить версию протокола до 4.4, любое предложение о том, как включить EP-1? Я использую QuickFIXn 1.3, будет ли обновление до любой более поздней версии решить проблему? – GPP

+0

Очень легко настроить DataDictionary. Просто добавьте эти поля EP-1 в файл FIX4.4.xml. См. [Эта страница документа] (http://quickfixn.org/tutorial/custom-fields-groups-and-messages.html). –

+0

Проблема заключается не в добавлении поля, которое достаточно просто, а в том, что тип поля («TENOR») не распознается. Поэтому вопрос заключается в том, как добавлять новые типы полей (а не типы сообщений). – GPP