市場數據

NYSE 二進制數據,轉換為 ASCII

  • February 5, 2013

來自紐約證券交易所的數據產品“TAQ NYSE 訂單失衡”的格式在文件“NYSE 訂單失衡客戶規範”,版本 1.12,qv 簡要說明的第 4.8、4.9、4.10 和 5 節中得到了很好的描述,它是 ASCII 和二進制的混合:例如,股票符號是純文字,但由空字節填充,而數字欄位是二進制數字,由具有該二進制值的字節表示。所有欄位都是固定寬度的,因此數據行只是一個接一個。

有誰知道如何將其轉換為逗號分隔的文件?

我認為您不需要成為“系統程序員”,當然也不需要經驗豐富的人來解決這個問題:

1)關注標題,它是文件結構的圖例。它描述了格式,並且基本上已經告訴您如何解碼以下消息。

  1. 根據您選擇的語言,然後您以二進制格式處理每條消息並將每個項目轉換為數字格式。在 C# 中,有些人使用“BitConverter”,但顯然 C# 不是這裡選擇的語言。如果您能告訴我您使用哪種特定語言進行轉換,那將會很有幫助。許多人使用 Python 將此類內容轉換為更高級別的基於文本的格式,例如 csv 或任何分隔符分隔的結構。

3)在轉換之前,您可能需要仔細考慮是否要對數值的字節數組表示執行操作(我不熟悉您提到的特定提要,儘管有些提要僅輸出“alpha”而不是完整的例如,傳播,因此您需要執行加/減操作,這在某些情況下可能更適合在字節數組本身上執行)。這是一個範例: https ://stackoverflow.com/questions/3641274/c-sharp-int-byte-conversion

這裡有幾個 Python 範例,只是為了向您展示一個簡單的字節

$$ $$-> 可以進行 int 轉換: https://stackoverflow.com/questions/386753/how-do-i-convert-part-of-a-python-tuple-byte-array-into-an-integer

https://stackoverflow.com/questions/444591/convert-a-string-of-bytes-into-an-int-python

PS:這對你沒有幫助,但我發現混合消息格式非常低效,但這不是你的錯。最有效的流只發送字節數組,沒有別的。無論如何,符號內部都不應採用字元串格式,而應分配一個 int32 或 int64 程式碼。內部映射比將每個消息的每個符號從字節數組轉換為字元串要快得多。此外,即使符號以 ASCII 解碼,效率也非常低,並且會增加消息大小。

我編寫了pack R 包(基於 Perl 的 pack 函式),為 opentick(現已失效)數據執行此操作。您可以查看opentick 包(在 CRAN 檔案中)以了解我是如何使用它的。

我剛剛注意到您在 SO 文章中說您對 Perl 感到滿意。在這種情況下,我建議您使用 Perl 的unpack函式。

引用自:https://quant.stackexchange.com/questions/7214