KDB可以在任何时间间隔发布聚合的OHLC条形图吗?

时间:2015-02-15 00:49:32

标签: kdb

如果问题不相关我很抱歉我不熟悉KDB +并且想知道kdb +是否提供了以n个间隔发布聚合的tick数据的功能,以便其他进程现在可以使用这些数据。

感谢。

1 个答案:

答案 0 :(得分:1)

虽然q对于这类事情非常强大,但并非开箱即用!

您必须修改tick.q才能执行此操作。不幸的是,如果您是q的新手,那么文件对您来说不是一个快乐的读物:)

默认情况下tick.q将数据保留在内存中1秒钟然后发布。如果您希望它,例如,每隔60秒发布一次汇总数据

  1. 当您启动tickerplant进程时,在命令行上将-t设置为60000,以便它的计时器每60秒运行一次(否则直接在脚本中执行\t 60000
  2. 更改.u.pub以汇总数据,而不是简单地将表格抽出给听众,例如0!select max price, min price, first price, last price by sym, time.minute from t
  3. 当您的听众订阅tickerplant时,他们首先会有效地请求每个表的架构。但是你的聚合显然看起来不像那个架构,所以听众需要注意这一点。
  4. 修改

    重新阅读您的问题之后,您要求对每个n行进行汇总 - 如果您真的想要这样做,那么最好在您的查询中汇总而不是获取您的tickerplant聚合和发布。原因是它比上面的要复杂得多,因为你需要保持一个计数,以便你知道何时聚合。

    如果内存不是问题,请使用i作为"行计数管理员"保留原始数据并在查询中汇总实时数据库。和xbar,例如汇总1000行:

    select Low:min price, High:max price by Bucket:1000 xbar i from
      aTable where sym=`abc, (`time$time) within (09:00;10:00)