行情数据做日切,可以怎么区分出来?

我想对行情数据做日切,在DolphinDB database GUI中执行下列代码:

n_move=5

t1=

select concatDateTime(trade_date,trade_time) as time,secu_code,

(close/close.move(n_move))-1 as r_close, //等价于ratios(close)-1

(volume/volume.move(n_move))-1 as r_volume,

(turnover/turnover.move(n_move))-1 as r_turnover

from quote_1min

where trade_date between date_begin:date_end

context by secu_code

执行后结果如下:

图中选中的这5根分钟bar,其实是不能参照昨日尾盘的最后5根计算,应该取0了。这句执行后 update一下每日前5根分钟bar数据为0,也是可以达到目的,但我想精炼到一条语句,请问有什么方法?

回答

DolphinDB针对时序数据处理,在SQL中增加了一个context by子句,也就是说数据先按照context by后面指定的字段进行分组,每一个组内部再应用序列函数。

上面的例子其实已经使用了context by,只不过只按照股票一个字段进行分组,再增加一个日期字段即可。

n_move=5

t1=

select concatDateTime(trade_date,trade_time) as time,secu_code,

(close/close.move(n_move))-1 as r_close, //等价于ratios(close)-1

(volume/volume.move(n_move))-1 as r_volume,

(turnover/turnover.move(n_move))-1 as r_turnover

from quote_1min

where trade_date between date_begin:date_end

context by secu_code, trade_date

以上是 行情数据做日切,可以怎么区分出来? 的全部内容, 来源链接: utcz.com/a/26596.html

回到顶部