If I understood it right, it can still be done with 2 lines in a tick function.

while(dataVar(H,N,0) <= wdate(0))
generic_tick(H,dataStr(H,N--,0));

N must be set to the earliest record number at start.