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 ¬

每个价格都表示为一个 32 位定点数,具有 18 个整数部分位和 14 个小数部分位。(6 个整数位,后跟 4 个小数位)

例如

200,000.0000
110000110101000000 00000000000000

我看过 struct 类,但这仅处理整个字节,因为它用于从二进制编码的 c 结构转换。

我查看了 decimal.Decimal 模块,但您似乎只能使用字符串对其进行实例化,并且假设您已经拥有字符串格式的数字。

4

1 回答 1

2

Pythonstruct.unpack()正是您所需要的。您只需要制定适当的格式字符串,以便模块可以知道哪些字段在哪里以及它们具有哪些二进制格式,并且您应该能够快速解码您的数据。

你用比特来解释事情,但这不是 ITCH 真正起作用的方式。固定十进制字段实际上是 N 字节长,隐含了一些十进制移位。因此,您可以将价格字段读取为整数,然后将其除以 1e4 以获得浮点值。

于 2012-03-29T23:12:21.247 回答