gpt4 book ai didi

loops - 在 Q KDB+ 中使用 EACH 循环

转载 作者:行者123 更新时间:2023-12-01 12:25:09 24 4
gpt4 key购买 nike

我有股票交易数据库(名称“TRADES”),并且我一直在尝试制作一个简单的循环(使用函数 EACH),该循环将对每个 ISIN 超过预定义数量阈值的所有数量求和。数据如下所示:

q) select TIME, PRICE, QUANTITY from TRADES where ISIN=`IT123

TIME PRICE QUANTITY
8:58:05 9.47 66
9:00:09 9.47 55
9:00:56 9.48 107
9:01:06 9.49 7
9:01:33 9.50 9
9:03:11 9.07 200
9:06:27 9.07 100
9:07:46 9.12 65...

起初,我为一个 ISIN 尝试使用此代码:
q) myquant: ([] qu: 1 + til 100) //pre-define quantities from 1 to 100

q) f:{[x] (select sum QUANTITY from TRADES where ISIN=`IT123, QUANTITY> x)}

q) f each myquant.qu //use function EACH for all x that are in myquant

然后我得到了一些象形文字...也许是因为列表指定错误?

我还需要为数据库中的所有 ISIN(即“每个不同的 ISIN”)进行这些计算。

非常感谢您提前提供帮助。

最佳答案

给定一些 trades :

q)show trades:flip`isin`time`price`quantity!100?/:(`US5949181045`US38259P5089`US0378331005;24t;100f;100)
isin time price quantity
-------------------------------------------
US5949181045 18:45:28.487 60.91539 12
US5949181045 04:35:02.468 98.30794 62
US0378331005 23:39:20.774 75.43122 18
US38259P5089 09:37:08.266 38.13679 37
US0378331005 12:09:01.385 3.112646 17
..

对于 minQty范围从 0 到 100:
q)raze {[minQty] select sum quantity by isin,minQty:minQty  from trades where quantity>minQty} each til 100
isin minQty| quantity
-------------------| --------
US0378331005 0 | 1537
US38259P5089 0 | 1767
US5949181045 0 | 1435
US0378331005 1 | 1537
US38259P5089 1 | 1767
..

结果给出了每个 isin 的总数量,其中数量 > 给定的 minQty

关于loops - 在 Q KDB+ 中使用 EACH 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40562787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com