kdb/q 从 TAQ 数据构建 NBBO
kdb/q building NBBO from TAQ data
我有一个 table,每个 stock/venue 都有 bid/ask。类似于:
taq:`time xasc ([] time:10:00:00+(100?1000);bid:30+(100?20)%30;ask:30.8+(100?20)%30;stock:100?`STOCK1`STOCK2;exhcnage:100?`NYSE`NASDAQ)
我怎样才能从所有交易所获得每只股票的 best/bid 报价(在一分钟内)?
我最初的想法是构建一个 table,每个 minute/exchange/stock 都有一行,并对 taq 数据进行 asof 连接。然而,在我看来这是一个蛮力解决方案 - 因为这是一个已解决的问题,我想我会问是否有更好的方法。
select max bid, min ask by stock,1+minute from 0!select by 1 xbar time.minute,stock,exchange from taq
这将在 minute
列中以 1 分钟的间隔为您提供跨交易所的最高出价和最低要价。
唯一棘手的是select by 1 xbar time.minute
。当您在没有聚合的情况下执行 select by 时,它只会 return 最后一行。所以这实际上意味着 select last time, last bid, last ask .... by 1 xbar time.minute
等
因此,在我们按分钟和交易所获得最后一个值之后,我们只获得那一分钟跨交易所的 min
/max
。
我有一个 table,每个 stock/venue 都有 bid/ask。类似于:
taq:`time xasc ([] time:10:00:00+(100?1000);bid:30+(100?20)%30;ask:30.8+(100?20)%30;stock:100?`STOCK1`STOCK2;exhcnage:100?`NYSE`NASDAQ)
我怎样才能从所有交易所获得每只股票的 best/bid 报价(在一分钟内)?
我最初的想法是构建一个 table,每个 minute/exchange/stock 都有一行,并对 taq 数据进行 asof 连接。然而,在我看来这是一个蛮力解决方案 - 因为这是一个已解决的问题,我想我会问是否有更好的方法。
select max bid, min ask by stock,1+minute from 0!select by 1 xbar time.minute,stock,exchange from taq
这将在 minute
列中以 1 分钟的间隔为您提供跨交易所的最高出价和最低要价。
唯一棘手的是select by 1 xbar time.minute
。当您在没有聚合的情况下执行 select by 时,它只会 return 最后一行。所以这实际上意味着 select last time, last bid, last ask .... by 1 xbar time.minute
等
因此,在我们按分钟和交易所获得最后一个值之后,我们只获得那一分钟跨交易所的 min
/max
。