DolphinDB:如何用createDailyTimeSeriesEngine聚合期货跨日夜盘至同一交易日?
DolphinDB 跨日夜盘期货日K线聚合问题解决
问题背景
使用createDailyTimeSeriesEngine聚合期货日K线时,周五21:00-23:00夜盘与周一09:00-15:00昼盘被拆分为两根独立K线,但需求是将二者合并为周一交易日的单根K线(期货规则中周五夜盘归属下周一交易日)。
源数据表mdAllJoin结构:
| 列名 | 类型 | 描述 |
|---|---|---|
| InstrumentID | SYMBOL | 合约代码 |
| Timestamp | TIMESTAMP | 行情实际时间戳 |
| ActionDay | DATE | 交易所定义的交易日 |
| tradeTime | TIME | 交易时间 |
| LastPrice | DOUBLE | 最新价 |
| Volume | LONG | 累计成交量 |
关键逻辑:Timestamp为自然日时间(如2024.01.12 21:30:00),ActionDay为交易所指定的归属交易日(对应上述时间为2024.01.15,即周一)。
核心结论
createDailyTimeSeriesEngine支持跨日夜盘聚合,可通过两种方式实现需求:
方案一:直接基于ActionDay分组聚合(离线场景首选)
由于源数据已包含交易所定义的ActionDay,直接按合约+交易日分组计算K线指标是最简洁的方式,无需依赖时间序列引擎:
select last(ActionDay) as ActionDay, last(tradeTime) as LastTradeTime, first(LastPrice) as Open, max(LastPrice) as High, min(LastPrice) as Low, last(LastPrice) as Close, last(Volume) - first(Volume) as Volume from mdAllJoin group by InstrumentID, ActionDay
该方案天然将同一ActionDay下的周五夜盘与周一昼盘数据聚合为单根K线,完全匹配业务规则。
方案二:配置createDailyTimeSeriesEngine实现实时聚合
若需实时流处理,需正确配置交易时段参数,让引擎识别跨日归属关系:
1. 定义交易时段与归属星期
// 定义两个交易时段:周一昼盘、周五夜盘 segStartRaw = [09:00:00, 21:00:00] segEndRaw = [15:00:00, 23:00:00] // 指定每个时段对应的星期几(1=周一,5=周五) sessionDay = [1, 5] // 窗口大小设为1个自然日的毫秒数 tradetimeMillisec = 86400000
2. 调整时间序列引擎参数
tsAggr1d = createDailyTimeSeriesEngine( name="tsAggr1d", windowSize = tradetimeMillisec, step = tradetimeMillisec, metrics = <[last(ActionDay), last(tradeTime), first(LastPrice), max(LastPrice), min(LastPrice), last(LastPrice), last(Volume) - first(Volume)]>, dummyTable = mdAllJoin, outputTable= tsRse1d, timeColumn = `Timestamp, keyColumn=`InstrumentID, updateTime=0, useWindowStartTime=false, useSystemTime = false, sessionBegin = segStartRaw, sessionEnd = segEndRaw, sessionDay = sessionDay, // 关联时段与归属星期 roundTime = false, mergeLastWindow = true, // 合并跨日同归属的时段数据 keyPurgeDaily = true, fill = "none" )
参数说明
sessionDay:明确指定周五夜盘(21:00-23:00)属于周五时段,配合mergeLastWindow=true,引擎会将其与下周一昼盘数据合并到同一个交易日窗口。last(ActionDay):确保输出结果中的交易日始终以交易所定义的ActionDay为准,避免自然日混淆。
内容的提问来源于stack exchange,提问作者haru
相关产品推荐
相关产品推荐

