【发布时间】:2021-12-24 01:54:13
【问题描述】:
假设一只股票每天有 4800 个刻度。随着时间的推移,所有的蜱都均匀分布。如何计算 DolphinDB 时间窗口内最大值的时间百分位排名?
【问题讨论】:
标签: dolphindb
假设一只股票每天有 4800 个刻度。随着时间的推移,所有的蜱都均匀分布。如何计算 DolphinDB 时间窗口内最大值的时间百分位排名?
【问题讨论】:
标签: dolphindb
请看下面的代码,可以使用context by 子句和函数rank 来实现。
n = 40
date = take(2019.11.07, n)
time = (09:30:00.000 + rand(int(6.5*60*60*1000), n)).sort!()
timestamp = concatDateTime(date, time)
price = 100+cumsum(rand(0.02, n)-0.01)
volume = rand(1000, n)
symbol = rand(`AAPL`FB`AMZN`MSFT, n)
trade = table(symbol, date, time, timestamp, price, volume).sortBy!(`symbol`timestamp)
select max(price),atImax(price,timestamp) as max_buyprice01,rank(timestamp,percent=true) as rank1,rank(timestamp,percent=false) as rank2,count(timestamp)
from trade as t context by symbol,date
【讨论】: