數據

表示時間序列的最佳資料結構/實現是什麼?

  • December 2, 2016

我想知道在時間序列中表示元素的最佳實踐是什麼,尤其是在有大量數據的情況下。焦點/上下文位於回測引擎中並比較多個系列。

似乎有兩種選擇:

  1. 使用整數索引,或

  2. 使用基於日期的索引

目前我正在使用日期,但這會影響性能和記憶體使用,因為我使用的是雜湊表而不是數組,並且它需要一些迭代(向前或向後)成本,因為我必須確定下一個/在我可以訪問之前的有效日期。

然而,它確實讓我可以即時匯總數據(例如,在查看每日柱時建構前一周的 ohlc),最重要的是,我可以確定我正在查看相同的日期/時間來比較不同的系列。如果我正在查看與更廣泛的指數相關的股票問題,並且說更廣泛的指數由於某種原因缺少一些條形圖,那麼使用整數索引數組將意味著我正在查看廣泛指數的未來數據與目前數據給定的安全性。除非您使用日期/時間,否則我看不出您如何處理這些情況。

使用整數索引在程式碼方面會容易得多,所以我只是想知道其他人在做什麼,或者是否有最佳實踐。

使用複雜的資料結構表示時間序列(尤其是刻度數據)可能不是最好的主意。

您可能想嘗試使用兩個長度相同的數組來儲存您的時間序列。第一個數組儲存值(例如價格),第二個數組儲存時間。請注意,第二個系列是單調遞增的(或至少是非遞減的),即它是排序的。此屬性使您能夠使用二進制搜尋算法對其進行搜尋。在第二個數組中獲得感興趣時間的索引後,您還可以在第一個數組中獲得相關條目的索引。如果您將兩個數組和搜尋算法包裝在一個類中,您將擁有隱藏在一個簡單介面後面的整個實現複雜性。

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