我已经遇到过几次这个任务,我相信这在交易中很常见:计算交易量加权平均价格。
我有这张桌子,代表价格和数量的执行:
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)
还有更实用的方法吗?也许有副词?
答案 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计算按数量加权的平均价格。