2012-03-29 4 views
2

Ich versuche, eine Datei zu analysieren, die ITCH Nachrichten in sich hat:Konvertieren einer binären Sequenz aus einer Datei in einem festen Punkt gelesen Nummer

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

Jeder Preis als 32bit vertreten Festkommazahl mit 18 ganzen Teilbits und 14 Dezimalteilbits. (6 ganze Zahlen gefolgt von 4 Dezimalziffern)

z.B.

200,000.0000 
110000110101000000 00000000000000 

Ich habe einen Blick auf die Struktur der Klasse hatte, aber dies nur befasst sich mit ganzen Bytes als für von binär codierten c structs umwandelt.

Ich habe mir das decimal.Decimal-Modul angeschaut, aber es scheint, dass Sie es nur mit einer Zeichenkette instanziieren können und dies setzt voraus, dass Sie die Zahl bereits im Zeichenkettenformat haben.

Antwort

2

Pythons struct.unpack() ist genau das, was Sie brauchen. Sie müssen nur die passende Formatzeichenkette formulieren, damit das Modul wissen kann, welche Felder wo sind und welches Binärformat sie haben, und Sie sollten schnell in der Lage sein, Ihre Daten zu entschlüsseln.

Sie haben Dinge in Bits ausgedrückt, aber ITCH funktioniert nicht so. Die Felder mit fester Dezimalzahl sind wirklich N Bytes lang, wobei eine Dezimalverschiebung impliziert ist. Sie können also ein Preisfeld als ganze Zahl lesen und dann durch 1e4 dividieren, um den Gleitkommawert zu erhalten.

+0

Struct.unpack wird nicht funktionieren - seit dem OP haben die Zahl in einer binären Basis in ASCII dargestellt. – jsbueno

+0

Ich denke, Sie verstehen nicht, welches Format er versucht zu analysieren. Verstehst du, dass ITCH 4.1, wie im OP verlinkt, ein binäres Protokoll ist und kein ASCII für Zahlen verwendet? –

+0

Prost John, nur einige Nachrichten hinzugefügt und überprüfte sie gegen vergangene Preise und es scheint, dass Sie Recht haben. Fühle mich jetzt etwas albern, da es so offensichtlich ist, dass es einfach div 1000 ist. –

Verwandte Themen