gpt4 book ai didi

kdb - 创建基于滚动计算的唯一条目 (Q/KDB+)

转载 作者:行者123 更新时间:2023-12-05 00:13:27 24 4
gpt4 key购买 nike

我有一张 table :

q)data:([]dt:2017.01.05D19:45:00.238248239 2017.01.05D20:46:00.282382392 2017.01.05D21:47:00.232842342 2017.01.05D22:48:00.835838442 2017.01.05D20:49:00.282382392;sym:`AAPL`GOOG`AAPL`BBRY`GOOG;price:101.20 800.20 102.30 2.20 800.50;shares:500 100 500 900 100)
q)data
dt sym price shares
2017.01.05D19:45:00.238248239 AAPL 101.20 500
2017.01.05D20:46:00.282382392 GOOG 800.20 100
2017.01.05D21:47:00.232842342 AAPL 102.30 500
2017.01.05D22:48:00.835838442 BBRY 2.20 900
2017.01.05D20:49:00.282382392 GOOG 800.50 100

我需要创建一个包含价格*份额总和的列,以便对每个单独的股票代码进行最新观察。

为了演示使用上述数据,我们正在寻找:
data:
dt sym price shares index
2017.01.05D19:45:00.238248239 AAPL 101.20 500 50,600
2017.01.05D20:46:00.282382392 GOOG 800.20 100 130,620
2017.01.05D21:47:00.232842342 AAPL 102.30 500 131,170
2017.01.05D22:48:00.835838442 BBRY 2.20 900 133,150
2017.01.05D20:49:00.282382392 GOOG 800.50 100 133,180

为了进一步澄清,在第 1 行,仅包含 1 个符号,在第 2 行,2 个符号,然后是 2,然后是 3,然后在第 5 行又是 3。

在另一个线程中回答: Apply formula to current and previous rows only (Q/KDB)

最佳答案

Jonathon 的解决方案略有变化,使用向量条件:

q)delete dict from update index:?[all flip distinct[sym]in/: key'[dict]; {sum[x]*sum[y]%sum z} ./: flip each value each dict;0N] from update dict:@[;;:;]\[()!();sym;flip (price;shares;divisor)] from data
dt sym price shares divisor index
----------------------------------------------------------------
2018.02.05D22:47:22.175914000 AAPL 101.2 500 2
2018.02.05D22:21:10.175914000 GOOG 800.2 500 1
2018.02.05D22:58:00.175914000 AAPL 102.3 500 2
2018.02.05D22:19:27.175914000 BBRY 2.2 500 1 339262.5

关于kdb - 创建基于滚动计算的唯一条目 (Q/KDB+),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48629544/

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