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假定它是 –