2014-04-08 28 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