0

この質問に関連して、カウンターパーティ プロバイダー エンジンは、FIX タグのグループの順序をチェックし、予期された順序以外のものを拒否するように設定されています。

  • 予想されるタグ グループの順序が重要なのはなぜですか? 特定の順序でタグを検証する方が速いと思います。
  • 予想されるタグ グループの順序はどのように設定されますか? これはランダムなハッシュ セットであることは理解していますが、意味がありません。データ ディクショナリ内のタグの順序に依存していませんか?
  • クラスを書き直してグループ順序を設定する以外に、使用するクイックフィックス設定はありますか?

QuickFix バージョンで正確に言うと2.2.0、次のメッセージを送信します

8=FIX.4.4 9=173 35=R 34=2 49=CLIENT 52=20200909-18:11:10.426 56=SIMULATOR 131=EEB85F9C 146=1 55=EUR/USD 460=4 167=FOR 38=1000.0 64=SP 15=EUR 1=FOR 553=test 1300=XOFF 10=086

そしてリジェクトを受け取る

8=FIX.4.4 9=145 35=3 34=2 49=SIMULATOR 52=20200909-18:11:10.427 56=CLIENT 45=2 58=The group 146 must set the delimiter field 460 371=55 372=R 373=15 10=224 

したがって、送信されたメッセージでは、タグ460はタグの後に来ており、55これらのタグを逆に取得することはできません。コードでは、繰り返しグループを設定しましたg

QuickFix.FIX44.QuoteRequest.NoRelatedSymGroup g = new QuickFix.FIX44.QuoteRequest.NoRelatedSymGroup();

探している順序でグループにデータを追加します。次のようにします。

Product product = new Product(4);
g.Product = product;
Symbol symbol = new Symbol("EUR/USD");
g.SetField(symbol);

などなど… と を見ていますg.getFieldOrderg.SetFields、他に方法はありますか?

ここに画像の説明を入力

私が知る限り、1.6.2拒否メッセージのような他のクイックフィックスバージョンでも同じ理由です。Out of order repeating group members

4

1 に答える 1