【问题标题】:how to calculate vwap price for a specified notional amount in kdb?如何计算 kdb 中指定名义金额的 vwap 价格?
【发布时间】:2018-05-30 11:25:41
【问题描述】:

我在 kdb 中有以下示例表。

mkt:([] date:2018.05.05 2018.05.05 2018.05.05 2018.05.05; time:2018.05.05D01:30:00 2018.05.05D01:30:01 2018.05.05D01:30:01 2018.05.05D01:30:02; bid:((1.2110 1.21105);(1.2111 1.2109 1.2112);(1.2111 1.2109);(1.2110 1.21105)); bidSize:((3000000 1000000);(500000 1000000 1000000);(1000000 2000000);(1000000 1000000)); ask:((1.2111 1.21115);(1.2112 1.2110 1.2113);(1.2112 1.2110);(1.2111 1.21115)); askSize:((3000000 1000000);(500000 1000000 1000000);(1000000 2000000);(1000000 1000000)))

我有这个作为解决方案,但数字不是最准确的。

table:select date, time, bid:{x wavg y}'[bidSize;bid], bidSize: sum each bidSize, ask:{x wavg y}'[askSize;ask], askSize:sum each askSize from mkt
table: update cumulBidSize: sums bidSize, cumulAskSize: sums askSize from table
1#select from table where cumlBidSize>=5000000

我希望能够在给定特定大小(例如 5000000)时具有函数,计算该大小的 vwap。我怎样才能循环遍历单元格中的数据,直到获得 5000000?

【问题讨论】:

    标签: database kdb


    【解决方案1】:

    您可以使用它仅计算总 bidSize 大于或等于指定大小的行的平均出价:

    {[x]select {x wavg y}'[sum each bidSize;bid] from mkt where x<=sum each bidSize}[4000000]

    如果您想仅计算关联尺寸大于或等于指定尺寸的价格的平均价格,则可以使用它:

    {select bidSize wavg bid from ungroup mkt where bidSize>=x}[2000000]

    希望这会有所帮助,

    詹姆斯

    【讨论】:

    • 嗨,詹姆斯,感谢您的回复。我实际上是在尝试单独循环通过投标价格和bidSize,直到我满意(即达到5mio 量)。但是,投标价格和bidSize 在每一行的列表中,这使得它变得困难。
    • 嗨詹姆斯。会尝试这个。我只是在尝试取消分组。但是您的解决方案似乎要好得多。作为一个忙,如果您不介意,我会及时通知您,并希望在需要时向您提出进一步的问题?有时为 kdb 寻求帮助可能会很痛苦,因此我要寻求帮助..
    • 嗨,马修 - 绝对没问题。为了澄清我之前的编辑:{exec bid:deltas[x&sums bidSize]wavg bid, ask:deltas[x&sums askSize]wavg ask from y}[5000000](,')/[mkt] 这用于将表格的行展平为字典。代码的关键部分是使用 deltas[limit&list] ,它允许我们计算每个bidSize 对总数的贡献, 用它作为我们对 wavg 的权重。通过使用“限制”,我们将只使用这个大小作为总大小的一部分。我们只使用倒数第二个尺寸的一半,最后一个尺寸都没有超过我们的限制。
    • @JamesBurrows 很好,上面的这条评论应该被提升为正确答案(不是原始答案)!虽然我不明白为什么你不能使用取消组合而不是追加
    • Terrtlynch,您能否进一步详细说明您将如何使用取消组合?
    猜你喜欢
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 2020-05-14
    相关资源
    最近更新 更多