2013-05-29 7 views
0

Я надеялся, что кто-то может пролить свет на то, как движок Quickfixn обрабатывает исходящие сообщения FIX ... У меня настроено исходящее соединение, и у меня получаю сердцебиение. Однако, когда я генерирую исходящее сообщение, он отклоняется, потому что он говорит, что тег 58 недействителен для этого типа сообщения ... (35 = AE) ... Обычно, если это было входящее соединение, я мог бы просто изменить словарь данных и все будет хорошо ... но, видя, как это исходящее соединение, плюс у меня есть свойство UseDataDictionary, установленное на «N» ... что использует механизм quickfix для проверки исходящего сообщения? Можно ли что-то изменить, чтобы позволить движку передать сообщение? Или это единственное разрешение не включать этот тег в мое исходящее сообщение?QuickFixn Исходящее подключение

Любая помощь по этому вопросу была бы весьма признательна.

Edit-

Сообщение отклоняться от QuickFix двигателя. Сообщение, которое я создаю, и соответствующее сообщение об отказе:

8 = FIX.4.4 9 = 400 35 = AE 34 = 38 49 = XXX 52 = 20130528-23: 11: 04.040 56 = YYY 31 = 1.3022 32 = 1000000,00 39 = 0 55 = EUR/USD 58 = ABCD 60 = 20130528-22: 34: 52.000 64 = 20130531 75 = 20130529 570 = N 571 = ABCD 5495 = 0 5971 = 1302200,00 552 = 1 54 = 2 37 = ABCD 453 = 3 448 = LP1-DBAB 447 = D 452 = 17 448 = XXX 447 = D 452 = 1 448 = XXX 447 = D 452 = 19 15 = 120 евро = 10 10 = 082

8 = FIX.4.4 9 = 130 35 = 3 34 = 38 49 = YYY 52 = 20130528-23: 11: 04,283 56 = XXX 45 = 38 58 = Метка, не определенная для этого типа сообщения 371 = 58 372 = AE 373 = 2 10 = 033

Я видел, как входящие сообщения отклоняются механизмом быстрого исправления, потому что в словаре данных не было t он исправляет спецификации для сообщения ... Я думал, что это может быть одно и то же, но исходящее соединение, похоже, не использует словарь данных.

+0

Пожалуйста, объясните, что вы имеете в виду, когда говорите «он отклоняется».Это отклоняется вашим контрагентом? Выбрасывает ли исключение локально? Вставьте сообщения об ошибках или исключения. –

+0

Привет, пожалуйста, можете ли вы прикрепить журнал и добавить другие данные? А также фрагмент кода, который вы используете для создания сообщения AE. – stexcec

+0

Отредактировано основное сообщение ... Я не могу включить в себя, как мы создаем ваше сообщение, но в основном это просто использование библиотек QuickFix для создания отчета отчета о захвате транзакции 4.4 и заполнения разных значений. –

ответ

1

Ваша библиотека FIX не отклоняет сообщение. Вместо этого сообщение отправляется встречной стороне, которая затем отклоняет ваше сообщение как недействительное после его получения и проверки. И причина этого в том, что тег 58, если он присутствует, должен быть частью «NoSides повторяющейся группы (тег 552), что в вашем случае это не так, что сообщение плохо сформировано. Вам нужно отправить «логически» правильное сообщение. Я рекомендую вам обратиться к соответствующей спецификации протокола FIX для справки о том, как создать правильное сообщение.

+0

Спасибо за информацию ... Я не думаю, что тег 58 обычно присутствует в TradeCaptureReports ... Возможно, я ошибаюсь. Если сообщение фактически отклоняется Контрагентом, а не моим движком FIX, тогда им необходимо изменить словарь данных, чтобы включить тег 58 в качестве допустимого тега в сообщении TradeCaptureReport. Я просматриваю некоторые ссылки, чтобы увидеть те места, где тег 58 может появиться в TCR, но не нашел. –

+0

@FrancoTrombetta: Нет, это ваше сообщение недействительно. И именно это вы должны исправить в своем коде. Не имеет значения, присутствует ли бирка 58 или нет, это необязательное поле. Поэтому, если это так, она должна быть частью повторяющейся группы NoSides, которая в вашем случае не является. –

+0

Хм, хорошо. Благодарю. Это немного странно, потому что мы отправляем это же сообщение другому контрагенту, и он отлично работает. Я переведу его в сторону, повторяющую группу, и посмотрю, как это работает. Спасибо за информацию. Я ценю, что вы возвращаетесь ко мне. –

0

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

У меня есть UseDataDictionary свойство установлено в 'N'

Я 90% уверен, что вы не хотите, чтобы это сделать. Все, что вы думаете о том, что вы набираете, используя =N, вероятно, основано на непонимании чего-то.

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

На практике каждый место проведения повторных групп. Поэтому вам нужно будет установить UseDataDictionary=Yи вам нужно указать xml-файл с DataDictionary=<file>.

Единственная причина, по которой мы допускаем =N в QF/n, должна соответствовать QF/C++ и QF/j.

+1

Да, ответ Влада был верным. Я внедрил изменения, и моя проблема была решена. Что касается UseDataDictionary = N - у нас разные подключения к различным встречным сторонам, и сообщения обычно не меняются и не приходят с повторяющимися группами, поэтому это не было проблемой (эта конкретная конфигурация была выполнена до того, как я работал над Это). Спасибо, хотя, это определенно то, что я собираюсь изменить. –

Смежные вопросы