如何定义一个函数可以获取过去n天的价格,并把这n个值存为一个array vector

现在的table是长这个样子的

syms = "A"
datetimes = 2021.01.01..2022.01.01
n = 200
t = table(take(datetimes,n) as trade_time, take(syms,n) as sym,take(500+rand(10.0,n), n) as price)
attachments-2023-01-NvgjJgoK63d5d7527b61f.png现在想得到这样的结果:
attachments-2023-01-LAlslk9C63d5d779cb0c9.png


请先 登录 后评论

1 个回答

Jason Tang - 时序数据库技术支持

可以尝试以下下面的代码:

syms = "A"
datetimes = 2021.01.01..2022.01.01
n = 200
t = table(take(datetimes,n) as trade_time, take(syms,n) as sym,take(500+rand(10.0,n), n) as price)

dayNum = 3
tbName = "t"

def getLastNDay(tbName, dayNum){
        colName = "price"
        scripts = "update " + tbName + " set lastNPrice = fixedLengthArrayVector("
        for(n in 1..(dayNum-1)){
                scripts = scripts + "move(" + colName + "," + n + "),"
        }
        scripts = scripts +"move(" + colName + "," + dayNum + "))"
        print(scripts)
        runScript(scripts)
}
getLastNDay(tbName, dayNum)


结果如下:

attachments-2023-01-h9vmEGz063d5d7c500118.png

请先 登录 后评论