【发布时间】:2018-04-10 12:46:13
【问题描述】:
我有以下交易表:
time ticker side price qty
--------------------------
2018.01.01T13:00:20 AAPL BUY 10.0 100
2018.01.01T13:01:30 AAPL SELL 12.0 300
2018.01.01T13:01:45 AAPL BUY 11.0 500
2018.01.01T13:02:13 AAPL BUY 10.5 100
2018.01.01T13:05:00 AAPL SELL 13.0 200
我需要一个回溯 1 分钟的滚动窗口函数来分隔股票价格的买入/卖出
time ticker BUYs SELLs TOTAL
--------------------------------
2018.01.01T13:00:20 AAPL 1 0 1
2018.01.01T13:01:30 AAPL 0 1 1
2018.01.01T13:01:45 AAPL 1 1 2
2018.01.01T13:02:13 AAPL 1 1 2
2018.01.01T13:05:00 AAPL 0 1 1
我决定使用“wj”功能,因为滚动功能适合我的目的。但是我无法让它工作:
w: -00:01 00:00 +:/ select time from table
wj[w;'ticker'time;table;(table;(count;ticker);(count;ticker))]
因此,至少我希望先计算每个买卖的计数,然后再将它们分组。但是我什至无法在没有出现类型错误的情况下运行初始查询。
有人能指出正确的方向吗?
其他问题
我知道必须对几个帐户执行滚动求和/计数,这要到运行时才知道。
time ticker side price qty account
----------------------------------
2018.01.01T13:00:20 AAPL BUY 10.0 100 ACCT123
2018.01.01T13:01:30 AAPL SELL 12.0 300 ACCT456
2018.01.01T13:01:45 AAPL BUY 11.0 500 ACCT789
2018.01.01T13:02:13 AAPL BUY 10.5 100 ERRORACCT123
2018.01.01T13:05:00 AAPL SELL 13.0 200 TESTACCT123
我知道我可以将表格旋转到:
time ticker side price qty ACCT123 ACCT456 ACC789 ERRORACCT123 TESTACCT23
---------------------------------
但是我可以使用滚动函数来汇总 1 分钟回顾期内的大小吗?
【问题讨论】:
标签: kdb