2

この市場データの増分更新メッセージを解析できません (修正 4.3):

8=FIX.4.3|9=187|35=X|34=4|49=XDEMO|52=20130224-22:31:05.283|56=demo310262=A|268=2|279=2|269=0|278=0014vd32|55=EUR/USD|290=1|64=20130227|279=0|269=0|278=0014vdb2|270=1.31934|271=1000000|290=1|546=3|10=124

Quickfix/j は私に次を与えます:

quickfix.FieldException: 繰り返しグループの NumInGroup カウントが正しくありません、フィールド = 268

これは繰り返し発生するグループの問題であることはわかっていますが、このメッセージを解析するために仕様を変更する方法がよくわかりません。

4

1 に答える 1

4
Group: 268=2|
  Item 1: 279=2|269=0|278=0014vd32|55=EUR/USD|290=1|64=20130227|
  Item 2: 279=0|269=0|278=0014vdb2|270=1.31934|271=1000000|290=1|546=3|

フィールド64は、デフォルトではNoMDEntries(268)繰り返しグループの一部ではありません。パーサーが64に達すると、繰り返しグループの終わりを超えて到達したと見なされ、グループの最初で唯一のアイテムが最初の290で終了したと見なされます。

DataDictionary xmlファイルは、数分間見てみると非常に簡単に理解できます。送信者が意図的に64をこのグループに含めることを望んでいると仮定すると、メッセージXの定義(MarketDataIncrementalRefresh)を見つけて、そのグループの適切な場所にフィールド64(FutSettDate)を追加するだけです。(このグループまたはその一部はコンポーネントで定義されている場合がありますが、理解できると思います。)

注:フィールドの順序は重要です。290(MDEntryPositionNo)の後、およびグループアイテムに表示される可能性のある他のオプションのフィールドの前後に、必ず追加してください。

相手が行ったDDの変更は64だけではないと思います。必要なすべてのDD変更を行うことができるように、カウンターパーティに確認する必要があります。

于 2013-02-25T04:47:34.950 に答える