Let's say I have a 'trade' table that lists all trades taken on a given exchange with these columns:
- date
- trading pair (e.g. BTCUSDT)
- ts, rt (timestamp and receiving time)
- price
- trade size
- buy/sell
Now I want to be able to to look at weekends and weekdays separately.
//Exclude weekends:
firstdate:2023.01.01
lastdate:2023.01.10
daterange:firstdate + til (lastdate - firstdate) + 1
daterange where 1<daterange mod 7
// or: daterange where not (daterange mod 7) in 0 1
(taken from this: How to generate a date range in kdb excluding weekend days?)
So the following code runs fine:
t1hr: select avg tv by 1 xbar ts.hh from trade where date within (firstdate;lastdate), sym=`BTCUSDT
whenever I add the daterange variable, I get errors:
t1hr_weekdays: select avg tv by 1 xbar ts.hh from trade where date within daterange where 1<daterange mod 7, sym=`BTCUSDT
Error reads:
length [6] (.Q.ps)
[5] t1hr_weekdays: select avg tv by 1 xbar ts.hh from trade where date within daterange where 1<daterange mod 7, sym=BTCUSDT ^ [4] {( (1b;`) ;value x)}