เจฐเฉ€เจ…เจฒ-เจŸเจพเจˆเจฎ เจธเฉ‡เจตเจพ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Q เจ…เจคเฉ‡ KDB+ เจญเจพเจธเจผเจพ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚

เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ KDB+ เจ…เจงเจพเจฐ, Q เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎเจฟเฉฐเจ— เจญเจพเจธเจผเจพ เจ•เฉ€ เจนเจจ, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเจผเจ•เจคเฉ€เจ†เจ‚ เจ…เจคเฉ‡ เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจฎเฉ‡เจฐเฉ‡ เจชเจฟเจ›เจฒเฉ‡ เจตเจฟเฉฑเจš เจ•เฉ€ เจนเจจ เจฒเฉ‡เจ– เจ…เจคเฉ‡ เจธเฉฐเจ–เฉ‡เจช เจตเจฟเฉฑเจš เจœเจพเจฃ-เจชเจ›เจพเจฃ เจตเจฟเฉฑเจšเฅค เจฒเฉ‡เจ– เจตเจฟเฉฑเจš, เจ…เจธเฉ€เจ‚ Q 'เจคเฉ‡ เจ‡เฉฑเจ• เจธเฉ‡เจตเจพ เจฒเจพเจ—เฉ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡ เจœเฉ‹ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจกเฉ‡เจŸเจพ เจธเจŸเฉเจฐเฉ€เจฎ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฐเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ "เจฐเฉ€เจ…เจฒ เจŸเจพเจˆเจฎ" เจฎเฉ‹เจก เจตเจฟเฉฑเจš เจนเจฐ เจฎเจฟเฉฐเจŸ เจตเฉฑเจ–-เจตเฉฑเจ– เจเจ•เฉ€เจ•เจฐเจฃ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเฉ‡เจ—เฉ€ (เจ…เจฐเจฅเจพเจค, เจ‡เจธ เจ•เฉ‹เจฒ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจ…เจ—เจฒเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจนเจฐ เจšเฉ€เจœเจผ เจฆเฉ€ เจ—เจฃเจจเจพ เจ•เจฐเจจ เจฆเจพ เจธเจฎเจพเจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ)เฅค Q เจฆเฉ€ เจฎเฉเฉฑเจ– เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‡เจน เจ‡เฉฑเจ• เจตเฉˆเจ•เจŸเจฐ เจญเจพเจธเจผเจพ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเฉฐเจ—เจฒ เจ†เจฌเจœเฉˆเจ•เจŸ เจจเจพเจฒ เจจเจนเฉ€เจ‚, เจธเจ—เฉ‹เจ‚ เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจเจฐเฉ‡, เจเจฐเฉ‡ เจฆเฉ‡ เจเจฐเฉ‡ เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจตเจธเจคเฉ‚เจ†เจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค Q เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฐเจฟเจธเจผเจคเฉ‡เจฆเจพเจฐ K, J, APL เจตเจฐเจ—เฉ€เจ†เจ‚ เจญเจพเจธเจผเจพเจตเจพเจ‚ เจ†เจชเจฃเฉ€ เจธเฉฐเจ–เฉ‡เจชเจคเจพ เจฒเจˆ เจฎเจธเจผเจนเฉ‚เจฐ เจนเจจเฅค เจ…เจ•เจธเจฐ, เจ‡เฉฑเจ• เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจœเฉ‹ Java เจตเจฐเจ—เฉ€ เจ‡เฉฑเจ• เจœเจพเจฃเฉ€-เจชเจ›เจพเจฃเฉ€ เจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจ•เฉ‹เจก เจฆเฉ€เจ†เจ‚ เจ•เจˆ เจธเจ•เฉเจฐเฉ€เจจเจพเจ‚ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ, เจ‰เจนเจจเจพเจ‚ เจ‰เฉฑเจคเฉ‡ เจ•เฉเจ เจฒเจพเจˆเจจเจพเจ‚ เจตเจฟเฉฑเจš เจฒเจฟเจ–เจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‰เจน เจนเฉˆ เจœเฉ‹ เจฎเฉˆเจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเจพ เจนเจพเจ‚.

เจฐเฉ€เจ…เจฒ-เจŸเจพเจˆเจฎ เจธเฉ‡เจตเจพ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจฃ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ Q เจ…เจคเฉ‡ KDB+ เจญเจพเจธเจผเจพ เจฆเฉ€เจ†เจ‚ เจตเจฟเจธเจผเฉ‡เจธเจผเจคเจพเจตเจพเจ‚

เจœเจพเจฃ เจชเจ›เจพเจฃ

KDB+ เจ‡เฉฑเจ• เจ•เจพเจฒเจฎ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจนเฉˆ เจœเฉ‹ เจฌเจนเฉเจค เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ 'เจคเฉ‡ เจ•เฉ‡เจ‚เจฆเฉเจฐเจฟเจค เจนเฉˆ, เจ‡เฉฑเจ• เจ–เจพเจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ†เจฐเจกเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ (เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฎเฉ‡เจ‚ เจฆเฉเจ†เจฐเจพ)เฅค เจ‡เจน เจฎเฉเฉฑเจ– เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจฟเฉฑเจคเฉ€ เจธเฉฐเจธเจฅเจพเจตเจพเจ‚ - เจฌเฉˆเจ‚เจ•เจพเจ‚, เจจเจฟเจตเฉ‡เจธเจผ เจซเฉฐเจกเจพเจ‚, เจฌเฉ€เจฎเจพ เจ•เฉฐเจชเจจเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค Q เจญเจพเจธเจผเจพ KDB+ เจฆเฉ€ เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจญเจพเจธเจผเจพ เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เจธ เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจชเฉเจฐเจญเจพเจตเจธเจผเจพเจฒเฉ€ เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค Q เจตเจฟเจšเจพเจฐเจงเจพเจฐเจพ เจธเฉฐเจ–เฉ‡เจชเจคเจพ เจ…เจคเฉ‡ เจ•เฉเจธเจผเจฒเจคเจพ เจนเฉˆ, เจœเจฆเฉ‹เจ‚ เจ•เจฟ เจธเจชเจธเจผเจŸเจคเจพ เจฆเฉ€ เจฌเจฒเฉ€ เจฆเจฟเฉฑเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจน เจ‡เจธ เจคเฉฑเจฅ เจฆเฉเจ†เจฐเจพ เจœเจพเจ‡เจœเจผ เจนเฉˆ เจ•เจฟ เจตเฉˆเจ•เจŸเจฐ เจญเจพเจธเจผเจพ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจธเจฎเจเจฃเจพ เจฎเฉเจธเจผเจ•เจฒ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจฆเฉ€ เจธเฉฐเจ–เฉ‡เจชเจคเจพ เจ…เจคเฉ‡ เจญเจฐเจชเฉ‚เจฐเจคเจพ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจธเจ•เฉเจฐเฉ€เจจ เจคเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฆเฉ‡ เจฌเจนเฉเจค เจตเฉฑเจกเฉ‡ เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจตเฉ‡เจ–เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆ, เจœเฉ‹ เจ†เจ–เจฐเจ•เจพเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจธเจฎเจเจฃเจพ เจธเฉŒเจ–เจพ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจ…เจธเฉ€เจ‚ Q เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจชเฉ‚เจฐเจพ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเจพ เจนเฉˆ เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ…เจœเจผเจฎเจพเจ‰เจฃเจพ เจšเจพเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจธเจฒ Q เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค เจคเฉเจธเฉ€เจ‚ kx เจ•เฉฐเจชเจจเฉ€ เจฆเฉ€ เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ 'เจคเฉ‡ เจฎเฉเจซเจผเจค 32-เจฌเจฟเจŸ เจธเฉฐเจธเจ•เจฐเจฃ เจกเจพเจŠเจจเจฒเฉ‹เจก เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ - www.kx.com. เจ‰เฉฑเจฅเฉ‡, เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ Q, เจ•เจฟเจคเจพเจฌ เจฌเจพเจฐเฉ‡ เจนเจตเจพเจฒเจพ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจฎเจฟเจฒเฉ‡เจ—เฉ€ เจชเฉเจฐเจพเจฃเจพเจ‚ เจฒเจˆ 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;

เจ†เจ‰ เจนเฉเจฃ เจ•เจพเจฒเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฎเฉ‚เจนเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเฉ€เจ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจ…เจชเจกเฉ‡เจŸ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจคเจฟเฉฐเจจ เจ•เจฟเจธเจฎเจพเจ‚ เจจเฉ‚เฉฐ เจตเฉฑเจ– เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ:

  1. เจ‡เจ•เฉฑเจคเจฐ เจ•เจฐเจจ เจตเจพเจฒเฉ‡ (เจตเจพเจฒเฉ€เจ…เจฎ, เจŸเจฐเจจเจ“เจตเจฐ,..) - เจธเจพเจจเฉ‚เฉฐ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจฎเฉเฉฑเจฒ เจจเฉ‚เฉฐ เจชเจฟเจ›เจฒเฉ‡ เจ‡เฉฑเจ• เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
  2. เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจฌเจฟเฉฐเจฆเฉ‚ (เจ‰เฉฑเจš, เจจเฉ€เจตเจพเจ‚, ..) เจฆเฉ‡ เจจเจพเจฒ - เจฎเจฟเฉฐเจŸ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพ เจฎเฉเฉฑเจฒ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจกเฉ‡เจŸเจพ เจคเฉ‹เจ‚ เจฒเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจฌเจพเจ•เฉ€ เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ—เจฟเจฃเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค
  3. เจ†เจฐเจพเจฎ. เจนเจฎเฉ‡เจธเจผเจพเจ‚ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ—เจฃเจจเจพ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค

เจ†เจ‰ เจ‡เจนเจจเจพเจ‚ เจ•เจฒเจพเจธเจพเจ‚ เจฒเจˆ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเฉ€เจ:

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

DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเจพเจˆเจŸเจพเจ‚ เจฒเจˆ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ ๐Ÿ”ฅ DDoS เจธเฉเจฐเฉฑเจ–เจฟเจ†, VPS VDS เจธเจฐเจตเจฐเจพเจ‚ เจจเจพเจฒ เจญเจฐเฉ‹เจธเฉ‡เจฏเฉ‹เจ— เจตเฉˆเฉฑเจฌเจธเจพเจˆเจŸ เจนเฉ‹เจธเจŸเจฟเฉฐเจ— เจ–เจฐเฉ€เจฆเฉ‹ | ProHoster