行情數據

如何在算法交易系統中過濾和規範從不同來源(FIX 4.4、bloomberg 等)獲得的市場數據?

  • July 4, 2015

我想知道你們中的一些人是否知道如何解決這個要求:

我必須定義算法交易系統的架構(但我不是架構師,所以我正在努力做到最好)。我已經定義了一個初始架構,但現在我被困在數據饋送處理程序組件上。

我的意思是,系統將接收來自不同來源(bloomberg、FIX4.4 等)的市場數據,並且必須對這些數據進行規範化以生成可用的數據饋送,該饋送應該由算法使用以進行一些計算並創建一些訂單等像這樣:

mk 數據提供者**=>數據組件=>規範化數據=>可用數據=>**算法(使用規範化數據)

所以,我想知道您是否知道一種實現此功能的好方法,或者您是否知道一個好的開源市場數據饋送處理程序,它可以接收來自不同提供商的數據並生成一個乾淨且規範化的市場數據流。

我將非常感謝您的回答。提前致謝。

PD:我一直在做一些研究,我發現了這個:

  • <http://www.openmama.org/>
  • <http://www.stuartreid.co.za/algorithmic-trading-system-architecture-post/>

現在我只是在審查這些網站……

如果我正確理解了您的問題,那麼您是在問什麼是標準化提要的好設計。這是一個有點微不足道的問題:(i) 選擇從每個提要中過濾掉哪些數據欄位(例如價格、交易量)以及 (ii) 如何以最小的計算成本將其保存在交易系統中。

關於(一)

我強烈建議您以測試驅動的方式處理此問題。換句話說,弄清楚您的應用程序將在下游使用哪些數據,並“反轉”您需要對上游進行規範化的數據。

一個簡單的例子:如果你的策略只需要價格,那麼標準化匹配數字可能沒什麼用處。如果您的合規性和交易後分析以交易時間而不是序列號為關鍵,那麼您可能也不需要它。

我可以給你的兩個提示是:

  • 不要過度拉伸自己。從第一天起就很容易犯錯誤,試圖示準化太多。您不想浪費時間嘗試將現貨外匯、掉期、股票期權、股票、交易所交易期貨等都放在同一個標準化提要上。在你處理所有這些之前,你可能需要很長時間,而且到你必須這樣做的時候,你可能有其他人為你重做這件事。
  • 想一想您將如何維護對標準化提要進行的折舊欄位和版本更改。無論您的初始設計多麼詳盡,我保證您會在實施和實時使用過程中遇到變化。

關於(ii)

在不了解您的確切架構的情況下,我們可以為您提供的最佳答案是一系列明顯的軟體開發技巧:將其保存在記憶體中,最大限度地減少分配和 GC 成本,並最大限度地減少線上程之間穿梭數據的次數。

重要的提示

如果您基於超過 1 個數據饋送進行交易,這不是您想要單獨做的事情。這真的不值得你花時間。供應商標準化數據饋送成本高昂是有原因的,它們需要大量時間來維護。

關於您的問題,我不明白的部分是:Bloomberg 是一個規範化的數據饋送提供商,而 FIX 有時被交易所直接使用,您為什麼要在兩者之間進行規範化?然後,您只是在 Bloomberg 路徑中引入了不必要的成本。如果是這樣的話,我只會單獨使用彭博社。

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