小编Ch2*_*231的帖子

在列表中查询百分位数的有效方法

我遇到过几次从列表中收集百分位数的要求:

  1. 某个数字在哪个百分位内?
  2. 列表中的第 n 个百分位数是多少?

我写了这些方法来解决这个问题:

/for 1:    
percentileWithinThreshold:{[threshold;list] (100 * count where list <= threshold) % count list};

/for 2:
thresholdForPercentile:{[percentile;list] (asc list)[-1 + "j"$((percentile % 100) * count list)]};
Run Code Online (Sandbox Code Playgroud)

它们适用于两个用例,但我认为这是一个太常见的用例,所以 Q 可能已经提供了一些开箱即用的功能。知道是否已经存在其他东西吗?

kdb

2
推荐指数
1
解决办法
897
查看次数

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

我已经多次遇到此任务,我认为这在交易中很常见:计算交易量加权平均价格。

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

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)
Run Code Online (Sandbox Code Playgroud)

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

(sum exec qty*price from t)%(sum exec qty from t)
Run Code Online (Sandbox Code Playgroud)

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

kdb

2
推荐指数
1
解决办法
101
查看次数

标签 统计

kdb ×2