Sie haben Ihre DD falsch geändert, weil Sie nicht wissen, wie sich wiederholende Gruppen arbeiten.
Dies ist der Standard FIX44 DD für Ihre Nachricht. Ich habe einige Kommentare hinzugefügt, um die Tag-Nummern anzugeben.
<message name="MarketDataSnapshotFullRefresh" msgtype="W" msgcat="app">
<field name="MDReqID" required="N" />
<component name="Instrument" required="Y" />
<group name="NoUnderlyings" required="N">
<component name="UnderlyingInstrument" required="N" />
</group>
<group name="NoLegs" required="N">
<component name="InstrumentLeg" required="N" />
</group>
<field name="FinancialStatus" required="N" />
<field name="CorporateAction" required="N" />
<field name="NetChgPrevDay" required="N" />
<group name="NoMDEntries" required="Y"> <!-- 268 -->
<field name="MDEntryType" required="Y" /> <!-- 269 -->
<field name="MDEntryPx" required="N" /> <!-- 270 -->
<field name="Currency" required="N" />
<field name="MDEntrySize" required="N" /> <!-- 271 -->
<field name="MDEntryDate" required="N" />
... and so on ...
Felder innerhalb der wiederholenden Gruppen muss in der vorgeschriebenen Reihenfolge. Wenn QF eine Gruppe verarbeitet, wird bei einem unerwarteten Feld davon ausgegangen, dass die Gruppe beendet ist.
Ihr DD stimmt nicht mit der Reihenfolge überein, die Ihr Absender sendet, sodass Ihr Motor nicht richtig funktioniert.
Ihr Absender sendet Felder in dieser Reihenfolge:
268-> (group 1) 269 270 271 290 64 278
(group 2) 269 270 271 290 278
(Die oben direkt von abgelehnten Nachricht ist.)
Ihre DD jedoch erwartet 269 278 271 270
. Sobald es 278 erreicht, endet die Gruppe und seltsame Dinge beginnen zu passieren.
Revert Ihre DD wieder auf den Standard, fügen Sie dann 64/SettlDate und 278/MDEntryID zum Ende der NoMDEntries
Komponente. Angesichts der Beweise, die Sie angegeben haben, ist es klar, dass Ihr Kontrahent diese Felder am Ende der Gruppe hinzugefügt hat.
Sicherlich sind dies nicht die einzigen Änderungen, die Ihr Kontrahent an der DD vorgenommen hat. ERHALTEN SIE IHRE DOKUMENTATION UND LESEN SIE SIE. Dann ändern Sie Ihre DD entsprechend.
Ich habe Sie bereits auf [diese Link] (http://quickfixn.org/tutorial/custom-fields-groups-and-messages.html) auf eine andere Frage hingewiesen. Die Struktur der DD-Datei ist ziemlich einfach; Sie sollten herausfinden können, wie Sie der NoMDEntries-Gruppe 278 hinzufügen. Wenn Sie nicht können, sagen Sie bitte, wo Sie feststecken. –
Ich habe bereits die notwendigen Änderungen in der DD-Datei vorgenommen. < Gruppenname = "NoMDEntries" erforderlich = "Y"> \t \t Funktioniert immer noch nicht wie erwartet. –
Der Grund dafür, dass es nicht funktioniert, ist, dass das Feld auch in der Klasse NoMDEntries hinzugefügt werden muss, die die Gruppe erweitert. Aber dafür brauche ich vielleicht einen Quellcode für die schnelle Lösung. Habe ich recht? –