2011-11-30 30 views
4

我正在学习KDB +并已将Tic数据加载到表W中,如下所示。我的问题是,如何将数据传输到5(或n)分钟OHLCVA?如何将tic数据转换为5分钟OHLC?

"Stk_ID","Date","Time","Price","Chg","Vol","Amt","Ty" 
300032,2011-03-03,09:51:40,20.40,0.00,10.0,20400.0,S 
300032,2011-03-03,09:51:30,20.40,-0.01,9.0,18360.0,S 
300032,2011-03-03,09:51:00,20.41,0.01,2.0,4082.0,B 
300032,2011-03-03,09:51:00,20.40,-0.01,115.0,234599.0,S 
300032,2011-03-03,09:50:45,20.41,0.00,10.0,20410.0,S 
300032,2011-03-03,09:50:45,20.41,-0.02,7.0,14287.0,S 
300032,2011-03-03,09:50:20,20.43,-0.01,4.0,8172.0,S 
300032,2011-03-03,09:50:05,20.44,0.01,25.0,51100.0,B 
300032,2011-03-03,09:50:00,20.43,-0.01,28.0,57204.0,S 

我用这样的Q代码得到1分钟的数据,但不知道如何得到5分钟。 :

select Open: first price,High: max price, Low: min price,Close: last price,Vol: sum vol, Amt: sum amt,Avg_Price: ((sum amt)%(sum vol))%100 by stk_id,time.hh,time.mm from asc W 

结果:

stk_id hh mm| Open High Low Close Vol Amt   Avg_Price 
------------| ---------------------------------------------------- 
000001 9 30| 16.24 16.24 16.22 16.24 3253 5282086  16.23758 
000001 9 31| 16.22 16.24 16.21 16.21 1974 3204276  16.2324 
000001 9 32| 16.23 16.23 16.2 16.2 3764 6102207  16.21203 
000001 9 33| 16.21 16.21 16.19 16.2 4407 7143120  16.20858 
000001 9 34| 16.2 16.2 16.19 16.19 1701 2756614  16.20584 
000001 9 35| 16.19 16.21 16.19 16.21 2756 4466988  16.20823 
000001 9 36| 16.22 16.25 16.22 16.24 3123 5076089  16.25389 
000001 9 37| 16.25 16.27 16.25 16.27 1782 2897340  16.25892 

回答

3

不是通过time.hh然后time.mm单独分组,我建议你做一个燎组:

by stk_id,time.minute 

从那里,所有你需要做的5分钟桶是使用xbar:

by stk_id,5 xbar time.minute 
+0

谢谢你的答案 – bigbug

相关问题