2014-04-08 27 views
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

我已手動檢查數據中是否存在可解決此問題的空白。

什麼可能會出錯?

+0

有趣的是,我能得到這個工作正常使用你的數據。你的時間戳列是什麼類型? – nightTrevors

+0

我懷疑時間戳是一個混合列表,而不是時間戳類型...認爲它應該已經2014.03.03T09:13:59.054而不是2014.03.03 09:13:59.054與日期和時間之間的空間...只是要確保這不是錯別字... –

+2

此外,還要確保時間戳列被排序爲aj假定它是 –

回答

0

此外,還要確保時間戳列進行排序爲j 假定它是

- user2393012 4月9日在8:47