2022.08.19 02:28 AM
I have the below code, in which the result of wj and wj1 are exactly the same. Is there an example that wj and wj1 would give different output? From the documentation I can see that the 2 functions are different, but I'm not sure how to create an example to get different outputs. Thanks!
t1:([]sym:3#`ibm;time:07:01:01 07:01:03 07:01:05;price:100 101 105);
a:101 103 103 104 104 107 108 107 108;
b:98 99 102 103 103 104 106 106 107;
t2:([]sym:`ibm; time:07:01:01+til 9; ask:a; bid:b);
c:`sym`time;
w:-2 1+\:t1.time;
o1:wj[w;c;t1;(t2;(max;`ask);(min;`bid))];
o2:wj1[w;c;t1;(t2;(max;`ask);(min;`bid))];
o1~o2; // 1p;
2022.08.19 04:47 AM
You are seeing the same results as your t2
has an entry for every second
If we swap til 9
for 2*til 9
we can create gaps and then you can see the differences where wj
will bring in prevailing values but wj1
will not.
t1:([]sym:3#`ibm;time:07:01:01 07:01:03 07:01:05;price:100 101 105);
a:101 103 103 104 104 107 108 107 108;
b:98 99 102 103 103 104 106 106 107;
t2:([]sym:`ibm; time:07:00:58+2*til 9; ask:a; bid:b);
c:`sym`time;
w:-2 1+\:t1.time;
o1:wj[w;c;t1;(t2;(max;`ask);(min;`bid))];
o2:wj1[w;c;t1;(t2;(max;`ask);(min;`bid))];
o1~o2; // 0b;
q)wj[w;c;t1;(t2;(::;`ask);(::;`bid))]
sym time price ask bid
------------------------------------------
ibm 07:01:01 100 101 103 103 98 99 102
ibm 07:01:03 101 103 103 104 99 102 103
ibm 07:01:05 105 103 104 104 102 103 103
q)wj1[w;c;t1;(t2;(::;`ask);(::;`bid))]
sym time price ask bid
----------------------------------
ibm 07:01:01 100 103 103 99 102
ibm 07:01:03 101 103 104 102 103
ibm 07:01:05 105 104 104 103 103
You are
2022.08.19 04:47 AM
You are seeing the same results as your t2
has an entry for every second
If we swap til 9
for 2*til 9
we can create gaps and then you can see the differences where wj
will bring in prevailing values but wj1
will not.
t1:([]sym:3#`ibm;time:07:01:01 07:01:03 07:01:05;price:100 101 105);
a:101 103 103 104 104 107 108 107 108;
b:98 99 102 103 103 104 106 106 107;
t2:([]sym:`ibm; time:07:00:58+2*til 9; ask:a; bid:b);
c:`sym`time;
w:-2 1+\:t1.time;
o1:wj[w;c;t1;(t2;(max;`ask);(min;`bid))];
o2:wj1[w;c;t1;(t2;(max;`ask);(min;`bid))];
o1~o2; // 0b;
q)wj[w;c;t1;(t2;(::;`ask);(::;`bid))]
sym time price ask bid
------------------------------------------
ibm 07:01:01 100 101 103 103 98 99 102
ibm 07:01:03 101 103 103 104 99 102 103
ibm 07:01:05 105 103 104 104 102 103 103
q)wj1[w;c;t1;(t2;(::;`ask);(::;`bid))]
sym time price ask bid
----------------------------------
ibm 07:01:01 100 103 103 99 102
ibm 07:01:03 101 103 104 102 103
ibm 07:01:05 105 104 104 103 103
You are
EMEA
Tel: +44 (0)28 3025 2242
AMERICAS
Tel: +1 (212) 447 6700
APAC
Tel: +61 (0)2 9236 5700
KX. All Rights Reserved.
KX and kdb+ are registered trademarks of KX Systems, Inc., a subsidiary of FD Technologies plc.