เจคเฉเจธเฉเจ เจเจธ เจฌเจพเจฐเฉ เจชเฉเฉเจน เจธเจเจฆเฉ เจนเฉ เจเจฟ KDB+ เจ เจงเจพเจฐ, Q เจชเฉเจฐเฉเจเจฐเจพเจฎเจฟเฉฐเจ เจญเจพเจธเจผเจพ เจเฉ เจนเจจ, เจเจนเจจเจพเจ เจฆเฉเจเจ เจธเจผเจเจคเฉเจเจ เจ เจคเฉ เจเจฎเจเจผเฉเจฐเฉเจเจ เจฎเฉเจฐเฉ เจชเจฟเจเจฒเฉ เจตเจฟเฉฑเจ เจเฉ เจนเจจ เจ เจคเฉ เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ เจเจพเจฃ-เจชเจเจพเจฃ เจตเจฟเฉฑเจเฅค เจฒเฉเจ เจตเจฟเฉฑเจ, เจ เจธเฉเจ Q 'เจคเฉ เจเฉฑเจ เจธเฉเจตเจพ เจฒเจพเจเฉ เจเจฐเจพเจเจเฉ เจเฉ เจเจเจฃ เจตเจพเจฒเฉ เจกเฉเจเจพ เจธเจเฉเจฐเฉเจฎ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจฐเฉเจเฉ เจ เจคเฉ "เจฐเฉเจ เจฒ เจเจพเจเจฎ" เจฎเฉเจก เจตเจฟเฉฑเจ เจนเจฐ เจฎเจฟเฉฐเจ เจตเฉฑเจ-เจตเฉฑเจ เจเจเฉเจเจฐเจฃ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจเจฃเจจเจพ เจเจฐเฉเจเฉ (เจ เจฐเจฅเจพเจค, เจเจธ เจเฉเจฒ เจกเฉเจเจพ เจฆเฉ เจ เจเจฒเฉ เจนเจฟเฉฑเจธเฉ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเจฐ เจเฉเจเจผ เจฆเฉ เจเจฃเจจเจพ เจเจฐเจจ เจฆเจพ เจธเจฎเจพเจ เจนเฉเจตเฉเจเจพ)เฅค Q เจฆเฉ เจฎเฉเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจเจน เจนเฉ เจเจฟ เจเจน เจเฉฑเจ เจตเฉเจเจเจฐ เจญเจพเจธเจผเจพ เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจธเจฟเฉฐเจเจฒ เจเจฌเจเฉเจเจ เจจเจพเจฒ เจจเจนเฉเจ, เจธเจเฉเจ เจเจนเจจเจพเจ เจฆเฉ เจเจฐเฉ, เจเจฐเฉ เจฆเฉ เจเจฐเฉ เจ เจคเฉ เจนเฉเจฐ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจตเจธเจคเฉเจเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค Q เจ เจคเฉ เจเจธเจฆเฉ เจฐเจฟเจธเจผเจคเฉเจฆเจพเจฐ K, J, APL เจตเจฐเจเฉเจเจ เจญเจพเจธเจผเจพเจตเจพเจ เจเจชเจฃเฉ เจธเฉฐเจเฉเจชเจคเจพ เจฒเจ เจฎเจธเจผเจนเฉเจฐ เจนเจจเฅค เจ เจเจธเจฐ, เจเฉฑเจ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจเฉ Java เจตเจฐเจเฉ เจเฉฑเจ เจเจพเจฃเฉ-เจชเจเจพเจฃเฉ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจ เจเฉเจก เจฆเฉเจเจ เจเจ เจธเจเฉเจฐเฉเจจเจพเจ เจฒเฉเจเจฆเจพ เจนเฉ, เจเจนเจจเจพเจ เจเฉฑเจคเฉ เจเฉเจ เจฒเจพเจเจจเจพเจ เจตเจฟเฉฑเจ เจฒเจฟเจเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจน เจเจน เจนเฉ เจเฉ เจฎเฉเจ เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ.

เจเจพเจฃ เจชเจเจพเจฃ
KDB+ เจเฉฑเจ เจเจพเจฒเจฎ เจกเฉเจเจพเจฌเฉเจธ เจนเฉ เจเฉ เจฌเจนเฉเจค เจตเฉฑเจกเฉ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจ เจกเฉเจเจพ 'เจคเฉ เจเฉเจเจฆเฉเจฐเจฟเจค เจนเฉ, เจเฉฑเจ เจเจพเจธ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจเจฐเจกเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ (เจฎเฉเฉฑเจ เจคเฉเจฐ 'เจคเฉ เจธเจฎเฉเจ เจฆเฉเจเจฐเจพ)เฅค เจเจน เจฎเฉเฉฑเจ เจคเฉเจฐ 'เจคเฉ เจตเจฟเฉฑเจคเฉ เจธเฉฐเจธเจฅเจพเจตเจพเจ - เจฌเฉเจเจเจพเจ, เจจเจฟเจตเฉเจธเจผ เจซเฉฐเจกเจพเจ, เจฌเฉเจฎเจพ เจเฉฐเจชเจจเฉเจเจ เจตเจฟเฉฑเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค Q เจญเจพเจธเจผเจพ KDB+ เจฆเฉ เจ เฉฐเจฆเจฐเฉเจจเฉ เจญเจพเจธเจผเจพ เจนเฉ เจเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจธ เจกเฉเจเจพ เจจเจพเจฒ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ เจขเฉฐเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค Q เจตเจฟเจเจพเจฐเจงเจพเจฐเจพ เจธเฉฐเจเฉเจชเจคเจพ เจ เจคเฉ เจเฉเจธเจผเจฒเจคเจพ เจนเฉ, เจเจฆเฉเจ เจเจฟ เจธเจชเจธเจผเจเจคเจพ เจฆเฉ เจฌเจฒเฉ เจฆเจฟเฉฑเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจเจน เจเจธ เจคเฉฑเจฅ เจฆเฉเจเจฐเจพ เจเจพเจเจเจผ เจนเฉ เจเจฟ เจตเฉเจเจเจฐ เจญเจพเจธเจผเจพ เจจเฉเฉฐ เจเจฟเจธเฉ เจตเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจธเจฎเจเจฃเจพ เจฎเฉเจธเจผเจเจฒ เจนเฉเจตเฉเจเจพ, เจ เจคเฉ เจฐเจฟเจเจพเจฐเจกเจฟเฉฐเจ เจฆเฉ เจธเฉฐเจเฉเจชเจคเจพ เจ เจคเฉ เจญเจฐเจชเฉเจฐเจคเจพ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจธเจเฉเจฐเฉเจจ เจคเฉ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฆเฉ เจฌเจนเฉเจค เจตเฉฑเจกเฉ เจนเจฟเฉฑเจธเฉ เจจเฉเฉฐ เจตเฉเจเจฃ เจฆเฉ เจเจเจฟเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ, เจเฉ เจเจเจฐเจเจพเจฐ เจเจธเจจเฉเฉฐ เจธเจฎเจเจฃเจพ เจธเฉเจเจพ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค
เจเจธ เจฒเฉเจ เจตเจฟเฉฑเจ เจ เจธเฉเจ Q เจตเจฟเฉฑเจ เจเฉฑเจ เจชเฉเจฐเจพ เจชเฉเจฐเฉเจเจฐเจพเจฎ เจฒเจพเจเฉ เจเฉเจคเจพ เจนเฉ เจ เจคเฉ เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจ เจเจผเจฎเจพเจเจฃเจพ เจเจพเจน เจธเจเจฆเฉ เจนเฉเฅค เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจ เจธเจฒ Q เจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉเฅค เจคเฉเจธเฉเจ kx เจเฉฐเจชเจจเฉ เจฆเฉ เจตเฉเฉฑเจฌเจธเจพเจเจ 'เจคเฉ เจฎเฉเจซเจผเจค 32-เจฌเจฟเจ เจธเฉฐเจธเจเจฐเจฃ เจกเจพเจเจจเจฒเฉเจก เจเจฐ เจธเจเจฆเฉ เจนเฉ - . เจเฉฑเจฅเฉ, เจเฉเจเจฐ เจคเฉเจธเฉเจ เจฆเจฟเจฒเจเจธเจชเฉ เจฐเฉฑเจเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ Q, เจเจฟเจคเจพเจฌ เจฌเจพเจฐเฉ เจนเจตเจพเจฒเจพ เจเจพเจฃเจเจพเจฐเฉ เจฎเจฟเจฒเฉเจเฉ เจ เจคเฉ เจเจธ เจตเจฟเจธเจผเฉ 'เจคเฉ เจตเฉฑเจ-เจตเฉฑเจ เจฒเฉเจเฅค
เจธเจฎเฉฑเจธเจฟเจ เจฆเจพ เจเจ เจจ
เจเฉฑเจ เจธเจฐเฉเจค เจนเฉ เจเฉ เจนเจฐ 25 เจฎเจฟเจฒเฉเจธเจเจฟเฉฐเจ เจตเจฟเฉฑเจ เจกเฉเจเจพ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจญเฉเจเจฆเจพ เจนเฉเฅค เจเจฟเจเจเจเจฟ KDB+ เจฆเฉ เจตเจฐเจคเฉเจ เจฎเฉเฉฑเจ เจคเฉเจฐ 'เจคเฉ เจตเจฟเฉฑเจค เจตเจฟเฉฑเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจ เจธเฉเจ เจฎเฉฐเจจ เจฒเจตเจพเจเจเฉ เจเจฟ เจเจน เจฒเฉเจฃ-เจฆเฉเจฃ (เจตเจชเจพเจฐ) เจฆเฉ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจนเฉ, เจเจฟเจธ เจตเจฟเฉฑเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจพเจฒเจฎ เจนเจจ: เจธเจฎเจพเจ (เจธเจฎเจพเจ เจฎเจฟเจฒเฉเจธเจเจฟเฉฐเจ เจตเจฟเฉฑเจ), เจธเจฟเจฎ (เจธเจเจพเจ เจเจเจธเจเฉเจเจ 'เจคเฉ เจเฉฐเจชเจจเฉ เจฆเจพ เจ เจนเฉเจฆเจพ - IBM, AAPL,โฆ), เจเฉเจฎเจค (เจเจน เจเฉเจฎเจค เจเจฟเจธ 'เจคเฉ เจธเจผเฉเจ เจฐ เจเจฐเฉเจฆเฉ เจเจ เจธเจจ), เจเจเจพเจฐ (เจฒเฉเจฃ-เจฆเฉเจฃ เจฆเจพ เจเจเจพเจฐ)เฅค 25 เจฎเจฟเจฒเฉเจธเจเจฟเฉฐเจ เจ เฉฐเจคเจฐเจพเจฒ เจฎเจจเจฎเจพเจจเฉ เจนเฉ, เจจเจพ เจฌเจนเฉเจค เจเฉเจเจพ เจ เจคเฉ เจจเจพ เจฌเจนเฉเจค เจฒเฉฐเจฌเจพเฅค เจเจธเจฆเฉ เจฎเฉเจเฉเจฆเจเฉ เจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจกเฉเจเจพ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจฌเจซเจฐ เจเฉเจคเฉ เจธเฉเจตเจพ เจตเจฟเฉฑเจ เจเจเจเจฆเจพ เจนเฉเฅค เจฎเฉเจเฉเจฆเจพ เจฒเฉเจก เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจเจคเฉเจธเจผเฉเจฒ เจฌเจซเจฐเจฟเฉฐเจ เจธเจฎเฉเจค, เจธเฉเจตเจพ เจตเจพเจฒเฉ เจชเจพเจธเฉ เจฌเจซเจฐเจฟเฉฐเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจจเจพ เจเจธเจพเจจ เจนเฉเจตเฉเจเจพ, เจชเจฐ เจธเจฐเจฒเจคเจพ เจฒเจ, เจ เจธเฉเจ เจเฉฑเจ เจจเจฟเจธเจผเจเจฟเจค เจ เฉฐเจคเจฐเจพเจฒ 'เจคเฉ เจงเจฟเจเจจ เจฆเฉเจตเจพเจเจเฉเฅค
เจธเฉเจตเจพ เจจเฉเฉฐ เจธเจฟเจฎ เจเจพเจฒเจฎ เจคเฉเจ เจนเจฐเฉเจ เจเจเจฃ เจตเจพเจฒเฉ เจชเฉเจฐเจคเฉเจ เจฒเจ เจนเจฐ เจฎเจฟเฉฐเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจเจฐเจจเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ เจเฉฑเจ เจธเจฎเฉเจนเจฟเจ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเจพ เจเฉฑเจ เจธเฉเฉฑเจ - เจ เจงเจฟเจเจคเจฎ เจเฉเจฎเจค, เจเจธเจค เจเฉเจฎเจค, เจเฉเฉ เจฆเจพ เจเจเจพเจฐ, เจเจฆเจฟเฅค เจฒเจพเจญเจฆเจพเจเจ เจเจพเจฃเจเจพเจฐเฉ. เจธเจฐเจฒเจคเจพ เจฒเจ, เจ เจธเฉเจ เจเจน เจฎเฉฐเจจ เจฒเจตเจพเจเจเฉ เจเจฟ เจธเจพเจฐเฉ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจเจฃเจจเจพ เจฒเจเจพเจคเจพเจฐ เจเฉเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ, เจเจฟเจตเฉเจ เจเจฟ. เจเฉฑเจ เจจเจตเจพเจ เจฎเฉเฉฑเจฒ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ, เจฆเฉ เจจเฉฐเจฌเจฐเจพเจ เจจเฉเฉฐ เจเจพเจฃเจจเจพ เจเจพเจซเจผเฉ เจนเฉ - เจชเฉเจฐเจพเจฃเฉ เจ เจคเฉ เจเจเจฃ เจตเจพเจฒเฉ เจฎเฉเฉฑเจฒเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจซเฉฐเจเจธเจผเจจ เจ เจงเจฟเจเจคเจฎ, เจเจธเจค, เจเฉเฉ เจตเจฟเฉฑเจ เจเจน เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจนเฉ, เจชเจฐ เจฎเฉฑเจงเจฎ เจซเฉฐเจเจธเจผเจจ เจจเจนเฉเจ เจนเฉเฅค
เจ เจธเฉเจ เจเจน เจตเฉ เจฎเฉฐเจจ เจฒเจตเจพเจเจเฉ เจเจฟ เจเจจเจเจฎเจฟเฉฐเจ เจกเฉเจเจพ เจธเจเฉเจฐเฉเจฎ เจฆเจพ เจธเจฎเจพเจ เจเจฐเจกเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉเฅค เจเจธ เจจเจพเจฒ เจธเจพเจจเฉเฉฐ เจเจเจฐเฉ เจธเจฎเฉเจ เจคเฉฑเจ เจเฉฐเจฎ เจเจฐเจจ เจฆเจพ เจฎเฉเจเจพ เจฎเจฟเจฒเฉเจเจพเฅค เจ เจญเจฟเจเจธ เจตเจฟเฉฑเจ, เจเฉเจ เจ เฉฑเจชเจกเฉเจ เจฆเฉเจฐ เจจเจพเจฒ เจนเฉเจฃ เจฆเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจฎเฉเจเฉเจฆเจพ เจ เจคเฉ เจชเจฟเจเจฒเฉ เจฎเจฟเฉฐเจเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจฏเฉเจ เจนเฉเจฃเจพ เจเจพเจซเจผเฉ เจนเฉ. เจธเจพเจฆเจเฉ เจฒเจ, เจ เจธเฉเจ เจเจธ เจเฉเจธ 'เจคเฉ เจตเจฟเจเจพเจฐ เจจเจนเฉเจ เจเจฐเจพเจเจเฉ.
เจเจเจฐเฉเจเฉเจธเจผเจจ เจซเฉฐเจเจธเจผเจจ
เจฒเฉเฉเฉเจเจฆเฉ เจเจเจฐเฉเจเฉเจธเจผเจจ เจซเฉฐเจเจธเจผเจจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจเจ เจนเจจเฅค เจฎเฉเจ เจธเฉเจตเจพ 'เจคเฉ เจฒเฉเจก เจตเจงเจพเจเจฃ เจฒเจ เจเจจเฉเจนเจพเจ เจตเจฟเฉฑเจเฉเจ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจฒเจฟเจ:
- เจเฉฑเจ - เจ เจงเจฟเจเจคเจฎ เจเฉเจฎเจค - เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจตเฉฑเจง เจคเฉเจ เจตเฉฑเจง เจเฉเจฎเจคเฅค
- เจเฉฑเจ - เจเฉฑเจเฉ-เจเฉฑเจ เจเฉเจฎเจค - เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจเฉฑเจเฉ-เจเฉฑเจ เจเฉเจฎเจคเฅค
- เจชเจนเจฟเจฒเฉ เจเฉเจฎเจค - เจชเจนเจฟเจฒเฉ เจเฉเจฎเจค - เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจชเจนเจฟเจฒเฉ เจเฉเจฎเจคเฅค
- เจเจเจฐเฉ เจเฉเจฎเจค - เจเจเจฐเฉ เจเฉเจฎเจค - เจเจเจฐเฉ เจเฉเจฎเจค เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจเฅค
- เจชเจนเจฟเจฒเจพ เจเจเจพเจฐ - เจชเจนเจฟเจฒเจพ เจเจเจพเจฐ - เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจชเจนเจฟเจฒเจพ เจตเจชเจพเจฐ เจเจเจพเจฐเฅค
- lastSize - เจเจเจฐเฉ เจเจเจพเจฐ - เจเฉฑเจ เจฎเจฟเฉฐเจ เจตเจฟเฉฑเจ เจเจเจฐเฉ เจตเจชเจพเจฐ เจฆเจพ เจเจเจพเจฐเฅค
- numTrades - เจเจฟเจฃเจคเฉ i - เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจตเจชเจพเจฐเจพเจ เจฆเฉ เจเจฟเจฃเจคเฉเฅค
- เจตเจพเจฒเฉเจ เจฎ - เจเฉเฉ เจฆเจพ เจเจเจพเจฐ - เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจตเจชเจพเจฐ เจฆเฉ เจเจเจพเจฐ เจฆเจพ เจเฉเฉเฅค
- pvolume - เจเฉเฉ เจเฉเจฎเจค - เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจเฉเจฎเจคเจพเจ เจฆเจพ เจเฉเฉ, เจเจธเจค เจเฉเจฎเจค เจฒเจ เจฒเฉเฉเฉเจเจฆเจพ เจนเฉเฅค
- - เจเฉเฉฑเจฒ เจเจฐเจจเจเจตเจฐ เจเฉเจฎเจค * เจเจเจพเจฐ - เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจ เจฒเฉเจฃ-เจฆเฉเจฃ เจฆเฉ เจเฉเฉฑเจฒ เจฎเจพเจคเจฐเจพเฅค
- avgPrice โ pvolume%numTrades โ เจเจธเจค เจเฉเจฎเจค เจชเฉเจฐเจคเฉ เจฎเจฟเฉฐเจเฅค
- avgSize โ เจตเจพเจฒเฉเจ เจฎ%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 เจ เฉฐเจคเจฎ เจธเจฎเฉเฉฑเจเฉ เจธเจพเจฐเจฃเฉ เจคเฉเจ เจเฉฑเจ เจคเจฟเจเจฐ เจฒเจพเจเจจ เจนเฉ, เจเจฟเฉฑเจฅเฉ เจเจน เจธเจนเฉ เจธเจฟเจฎ เจ เจคเฉ เจธเจฎเจพเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจพ เจฌเจพเจเฉ เจนเฉเฅค เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจจเจตเฉเจเจ เจเจคเจพเจฐเจพเจ เจเฉเฉเจจ เจฒเจ เจตเจฐเจค เจธเจเจฆเฉ เจนเฉเฅค
เจเจเจฐเฉเจเฉเจธเจผเจจ เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ เจธเจพเจจเฉเฉฐ เจเจเจเฉเจฒเจธ เจฆเฉ เจฒเฉเฉ เจชเจตเฉเจเฉเฅค เจธเฉเจเฉ เจจเฉเฉฐ เจเจธ เจเฉเจฐเจฎ เจฆเฉ เจเจพเจฐเจจ เจเจฒเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ 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 เจธเจฎเฉเจเจฐเจจ เจตเจพเจฒเฉ เจเฉฑเจ เจธเจเฉเจฐเจฟเฉฐเจ เจจเฉเฉฐ เจเฉฑเจ เจฎเฉเฉฑเจฒ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฆเจพ เจนเฉ เจเฉ เจเจตเจฒ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจชเจพเจธ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเฉ เจซเฉฐเจเจธเจผเจจ เจเฉเจฃ เจตเจฟเฉฑเจ เจฒเฉเฉเฉเจเจฆเจพ เจนเฉเฅค เจเจน เจตเฉ เจจเฉเจ เจเจฐเฉ เจเจฟ เจชเฉเจฐเฉเจชเฉเจฐเฉเจธเฉเจธ เจจเฉเฉฐ เจเฉเจฃเจตเฉเจ เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจเฉฑเจ เจชเฉเจฐเฉเจเฉเจเจธเจผเจจ (เจ เจฐเจฅเจพเจค, เจ เฉฐเจธเจผเจ เจคเฉเจฐ 'เจคเฉ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเจฐเจเฉเจฎเฉเจเจเจพเจ เจตเจพเจฒเจพ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ) เจตเจเฉเจ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจเฉฑเจ เจเจฐเจเฉเจฎเฉเจเจ (เจธเจพเจฐเจฃเฉ) เจเฉเฉฐเจฎ เจนเฉเฅค เจเฉเจเจฐ เจ เจธเฉเจ เจเฉฑเจ เจธเจพเจฐเจฃเฉ เจตเจฟเฉฑเจ เจชเฉเจฐเฉเจชเฉเจฐเฉเจธเฉเจธ เจฒเจพเจเฉ เจเจฐเจฆเฉ เจนเจพเจ, เจคเจพเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจ เจธเฉฐเจเฉเจเจฟเจค เจเฉเจฌเจฒ เจฎเจฟเจฒเฉเจเจพเฅค
เจฆเฉเจเจพ เจชเฉเจพเจ เจเจเจฐเฉเจเฉเจเจฟเจก เจเฉเจฌเจฒ เจจเฉเฉฐ เจ เจชเจกเฉเจ เจเจฐ เจฐเจฟเจนเจพ เจนเฉเฅค เจเจ เจชเจนเจฟเจฒเจพเจ เจ เจฒเจเฉเจฐเจฟเจฆเจฎ เจจเฉเฉฐ เจธเฉเจกเฉเจเฉเจก เจตเจฟเฉฑเจ เจฒเจฟเจเฉเจ:
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 เจตเจฟเฉฑเจ, เจฒเฉเจชเจธ เจฆเฉ เจฌเจเจพเจ เจฎเฉเจช/เจฐเจฟเจกเจฟเจเจธ เจซเฉฐเจเจธเจผเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเจพ เจเจฎ เจเฉฑเจฒ เจนเฉเฅค เจชเจฐ เจเจฟเจเจเจเจฟ 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 เจตเจฟเฉฑเจ เจเฉฑเจ เจเฉเจฃ เจซเฉฐเจเจธเจผเจจ เจนเฉ - ?[Boolian list;list1;list2] - เจเฉ เจเจฟ เจชเจนเจฟเจฒเฉ เจเจฐเจเฉเจฎเฉเจเจ เจตเจฟเฉฑเจ เจธเจฅเจฟเจคเฉ เจฆเฉ เจ เจงเจพเจฐ เจคเฉ เจธเฉเจเฉ 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
