建议增加交易日相关系统函数

目前dolphindb的时序函数多为日历日或工作日,如weekBegin、quarterEnd、businessMonthEnd等,其定位的日期和实际交易日是有区别的,使用getMarketCalendar自定义函数在数据较大时速度很慢,比如定位到每周最后一个交易日,我用了last(getMarketCalendar("SSE",weekBegin(d),weekEnd(d)))的苯办法,不知有没有什么好的方法,建议增加交易日相关的系统函数。

请先 登录 后评论

1 个回答

Polly
date1 = rand(getMarketCalendar("SSE",2023.01.01,2023.12.31), 100000).sort!()
// 方法一: 循环遍历计算
re = array(DATE)
timer for(d in date1){
	re.append!(last(getMarketCalendar("SSE",weekBegin(d),weekEnd(d))))
}
// 方法二:向量化计算
timer {
	mday = getMarketCalendar("SSE", 2023.01.01, 2023.12.31)
	date2 = weekEnd(date1)
	re1 = mday[asof(mday, date2)]
}
eqObj(re, re1) // true

上述两种方法返回结果一致,但是方法二较方法一快了 500 倍。


请先 登录 后评论
  • 2 关注
  • 0 收藏,641 浏览
  • Gaxia320 提出于 2023-05-29 12:32

相似问题