KDB+ เดฌเตเดธเต, Q เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดเดเต เดญเดพเดท เดเดจเตเดคเดพเดฃเตเดจเตเดจเตเด เด
เดตเดฏเตเดเต เดถเดเตเดคเดฟเดฏเตเด เดฌเดฒเดนเตเดจเดคเดเดณเตเด เดเดจเตเดคเดพเดฃเตเดจเตเดจเตเด เดเดจเตเดฑเต เดฎเตเดฎเตเดชเดคเตเดคเตเดคเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดตเดพเดฏเดฟเดเตเดเดพเด
เดเดฎเตเดเด
KDB+ เดเดจเตเดจเดคเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดฐเตเดคเดฟเดฏเดฟเตฝ (เดชเตเดฐเดพเดฅเดฎเดฟเดเดฎเดพเดฏเดฟ เดธเดฎเดฏเด เด เดจเตเดธเดฐเดฟเดเตเดเต) เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ, เดตเดณเดฐเต เดตเดฒเดฟเดฏ เด เดณเดตเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดถเตเดฐเดฆเตเดง เดเตเดจเตเดฆเตเดฐเตเดเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดเตเดณเด เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดพเดฃเต. เดเดคเต เดชเตเดฐเดพเดฅเดฎเดฟเดเดฎเดพเดฏเดฟ เดงเดจเดเดพเดฐเตเดฏ เดธเตเดฅเดพเดชเดจเดเตเดเดณเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต - เดฌเดพเดเตเดเตเดเตพ, เดจเดฟเดเตเดทเตเดช เดซเดฃเตเดเตเดเตพ, เดเตปเดทเตเดฑเตปเดธเต เดเดฎเตเดชเดจเดฟเดเตพ. เด เดกเดพเดฑเตเดฑ เดเดชเดฏเตเดเดฟเดเตเดเต เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจ KDB+ เดจเตเดฑเต เดเดจเตเดคเดฐเดฟเด เดญเดพเดทเดฏเดพเดฃเต Q เดญเดพเดท. Q เดชเตเดฐเดคเตเดฏเดฏเดถเดพเดธเตเดคเตเดฐเด เดธเดเดเตเดทเดฟเดชเตเดคเดคเดฏเตเด เดเดพเดฐเตเดฏเดเตเดทเดฎเดคเดฏเตเด เดเดฃเต, เด เดคเตเดธเดฎเดฏเด เดตเตเดฏเดเตเดคเดค เดฌเดฒเดฟเดเดดเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต. เดเดคเต เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเดฒเตเด เดตเตเดเตเดฑเตเดฑเตผ เดญเดพเดท เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเดพเตป เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฃเต เดเดจเตเดจ เดตเดธเตเดคเตเดค เดเดคเต เดจเตเดฏเดพเดฏเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต เดฑเตเดเตเดเตเตผเดกเดฟเดเดเดฟเดจเตเดฑเต เดธเดเดเตเดทเดฟเดชเตเดคเดคเดฏเตเด เดธเดฎเตเดชเดจเตเดจเดคเดฏเตเด เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเตเดฑเต เดตเดฒเดฟเดฏเตเดฐเต เดญเดพเดเด เดเดฐเต เดธเตเดเตเดฐเตเดจเดฟเตฝ เดเดพเดฃเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดเดคเตเดฏเดจเตเดคเดฟเดเดฎเดพเดฏเดฟ เดฎเดจเดธเตเดธเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดเตเดเตเดจเตเดจเต.
เด เดฒเตเดเดจเดคเตเดคเดฟเตฝ เดเดเตเดเตพ Q-เตฝ เดเดฐเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดชเตเดฐเตเดเตเดฐเดพเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต, เดจเดฟเดเตเดเตพ เด
เดคเต เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดเตเดเดพเตป เดเดเตเดฐเดนเดฟเดเตเดเตเดเตเดเดพเด. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเดเตเดเตพเดเตเดเต เดฏเดฅเดพเตผเดคเตเดฅ Q เดเดตเดถเตเดฏเดฎเดพเดฃเต. kx เดเดฎเตเดชเดจเดฟ เดตเตเดฌเตเดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดธเตเดเดจเตเดฏ 32-เดฌเดฟเดฑเตเดฑเต เดชเดคเดฟเดชเตเดชเต เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเดพเด -
เดชเตเดฐเดถเตเดจ เดชเตเดฐเดธเตเดคเดพเดตเดจ
เดเดฐเต 25 เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเดฟเดฒเตเด เดกเดพเดฑเตเดฑเดฏเตเดณเตเดณ เดเดฐเต เดชเดเตเดเดฟเด เด เดฏเดฏเตเดเตเดเตเดจเตเดจ เดเดฐเต เดเดฑเดตเดฟเดเดฎเตเดฃเตเดเต. KDB+ เดชเตเดฐเดพเดฅเดฎเดฟเดเดฎเดพเดฏเดฟ เดงเดจเดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดคเต เดเดเดชเดพเดเตเดเดณเตเดเต (เดเตเดฐเตเดกเตเดเตพ) เดเดฐเต เดชเดเตเดเดฟเดเดฏเดพเดฃเตเดจเตเดจเต เดเดเตเดเตพ เด เดจเตเดฎเดพเดจเดฟเดเตเดเตเด, เด เดคเดฟเตฝ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดจเดฟเดฐเดเดณเดพเดฃเตเดณเตเดณเดคเต: เดธเดฎเดฏเด (เดธเดฎเดฏเด เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเดฟเตฝ), เดธเดฟเด (เดธเตเดฑเตเดฑเตเดเตเดเต เดเดเตเดธเตเดเตเดเตเดเดฟเดฒเต เดเดฎเตเดชเดจเดฟ เดชเดฆเดตเดฟ - เดเดฌเดฟเดเด, AAPL,...), เดตเดฟเดฒ (เดทเตเดฏเดฑเตเดเตพ เดตเดพเดเตเดเดฟเดฏ เดตเดฟเดฒ), เดตเดฒเดฟเดชเตเดชเด (เดเดเดชเดพเดเดฟเดจเตเดฑเต เดตเดฒเดฟเดชเตเดชเด). 25 เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเต เดเดเดตเตเดณ เดเดเดชเดเตเดทเตเดฏเดฎเดพเดฃเต, เดตเดณเดฐเต เดเตเดฑเตเดคเดฒเตเดฒ, เดฆเตเตผเดเตเดฏเดฎเตเดฑเดฟเดฏเดคเตเดฎเดฒเตเดฒ. เด เดคเดฟเดจเตเดฑเต เดธเดพเดจเตเดจเดฟเดงเตเดฏเด เด เตผเดคเตเดฅเดฎเดพเดเตเดเตเดจเตเดจเดคเต เดกเดพเดฑเตเดฑ เดเดคเดฟเดจเดเด เดฌเดซเตผ เดเตเดฏเตเดค เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เดตเดฐเตเดจเตเดจเต เดเดจเตเดจเดพเดฃเต. เดจเดฟเดฒเดตเดฟเดฒเต เดฒเตเดกเดฟเดจเต เดเดถเตเดฐเดฏเดฟเดเตเดเต เดกเตเดจเดพเดฎเดฟเดเต เดฌเดซเดฑเดฟเดเดเต เดเตพเดชเตเดชเตเดเต, เดธเตเดตเดจ เดญเดพเดเดคเตเดคเต เดฌเดซเดฑเดฟเดเดเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด, เดเดจเตเดจเดพเตฝ เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดเดเตเดเตพ เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดเดเดตเตเดณเดฏเดฟเตฝ เดถเตเดฐเดฆเตเดง เดเตเดจเตเดฆเตเดฐเตเดเดฐเดฟเดเตเดเตเด.
เดธเดฟเด เดเตเดณเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฐเต เดเตปเดเดฎเดฟเดเดเต เดเดฟเดนเตเดจเดคเตเดคเดฟเดจเตเด เดเดฐเต เดเตเดเตเดเด เดซเดเดเตโเดทเดจเตเดเตพ - เดชเดฐเดฎเดพเดตเดงเดฟ เดตเดฟเดฒ, เดถเดฐเดพเดถเดฐเดฟ เดตเดฟเดฒ, เดคเตเดเดฏเตเดเต เดตเดฒเตเดชเตเดชเด เดฎเตเดคเดฒเดพเดฏเดต เด เดธเตเดตเดจเด เดเดฐเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเตเด เดเดฃเดเตเดเดพเดเตเดเดฃเด. เดเดชเดเดพเดฐเดชเตเดฐเดฆเดฎเดพเดฏ เดตเดฟเดตเดฐเด. เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดเดฒเตเดฒเดพ เดซเดเดเตเดทเดจเตเดเดณเตเด เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเต เดเดฃเดเตเดเดพเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเตเดจเตเดจเต เดเดเตเดเตพ เด เดจเตเดฎเดพเดจเดฟเดเตเดเตเด, เด เดคเดพเดฏเดคเต. เดเดฐเต เดชเตเดคเดฟเดฏ เดฎเตเดฒเตเดฏเด เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดฐเดฃเตเดเต เดธเดเดเตเดฏเดเตพ เด เดฑเดฟเดเตเดเดพเตฝ เดฎเดคเดฟ - เดชเดดเดฏเดคเตเด เดเตปเดเดฎเดฟเดเดเต เดฎเตเดฒเตเดฏเดเตเดเดณเตเด. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดฐเดฎเดพเดตเดงเดฟ, เดถเดฐเดพเดถเดฐเดฟ, เดคเตเด เดเดจเตเดจเต เดซเดเดเตโเดทเดจเตเดเตพเดเตเดเต เด เดเตเดฃเดฎเตเดฃเตเดเต, เดเดจเตเดจเดพเตฝ เดฎเตเดกเดฟเดฏเตป เดซเดเดเตโเดทเดจเดฟเดฒเตเดฒ.
เดเตปเดเดฎเดฟเดเดเต เดกเดพเดฑเตเดฑ เดธเตเดเตเดฐเตเด เดธเดฎเดฏเด เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดคเดพเดฃเตเดจเตเดจเตเด เดเดเตเดเตพ เด เดจเตเดฎเดพเดจเดฟเดเตเดเตเด. เดเดคเต เด เดตเดธเดพเดจ เดจเดฟเดฎเดฟเดทเด เดเตเดฃเตเดเต เดฎเดพเดคเตเดฐเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดจเตเดณเตเดณ เด เดตเดธเดฐเด เดจเตฝเดเตเด. เดชเตเดฐเดพเดฏเตเดเดฟเดเดฎเดพเดฏเดฟ, เดเดฟเดฒ เด เดชเตโเดกเตเดฑเตเดฑเตเดเตพ เดตเตเดเดฟเดฏเดพเตฝ เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดคเตเด เดฎเตเดฎเตเดชเดคเตเดคเตเดคเตเดฎเดพเดฏ เดฎเดฟเดจเดฟเดฑเตเดฑเตเดเตพเดเตเดเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดเดดเดฟเดเตเดเดพเตฝ เดฎเดคเดฟ. เดฒเดพเดณเดฟเดคเตเดฏเดคเตเดคเดฟเดจเดพเดฏเดฟ, เดเดเตเดเตพ เด เดเตเดธเต เดชเดฐเดฟเดเดฃเดฟเดเตเดเดฟเดฒเตเดฒ.
เด เดเตเดฐเดเตเดทเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
เดเดตเดถเตเดฏเดฎเดพเดฏ เด เดเตเดฐเดเตเดทเตป เดซเดเดเตโเดทเดจเตเดเตพ เดเตเดตเดเต เดชเดเตเดเดฟเดเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดธเตเดตเดจเดคเตเดคเดฟเดฒเต เดฒเตเดกเต เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดพเตป เด เดตเดฏเดฟเตฝ เดชเดฐเดฎเดพเดตเดงเดฟ เดเดเตเดคเตเดคเต:
- เดเดฏเตผเดจเตเดจ - เดชเดฐเดฎเดพเดตเดงเดฟ เดตเดฟเดฒ - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเต เดชเดฐเดฎเดพเดตเดงเดฟ เดตเดฟเดฒ.
- เดเตเดฑเดเตเด - เดฎเดฟเดจเดฟเดฑเตเดฑเต เดตเดฟเดฒ - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเต เดเตเดฑเดเตเด เดตเดฟเดฒ.
- เดเดฆเตเดฏเดตเดฟเดฒ - เดเดฆเตเดฏ เดตเดฟเดฒ - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเต เดเดฆเตเดฏ เดตเดฟเดฒ.
- เด เดตเดธเดพเดจ เดตเดฟเดฒ - เด เดตเดธเดพเดจ เดตเดฟเดฒ - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเต เด เดตเดธเดพเดจ เดตเดฟเดฒ.
- เดเดฆเตเดฏ เดตเดฒเตเดชเตเดชเด - เดเดฆเตเดฏ เดตเดฒเตเดชเตเดชเด - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดเดฆเตเดฏ เดตเตเดฏเดพเดชเดพเดฐ เดตเดฒเตเดชเตเดชเด.
- lastSize - เด เดตเดธเดพเดจ เดตเดฒเตเดชเตเดชเด - เดเดฐเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเดณเตเดณเดฟเตฝ เด เดตเดธเดพเดจ เดตเตเดฏเดพเดชเดพเดฐ เดตเดฒเตเดชเตเดชเด.
- numTrades - เดเตเดฃเตเดเต i - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเต เดเตเดฐเตเดกเตเดเดณเตเดเต เดเดฃเตเดฃเด.
- เดตเตเดณเดฟเดฏเด - เดเดเต เดตเดฒเตเดชเตเดชเด - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเต เดตเตเดฏเดพเดชเดพเดฐ เดตเดฒเตเดชเตเดชเดเตเดเดณเตเดเต เดเดเตเดคเตเดคเตเด.
- pvolume - เดคเตเดเดฏเตเดเต เดตเดฟเดฒ - เดเดฐเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเต เดตเดฟเดฒเดเดณเตเดเต เดเดเตเดคเตเดคเตเด, เดถเดฐเดพเดถเดฐเดฟ เดตเดฟเดฒเดฏเตเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฃเต.
- - เดคเตเด เดตเดฟเดฑเตเดฑเตเดตเดฐเดตเต เดตเดฟเดฒ* เดตเดฒเตเดชเตเดชเด - เดเดฐเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเต เดเดเดชเดพเดเตเดเดณเตเดเต เดเดเต เด เดณเดตเต.
- เดถเดฐเดพเดถเดฐเดฟ เดตเดฟเดฒ - pvolume%numTrades - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเต เดถเดฐเดพเดถเดฐเดฟ เดตเดฟเดฒ.
- เดถเดฐเดพเดถเดฐเดฟ เดตเดฒเตเดชเตเดชเด - เดตเตเดณเดฟเดฏเด% numTrades - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดถเดฐเดพเดถเดฐเดฟ เดตเตเดฏเดพเดชเดพเดฐ เดตเดฒเตเดชเตเดชเด.
- vwap - เดตเดฟเดฑเตเดฑเตเดตเดฐเดตเต% เดตเตเดณเดฟเดฏเด - เดเดเดชเดพเดเดฟเดจเตเดฑเต เดตเดฒเตเดชเตเดชเด เด เดจเตเดธเดฐเดฟเดเตเดเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเต เดถเดฐเดพเดถเดฐเดฟ เดตเดฟเดฒ.
- cumVolume - เดธเด เดตเตเดณเดฟเดฏเด - เดฎเตเดดเตเดตเตป เดธเดฎเดฏเดตเตเด เดเดเดชเดพเดเตเดเดณเตเดเต เดธเดเตเดเดฟเดค เดตเดฒเตเดชเตเดชเด.
เดตเตเดฏเดเตเดคเดฎเดฒเตเดฒเดพเดคเตเดค เดเดฐเต เดชเตเดฏเดฟเดจเตเดฑเต เดจเดฎเตเดเตเดเต เดเดเตป เดเตผเดเตเด เดเตเดฏเตเดฏเดพเด - เด เดเตเดณเดเตเดเตพ เดเดฆเตเดฏเดฎเดพเดฏเดฟ เดเดเตเดเดจเต เดเดฐเดเดญเดฟเดเตเดเดพเด, เดคเตเดเตผเดจเตเดจเตเดณเตเดณ เดเดฐเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเตเด. เดเดฐเต เดคเดตเดฃเดฏเตเด เด เดธเดพเดงเตเดตเดพเดเตเดเดพเตป เดซเดธเตเดฑเตเดฑเต เดชเตเดฐเตเดธเต เดคเดฐเดคเตเดคเดฟเดจเตเดฑเต เดเดฟเดฒ เดเตเดณเดเตเดเตพ เดเดฐเดเดญเดฟเดเตเดเดฃเด; เด เดตเดฏเตเดเต เดฎเตเดฒเตเดฏเด เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒ. เดฎเดฑเตเดฑเต เดตเตเดณเดฟเดฏเด เดคเดฐเดเตเดเตพ เดเดฒเตเดฒเดพเดฏเตโเดชเตเดชเตเดดเตเด 0 เดเดฏเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฃเด. เดเดฐเต เดธเดเดฏเตเดเดฟเดค เดธเดฎเตเดชเดจเด เดเดตเดถเตเดฏเดฎเดพเดฏ เดเตเดณเดเตเดเดณเตเด เดเดฃเตเดเต - เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, cumVolume เดฎเตเดฎเตเดชเดคเตเดคเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดเตผเดคเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเดฃเด, เดเดฆเตเดฏเดคเตเดคเตเดคเดฟเดจเต 0 เดเดฏเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฃเด. เดจเดฎเตเดเตเดเต เดจเดฟเดเดฃเตเดเต เดกเดพเดฑเตเดฑ เดเดชเดฏเตเดเดฟเดเตเดเต เด เดเดฒเตเดฒเดพ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเดณเตเด เดธเดเตเดเดฎเดพเดเตเดเดพเด เดคเดฐเด (เดเดฐเต เดฑเตเดเตเดเตเตผเดกเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏเดคเต):
// list ! list โ ัะพะทะดะฐัั ัะปะพะฒะฐัั, 0n โ float null, 0N โ long null, `sym โ ัะธะฟ ัะธะผะฒะพะป, `sym1`sym2 โ ัะฟะธัะพะบ ัะธะผะฒะพะปะพะฒ
initWith:`sym`time`high`low`firstPrice`lastPrice`firstSize`lastSize`numTrades`volume`pvolume`turnover`avgPrice`avgSize`vwap`cumVolume!(`;00:00;0n;0n;0n;0n;0N;0N;0;0;0.0;0.0;0n;0n;0n;0);
aggCols:reverse key[initWith] except `sym`time; // ัะฟะธัะพะบ ะฒัะตั
ะฒััะธัะปัะตะผัั
ะบะพะปะพะฝะพะบ, reverse ะพะฑัััะฝะตะฝ ะฝะธะถะต
เดธเตเดเดฐเตเดฏเดพเตผเดคเตเดฅเด เดเดพเตป เดจเดฟเดเดฃเตเดเตเดตเดฟเดฒเตเดเตเดเต เดธเดฟเดฎเตเดฎเตเด เดธเดฎเดฏเดตเตเด เดเตเตผเดคเตเดคเต, เดเดชเตเดชเตเตพ initWith เด เดจเตเดคเดฟเดฎ เดธเดฎเดพเดนเดฐเดฟเดเตเด เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฐเต เดฑเตเดกเดฟเดฎเตเดฏเตเดกเต เดฒเตเดจเดพเดฃเต, เด เดตเดฟเดเต เดถเดฐเดฟเดฏเดพเดฏ เดธเดฟเดฎเตเดฎเตเด เดธเดฎเดฏเดตเตเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเดพเตป เด เดตเดถเตเดทเดฟเดเตเดเตเดจเตเดจเต. เดเดฐเต เดชเดเตเดเดฟเดเดฏเดฟเดฒเตเดเตเดเต เดชเตเดคเดฟเดฏ เดตเดฐเดฟเดเตพ เดเตเตผเดเตเดเดพเตป เดจเดฟเดเตเดเตพเดเตเดเต เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเด.
เดเดฐเต เด เดเตเดฐเดเตเดทเตป เดซเดเดเตโเดทเตป เดธเตเดทเตโเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดเตเดเตพเดเตเดเต aggCols เดเดตเดถเตเดฏเดฎเดพเดฃเต. Q เดฒเต เดเดเตเดธเตเดชเตเดฐเดทเดจเตเดเตพ เดฎเตเดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเตเดฐเดฎเด เดเดพเดฐเดฃเด เดฒเดฟเดธเตเดฑเตเดฑเต เดตเดฟเดชเดฐเตเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด (เดตเดฒเดคเตเดคเตเดจเดฟเดจเตเดจเต เดเดเดคเตเดคเตเดเตเดเต). เดเดฟเดฒ เดจเดฟเดฐเดเตพ เดฎเตเดฎเตเดชเดคเตเดคเตเดคเดฟเดจเต เดเดถเตเดฐเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดฃเดเตเดเตเดเตเดเตเดเตฝ เดเดฏเตผเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเด เดตเตเดณเดฟเดฏเดคเตเดคเดฟเดฒเตเดเตเดเต เดชเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเตเดเดฏเดพเดฃเต เดฒเดเตเดทเตเดฏเด.
เดฎเตเดฎเตเดชเดคเตเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดชเตเดคเดฟเดฏ เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดชเดเตผเดคเตเดคเตเดฃเตเด เดเตเดณเดเตเดเตพ, เดธเตเดเดฐเตเดฏเดพเตผเดคเตเดฅเด เดธเดฟเด เดเตเดณเด เดเตเตผเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
rollColumns:`sym`cumVolume;
เดเดจเดฟ เดจเดฎเตเดเตเดเต เดเตเดณเดเตเดเตพ เดเดเตเดเดจเต เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเดฃเด เดเดจเตเดจเดคเดจเตเดธเดฐเดฟเดเตเดเต เดเตเดฐเตเดชเตเดชเตเดเดณเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเดพเด. เดฎเตเดจเตเดจเต เดคเดฐเดเตเดเตพ เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเดพเตป เดเดดเดฟเดฏเตเด:
- เด เดเตเดฏเตเดฎเตเดฒเตเดฑเตเดฑเดฑเตเดเตพ (เดตเตเดณเดฟเดฏเด, เดตเดฟเดฑเตเดฑเตเดตเดฐเดตเต, ..) - เดเดเตเดเตพ เดเตปเดเดฎเดฟเดเดเต เดฎเตเดฒเตเดฏเด เดฎเตเดฎเตเดชเดคเตเดคเตเดคเดฟเดฒเตเดเตเดเต เดเตเตผเดเตเดเดฃเด.
- เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดชเตเดฏเดฟเดจเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต (เดเดฏเตผเดจเตเดจ, เดคเดพเดดเตเดจเตเดจ, ..) - เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดฒเต เดเดฆเตเดฏ เดฎเตเดฒเตเดฏเด เดเตปเดเดฎเดฟเดเดเต เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดเตเดเตเดเตเดจเตเดจเต, เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณเดต เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฃเดเตเดเดพเดเตเดเตเดจเตเดจเต.
- เดตเดฟเดถเตเดฐเดฎเดฟเดเตเดเตเด. เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดเดฐเต เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฃเดเตเดเดพเดเตเดเตเดจเตเดจเต.
เด เดเตเดฒเดพเดธเตเดเตพเดเตเดเตเดณเตเดณ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดจเดฟเตผเดตเดเดฟเดเตเดเดพเด:
accumulatorCols:`numTrades`volume`pvolume`turnover;
specialCols:`high`low`firstPrice`firstSize;
เดเดฃเดเตเดเตเดเตเดเตเดเตฝ เดเตเดฐเดฎเด
เดธเดฎเดพเดนเดฐเดฟเดเตเด เดชเดเตเดเดฟเด เดเดเตเดเตพ เดฐเดฃเตเดเต เดเดเตเดเดเตเดเดณเดฟเดฒเดพเดฏเดฟ เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด. เดเดพเดฐเตเดฏเดเตเดทเดฎเดคเดฏเตเดเตเดเดพเดฏเดฟ, เดเดเตเดเตพ เดเดฆเตเดฏเด เดเตปเดเดฎเดฟเดเดเต เดเตเดฌเดฟเตพ เดเตเดฐเตเดเตเดเตเดจเตเดจเต, เด เดเตเดเดจเต เดเดฐเต เดชเตเดฐเดคเตเดเดคเตเดคเดฟเดจเตเด เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเตเด เดเดฐเต เดตเดฐเดฟ เดฎเดพเดคเตเดฐเดฎเตเดฏเตเดณเตเดณเต. เดเดเตเดเดณเตเดเต เดเดฒเตเดฒเดพ เดซเดเดเตโเดทเดจเตเดเดณเตเด เดเตปเดเตเดฐเดฟเดฎเตเดจเตเดฑเดฒเตเด เด เดจเตเดฌเดจเตเดงเดตเตเดฎเดพเดฃเต เดเดจเตเดจเดคเต เด เด เดงเดฟเด เดเดเตเดเดคเตเดคเดฟเดจเตเดฑเต เดซเดฒเด เดฎเดพเดฑเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดฑเดชเตเดชเต เดจเตฝเดเตเดจเตเดจเต. เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดคเดต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดชเดเตเดเดฟเด เดเตเดฐเตเดเตเดเดพเด:
select high:max price, low:min price โฆ by sym,time.minute from table
เด เดฐเตเดคเดฟเดเตเดเต เดเดฐเต เดชเตเดฐเดพเดฏเตเดฎเดฏเตเดฃเตเดเต - เดเดฃเดเตเดเดพเดเตเดเดฟเดฏ เดจเดฟเดฐเดเดณเตเดเต เดเตเดเตเดเด เดฎเตเตปเดเตเดเตเดเดฟ เดจเดฟเดถเตเดเดฏเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดญเดพเดเตเดฏเดตเดถเดพเตฝ, Q-เตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดฒเดจเดพเดคเตเดฎเดเดฎเดพเดฏเดฟ เดธเตเดทเตโเดเดฟเดเตเด เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเดฐเต เดซเดเดเตโเดทเดจเดพเดฏเดฟ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเดฒเตเด เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต:
?[table;whereClause;byClause;selectClause]
เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเดณเตเดเต เดซเตเตผเดฎเดพเดฑเตเดฑเต เดเดพเตป เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ; เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดค เดชเดฆเดชเตเดฐเดฏเตเดเดเตเดเตพ เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดจเดฟเดธเตเดธเดพเดฐเดฎเดฒเตเดฒเดพเดคเตเดคเดคเตเด เด เดต เดซเตเด เดเตเดณเดเตเดเดณเตเดเต เดจเดฟเดเดฃเตเดเตเดเตเดเดณเดพเดฏเดฟเดฐเดฟเดเตเดเดฃเด! เด เดคเดฟเดจเดพเตฝ, เดเตเดฐเตเดเตเดเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเตเดคเดฟเดฏเดฟเตฝ เดจเดฟเตผเดตเดเดฟเดเตเดเดพเด:
selExpression:`high`low`firstPrice`lastPrice`firstSize`lastSize`numTrades`volume`pvolume`turnover!parse each ("max price";"min price";"first price";"last price";"first size";"last size";"count i";"sum size";"sum price";"sum price*size"); // each ััะพ ััะฝะบัะธั map ะฒ Q ะดะปั ะพะดะฝะพะณะพ ัะฟะธัะบะฐ
preprocess:?[;();`sym`time!`sym`time.minute;selExpression];
เดตเตเดฏเดเตเดคเดคเดฏเตเดเตเดเดพเดฏเดฟ, เดเดพเตป เดชเดพเดดเตโเดธเต เดซเดเดเตโเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดคเต เดเดฐเต Q เดเดเตโเดธเตโเดชเตเดฐเดทเดจเตเดณเตเดณ เดเดฐเต เดธเตโเดเตเดฐเดฟเดเดเดฟเดจเต eval เดซเดเดเตโเดทเดจเดฟเดฒเตเดเตเดเต เดเตเดฎเดพเดฑเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเดฐเต เดฎเตเดฒเตเดฏเดฎเดพเดเตเดเดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต, เด เดคเต เดซเดเดเตโเดทเตป เดธเตเดฒเดเตโเดฑเตเดฑเดฟเตฝ เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดค เดซเดเดเตโเดทเดจเตเดฑเต เดเดฐเต เดชเตเดฐเตเดเดเตเดทเตป (เด เดคเดพเดฏเดคเต, เดญเดพเดเดฟเดเดฎเดพเดฏเดฟ เดจเดฟเตผเดตเดเดฟเดเตเดเดชเตเดชเตเดเตเด เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเดณเตเดณเตเดณ เดเดฐเต เดซเดเดเตโเดทเตป) เดเดฏเดฟ เดชเตเดฐเตเดชเตเดฐเตเดธเดธเต เดจเดฟเตผเดตเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด, เดเดฐเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเต (เดชเดเตเดเดฟเด) เดเดพเดฃเตเดจเตเดจเดฟเดฒเตเดฒ. เดเดฐเต เดเตเดฌเดฟเดณเดฟเตฝ เดชเตเดฐเตเดชเตเดฐเตเดธเดธเต เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเตฝ, เดจเดฎเตเดเตเดเต เดเดฐเต เดเดเดชเตเดฐเดธเต เดเตเดฏเตเดค เดชเดเตเดเดฟเด เดฒเดญเดฟเดเตเดเตเด.
เดธเดฎเดพเดนเดฐเดฟเดเตเด เดชเดเตเดเดฟเด เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเดพเดฃเต เดฐเดฃเตเดเดพเด เดเดเตเดเด. เดจเดฎเตเดเตเดเต เดเดฆเตเดฏเด เดธเตเดฏเตเดกเตเดเตเดกเดฟเตฝ เด เตฝเดเตเดฐเดฟเดคเด เดเดดเตเดคเดพเด:
for each sym in inputTable
idx: row index in agg table for sym+currentTime;
aggTable[idx;`high]: aggTable[idx;`high] | inputTable[sym;`high];
aggTable[idx;`volume]: aggTable[idx;`volume] + inputTable[sym;`volume];
โฆ
เดเตเดฏเตเดตเดฟเตฝ, เดฒเตเดชเตเดชเตเดเตพเดเตเดเต เดชเดเดฐเด เดฎเดพเดชเตเดชเต/เดเตเดฑเดฏเตเดเตเดเตฝ เดซเดเดเตโเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฃเต. เดเดจเตเดจเดพเตฝ Q เดเดฐเต เดตเตเดเตเดฑเตเดฑเตผ เดญเดพเดทเดฏเดพเดฏเดคเดฟเดจเดพเตฝ, เดเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเด เดเดฑเตเดฑเดฏเดเดฟเดเตเดเต เดจเดฎเตเดเตเดเต เดเดฒเตเดฒเดพ เดเดฟเดนเตเดจเดเตเดเดณเดฟเดฒเตเดเตเดเตเด เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเตเดฐเดฏเตเดเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด, เดคเตเดเตผเดจเตเดจเต เดจเดฎเตเดเตเดเต เดเดฐเต เดฒเตเดชเตเดชเต เดเดฒเตเดฒเดพเดคเต เดคเดจเตเดจเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด, เดเดฒเตเดฒเดพ เดเดฟเดนเตเดจเดเตเดเดณเดฟเดฒเตเด เดเดฐเตเดธเดฎเดฏเด เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดจเดเดคเตเดคเดพเด:
idx:calcIdx inputTable;
row:aggTable idx;
aggTable[idx;`high]: row[`high] | inputTable`high;
aggTable[idx;`volume]: row[`volume] + inputTable`volume;
โฆ
เดเดจเตเดจเดพเตฝ เดจเดฎเตเดเตเดเต เดเตเดเตเดคเตฝ เดฎเตเดจเตเดจเตเดเตเดเต เดชเตเดเดพเด, เดเตเดฏเตเดตเดฟเดจเต เด เดฆเตเดตเดฟเดคเตเดฏเดตเตเด เด เดคเดฟเดถเดเตเดคเดตเตเดฎเดพเดฏ เดเดฐเต เดเดชเตเดชเดฑเตเดฑเตเดฑเตผ เดเดฃเตเดเต - เดธเดพเดฎเดพเดจเตเดฏเดตเตฝเดเตเดเดฐเดฟเดเตเด เด เดธเตเตปเดฎเตเดจเตเดฑเต เดเดชเตเดชเดฑเตเดฑเตเดฑเตผ. เดธเตเดเดฟเดเดเตพ, เดซเดเดเตโเดทเดจเตเดเตพ, เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดพ เดเดเดจเดฏเดฟเตฝ เดเดฐเต เดเตเดเตเดเด เดฎเตเดฒเตเดฏเดเตเดเตพ เดฎเดพเดฑเตเดฑเดพเตป เดเดคเต เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเดเตเดเดณเตเดเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดคเต เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต:
idx:calcIdx inputTable;
rows:aggTable idx;
// .[target;(idx0;idx1;..);function;argument] ~ target[idx 0;idx 1;โฆ]: function[target[idx 0;idx 1;โฆ];argument], ะฒ ะฝะฐัะตะผ ัะปััะฐะต ััะฝะบัะธั โ ััะพ ะฟัะธัะฒะฐะธะฒะฐะฝะธะต
.[aggTable;(idx;aggCols);:;flip (row[`high] | inputTable`high;row[`volume] + inputTable`volume;โฆ)];
เดจเดฟเตผเดญเดพเดเตเดฏเดตเดถเดพเตฝ, เดเดฐเต เดเตเดฌเดฟเดณเดฟเดฒเตเดเตเดเต เด เดธเตเตป เดเตเดฏเตเดฏเดพเตป เดจเดฟเดเตเดเตพเดเตเดเต เดจเดฟเดฐเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดเดตเดถเตเดฏเดฎเดพเดฃเต, เดจเดฟเดฐเดเดณเดฒเตเดฒ, เดซเตเดฒเดฟเดชเตเดชเต เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดเตเดเตพ เดฎเดพเดเตเดฐเดฟเดเตเดธเต (เดตเดฐเดฟเดเดณเตเดเต เดชเดเตเดเดฟเดเดฏเดฟเดฒเตเดเตเดเตเดณเตเดณ เดจเดฟเดฐเดเดณเตเดเต เดฒเดฟเดธเตเดฑเตเดฑเต) เดเตเดฐเดพเตปเดธเตเดชเตเดธเต เดเตเดฏเตเดฏเดฃเด. เดเดฐเต เดตเดฒเดฟเดฏ เดเตเดฌเดฟเดณเดฟเดจเต เดเดคเต เดเตเดฒเดตเตเดฑเดฟเดฏเดคเดพเดฃเต, เด เดคเดฟเดจเดพเตฝ เดฎเดพเดชเตเดชเต เดซเดเดเตโเดทเตป (เด เดคเต เด เดชเตเดชเตเดธเตโเดเตเดฐเตเดซเดฟ เดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต):
.[aggTable;;:;]'[(idx;)each aggCols; (row[`high] | inputTable`high;row[`volume] + inputTable`volume;โฆ)];
เดเดเตเดเตพ เดตเตเดฃเตเดเตเด เดซเดเดเตเดทเตป เดชเตเดฐเตเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. Q-เตฝ, เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดฐเต เดซเดเดเตโเดทเดจเดพเดฃเตเดจเตเดจเตเด เดฒเดฟเดธเตเดฑเตเดฑเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต(เดฎเดพเดชเตเดชเต) เดซเดเดเตโเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฎเตเดเตเดเต เด เดคเดฟเดจเต เดตเดฟเดณเดฟเดเตเดเดพเดฎเตเดจเตเดจเตเด เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด.
เดเดฃเดเตเดเดพเดเตเดเดฟเดฏ เดจเดฟเดฐเดเดณเตเดเต เดธเตเดฑเตเดฑเต เดเดฑเดชเตเดชเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป, เดฎเตเดเดณเดฟเตฝ เดชเดฑเดเตเด เดชเดฆเดชเตเดฐเดฏเตเดเด เดเดเตเดเตพ เดเดฒเดจเดพเดคเตเดฎเดเดฎเดพเดฏเดฟ เดธเตเดทเตเดเดฟเดเตเดเตเด. เดธเดฎเดพเดนเดฐเดฟเดเตเดเดคเตเด เดเตปเดชเตเดเตเดเต เดกเดพเดฑเตเดฑเดฏเตเด เดฑเดซเตผ เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดตเดฐเดฟเดฏเตเด เดเตปเดชเต เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเดณเตเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดจเดฟเดฐเดฏเตเด เดเดฃเดเตเดเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดซเดเดเตเดทเดจเตเดเตพ เดจเดฎเตเดเตเดเต เดเดฆเตเดฏเด เดจเดฟเตผเดตเดเดฟเดเตเดเดพเด:
aggExpression:`high`low`firstPrice`lastPrice`firstSize`lastSize`avgPrice`avgSize`vwap`cumVolume!
("row[`high]|inp`high";"row[`low]&inp`low";"row`firstPrice";"inp`lastPrice";"row`firstSize";"inp`lastSize";"pvolume%numTrades";"volume%numTrades";"turnover%volume";"row[`cumVolume]+inp`volume");
เดเดฟเดฒ เดจเดฟเดฐเดเตพ เดธเดตเดฟเดถเตเดทเดฎเดพเดฃเต; เด เดตเดฏเตเดเต เดเดฆเตเดฏ เดฎเตเดฒเตเดฏเด เดซเดเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฃเดเตเดเดพเดเตเดเดฐเตเดคเต. เดตเดฐเดฟ[`numTrades] เดเตเดณเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดคเต เดเดฆเตเดฏเดคเตเดคเตเดคเดพเดฃเตเดจเตเดจเต เดจเดฎเตเดเตเดเต เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเดพเดจเดพเดเตเด - เด เดคเดฟเตฝ 0 เด เดเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดฎเตเดฒเตเดฏเด เดเดฆเตเดฏเดฎเดพเดฃเต. Q เดจเต เดเดฐเต เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดค เดซเดเดเตโเดทเตป เดเดฃเตเดเต - ?[เดฌเตเดณเดฟเดฏเตป เดฒเดฟเดธเตเดฑเตเดฑเต;list1;list2] - เดเดคเต เดเดฆเตเดฏ เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเดฟเดฒเต เดตเตเดฏเดตเดธเตเดฅเดฏเต เดเดถเตเดฐเดฏเดฟเดเตเดเต เดชเดเตเดเดฟเด 1 เด เดฒเตเดฒเตเดเตเดเดฟเตฝ 2 เตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดฎเตเดฒเตเดฏเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดจเตเดจเต:
// high -> ?[isFirst;inp`high;row[`high]|inp`high]
// @ - ัะพะถะต ะพะฑะพะฑัะตะฝะฝะพะต ะฟัะธัะฒะฐะธะฒะฐะฝะธะต ะดะปั ัะปััะฐั ะบะพะณะดะฐ ะธะฝะดะตะบั ะฝะตะณะปัะฑะพะบะธะน
@[`aggExpression;specialCols;{[x;y]"?[isFirst;inp`",y,";",x,"]"};string specialCols];
เดเดตเดฟเดเต เดเดพเตป เดเดจเตเดฑเต เดซเดเดเตโเดทเดจเตเดณเตเดณ เดเดฐเต เดธเดพเดฎเดพเดจเตเดฏเดตเตฝเดเตเดเดฐเดฟเดเตเด เด เดธเตเตปเดฎเตเดจเตเดฑเดฟเดจเต เดตเดฟเดณเดฟเดเตเดเต (เดเตเดฐเตเดฃเตเด เดฌเตเดฐเตเดธเตเดเดณเดฟเดฒเต เดเดฐเต เดชเดฆเดชเตเดฐเดฏเตเดเด). เดเดคเดฟเดจเต เดจเดฟเดฒเดตเดฟเดฒเต เดฎเตเดฒเตเดฏเดตเตเด (เดเดฆเตเดฏเดคเตเดคเต เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเต) เดเดฐเต เด เดงเดฟเด เดเตผเดเตเดฏเตเดฎเตเดจเตเดฑเตเด เดฒเดญเดฟเดเตเดเตเดจเตเดจเต, เด เดคเต เดเดพเตป เดจเดพเดฒเดพเดฎเดคเตเดคเต เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเดฟเตฝ เดชเดพเดธเตเดธเดพเดเตเดเตเดจเตเดจเต.
เดฌเดพเดฑเตเดฑเดฑเดฟ เดธเตเดชเตเดเตเดเดฑเตเดเตพ เดตเตเดตเตเดตเตเดฑเต เดเตเตผเดเตเดเดพเด, เดเดพเดฐเดฃเด เด เดตเดฏเตโเดเตเดเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดธเดฎเดพเดจเดฎเดพเดฃเต:
// volume -> row[`volume]+inp`volume
aggExpression[accumulatorCols]:{"row[`",x,"]+inp`",x } each string accumulatorCols;
เดเดคเต เดเตเดฏเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เด เดจเตเดธเดฐเดฟเดเตเดเต เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เด เดธเตเตปเดฎเตเดจเตเดฑเต เดเดฃเต, เดเดจเตเดจเดพเตฝ เดเดพเตป เดเดฐเตเดธเดฎเดฏเด เดฎเตเดฒเตเดฏเดเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เด เดธเตเตป เดเตเดฏเตเดฏเตเดจเตเดจเต. เด เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดจเดฎเตเดเตเดเต เดชเตเดฐเดงเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดธเตเดทเตเดเดฟเดเตเดเดพเด:
// ":",/:aggExprs ~ map[{":",x};aggExpr] => ":row[`high]|inp`high" ะฟัะธัะฒะพะธะผ ะฒััะธัะปะตะฝะฝะพะต ะทะฝะฐัะตะฝะธะต ะฟะตัะตะผะตะฝะฝะพะน, ะฟะพัะพะผั ััะพ ะฝะตะบะพัะพััะต ะบะพะปะพะฝะบะธ ะทะฐะฒะธััั ะพั ัะถะต ะฒััะธัะปะตะฝะฝัั
ะทะฝะฐัะตะฝะธะน
// string[cols],'exprs ~ map[,;string[cols];exprs] => "high:row[`high]|inp`high" ะทะฐะฒะตััะธะผ ัะพะทะดะฐะฝะธะต ะฟัะธัะฒะฐะธะฒะฐะฝะธั. ,โ ัะฐััะธััะพะฒัะฒะฐะตััั ะบะฐะบ map[concat]
// ";" sv exprs โ String from Vector (sv), ัะพะตะดะธะฝัะตั ัะฟะธัะพะบ ัััะพะบ ะฒััะฐะฒะปัั โ;โ ะฟะพััะตะดะธะฝะต
updateAgg:value "{[aggTable;idx;inp] row:aggTable idx; isFirst_0=row`numTrades; .[aggTable;;:;]'[(idx;)each aggCols;(",(";"sv string[aggCols],'":",/:aggExpression aggCols),")]}";
เด เดเดเตโเดธเตโเดชเตเดฐเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต, เดเดพเตป เดฎเตเดเดณเดฟเตฝ เดจเตฝเดเดฟเดฏ เดเดเตโเดธเตโเดชเตเดฐเดทเตป เด เดเดเตเดเตเดจเตเดจ เดเดฐเต เดธเตโเดเตเดฐเดฟเดเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฒเดจเดพเดคเตเดฎเดเดฎเดพเดฏเดฟ เดเดฐเต เดซเดเดเตโเดทเตป เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเต. เดซเดฒเด เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเด:
{[aggTable;idx;inp] rows:aggTable idx; isFirst_0=row`numTrades; .[aggTable;;:;]'[(idx;)each aggCols ;(cumVolume:row[`cumVolume]+inp`cumVolume;โฆ ; high:?[isFirst;inp`high;row[`high]|inp`high])]}
Q-เตฝ เดฎเตเดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏ เดเตเดฐเดฎเด เดตเดฒเดคเตเดคเตเดจเดฟเดจเตเดจเต เดเดเดคเตเดคเตเดเตเดเต เดเดฏเดคเดฟเดจเดพเตฝ เดจเดฟเดฐเดฏเตเดเต เดฎเตเดฒเตเดฏเดจเดฟเตผเดฃเตเดฃเดฏ เดเตเดฐเดฎเด เดตเดฟเดชเดฐเตเดคเดฎเดพเดฃเต.
เดเดชเตเดชเตเตพ เดจเดฎเตเดเตเดเต เดเดฃเดเตเดเตเดเตเดเตเดเดฒเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดฐเดฃเตเดเต เดชเตเดฐเดงเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเดฃเตเดเต, เดเดเตเดเตพ เดเตเดฑเดเตเดเต เดเตปเดซเตเดฐเดพเดธเตเดเตเดฐเดเตเดเตผ เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต, เดธเตเดตเดจเด เดคเดฏเตเดฏเดพเดฑเดพเดฃเต.
เด เดตเดธเดพเดจ เดเดเตเดเดเตเดเตพ
เดเดฒเตเดฒเดพ เดเตเดฒเดฟเดเดณเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดชเตเดฐเตเดชเตเดฐเตเดธเดธเต, เด เดชเตเดกเตเดฑเตเดฑเต เดเดเต เดซเดเดเตเดทเดจเตเดเตพ เดเดเตเดเดณเตเดเต เดชเดเตเดเดฒเตเดฃเตเดเต. เดเดจเตเดจเดพเตฝ เดฎเดฟเดจเดฟเดฑเตเดฑเตเดเดณเดฟเดฒเตเดเต เดถเดฐเดฟเดฏเดพเดฏ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเดฑเดชเตเดชเดพเดเตเดเตเดเดฏเตเด เด เดเตเดฐเดเตเดทเดจเดพเดฏเดฟ เดธเตเดเดฟเดเดเตพ เดเดฃเดเตเดเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดฃเตเดเดคเต เดเดชเตเดชเตเดดเตเด เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดเดฆเตเดฏเด, เดจเดฎเตเดเตเดเต init เดซเดเดเตเดทเตป เดจเดฟเตผเดตเดเดฟเดเตเดเดพเด:
init:{
tradeAgg:: 0#enlist[initWith]; // ัะพะทะดะฐะตะผ ะฟััััั ัะธะฟะธะทะธัะพะฒะฐะฝะฝัั ัะฐะฑะปะธัั, enlist ะฟัะตะฒัะฐัะฐะตั ัะปะพะฒะฐัั ะฒ ัะฐะฑะปะธัั, ะฐ 0# ะพะทะฝะฐัะฐะตั ะฒะทััั 0 ัะปะตะผะตะฝัะพะฒ ะธะท ะฝะตะต
currTime::00:00; // ะฝะฐัะฝะตะผ ั 0, :: ะพะทะฝะฐัะฐะตั, ััะพ ะฟัะธัะฒะฐะธะฒะฐะฝะธะต ะฒ ะณะปะพะฑะฐะปัะฝัั ะฟะตัะตะผะตะฝะฝัั
currSyms::`u#`symbol$(); // `u# - ะฟัะตะฒัะฐัะฐะตั ัะฟะธัะพะบ ะฒ ะดะตัะตะฒะพ, ะดะปั ััะบะพัะตะฝะธั ะฟะพะธัะบะฐ ัะปะตะผะตะฝัะพะฒ
offset::0; // ะธะฝะดะตะบั ะฒ tradeAgg, ะณะดะต ะฝะฐัะธะฝะฐะตััั ัะตะบััะฐั ะผะธะฝััะฐ
rollCache:: `sym xkey update `u#sym from rollColumns#tradeAgg; // ะบัั ะดะปั ะฟะพัะปะตะดะฝะธั
ะทะฝะฐัะตะฝะธะน roll ะบะพะปะพะฝะพะบ, ัะฐะฑะปะธัะฐ ั ะบะปััะพะผ sym
}
เดจเดฟเดฒเดตเดฟเดฒเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเดจเต เดฎเดพเดฑเตเดฑเตเดจเตเดจ เดฑเตเตพ เดซเดเดเตโเดทเดจเตเด เดเดเตเดเตพ เดจเดฟเตผเดตเตเดตเดเดฟเดเตเดเตเด:
roll:{[tm]
if[currTime>tm; :init[]]; // ะตัะปะธ ะฟะตัะตะฒะฐะปะธะปะธ ะทะฐ ะฟะพะปะฝะพัั, ัะพ ะฟัะพััะพ ะฒัะทะพะฒะตะผ init
rollCache,::offset _ rollColumns#tradeAgg; // ะพะฑะฝะพะฒะธะผ ะบัั โ ะฒะทััั roll ะบะพะปะพะฝะบะธ ะธะท aggTable, ะพะฑัะตะทะฐัั, ะฒััะฐะฒะธัั ะฒ rollCache
offset::count tradeAgg;
currSyms::`u#`$();
}
เดชเตเดคเดฟเดฏ เดชเตเดฐเดคเตเดเดเตเดเตพ เดเตเตผเดเตเดเดพเตป เดเดเตเดเตพเดเตเดเต เดเดฐเต เดซเดเดเตเดทเตป เดเดตเดถเตเดฏเดฎเดพเดฃเต:
addSyms:{[syms]
currSyms,::syms; // ะดะพะฑะฐะฒะธะผ ะฒ ัะฟะธัะพะบ ะธะทะฒะตััะฝัั
// ะดะพะฑะฐะฒะธะผ ะฒ ัะฐะฑะปะธัั sym, time ะธ rollColumns ะฒะพัะฟะพะปัะทะพะฒะฐะฒัะธัั ะพะฑะพะฑัะตะฝะฝัะผ ะฟัะธัะฒะฐะธะฒะฐะฝะธะตะผ.
// ะคัะฝะบัะธั ^ ะฟะพะดััะฐะฒะปัะตั ะทะฝะฐัะตะฝะธั ะฟะพ ัะผะพะปัะฐะฝะธั ะดะปั roll ะบะพะปะพะฝะพะบ, ะตัะปะธ ัะธะผะฒะพะปะฐ ะฝะตั ะฒ ะบััะต. value flip table ะฒะพะทะฒัะฐัะฐะตั ัะฟะธัะพะบ ะบะพะปะพะฝะพะบ ะฒ ัะฐะฑะปะธัะต.
`tradeAgg upsert @[count[syms]#enlist initWith;`sym`time,cols rc;:;(syms;currTime), (initWith cols rc)^value flip rc:rollCache ([] sym: syms)];
}
เดเดเตเดตเดฟเตฝ, เด เดชเตโเดกเต เดซเดเดเตโเดทเตป (เดเตเดฏเต เดธเตเดตเดจเดเตเดเตพเดเตเดเดพเดฏเตเดณเตเดณ เด เดซเดเดเตโเดทเดจเตเดฑเต เดชเดฐเดฎเตเดชเดฐเดพเดเดค เดจเดพเดฎเด), เดกเดพเดฑเตเดฑ เดเตเตผเดเตเดเดพเตป เดเตเดฒเดฏเดจเตเดฑเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต:
upd:{[tblName;data] // tblName ะฝะฐะผ ะฝะต ะฝัะถะฝะพ, ะฝะพ ะพะฑััะฝะพ ัะตัะฒะธั ะพะฑัะฐะฑะฐััะฒะฐะตั ะฝะตัะบะพะปัะบะพ ัะฐะฑะปะธั
tm:exec distinct time from data:() xkey preprocess data; // preprocess & calc time
updMinute[data] each tm; // ะดะพะฑะฐะฒะธะผ ะดะฐะฝะฝัะต ะดะปั ะบะฐะถะดะพะน ะผะธะฝััั
};
updMinute:{[data;tm]
if[tm<>currTime; roll tm; currTime::tm]; // ะฟะพะผะตะฝัะตะผ ะผะธะฝััั, ะตัะปะธ ะฝะตะพะฑั
ะพะดะธะผะพ
data:select from data where time=tm; // ัะธะปัััะฐัะธั
if[count msyms:syms where not (syms:data`sym)in currSyms; addSyms msyms]; // ะฝะพะฒัะต ัะธะผะฒะพะปั
updateAgg[`tradeAgg;offset+currSyms?syms;data]; // ะพะฑะฝะพะฒะธะผ ะฐะณัะตะณะธัะพะฒะฐะฝะฝัั ัะฐะฑะปะธัั. ะคัะฝะบัะธั ? ะธัะตั ะธะฝะดะตะบั ัะปะตะผะตะฝัะพะฒ ัะฟะธัะบะฐ ัะฟัะฐะฒะฐ ะฒ ัะฟะธัะบะต ัะปะตะฒะฐ.
};
เด เดคเตเดฐเดฏเตเดฏเตเดณเตเดณเต. เดเดเตเดเดณเตเดเต เดธเตเดตเดจเดคเตเดคเดฟเดจเตเดฑเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเตเดกเต เดเดคเดพ, เดตเดพเดเตเดฆเดพเดจเด เดเตเดฏเตเดคเดคเตเดชเตเดฒเต, เดเตเดฑเดเตเดเต เดตเดฐเดฟเดเตพ เดฎเดพเดคเตเดฐเด:
initWith:`sym`time`high`low`firstPrice`lastPrice`firstSize`lastSize`numTrades`volume`pvolume`turnover`avgPrice`avgSize`vwap`cumVolume!(`;00:00;0n;0n;0n;0n;0N;0N;0;0;0.0;0.0;0n;0n;0n;0);
aggCols:reverse key[initWith] except `sym`time;
rollColumns:`sym`cumVolume;
accumulatorCols:`numTrades`volume`pvolume`turnover;
specialCols:`high`low`firstPrice`firstSize;
selExpression:`high`low`firstPrice`lastPrice`firstSize`lastSize`numTrades`volume`pvolume`turnover!parse each ("max price";"min price";"first price";"last price";"first size";"last size";"count i";"sum size";"sum price";"sum price*size");
preprocess:?[;();`sym`time!`sym`time.minute;selExpression];
aggExpression:`high`low`firstPrice`lastPrice`firstSize`lastSize`avgPrice`avgSize`vwap`cumVolume!("row[`high]|inp`high";"row[`low]&inp`low";"row`firstPrice";"inp`lastPrice";"row`firstSize";"inp`lastSize";"pvolume%numTrades";"volume%numTrades";"turnover%volume";"row[`cumVolume]+inp`volume");
@[`aggExpression;specialCols;{"?[isFirst;inp`",y,";",x,"]"};string specialCols];
aggExpression[accumulatorCols]:{"row[`",x,"]+inp`",x } each string accumulatorCols;
updateAgg:value "{[aggTable;idx;inp] row:aggTable idx; isFirst_0=row`numTrades; .[aggTable;;:;]'[(idx;)each aggCols;(",(";"sv string[aggCols],'":",/:aggExpression aggCols),")]}"; / '
init:{
tradeAgg::0#enlist[initWith];
currTime::00:00;
currSyms::`u#`symbol$();
offset::0;
rollCache:: `sym xkey update `u#sym from rollColumns#tradeAgg;
};
roll:{[tm]
if[currTime>tm; :init[]];
rollCache,::offset _ rollColumns#tradeAgg;
offset::count tradeAgg;
currSyms::`u#`$();
};
addSyms:{[syms]
currSyms,::syms;
`tradeAgg upsert @[count[syms]#enlist initWith;`sym`time,cols rc;:;(syms;currTime),(initWith cols rc)^value flip rc:rollCache ([] sym: syms)];
};
upd:{[tblName;data] updMinute[data] each exec distinct time from data:() xkey preprocess data};
updMinute:{[data;tm]
if[tm<>currTime; roll tm; currTime::tm];
data:select from data where time=tm;
if[count msyms:syms where not (syms:data`sym)in currSyms; addSyms msyms];
updateAgg[`tradeAgg;offset+currSyms?syms;data];
};
เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต
เดธเตเดตเดจเดคเตเดคเดฟเดจเตเดฑเต เดชเตเดฐเดเดเดจเด เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด. เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฎเตเดเตเดเต เดเดคเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดชเตเดฐเตเดธเดธเตเดธเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเด (service.q เดซเดฏเดฒเดฟเตฝ เดเตเดกเต เดเดเตเด) เดเตเดเดพเดคเต init เดซเดเดเตโเดทเดจเดฟเดฒเตเดเตเดเต เดตเดฟเดณเดฟเดเตเดเตเด:
q service.q โp 5566
q)init[]
เดฎเดฑเตเดฑเตเดฐเต เดเตบเดธเตเดณเดฟเตฝ, เดฐเดฃเตเดเดพเดฎเดคเตเดคเต Q เดชเตเดฐเตเดธเดธเตเดธเต เดเดฐเดเดญเดฟเดเตเดเต เดเดฆเตเดฏเดคเตเดคเตเดคเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเด:
h:hopen `:host:5566
h:hopen 5566 // ะตัะปะธ ะพะฑะฐ ะฝะฐ ะพะดะฝะพะผ ั
ะพััะต
เดเดฆเตเดฏเด, เดจเดฎเตเดเตเดเต เดเดฟเดนเตเดจเดเตเดเดณเตเดเต เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดธเตเดทเตเดเดฟเดเตเดเดพเด - 10000 เดเดทเดฃเดเตเดเตพ เดเตเดเดพเดคเต เดเดฐเต เดเตเดฐเดฎเดฐเดนเดฟเดค เดชเดเตเดเดฟเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดฐเต เดซเดเดเตเดทเตป เดเตเตผเดเตเดเตเด. เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดเตบเดธเตเดณเดฟเตฝ:
syms:`IBM`AAPL`GOOG,-9997?`8
rnd:{[n;t] ([] sym:n?syms; time:t+asc n#til 25; price:n?10f; size:n?10)}
เดชเดเตเดเดฟเดเดฏเดฟเตฝ เด เดต เดคเดฟเดฐเดฏเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดเดพเตป เดฎเตเดจเตเดจเต เดฏเดฅเดพเตผเดคเตเดฅ เดเดฟเดนเตเดจเดเตเดเตพ เดชเดเตเดเดฟเดเดฏเดฟเตฝ เดเตเตผเดคเตเดคเต. rnd เดซเดเดเตเดทเตป n เดตเดฐเดฟเดเดณเตเดณเตเดณ เดเดฐเต เดเตเดฐเดฎเดฐเดนเดฟเดค เดชเดเตเดเดฟเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดตเดฟเดเต เดธเดฎเดฏเด t เดฎเตเดคเตฝ t+25 เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเต เดตเดฐเต เดตเตเดฏเดคเตเดฏเดพเดธเดชเตเดชเตเดเตเดจเตเดจเต.
เดเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพเดเตเดเต เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เด เดฏเดฏเตโเดเตเดเดพเตป เดถเตเดฐเดฎเดฟเดเตเดเดพเด (เดเดฆเตเดฏเดคเตเดคเต เดชเดคเตเดคเต เดฎเดฃเดฟเดเตเดเตเตผ เดเตเตผเดเตเดเตเด):
{h (`upd;`trade;rnd[10000;x])} each `time$00:00 + til 60*10
เดชเดเตเดเดฟเด เด เดชเตโเดกเตเดฑเตเดฑเต เดเตเดฏเตโเดคเดฟเดเตเดเตเดฃเตเดเตเดฏเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเต เดธเตเดตเดจเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเด:
c 25 200
select from tradeAgg where sym=`AAPL
-20#select from tradeAgg where sym=`AAPL
เดซเดฒเด:
sym|time|high|low|firstPrice|lastPrice|firstSize|lastSize|numTrades|volume|pvolume|turnover|avgPrice|avgSize|vwap|cumVolume
--|--|--|--|--|--------------------------------
AAPL|09:27|9.258904|9.258904|9.258904|9.258904|8|8|1|8|9.258904|74.07123|9.258904|8|9.258904|2888
AAPL|09:28|9.068162|9.068162|9.068162|9.068162|7|7|1|7|9.068162|63.47713|9.068162|7|9.068162|2895
AAPL|09:31|4.680449|0.2011121|1.620827|0.2011121|1|5|4|14|9.569556|36.84342|2.392389|3.5|2.631673|2909
AAPL|09:33|2.812535|2.812535|2.812535|2.812535|6|6|1|6|2.812535|16.87521|2.812535|6|2.812535|2915
AAPL|09:34|5.099025|5.099025|5.099025|5.099025|4|4|1|4|5.099025|20.3961|5.099025|4|5.099025|2919
เดธเตเดตเดจเดคเตเดคเดฟเดจเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ เดเดคเตเดฐ เดกเดพเดฑเตเดฑ เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเดพเดจเดพเดเตเดฎเตเดจเตเดจเต เดเดฃเตเดเตเดคเตเดคเดพเตป เดจเดฎเตเดเตเดเต เดเดชเตเดชเตเตพ เดฒเตเดกเต เดเตเดธเตเดฑเตเดฑเดฟเดเดเต เดจเดเดคเตเดคเดพเด. เดเดเตเดเตพ เด เดชเตโเดกเตเดฑเตเดฑเต เดเดเดตเตเดณ 25 เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเดพเดฏเดฟ เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเดตเตเดจเตเดจเต เดเดพเตป เดจเดฟเดเตเดเดณเต เดเตผเดฎเตเดฎเดฟเดชเตเดชเดฟเดเตเดเดเตเดเต. เด เดคเดจเตเดธเดฐเดฟเดเตเดเต, เดกเดพเดฑเตเดฑ เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเดพเตป เดเดชเดฏเตเดเตเดคเดพเดเตเดเตพเดเตเดเต เดธเดฎเดฏเด เดจเตฝเดเตเดจเตเดจเดคเดฟเดจเต เดธเตเดตเดจเด (เดถเดฐเดพเดถเดฐเดฟ) เดเดฐเต เด เดชเตโเดกเตเดฑเตเดฑเดฟเดจเต เดเตเดฑเดเตเดเดคเต 20 เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเดฟเตฝ เดฏเตเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเดฃเด. เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเดฟเตฝ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เดจเตฝเดเตเด:
tm:10:00:00.000
stressTest:{[n] 1 string[tm]," "; times,::h ({st:.z.T; upd[`trade;x]; .z.T-st};rnd[n;tm]); tm+:25}
start:{[n] times::(); do[4800;stressTest[n]]; -1 " "; `min`avg`med`max!(min times;avg times;med times;max times)}
4800 เดเดจเตเดจเดคเต เดฐเดฃเตเดเต เดฎเดฟเดจเดฟเดฑเตเดฑเดพเดฃเต. เดเดฐเต 1000 เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเดฟเดฒเตเด 25 เดตเดฐเดฟเดเตพ เดเดฆเตเดฏเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเตพเดเตเดเต เดถเตเดฐเดฎเดฟเดเตเดเดพเด:
start 1000
เดเดจเตเดฑเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเดฐเต เด เดชเตโเดกเตเดฑเตเดฑเดฟเดจเต เดเดเดฆเตเดถเด เดฐเดฃเตเดเต เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเต เดเดฃเต เดซเดฒเด. เด เดคเดฟเดจเดพเตฝ เดเดพเตป เดเดเตป เดคเดจเตเดจเต เดตเดฐเดฟเดเดณเตเดเต เดเดฃเตเดฃเด 10.000 เดเดฏเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเด:
start 10000
เดซเดฒเด:
min| 00:00:00.004
avg| 9.191458
med| 9f
max| 00:00:00.030
เดตเตเดฃเตเดเตเด, เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดคเต เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ 24 เดฆเดถเดฒเดเตเดทเด เดฒเตเดจเตเดเดณเดพเดฃเต, เดธเตเดเตเดเตปเดกเดฟเตฝ 400 เดเดฏเดฟเดฐเด. 25 เดฎเดฟเดฒเตเดฒเดฟเดธเตเดเตเดเตปเดกเดฟเตฝ เดเตเดเตเดคเตฝ, เด เดชเตโเดกเตเดฑเตเดฑเต 5 เดคเดตเดฃ เดฎเดพเดคเตเดฐเด เดฎเดจเตเดฆเดเดคเดฟเดฏเดฟเดฒเดพเดฏเดฟ, เดตเตเดฏเดเตเดคเดฎเดพเดฏเตเด เดฎเดฟเดจเดฟเดฑเตเดฑเต เดฎเดพเดฑเดฟเดฏเดชเตเดชเตเตพ. เดจเดฎเตเดเตเดเต 100.000 เดเดฏเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดเตเดเดพเด:
start 100000
เดซเดฒเด:
min| 00:00:00.013
avg| 25.11083
med| 24f
max| 00:00:00.108
q)sum times
00:02:00.532
เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดธเตเดตเดจเดคเตเดคเดฟเดจเต เดเดทเตเดเดฟเดเตเดเต เดจเตเดฐเดฟเดเดพเตป เดเดดเดฟเดฏเตเด, เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด เด เดคเต เดชเตเดเตเดเดฟเดเตเดเดฟเดเดเตเดเดพเตป เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เด เดคเตเดคเดฐเด เดกเดพเดฑเตเดฑเดฏเตเดเต เด เดณเดตเต (เดฎเดฟเดจเดฟเดฑเตเดฑเดฟเตฝ 240 เดฆเดถเดฒเดเตเดทเด เดตเดฐเดฟเดเตพ) เดตเดณเดฐเต เดตเดฒเตเดคเดพเดฃเต; เด เดคเตเดคเดฐเด เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเตฝ, เดธเตเดตเดจเดคเตเดคเดฟเดจเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เดเตเดฒเตเดฃเตเดเตพ (เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดกเดธเตป เดเดฃเดเตเดเดฟเดจเต เดเตเดฒเตเดฃเตเดเตพ เดชเตเดฒเตเด) เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเต เดธเดพเดงเดพเดฐเดฃเดฎเดพเดฃเต, เด เดตเดฏเดฟเตฝ เดเดฐเตเดจเตเดจเตเด เดชเตเดฐเดคเตเดเดเตเดเดณเตเดเต เดเดฐเต เดญเดพเดเด เดฎเดพเดคเตเดฐเด เดชเตเดฐเตเดธเดธเตเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดชเตเดฐเดพเดฅเดฎเดฟเดเดฎเดพเดฏเดฟ เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฃเดคเตเดคเดฟเตฝ เดถเตเดฐเดฆเตเดง เดเตเดจเตเดฆเตเดฐเตเดเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดตเตเดฏเดพเดเตเดฏเดพเดจ เดญเดพเดทเดฏเตเดเตเดเต เดซเดฒเด เดถเตเดฐเดฆเตเดงเตเดฏเดฎเดพเดฃเต.
เดเดจเตเดคเตเดเตเดฃเตเดเดพเดฃเต เดเดฐเต เด เดชเตโเดกเตเดฑเตเดฑเดฟเดจเตเดฑเตเดฏเตเด เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเดจเตเดชเตเดชเด เดธเดฎเดฏเด เดฐเตเดเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดฐเตเดคเดฟเดฏเดฟเตฝ เดตเดณเดฐเตเดจเตเดจเดคเต เดเดจเตเดจ เดเตเดฆเตเดฏเด เดเดฏเตผเดจเตเดจเตเดเตเดเดพเด. เดเดพเดฐเดฃเด, เดทเตเดฐเดฟเดเตเดเต เดซเดเดเตโเดทเตป เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดเดฐเต C เดซเดเดเตโเดทเดจเดพเดฃเต, เดเดคเต updateAgg-เดจเตเดเตเดเดพเตพ เดตเดณเดฐเต เดเดพเดฐเตเดฏเดเตเดทเดฎเดฎเดพเดฃเต. เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เด เดชเตโเดกเตเดฑเตเดฑเต เดตเดฒเตเดชเตเดชเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต (เดเดเดฆเตเดถเด 10.000) เดเดฐเดเดญเดฟเดเตเดเต, updateAgg เด เดคเดฟเดจเตเดฑเต เดชเดฐเดฟเดงเดฟเดฏเดฟเตฝ เดเดคเตเดคเตเดจเตเดจเต, เดคเตเดเตผเดจเตเดจเต เด เดคเดฟเดจเตเดฑเต เดเดเตโเดธเดฟเดเตเดฏเตเดทเตป เดธเดฎเดฏเด เด เดชเตโเดกเตเดฑเตเดฑเต เดตเดฒเตเดชเตเดชเดคเตเดคเต เดเดถเตเดฐเดฏเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ. เดชเตเดฐเดฟเดฒเดฟเดฎเดฟเดจเดฑเดฟ เดธเตเดฑเตเดฑเตเดชเตเดชเต เดเตเดฏเต เดเดพเดฐเดฃเดฎเดพเดฃเต เด เดคเตเดคเดฐเด เดกเดพเดฑเตเดฑเดฏเตเดเต เด เดณเดตเตเดเตพ เดฆเดนเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดธเตเดตเดจเดคเตเดคเดฟเดจเต เดเดดเดฟเดฏเตเดจเตเดจเดคเต. เดตเดฒเดฟเดฏ เดกเดพเดฑเตเดฑเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดฎเตเดชเตเตพ เดถเดฐเดฟเดฏเดพเดฏ เด เตฝเดเตเดฐเดฟเดคเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเต เดเดคเตเดฐ เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเตเดจเตเดจเต เดเดคเต เดเดเตเดคเตเดคเตเดเดพเดฃเดฟเดเตเดเตเดจเตเดจเต. เดฎเตเดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเต เดกเดพเดฑเตเดฑเดฏเตเดเต เดถเดฐเดฟเดฏเดพเดฏ เดธเดเดญเดฐเดฃเดฎเดพเดฃเต เดฎเดฑเตเดฑเตเดฐเต เดชเตเดฏเดฟเดจเตเดฑเต. เดกเดพเดฑเตเดฑ เดจเดฟเดฐเดฏเดพเดฏเดฟ เดธเดเดญเดฐเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเดฒเต เดธเดฎเดฏเดคเตเดคเดฟเดจเดจเตเดธเดฐเดฟเดเตเดเต เดเตผเดกเตผ เดเตเดฏเตเดคเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเดฒเต, TLB เดเดพเดทเต เดฎเดฟเดธเต เดชเตเดฒเตเดณเตเดณ เดเดฐเต เดเดพเดฐเตเดฏเด เดเดเตเดเตพ เดชเดฐเดฟเดเดฟเดคเดฐเดพเดเตเด - เดชเตเดฐเตเดธเดธเตเดธเตผ เดตเดฟเดฒเดพเดธ เดเดพเดทเตเดฏเดฟเตฝ เดฎเตเดฎเตเดฎเดฑเดฟ เดชเตเดเต เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดจเตเดฑเต เด เดญเดพเดตเด. เดเดฐเต เดตเดฟเดฒเดพเดธเด เดคเดฟเดฐเดฏเตเดจเตเดจเดคเต เดตเดฟเดเดฏเดฟเดเตเดเดฟเดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดเดฆเตเดถเด 30 เดฎเดเดเตเดเต เดเตเดเตเดคเตฝ เดธเดฎเดฏเดฎเตเดเตเดเตเดเตเด, เดเตเดเดพเดคเต เดกเดพเดฑเตเดฑ เดเดฟเดคเดฑเดฟเดเตเดเดฟเดเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด เดคเต เดจเดฟเดฐเดตเดงเดฟ เดคเดตเดฃ เดธเตเดตเดจเด เดฎเดจเตเดฆเดเดคเดฟเดฏเดฟเดฒเดพเดเตเดเดพเด.
เดคเตเดฐเตเดฎเดพเดจเด
เด เดฒเตเดเดจเดคเตเดคเดฟเตฝ, KDB+, Q เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดตเดฒเดฟเดฏ เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดฆเดถเดฒเดเตเดทเดเตเดเดฃเดเตเดเดฟเดจเต เดตเดฐเดฟเดเตพ/เดเดฟเดเดพเดฌเตเดฑเตเดฑเต เดกเดพเดฑเตเดฑ เดฆเดนเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดเดดเดฟเดตเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเต เดธเตเดตเดจเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดเดพเตป เดเดพเดฃเดฟเดเตเดเต. เดเดฐเตเดฑเตเดฑ Q เดชเตเดฐเดเตเดฐเดฟเดฏ. เดเตเดฏเต เดญเดพเดท เดคเดจเตเดจเต เด เดคเดฟเดจเตเดฑเต เดตเตเดเตเดฑเตเดฑเตผ เดธเตเดตเดญเดพเดตเด, เด เดจเตเดคเตผเดจเดฟเตผเดฎเตเดฎเดฟเดค SQL เดกเดฏเดฒเดเตเดฑเตเดฑเต เดเดจเตเดฑเตผเดชเตเดฐเตเดฑเตเดฑเตผ, เดตเดณเดฐเต เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏ เดฒเตเดฌเตเดฐเดฑเดฟ เดซเดเดเตเดทเดจเตเดเตพ เดเดจเตเดจเดฟเดต เดเดพเดฐเดฃเด เดกเดพเดฑเตเดฑ เดชเตเดฐเตเดธเดธเตเดธเดฟเดเดเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดชเตเดชเตเดเตเด เด เตฝเดเตเดฐเดฟเดคเดเตเดเตพ เดตเดณเดฐเต เดธเดเดเตเดทเดฟเดชเตเดคเดตเตเด เดเดพเดฐเตเดฏเดเตเดทเดฎเดตเตเดฎเดพเดฏ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดฏเตเดตเดฟเดจเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฐเต เดญเดพเดเด เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดฎเตเดเดณเดฟเตฝ เดชเดฑเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเดจเตเดจเต เดเดพเตป เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเด, เดเดคเดฟเดจเต เดฎเดฑเตเดฑเต เดธเดตเดฟเดถเตเดท เดธเดตเดฟเดถเตเดทเดคเดเดณเตเด เดเดฃเตเดเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฐเต IPC เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ เดตเตเดฏเดเตเดคเดฟเดเดค เดเตเดฏเต เดชเตเดฐเตเดธเดธเตเดเตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เด
เดคเดฟเตผเดคเตเดคเดฟ เดฎเดพเดฏเตโเดเตเดเตเดเดฏเตเด เดฒเตเดเดคเตเดคเดฟเดจเตเดฑเต เดตเดฟเดตเดฟเดง เดญเดพเดเดเตเดเดณเดฟเตฝ เดกเดธเตป เดเดฃเดเตเดเดฟเดจเต เดธเตเตผเดตเดฑเตเดเดณเดฟเตฝ เดธเตเดฅเดฟเดคเดฟ เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฐเตเดฑเตเดฑ เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเดฒเตเดเตเดเต เดจเตเดฑเตเดเดฃเดเตเดเดฟเดจเต เด เดชเตเดฐเดเตเดฐเดฟเดฏเดเตพ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด
เดจเตเดตเดฆเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
เด
เดตเดฒเดเดฌเด: www.habr.com