1
我有行業Trades
的表:KDB ASOF聯接給出不正確的結果
TradeID Stock Timestamp
1 GOOG 2014.03.03 09:13:59.054
2 GOOG 2014.03.03 09:28:12.003
3 GOOG 2014.03.03 09:28:18.199
4 GOOG 2014.03.03 09:52:03.628
5 GOOG 2014.03.03 11:18:52.629
...
也是價格剔數據Prices
表:
Stock Timestamp Bid Ask
GOOG 2014.03.03 08:02:34.297 102.21 102.41
GOOG 2014.03.03 08:02:40.118 102.32 102.42
GOOG 2014.03.03 08:02:44.090 102.33 102.43
GOOG 2014.03.03 08:03:20.197 102.34 102.44
GOOG 2014.03.03 08:05:09.325 102.35 102.45
...
當我做的asof加入...
aj[
`Stock`Timestamp;
Trades;
update TimestampPrice:Timestamp from Prices/let's me track which price gets joined
]
......我得到錯誤的結果:
TradeID Stock Timestamp TimestampPrice Bid Ask
1 GOOG 2014.03.03 09:13:59.054 2014.03.03 08:05:09.325 102.35 102.45
2 GOOG 2014.03.03 09:28:12.003 2014.03.03 08:05:09.325 102.35 102.45
3 GOOG 2014.03.03 09:28:18.199 2014.03.03 08:05:09.325 102.35 102.45
4 GOOG 2014.03.03 09:52:03.628 2014.03.03 08:05:09.325 102.35 102.45
5 GOOG 2014.03.03 11:18:52.629 2014.03.03 10:31:45.043 102.24 102.35
6 GOOG 2014.03.03 11:33:52.021 2014.03.03 10:31:45.043 102.24 102.35
Timestamp
顯示交易的時間,同時TimestampPrice
顯示,被加入了價格數據的時間戳。儘管價格數據大約每30秒鐘滴答一次,aj
的結果加入距離實際交易幾個小時的價格!例如,TradeID=1
的交易價格爲09:13:59
,但價格從08:05:09
加入。
另外,我發現奇怪的是加入的TimestampPrice
突然從08:05:09
跳到10:31:45
。
我已手動檢查數據中是否存在可解決此問題的空白。
什麼可能會出錯?
有趣的是,我能得到這個工作正常使用你的數據。你的時間戳列是什麼類型? – nightTrevors
我懷疑時間戳是一個混合列表,而不是時間戳類型...認爲它應該已經2014.03.03T09:13:59.054而不是2014.03.03 09:13:59.054與日期和時間之間的空間...只是要確保這不是錯別字... –
此外,還要確保時間戳列被排序爲aj假定它是 –