เชคเชฎเซ KDB+ เชเชงเชพเชฐ, Q เชชเซเชฐเซเชเซเชฐเชพเชฎเชฟเชเช เชญเชพเชทเชพ เชถเซเช เชเซ, เชคเซเชฎเชจเซ เชถเชเซเชคเชฟเช เช
เชจเซ เชจเชฌเชณเชพเชเช เชถเซเช เชเซ เชคเซ เชตเชฟเชถเซ เชตเชพเชเชเซ เชถเชเซ เชเซ.
เชชเชฐเชฟเชเชฏ
KDB+ เช เชธเซเชคเชเชญเชพเชเชพเชฐ เชกเซเชเชพเชฌเซเช เชเซ เชเซ เชเซเชฌ เชฎเซเชเซ เชฎเชพเชคเซเชฐเชพเชฎเชพเช เชกเซเชเชพ เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเซ เชเซ, เชเซ เชเซเชเซเชเชธ เชฐเซเชคเซ (เชฎเซเชเซเชฏเชคเซเชตเซ เชธเชฎเชฏ เชฆเซเชตเชพเชฐเชพ) เชเชฐเซเชกเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเซเชจเซ เชเชชเชฏเซเช เชฎเซเชเซเชฏเชคเซเชตเซ เชจเชพเชฃเชพเชเซเชฏ เชธเชเชธเซเชฅเชพเช - เชฌเซเชเชเซ, เชฐเซเชเชพเชฃ เชญเชเชกเซเชณ, เชตเซเชฎเชพ เชเชเชชเชจเซเชเชฎเชพเช เชฅเชพเชฏ เชเซ. Q เชญเชพเชทเชพ เช KDB+ เชจเซ เชเชเชคเชฐเชฟเช เชญเชพเชทเชพ เชเซ เชเซ เชคเชฎเชจเซ เช เชกเซเชเชพ เชธเชพเชฅเซ เช เชธเชฐเชเชพเชฐเช เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชเซเชฏเซ เชตเชฟเชเชพเชฐเชงเชพเชฐเชพ เชธเชเชเซเชทเชฟเชชเซเชคเชคเชพ เช เชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชเซ, เชเซเชฏเชพเชฐเซ เชธเซเชชเชทเซเชเชคเชพเชจเซเช เชฌเชฒเชฟเชฆเชพเชจ เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เช เชนเชเซเชเชค เชฆเซเชตเชพเชฐเชพ เชตเชพเชเชฌเซ เชเซ เชเซ เชตเซเชเซเชเชฐ เชญเชพเชทเชพเชจเซ เชเซเช เชชเชฃ เชธเชเชเซเชเซเชฎเชพเช เชธเชฎเชเชตเซเช เชฎเซเชถเซเชเซเชฒ เชนเชถเซ, เช เชจเซ เชฐเซเชเซเชฐเซเชกเชฟเชเชเชจเซ เชธเชเชเซเชทเชฟเชชเซเชคเชคเชพ เช เชจเซ เชธเชฎเซเชฆเซเชงเชฟ เชคเชฎเชจเซ เชเช เชธเซเชเซเชฐเซเชจ เชชเชฐ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เชเชฃเซ เชฎเซเชเซ เชญเชพเช เชเซเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เชเซ เชเชเชฐเซ เชคเซเชจเซ เชธเชฎเชเชตเชพเชฎเชพเช เชธเชฐเชณ เชฌเชจเชพเชตเซ เชเซ.
เช เชฒเซเชเชฎเชพเช เช
เชฎเซ Q เชฎเชพเช เชเช เชธเชเชชเซเชฐเซเชฃ เชชเซเชฐเซเชเซเชฐเชพเชฎ เช
เชฎเชฒเชฎเชพเช เชฎเซเชเซเชฏเซ เชเซ เช
เชจเซ เชคเชฎเซ เชคเซเชจเซ เช
เชเชฎเชพเชตเซ เชถเชเซ เชเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชตเชพเชธเซเชคเชตเชฟเช Qเชจเซ เชเชฐเซเชฐ เชชเชกเชถเซ. เชคเชฎเซ kx เชเชเชชเชจเซเชจเซ เชตเซเชฌเชธเชพเชเช เชชเชฐ เชฎเชซเชค 32-เชฌเซเช เชธเชเชธเซเชเชฐเชฃ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชถเชเซ เชเซ โ
เชธเชฎเชธเซเชฏเชพเชจเซ เชฐเชเชจเชพ
เชคเซเชฏเชพเช เชเช เชธเซเชฐเซเชค เชเซ เชเซ เชฆเชฐ 25 เชฎเชฟเชฒเซเชธเซเชเชจเซเชกเซ เชกเซเชเชพ เชธเชพเชฅเซ เชเซเชทเซเชเช เชฎเซเชเชฒเซ เชเซ. KDB+ เชจเซ เชเชชเชฏเซเช เชฎเซเชเซเชฏเชคเซเชตเซ เชซเชพเชเชจเชพเชจเซเชธเชฎเชพเช เชฅเชคเซ เชนเซเชตเชพเชฅเซ, เช เชฎเซ เชงเชพเชฐเซเชถเซเช เชเซ เช เชตเซเชฏเชตเชนเชพเชฐเซ (เชตเซเชชเชพเชฐ) เชจเซเช เชเซเชทเซเชเช เชเซ, เชเซเชฎเชพเช เชจเซเชเซเชจเชพ เชเซเชฒเชฎ เชเซ: เชธเชฎเชฏ (เชฎเชฟเชฒเชฟเชธเซเชเชจเซเชกเชฎเชพเช เชธเชฎเชฏ), เชธเชฟเชฎ (เชธเซเชเซเช เชเชเซเชธเชเซเชจเซเช เชชเชฐ เชเชเชชเชจเซเชจเซ เชนเซเชฆเซเชฆเซ - IBM, AAPL,โฆ), เชเชฟเชเชฎเชค (เชเซ เชญเชพเชตเซ เชถเซเชฐ เชเชฐเซเชฆเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ), เชเชฆ (เชเซเชฐเชพเชจเซเชเซเชเซเชถเชจเชจเซเช เชเชฆ). 25 เชฎเชฟเชฒเซเชธเซเชเชจเซเชกเชจเซ เช เชเชคเชฐเชพเชฒ เชฎเชจเชธเซเชตเซ เชเซ, เชฌเชนเซ เชจเชพเชจเซ เชจเชฅเซ เช เชจเซ เชฌเชนเซ เชฒเชพเชเชฌเซ เชชเชฃ เชจเชฅเซ. เชคเซเชจเซ เชนเชพเชเชฐเซเชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ เชกเซเชเชพ เชชเชนเซเชฒเซเชฅเซ เชฌเชซเชฐ เชเชฐเซเชฒเซ เชธเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชตเชฐเซเชคเชฎเชพเชจ เชฒเซเชกเชจเชพ เชเชงเชพเชฐเซ เชเชคเชฟเชถเซเชฒ เชฌเชซเชฐเชฟเชเช เชธเชนเชฟเชค, เชธเซเชตเชพ เชฌเชพเชเซ เชชเชฐ เชฌเชซเชฐเชฟเชเช เชฒเชพเชเซ เชเชฐเชตเซเช เชธเชฐเชณ เชนเชถเซ, เชชเชฐเชเชคเซ เชธเชฐเชณเชคเชพ เชฎเชพเชเซ, เช เชฎเซ เชจเชฟเชถเซเชเชฟเชค เช เชเชคเชฐเชพเชฒ เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเซเชถเซเช.
เชธเซเชตเชพเช เชธเชฟเชฎ เชเซเชฒเชฎเชฎเชพเชเชฅเซ เชฆเชฐเซเช เชเชจเชเชฎเชฟเชเช เชธเชฟเชฎเซเชฌเซเชฒ เชฎเชพเชเซ เชฆเชฐ เชฎเชฟเชจเชฟเชเซ เชเชเชเชฆเชฐ เชซเชเชเซเชถเชจเชจเชพ เชธเชฎเซเชนเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชตเซ เชเซเชเช - เชฎเชนเชคเซเชคเชฎ เชเชฟเชเชฎเชค, เชธเชฐเซเชฐเชพเชถ เชเชฟเชเชฎเชค, เชธเชฐเชตเชพเชณเซ เชเชฆ, เชตเชเซเชฐเซ. เชเชชเชฏเซเชเซ เชฎเชพเชนเชฟเชคเซ. เชธเชฐเชณเชคเชพ เชฎเชพเชเซ, เช เชฎเซ เชงเชพเชฐเซเชถเซเช เชเซ เชคเชฎเชพเชฎ เชเชพเชฐเซเชฏเซเชจเซ เชเชฃเชคเชฐเซ เชตเชงเชคเซ-เชเชเซ เชฅเช เชถเชเซ เชเซ, เชเชเชฒเซ เชเซ. เชจเชตเซเช เชฎเซเชฒเซเชฏ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ, เชฌเซ เชจเชเชฌเชฐเซ เชเชพเชฃเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซเช เชเซ - เชเซเชจเชพ เช เชจเซ เชเชตเชจเชพเชฐเชพ เชฎเซเชฒเซเชฏเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฎเชนเชคเซเชคเชฎ, เชธเชฐเซเชฐเชพเชถ, เชธเชฐเชตเชพเชณเชพ เชซเชเชเซเชถเชจเชฎเชพเช เช เชเซเชฃเชงเชฐเซเชฎ เชนเซเชฏ เชเซ, เชชเชฐเชเชคเซ เชฎเชงเซเชฏ เชซเชเชเซเชถเชจ เชเชตเซเช เชจเชฅเซ.
เช เชฎเซ เช เชชเชฃ เชงเชพเชฐเซเชถเซเช เชเซ เชเชตเชจเชพเชฐเชพ เชกเซเชเชพ เชธเซเชเซเชฐเซเชฎเชจเซ เชธเชฎเชฏ เชจเชเซเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ. เชเชจเชพเชฅเซ เช เชฎเชจเซ เชเซเชฒเซเชฒเซ เชเชกเซเช เช เชเชพเชฎ เชเชฐเชตเชพเชจเซ เชคเช เชฎเชณเชถเซ. เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช, เชเซเชเชฒเชพเช เช เชชเชกเซเช เชฎเซเชกเซเช เชฅเชพเชฏ เชคเซ เชตเชฐเซเชคเชฎเชพเชจ เช เชจเซ เชชเชพเชเชฒเซ เชฎเชฟเชจเชฟเชเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ เชธเชเซเชทเชฎ เชฅเชตเชพ เชฎเชพเชเซ เชคเซ เชชเซเชฐเชคเซเช เชเซ. เชธเชฐเชณเชคเชพ เชฎเชพเชเซ, เช เชฎเซ เช เชเซเชธเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเชถเซเช เชจเชนเซเช.
เชเชเชคเซเชฐเซเชเชฐเชฃ เชเชพเชฐเซเชฏเซ
เชเชฐเซเชฐเซ เชเชเชคเซเชฐเซเชเชฐเชฃ เชเชพเชฐเซเชฏเซ เชจเซเชเซ เชธเซเชเชฟเชฌเชฆเซเชง เชเซ. เชธเซเชตเชพ เชชเชฐเชจเซ เชญเชพเชฐ เชตเชงเชพเชฐเชตเชพ เชฎเชพเชเซ เชฎเซเช เชคเซเชฎเชพเชเชฅเซ เชถเชเซเชฏ เชคเซเชเชฒเชพ เชฒเซเชงเชพ:
- เชเชเซเช - เชฎเชนเชคเซเชคเชฎ เชเชฟเชเชฎเชค - เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชฎเชนเชคเซเชคเชฎ เชเชฟเชเชฎเชค.
- เชจเซเชเซ - เชจเซเชฏเซเชจเชคเชฎ เชเชฟเชเชฎเชค - เชจเซเชฏเซเชจเชคเชฎ เชเชฟเชเชฎเชค เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช.
- เชชเซเชฐเชฅเชฎ เชเชฟเชเชฎเชค - เชชเซเชฐเชฅเชฎ เชเชฟเชเชฎเชค - เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชชเซเชฐเชฅเชฎ เชเชฟเชเชฎเชค.
- เชเซเชฒเซเชฒเซ เชเชฟเชเชฎเชค - เชเซเชฒเซเชฒเซ เชเชฟเชเชฎเชค - เชเซเชฒเซเชฒเซ เชเชฟเชเชฎเชค เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช.
- เชซเชฐเซเชธเซเชเชธเชพเชเช - เชชเซเชฐเชฅเชฎ เชเชฆ - เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชชเซเชฐเชฅเชฎ เชตเซเชชเชพเชฐ เชเชฆ.
- เชฒเชพเชธเซเช เชธเชพเชเช - เชเซเชฒเซเชฒเซเช เชเชฆ - เชเช เชฎเชฟเชจเชฟเชเชฎเชพเช เชเซเชฒเซเชฒเซเช เชตเซเชชเชพเชฐ เชเชฆ.
- numTrades โ เชเชพเชเชจเซเช i โ เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชธเซเชฆเชพเชจเซ เชธเชเชเซเชฏเชพ.
- เชตเซเชฒเซเชฏเซเชฎ - เชธเชฐเชตเชพเชณเซ เชเชฆ - เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชตเซเชชเชพเชฐ เชเชฆเชจเซ เชธเชฐเชตเชพเชณเซ.
- pvolume โ เชธเชฐเชตเชพเชณเซ เชเชฟเชเชฎเชค โ เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชเชฟเชเชฎเชคเซเชจเซ เชธเชฐเชตเชพเชณเซ, เชธเชฐเซเชฐเชพเชถ เชเชฟเชเชฎเชค เชฎเชพเชเซ เชเชฐเซเชฐเซ เชเซ.
- - เชธเชฐเชตเชพเชณเซ เชเชฐเซเชจเชเชตเชฐ เชเชฟเชเชฎเชค*เชเชฆ - เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชตเซเชฏเชตเชนเชพเชฐเซเชจเซเช เชเซเชฒ เชตเซเชฒเซเชฏเซเชฎ.
- avgPrice โ pvolume%numTrades โ เชธเชฐเซเชฐเชพเชถ เชเชฟเชเชฎเชค เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช.
- avgSize โ เชตเซเชฒเซเชฏเซเชฎ%numTrades โ เชธเชฐเซเชฐเชพเชถ เชตเซเชชเชพเชฐ เชเชฆ เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช.
- vwap - เชเชฐเซเชจเชเชตเชฐ% เชตเซเชฒเซเชฏเซเชฎ - เชตเซเชฏเชตเชนเชพเชฐเชจเชพ เชเชฆ เชฆเซเชตเชพเชฐเชพ เชตเซเชเชเซเชก เชชเซเชฐเชคเชฟ เชฎเชฟเชจเชฟเช เชธเชฐเซเชฐเชพเชถ เชเชฟเชเชฎเชค.
- เชเชฎเชตเซเชฒเซเชฏเซเชฎ - เชธเชฐเชตเชพเชณเซ เชตเซเชฒเซเชฏเซเชฎ - เชธเชฎเชเซเชฐ เชธเชฎเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชตเซเชฏเชตเชนเชพเชฐเซเชจเซเช เชธเชเชเชฟเชค เชเชฆ.
เชเชพเชฒเซ เชคเชฐเชค เช เชเช เชฌเชฟเชจ-เชธเซเชชเชทเซเช เชฎเซเชฆเซเชฆเชพเชจเซ เชเชฐเซเชเชพ เชเชฐเซเช - เช เชเซเชฒเชฎเซเชธเชจเซ เชชเซเชฐเชฅเชฎ เชตเชเชค เช เชจเซ เชฆเชฐเซเช เช เชจเซเชเชพเชฎเซ เชฎเชฟเชจเชฟเช เชฎเชพเชเซ เชเซเชตเซ เชฐเซเชคเซ เชถเชฐเซ เชเชฐเชตเซ. เชซเชฐเซเชธเซเชเชชเซเชฐเชพเชเชธ เชชเซเชฐเชเชพเชฐเชจเซ เชเซเชเชฒเซเช เชเซเชฒเชฎ เชฆเชฐเซเช เชตเชเชคเซ เชถเซเชจเซเชฏ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฐเชเชญเชฟเชค เชนเซเชตเซ เชเซเชเช; เชคเซเชฎเชจเซเช เชฎเซเชฒเซเชฏ เช เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเซ. เช เชจเซเชฏ เชตเซเชฒเซเชฏเซเชฎ เชชเซเชฐเชเชพเชฐเซ เชนเชเชฎเซเชถเชพ 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;
โฆ
เชชเชฐเชเชคเซ เชเชชเชฃเซ เชเชเชณ เชเช เชถเชเซเช เชเซเช, Q เชชเชพเชธเซ เชเช เช เชจเชจเซเชฏ เช เชจเซ เช เชคเซเชฏเชเชค เชถเชเซเชคเชฟเชถเชพเชณเซ เชเชชเชฐเซเชเชฐ เชเซ - เชธเชพเชฎเชพเชจเซเชฏ เช เชธเชพเชเชจเชฎเซเชจเซเช เชเชชเชฐเซเชเชฐ. เชคเซ เชคเชฎเชจเซ เชธเซเชเชเชพเชเชเซ, เชเชพเชฐเซเชฏเซ เช เชจเซ เชฆเชฒเซเชฒเซเชจเซ เชธเซเชเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชเชฟเชฒ เชกเซเชเชพ เชฎเชพเชณเชเชพเชฎเชพเช เชฎเซเชฒเซเชฏเซเชจเชพ เชธเชฎเซเชนเชจเซ เชฌเชฆเชฒเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช เชคเซ เชเชจเชพ เชเซเชตเซเช เชฒเชพเชเซ เชเซ:
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 เชฎเชพเช, เชธเซเชเชฟ เชฌเชจเชพเชตเชตเซ เช เชชเชฃ เชเช เชเชพเชฐเซเชฏ เชเซ เช เชจเซ เช เชฎเซ เชธเซเชเชฟเชจเซ เชธเซเชเชฟ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ เชฆเชฐเซเช(เชจเชเชถเชพ) เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชคเซเชจเซ เชเซเชฒ เชเชฐเซ เชถเชเซเช เชเซเช.
เชเชฃเชคเชฐเซ เชเชฐเซเชฒ เชเซเชฒเชฎเชจเซ เชธเชฎเซเชน เชจเชฟเชถเซเชเชฟเชค เชจเชฅเซ เชคเซเชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชเชชเชฐเซเชเซเชค เช เชญเชฟเชตเซเชฏเชเซเชคเชฟ เชเชคเชฟเชถเซเชฒ เชฐเซเชคเซ เชฌเชจเชพเชตเซเชถเซเช. เชเชพเชฒเซ เชฆเชฐเซเช เชเซเชฒเชฎเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชชเซเชฐเชฅเชฎ เชซเชเชเซเชถเชจเชจเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซเช, เชเชเซเชเซเชค เช เชจเซ เชเชจเชชเซเช เชกเซเชเชพเชจเซ เชธเชเชฆเชฐเซเชญ เชเชชเชตเชพ เชฎเชพเชเซ เชชเชเชเซเชคเชฟ เช เชจเซ inp เชเชฒเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ:
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 เชชเชพเชธเซ เชธเชฟเชฒเซเชเซเช เชซเชเชเซเชถเชจ เชเซ - ?[เชฌเซเชฒเชฟเชฏเชจ เชฒเชฟเชธเซเช;เชฒเชฟเชธเซเช1;เชฒเชฟเชธเซเช2] - เชเซ เชชเซเชฐเชฅเชฎ เชฆเชฒเซเชฒเชฎเชพเช เชถเชฐเชคเชจเซ เชเชงเชพเชฐเซ เชฒเชฟเชธเซเช 1 เช เชฅเชตเชพ 2เชฎเชพเชเชฅเซ เชฎเซเชฒเซเชฏ เชชเชธเชเชฆ เชเชฐเซ เชเซ:
// high -> ?[isFirst;inp`high;row[`high]|inp`high]
// @ - ัะพะถะต ะพะฑะพะฑัะตะฝะฝะพะต ะฟัะธัะฒะฐะธะฒะฐะฝะธะต ะดะปั ัะปััะฐั ะบะพะณะดะฐ ะธะฝะดะตะบั ะฝะตะณะปัะฑะพะบะธะน
@[`aggExpression;specialCols;{[x;y]"?[isFirst;inp`",y,";",x,"]"};string specialCols];
เช เชนเซเช เชฎเซเช เชฎเชพเชฐเชพ เชเชพเชฐเซเชฏ (เชธเชฐเซเชชเชพเชเชพเชฐ เชเซเชเชธเชฎเชพเช เช เชญเชฟเชตเซเชฏเชเซเชคเชฟ) เชธเชพเชฅเซ เชธเชพเชฎเชพเชจเซเชฏเชเซเชค เช เชธเชพเชเชจเชฎเซเชจเซเช เชเชนเซเชฏเชพ เชเซ. เชคเซ เชตเชฐเซเชคเชฎเชพเชจ เชฎเซเชฒเซเชฏ (เชชเซเชฐเชฅเชฎ เชฆเชฒเซเชฒ) เช เชจเซ เชตเชงเชพเชฐเชพเชจเซ เชฆเชฒเซเชฒ เชฎเซเชณเชตเซ เชเซ, เชเซ เชนเซเช 4 เชฅเซ เชชเชฐเชฟเชฎเชพเชฃเชฎเชพเช เชชเชธเชพเชฐ เชเชฐเซเช เชเซเช.
เชเชพเชฒเซ เชฌเซเชเชฐเซ เชธเซเชชเซเชเชฐเซเชธ เช เชฒเชเชฅเซ เชเชฎเซเชฐเซเช, เชเชพเชฐเชฃ เชเซ เชเชพเชฐเซเชฏ เชคเซเชฎเชจเชพ เชฎเชพเชเซ เชธเชฎเชพเชจ เชเซ:
// volume -> row[`volume]+inp`volume
aggExpression[accumulatorCols]:{"row[`",x,"]+inp`",x } each string accumulatorCols;
เช Q เชงเซเชฐเชฃเซ เชฆเซเชตเชพเชฐเชพ เชธเชพเชฎเชพเชจเซเชฏ เชธเซเชเชชเชฃเซ เชเซ, เชชเชฐเชเชคเซ เชนเซเช เชเช เช เชธเชฎเชฏเซ เชฎเซเชฒเซเชฏเซเชจเซ เชธเซเชเชฟ เชธเซเชเชชเซ เชฐเชนเซเชฏเซ เชเซเช. เชเซเชฒเซเชฒเซ, เชเชพเชฒเซ เชฎเซเชเซเชฏ เชเชพเชฐเซเชฏ เชฌเชจเชพเชตเซเช:
// ":",/: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 เชซเชเชเซเชถเชจ (Q เชธเซเชตเชพเช เชฎเชพเชเซ เช เชซเชเชเซเชถเชจเชจเซเช เชชเชฐเชเชชเชฐเชพเชเชค เชจเชพเชฎ), เชเซเชจเซ เชเซเชฒเชพเชฏเชเช เชฆเซเชตเชพเชฐเชพ เชกเซเชเชพ เชเชฎเซเชฐเชตเชพ เชฎเชพเชเซ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ:
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 เชฎเชฟเชฒเชฟเชฏเชจ เชชเชเชเซเชคเชฟเช) เช เชคเซเชฏเชเชค เชฎเซเชเซเช เชเซ; เชเชตเชพ เชเชฟเชธเซเชธเชพเชเชฎเชพเช, เชธเซเชตเชพเชจเชพ เชเซเชเชฒเชพเช เชเซเชฒเซเชจเซเชธ (เช เชฅเชตเชพ เชกเชเชจเซเช เชเซเชฒเซเชจเซเชธ เชชเชฃ) เชฒเซเชเช เชเชฐเชตเชพ เชธเชพเชฎเชพเชจเซเชฏ เชเซ, เชเซเชฎเชพเชเชฅเซ เชฆเชฐเซเช เช เชเซเชทเชฐเซเชจเชพ เชฎเชพเชคเซเชฐ เชญเชพเช เชชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ. เชคเซเชฎ เชเชคเชพเช, เชชเชฐเชฟเชฃเชพเชฎ เชเช เช เชฐเซเชฅเชเชเชจ เชญเชพเชทเชพ เชฎเชพเชเซ เชชเซเชฐเชญเชพเชตเชถเชพเชณเซ เชเซ เชเซ เชฎเซเชเซเชฏเชคเซเชตเซ เชกเซเชเชพ เชธเซเชเซเชฐเซเช เชชเชฐ เชงเซเชฏเชพเชจ เชเซเชจเซเชฆเซเชฐเชฟเชค เชเชฐเซ เชเซ.
เชชเซเชฐเชถเซเชจ เชเชฆเซเชฆเชญเชตเซ เชถเชเซ เชเซ เชเซ เชถเชพ เชฎเชพเชเซ เชธเชฎเชฏ เชฆเชฐเซเช เช เชชเชกเซเชเชจเชพ เชเชฆ เชธเชพเชฅเซ เชฌเชฟเชจ-เชฐเซเชเซเชฏ เชฐเซเชคเซ เชตเชงเซ เชเซ. เชเชพเชฐเชฃ เช เชเซ เชเซ เชธเชเชเซเชเชจ เชเชพเชฐเซเชฏ เชตเชพเชธเซเชคเชตเชฎเชพเช เชธเซ เชซเชเชเซเชถเชจ เชเซ, เชเซ เช เชชเชกเซเชเชเช เชเชฐเชคเชพเช เชตเชงเซ เชเชพเชฐเซเชฏเชเซเชทเชฎ เชเซ. เชเซเชเซเชเชธ เช เชชเชกเซเช เชเชฆ (เชฒเชเชญเช 10.000) เชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ, เช เชชเชกเซเชเชเช เชคเซเชจเซ เชเซเชเชฎเชฐเซเชฏเชพเชฆเชพ เชธเซเชงเซ เชชเชนเซเชเชเซ เชเซ เช เชจเซ เชชเชเซ เชคเซเชจเซ เช เชฎเชฒ เชธเชฎเชฏ เช เชชเชกเซเชเชจเชพ เชเชฆ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชจเชฅเซ. เชคเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชชเชเชฒเชพ Q เชจเซ เชเชพเชฐเชฃเซ เชเซ เชเซ เชธเซเชตเชพ เชเชตเชพ เชเชฅเซเชฅเชพเชจเชพ เชกเซเชเชพเชจเซ เชกเชพเชฏเชเซเชธเซเช เชเชฐเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชเซ. เช เชฆเชฐเซเชถเชพเชตเซ เชเซ เชเซ เชฎเซเชเชพ เชกเซเชเชพ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ เชฏเซเชเซเชฏ เช เชฒเซเชเซเชฐเชฟเชงเชฎ เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซเช เชเซเชเชฒเซเช เชฎเชนเชคเซเชตเชจเซเช เชเซ. เชฌเซเชเซ เชฎเซเชฆเซเชฆเซ เชฎเซเชฎเชฐเซเชฎเชพเช เชกเซเชเชพเชจเซ เชฏเซเชเซเชฏ เชธเชเชเซเชฐเชน เชเซ. เชเซ เชกเซเชเชพ เชธเซเชคเชเชญเชพเชเซเชฏ เชฐเซเชคเซ เชธเชเชเซเชฐเชนเชฟเชค เชจ เชนเซเชฏ เช เชฅเชตเชพ เชธเชฎเชฏเชธเชฐ เชเชฐเซเชกเชฐ เชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชนเซเชฏ, เชคเซ เชชเชเซ เชเชชเชฃเซ TLB เชเซเชถ เชฎเชฟเชธ เชเซเชตเซ เชตเชธเซเชคเซเชฅเซ เชชเชฐเชฟเชเชฟเชค เชฅเชเชถเซเช - เชชเซเชฐเซเชธเซเชธเชฐ เชเชกเซเชฐเซเชธ เชเซเชถเชฎเชพเช เชฎเซเชฎเชฐเซ เชชเซเชทเซเช เชธเชฐเชจเชพเชฎเชพเชเชจเซ เชเซเชฐเชนเชพเชเชฐเซ. เชธเชฐเชจเชพเชฎเซเช เชถเซเชงเชตเชพเชฎเชพเช เชฒเชเชญเช 30 เชเชฃเซ เชตเชงเซ เชธเชฎเชฏ เชฒเชพเชเซ เชเซ เชเซ เช เชธเชซเชณ เชนเซเชฏ, เช เชจเซ เชเซ เชกเซเชเชพ เชตเซเชฐเชตเชฟเชเซเชฐ เชฅเช เชเชพเชฏ, เชคเซ เชคเซ เชธเซเชตเชพเชจเซ เชเชฃเซ เชตเชเชค เชงเซเชฎเซเช เชเชฐเซ เชถเชเซ เชเซ.
เชจเชฟเชทเซเชเชฐเซเชท
เช เชฒเซเชเชฎเชพเช, เชฎเซเช เชฌเชคเชพเชตเซเชฏเซเช เชเซ KDB+ เช เชจเซ Q เชกเซเชเชพเชฌเซเช เชฎเชพเชคเซเชฐ เชฎเซเชเชพ เชกเซเชเชพเชจเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพ เช เชจเซ เชคเซเชจเซ เชชเชธเชเชฆเชเซ เชฆเซเชตเชพเชฐเชพ เชธเชฐเชณเชคเชพเชฅเซ เชเชเซเชธเซเชธ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชจเชนเซเช, เชชเชฃ เชกเซเชเชพ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชธเซเชตเชพเช เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชชเชฃ เชฏเซเชเซเชฏ เชเซ เชเซ เชฒเชพเชเซ เชชเชเชเซเชคเชฟเช/เชเซเชเชพเชฌเชพเชเชเซเชธ เชกเซเชเชพเชจเซ เชกเชพเชฏเชเซเชธเซเช เชเชฐเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชเซ. เชเช เช Q เชชเซเชฐเชเซเชฐเชฟเชฏเชพ. Q เชญเชพเชทเชพ เชชเซเชคเซ เช เชคเซเชจเซ เชตเซเชเซเชเชฐ เชชเซเชฐเชเซเชคเชฟ, เชฌเชฟเชฒเซเช-เชเชจ SQL เชฌเซเชฒเซ เชฆเซเชญเชพเชทเชฟเชฏเชพ เช เชจเซ เชฒเชพเชเชฌเซเชฐเซเชฐเซ เชเชพเชฐเซเชฏเซเชจเชพ เชเซเชฌ เช เชธเชซเชณ เชธเชฎเซเชนเชจเซ เชเชพเชฐเชฃเซ เชกเซเชเชพ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชธเชเชฌเชเชงเชฟเชค เช เชฒเซเชเซเชฐเชฟเชงเชฎเซเชธเชจเชพ เช เชคเซเชฏเชเชค เชธเชเชเซเชทเชฟเชชเซเชค เช เชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎ เช เชฎเชฒเซเชเชฐเชฃ เชฎเชพเชเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเซ เชเซ.
เชนเซเช เชจเซเชเชง เชเชฐเซเชถ เชเซ เชเชชเชฐเซเชเซเชค เช เชฎเชพเชคเซเชฐ Q เชถเซเช เชเชฐเซ เชถเชเซ เชเซ เชคเซเชจเซ เชเช เชญเชพเช เชเซ, เชคเซเชฎเชพเช เช
เชจเซเชฏ เชตเชฟเชถเชฟเชทเซเช เชธเซเชตเชฟเชงเชพเช เชชเชฃ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเช เช
เชคเซเชฏเชเชค เชธเชฐเชณ IPC เชชเซเชฐเซเชเซเชเซเชฒ เชเซ เชตเซเชฏเชเซเชคเชฟเชเชค Q เชชเซเชฐเชเซเชฐเชฟเชฏเชพเช เชตเชเซเชเซเชจเซ เชธเซเชฎเชพเชจเซ เชญเซเชเชธเซ เชจเชพเชเซ เชเซ เช
เชจเซ เชคเชฎเชจเซ เชเชฎเชพเชเชฅเซ เชธเซเชเชเชกเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชเชจเซ เชเช เชจเซเชเชตเชฐเซเชเชฎเชพเช เชเซเชกเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ, เชเซ เชตเชฟเชถเซเชตเชจเชพ เชตเชฟเชตเชฟเชง เชญเชพเชเซเชฎเชพเช เชกเชเชจเซเช เชธเชฐเซเชตเชฐเซเชธ เชชเชฐ เชธเซเชฅเชฟเชค เชนเซเช เชถเชเซ เชเซ.
เชธเซเชฐเซเชธ: www.habr.com