有没有更优雅/实用的方法来计算平均价格?

时间:2019-03-05 09:51:54

标签: kdb

我已经遇到过几次这个任务,我相信这在交易中很常见:计算交易量加权平均价格。

我有这张桌子,代表价格和数量的执行:

t:([] qty:500j, 1400j, 1700j, 600j, 1500j, 1500j, 1200j, 1300j, 1600j, 1700j; price:9.96 9.94 10.02 9.91 9.93 10.03 10.09 9.97 9.98 10.08)

我通常计算平均价格的方式是:

(sum exec qty*price from t)%(sum exec qty from t)

还有更实用的方法吗?也许有副词?

3 个答案:

答案 0 :(得分:6)

使用“ wavg”功能:

 q)select qty wavg price from t

答案 1 :(得分:3)

如果使用未加密的表:

t[`qty]wavg t[`price]

答案 2 :(得分:2)

最简单的方法是使用select qty wavg price from t,但是将select替换为exec将返回一个原子值,而不是一个可能更适合您需求的表

exec qty wavg price from t
wavg计算按数量加权的平均价格。