如何按照 'weekEnd' 进行数据降频

def agg_k_longer(ticker){    
klday get_adjust_klday(ticker)    
rule = "W"
return select
indexedSeries(date,date).resample(rule,last) as date,
indexedSeries(date,code).resample(rule,last) as code,
indexedSeries(date,open).resample(rule,first) as open,
indexedSeries(date,high).resample(rule,max) as high,
indexedSeries(date,low).resample(rule,min) as low,
indexedSeries(date,close).resample(rule,last) as close,
indexedSeries(date,volume).resample(rule,sum) as volume,
indexedseries(date amount).resample(rule,sum) as amount
from k1daycontext by code }
agg_k_1 onger(`600519.SH`300750.SZ)

我目前的写法是这样,有更佳的做法嘛?

请先 登录 后评论

1 个回答

veryOrdinary

普通的升降频需求可以用 interval 函数实现,但是由于当前场景是 weekEnd,而 interval 的 ‘w’ 精度仅仅是按 7 天做划分。可以使用 transFreq 进行分组:

select  
    last(tradetime) as tradetime,
    last(securityid) as securityid,
    first(open) as open,
    max(high) as high,
    min(low) as low,
    last(close) as close,
    sum(vol) as vol,
    sum(val) as val
from t group by securityid, transFreq(tradetime, "W")
请先 登录 后评论
  • 1 关注
  • 0 收藏,465 浏览
  • Polly 提出于 2023-10-13 09:45