我们将解释如何在以下场景中使用批量计算来计算 OHLC 柱:
- 需要指定 OHLC 窗口的启动时间;
- 一天中有多个交易时段,包括隔夜时段;
- 重叠 OHLC 窗口;
- OHLC 窗口根据交易量划分。
如果数据量非常大,需要将结果写入数据库,我们可以使用 DolphinDB 内置的 Map-Reduce 功能进行并行计算。
- 有实时数据
使用 API 实时接收市场数据,并使用 DolphinDB 内置的时序引擎进行实时计算。
1.用历史数据计算(批量计算)
要使用历史数据计算 OHLC 柱,您可以使用 DolphinDB 的内置函数bar, dailyAlignedBar
1.1 不指定 OHLC Windows 的启动时间
函数bar一般用于根据指定的区间对数据进行分组。
date = 09:32m 09:33m 09:45m 09:49m 09:56m 09:56m;
bar(date, 5);
结果是:
[09:30m,09:30m,09:45m,09:45m,09:55m,09:55m]
示例 1:
n = 1000000
date = take(2019.11.07 2019.11.08, 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)
undef(`date`time`timestamp`price`volume`symbol);
计算 5 分钟 OHLC 柱:
barMinutes = 5m
OHLC = select first(price) as open, max(price) as high, min(price) as low, last(price) as clo

博客介绍了使用DolphinDB进行OHLC柱计算的方法。包括批量计算,如不指定、指定启动时间,处理重叠窗口、按交易量确定窗口,还可用MapReduce加速;也提及实时计算,即通过API接收市场数据,用内置时序引擎计算。
最低0.47元/天 解锁文章
2228

被折叠的 条评论
为什么被折叠?



