经历demo时,为何Empirical禁止以下行为?
>>> join trades, events on symbol asof timestamp nearest strict
Error: join 'asof' cannot be both 'nearest' and 'strict'
有没有办法匹配最接近但不精确的时间戳?
答案 0 :(得分:0)
这是不允许的,因为匹配的行可能乱序。想象一下这个设置:
data LeftItem: time: Time, code1: Char end
data RightItem: time: Time, code2: Char end
let left = !LeftItem([Time("09:30"), Time("09:31")], ['A', 'B'])
let right = !RightItem([Time("09:30"), Time("09:31")], ['a', 'b'])
我们现在有了以下数据框:
>>> left
time code1
09:30:00 A
09:31:00 B
>>> right
time code2
09:30:00 a
09:31:00 b
如果有一个“最近严格”,那么结果将是
time code1 code2
09:30:00 A b
09:31:00 B a
这是正确,因为我们有不精确的最接近的行,但这没有任何意义。我们希望时间会单调增加,所以匹配的行永远不能倒序。
因此,最明智的方法是允许“限制”“向后”和“向前”方向,但不允许“最近”。