我正在尝试解析其中包含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个十进制数字)
e.g。
200,000.0000
110000110101000000 00000000000000
我已经看过struct类,但这只涉及整个字节,因为它用于从二进制编码的c结构转换。
我看过decimal.Decimal模块,但似乎你只能用字符串实例化它,这假设你已经有了字符串格式的数字。
答案 0 :(得分:2)
Python的struct.unpack()
正是您所需要的。您只需要制定适当的格式字符串,以便模块可以知道哪些字段在哪里以及它们具有哪种二进制格式,您应该能够快速解码数据。
你用比特来解释事情,但这并不是ITCH真正起作用的方式。固定十进制字段实际上是N个字节长,暗示了一些十进制移位。因此,您可以将价格字段作为整数读取,然后除以1e4以获得浮点值。