web-dev-qa-db-ja.com

FIXメッセージを解析する最良の方法は?

python?( 'financial' FIX ProtocolのようなFIXメッセージ)を使用してFIXメッセージをどのように解析しますか?

29
Chez

quickFIXを使用するという意味ですか? (私はあなたのタグでQuickFIXを見ることができます)

もしそうなら、私にはわかりません。一般に、FIXメッセージ用の単純なパーサーを作成することは難しくありません。 有効な修正 のWebツールがその仕事をしていることがわかりました。

11
sergej

実際のquickfixengineを使用する以外に、特定のタグが含まれていることがわかっている場合は、修正メッセージを簡単に解析できます。

'key = value'文字列の0x1で区切られたペアが含まれています。タグがグループの最初(グループヘッダー)であることを把握してから、グループがいつ終了するか(グループ内にない別のタグにヒットしたとき)を把握する必要があるため、1つの問題はグループです。

もう1つの問題のあるフィールドは、フィールド区切り文字0x1を含むすべてを含むことができるRawDataですが、その前にRawDataLengthがあるため、最初にそれを読み取り、次にRawDataタグの後にRawDataLengthバイト数を読み取って次のフィールドに移動する必要があります。

Quickfixengineはタグの辞書を使用して、タグがグループの最初であることがわかり、グループにないタグにヒットするまで追加し続けると思います。

FIXメッセージのカスタム解析を行う必要がある場合、私はほとんどの場合、どのメッセージとどのデータを期待するかを正確に知っているので、それらのメッセージ用に微調整できます。

7
stefanB

FIX形式は驚くほど解析が面倒です(非XML形式、つまりほとんどすべての人がまだ使用している形式にはサブグループの開始マーカーと終了マーカーがないため、代わりにタグの順序付けルールとタグに基づいて計算する必要がありますサブグループに含まれていない場合、ヘッダーまたはテールは任意の順序にすることができます)。

したがって、自分で解析するのではなく、既存のライブラリを使用して解析することをお勧めします。

手入れの行き届いたオープンソースオプションは、Java QuickFIX/J ライブラリだけです。

多くの商用ソリューションがあります。 CameronFIX

5
George Hawkins

試してください http://fix.nowing.com

これはWebベースの修正メッセージパーサーです

4
Neo Wang

quickfixjソースコードから、treeMapを使用してFIXメッセージを処理します。

xML形式に関しては、Javaでは解析が難しいですが、FIXの方が優れていると思います。 cozXMLは重すぎます。

2
user462872

誰も最良の方法はありませんが、あなたまたはSOシステムが添付されている)のquickfixタグを考えると、 at QuickFix オープンソースのFIXエンジンから始めるのが良いでしょう。

それが重要な会社にいる場合、またはより多くのサポートとサービスが必要な場合は、多くの商用ベンダーもあります。

幸運を

1
sdg