2

ITCH メッセージを含むファイルを解析しようとしています:

http://www.nasdaqtrader.com/Trader.aspx?id=DPSpecs_USEquities#TVITCH ¬ http://www.nasdaqtrader.com/content/technicalsupport/specifications/dataproducts/NQTV-ITCH-V4_1.pdf ¬

各価格は、18 個の整数部ビットと 14 個の小数部ビットを持つ 32 ビットの固定小数点数として表されます。(整数 6 桁の後に 10 進数 4 桁)

例えば

200,000.0000
110000110101000000 00000000000000

私は構造体クラスを見てきましたが、これはバイナリエンコードされたc構造体から変換するためのバイト全体のみを扱います。

decimal.Decimal モジュールを見てきましたが、文字列を使用してのみインスタンス化できるようです。これは、文字列形式の数値が既にあることを前提としています。

4

1 に答える 1

2

Pythonstruct.unpack()はまさにあなたが必要としているものです。モジュールがどのフィールドがどこにあり、どのバイナリ形式を持っているかを知ることができるように、適切な形式文字列を定式化する必要があるだけで、データをすばやくデコードできるはずです。

ビット単位で説明しましたが、実際の ITCH はそうではありません。固定 10 進フィールドは、実際には N バイトの長さで、10 進シフトが暗示されています。したがって、価格フィールドを整数として読み取り、それを 1e4 で除算して float 値を取得できます。

于 2012-03-29T23:12:21.247 に答える