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 倍。