程式

從 C++ 解碼股市數據

  • June 21, 2020

作為實踐,我一直想解析交換數據並嘗試自己建構一個訂單簿算法。我從 NYSE 找到了一些樣本數據:ftp: //ftp.nyse.com/Real%20Time%20Data%20Samples/NYSE%20XDP/

我嘗試使用 tcpdump 讀取 pcap 數據。然而,這並沒有得到潛在的市場數據。有人對我如何解析 pcap 文件以讀取市場數據有建議嗎?我目前希望在 C++ 中執行此操作,因為大多數高頻交易場所都使用 C++。

任何建議和建議都會非常有幫助。謝謝你。

我已經創建了一個如何訪問 pcap 文件中的 UDP 數據包的範例。

要點是您必須跳過乙太網/IP/UDP 標頭才能到達有效負載。這就是傳遞給您的提要處理程序的內容。

至於 tcpdump,它不會將 payload 傳遞給你,但它仍然有助於在解析時驗證你是否理解內容。例如。,

tcpdump -r NYSE_XDP_IMB_2.2.pcap -e

我推薦@chrisaycock 的完整答案。但是,如果您想要一種快速而骯髒的方式來提取有效負載,您可以使用tshark而不是tcpdump

tshark -r NYSE_XDP_IMB_2.2.pcap -T fields -e data

這有時會很有用,因為許多交易所(比如納斯達克、澳大利亞和六家瑞士)通常會向您發送僅包含有效負載的歷史樣本。

例如,如果您想將充滿 NASDAQ pcaps 的目錄轉碼為範例二進制格式,並在 40 個核心上並行處理,您只需要一個神奇的單行程式碼:

find . -maxdepth 1 -name "*.pcap" | xargs -I {} -P40 sh -c 'tshark -r {} -T fields -e data | cut -c 41- | xxd -r -p > `basename {} .pcap`.bin'

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