程式

訂單簿數據庫結構

  • March 3, 2020

我目前正在將訂單簿的不到 1 秒的快照保存到我的 SQL 數據庫中。但是我很難弄清楚這個數據庫的架構

我目前正在做的是保存一個包含數據的表並將該表命名為目前紀元。如您所見,這是一種可怕的做法。

你們會建議做什麼來提高效率和減少混亂。

我目前儲存的數據只有:時間,大小,價格提前謝謝你們太棒了!

您是否考慮過通過添加附加欄位(“級別”或“深度”)和(“類型”)來儲存它,然後您可以擁有一個看起來像這樣的表;

time    size    price    depth    type
xxx     100     100.03   1        bid
xxx     2000    100.025  2        bid
xxx     0       100.02   3        bid
xxx     33      100.035  1        offer
xxx     45      100.04   2        offer
xxx     550     100.045  3        offer

此外,您甚至可以將下一個時間快照與上一個時間快照進行比較,並且僅在數據更改時才創建一個新條目。時間差越小,數據儲存效率就越高。例如假設下一個時間步只有兩個變化;一個新的第 3 級出價,並且由於交易或其他原因降低了第 1 級的出價,那麼您只創建 2 行;

xxx+1    250    100.02   3      bid
xxx+1    23     100.035  1      offer

您始終可以使用簡單的 SQL 為給定時間戳的表建立索引;

SELECT TOP 1 * 
   FROM table 
   WHERE type='bid' AND level=1 AND time <= xxx+1
   ORDER BY time DESC

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