Q แƒ“แƒ KDB+ แƒ”แƒœแƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ แƒ แƒแƒ แƒ˜แƒก KDB+ แƒ‘แƒแƒ–แƒ, Q แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒœแƒ, แƒ แƒ แƒแƒ แƒ˜แƒก แƒ›แƒแƒ—แƒ˜ แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ แƒ“แƒ แƒกแƒฃแƒกแƒขแƒ˜ แƒ›แƒฎแƒแƒ แƒ”แƒ”แƒ‘แƒ˜ แƒฉแƒ”แƒ›แƒก แƒฌแƒ˜แƒœแƒ แƒ›แƒฃแƒฎแƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒ™แƒšแƒ”แƒ“ แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒจแƒ˜. แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒก Q-แƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒแƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒแƒ›แƒแƒ•แƒแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒแƒ“แƒก แƒ“แƒ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒแƒ’แƒ แƒ”แƒ’แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก แƒงแƒแƒ•แƒ”แƒš แƒฌแƒฃแƒ—แƒจแƒ˜ โ€žแƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜โ€œ แƒ แƒ”แƒŸแƒ˜แƒ›แƒจแƒ˜ (แƒแƒœแƒฃ แƒ›แƒแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒ แƒ, แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ—แƒ•แƒแƒšแƒแƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ›แƒแƒ›แƒ“แƒ”แƒ•แƒœแƒ แƒœแƒแƒฌแƒ˜แƒšแƒแƒ›แƒ“แƒ”). Q-แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ•แƒ”แƒฅแƒขแƒแƒ แƒฃแƒšแƒ˜ แƒ”แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒแƒ แƒ แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ—แƒแƒœ, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ›แƒแƒ—แƒ˜ แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒกแƒฎแƒ•แƒ แƒ แƒ—แƒฃแƒšแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒ—. แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ”แƒœแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒช แƒแƒ แƒ˜แƒก Q แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒœแƒแƒ—แƒ”แƒกแƒแƒ•แƒ”แƒ‘แƒ˜ K, J, APL, แƒ’แƒแƒœแƒ—แƒฅแƒ›แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒ—แƒ˜ แƒšแƒแƒ™แƒแƒœแƒฃแƒ แƒแƒ‘แƒ˜แƒ—. แƒฎแƒจแƒ˜แƒ แƒแƒ“, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒ™แƒแƒ•แƒ”แƒ‘แƒก แƒ™แƒแƒ“แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ”แƒ™แƒ แƒแƒœแƒก แƒœแƒแƒชแƒœแƒแƒ‘ แƒ”แƒœแƒแƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ Java, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ˜แƒฌแƒ”แƒ แƒแƒก แƒ›แƒแƒ—แƒ–แƒ” แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒจแƒ˜. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒ˜แƒกแƒ˜ แƒ“แƒ”แƒ›แƒแƒœแƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒแƒช แƒ›แƒกแƒฃแƒ แƒก แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜.

Q แƒ“แƒ KDB+ แƒ”แƒœแƒ˜แƒก แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜ แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

KDB+ แƒแƒ แƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒ˜แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒ–แƒ”, แƒ“แƒแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒ˜ แƒ’แƒ–แƒ˜แƒ— (แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ“แƒ แƒแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—). แƒ˜แƒ’แƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒคแƒ˜แƒœแƒแƒœแƒกแƒฃแƒ  แƒ˜แƒœแƒกแƒขแƒ˜แƒขแƒฃแƒขแƒ”แƒ‘แƒจแƒ˜ - แƒ‘แƒแƒœแƒ™แƒ”แƒ‘แƒจแƒ˜, แƒกแƒแƒ˜แƒœแƒ•แƒ”แƒกแƒขแƒ˜แƒชแƒ˜แƒ แƒคแƒแƒœแƒ“แƒ”แƒ‘แƒจแƒ˜, แƒกแƒแƒ“แƒแƒ–แƒฆแƒ•แƒ”แƒ•แƒ แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ”แƒ‘แƒจแƒ˜. Q แƒ”แƒœแƒ แƒแƒ แƒ˜แƒก KDB+-แƒ˜แƒก แƒจแƒ˜แƒ“แƒ แƒ”แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ“ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ—แƒแƒœ. Q แƒ˜แƒ“แƒ”แƒแƒšแƒแƒ’แƒ˜แƒ แƒแƒ แƒ˜แƒก แƒšแƒแƒ™แƒแƒœแƒฃแƒ แƒแƒ‘แƒ แƒ“แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ‘แƒ, แƒฎแƒแƒšแƒ แƒกแƒ˜แƒชแƒฎแƒแƒ“แƒ” แƒ”แƒฌแƒ˜แƒ แƒ”แƒ‘แƒ. แƒ”แƒก แƒ’แƒแƒ›แƒแƒ แƒ—แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒ—, แƒ แƒแƒ› แƒ•แƒ”แƒฅแƒขแƒแƒ แƒฃแƒšแƒ˜ แƒ”แƒœแƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒ แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ แƒ—แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ, แƒฎแƒแƒšแƒ แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒกแƒ˜แƒ›แƒแƒ™แƒšแƒ” แƒ“แƒ แƒกแƒ˜แƒ›แƒ“แƒ˜แƒ“แƒ แƒ” แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒœแƒแƒฎแƒแƒ— แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒ’แƒแƒชแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ˜แƒ“แƒ˜ แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ”แƒ แƒ— แƒ”แƒ™แƒ แƒแƒœแƒ–แƒ”, แƒ แƒแƒช แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก แƒ›แƒ˜แƒก แƒ’แƒแƒ’แƒ”แƒ‘แƒแƒก.

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ— แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒแƒก Q-แƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒ˜แƒœแƒ“แƒแƒ“แƒ”แƒ— แƒกแƒชแƒแƒ“แƒแƒ— แƒ˜แƒ’แƒ˜. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ Q. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒฃแƒคแƒแƒกแƒ 32-แƒ‘แƒ˜แƒขแƒ˜แƒแƒœแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ kx แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ˜แƒก แƒ•แƒ”แƒ‘แƒกแƒแƒ˜แƒขแƒ–แƒ” โ€“ www.kx.com. แƒ˜แƒฅ, แƒ—แƒฃ แƒ“แƒแƒ’แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒ—, แƒ˜แƒžแƒแƒ•แƒ˜แƒ— แƒกแƒแƒชแƒœแƒแƒ‘แƒแƒ แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก Q, แƒฌแƒ˜แƒ’แƒœแƒ–แƒ” Q แƒ›แƒแƒ™แƒ•แƒ“แƒแƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒขแƒแƒขแƒ˜แƒ”แƒ‘แƒ˜ แƒแƒ› แƒ—แƒ”แƒ›แƒแƒ–แƒ”.

แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ

แƒแƒ แƒ˜แƒก แƒฌแƒงแƒแƒ แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ— แƒงแƒแƒ•แƒ”แƒš 25 แƒ›แƒ˜แƒšแƒ˜แƒฌแƒแƒ›แƒจแƒ˜. แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ KDB+ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒคแƒ˜แƒœแƒแƒœแƒกแƒ”แƒ‘แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ (แƒ•แƒแƒญแƒ แƒแƒ‘แƒ), แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜: แƒ“แƒ แƒ (แƒ“แƒ แƒ แƒ›แƒ˜แƒšแƒ˜แƒฌแƒแƒ›แƒ”แƒ‘แƒจแƒ˜), sym (แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒ˜แƒก แƒแƒฆแƒœแƒ˜แƒจแƒ•แƒœแƒ แƒกแƒแƒคแƒแƒœแƒ“แƒ แƒ‘แƒ˜แƒ แƒŸแƒแƒ–แƒ” - IBM, AAPL,โ€ฆ), แƒคแƒแƒกแƒ˜ (แƒคแƒแƒกแƒ˜, แƒ แƒแƒ›แƒšแƒ˜แƒ—แƒแƒช แƒจแƒ”แƒ˜แƒซแƒ˜แƒœแƒ แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜), แƒ–แƒแƒ›แƒ (แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒ–แƒแƒ›แƒ). 25 แƒ›แƒ˜แƒšแƒ˜แƒฌแƒแƒ›แƒ˜แƒแƒœแƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒแƒšแƒ˜ แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ แƒ˜แƒ, แƒแƒ แƒช แƒ˜แƒกแƒ” แƒ›แƒชแƒ˜แƒ แƒ” แƒ“แƒ แƒแƒ แƒช แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒ แƒซแƒ”แƒšแƒ˜. แƒ›แƒ˜แƒกแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒจแƒ˜ แƒฃแƒ™แƒ•แƒ” แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ. แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ”แƒก, แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒ‘แƒฃแƒคแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒแƒก แƒ’แƒแƒ•แƒแƒ›แƒแƒฎแƒ•แƒ˜แƒšแƒ”แƒ‘แƒ— แƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒš แƒ˜แƒœแƒขแƒ”แƒ แƒ•แƒแƒšแƒ–แƒ”.

แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ˜แƒ—แƒ•แƒแƒšแƒแƒก แƒงแƒแƒ•แƒ”แƒš แƒฌแƒฃแƒ—แƒก sym แƒกแƒ•แƒ”แƒขแƒ˜แƒ“แƒแƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒแƒกแƒ—แƒ•แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ - แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒกแƒ˜, แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒคแƒแƒกแƒ˜, แƒฏแƒแƒ›แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒ“แƒ แƒ.แƒจ. แƒ’แƒแƒ›แƒแƒกแƒแƒ“แƒ”แƒ’แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ. แƒกแƒ˜แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒแƒœแƒ“แƒแƒ—แƒแƒœแƒแƒ‘แƒ˜แƒ—, แƒ”.แƒ˜. แƒแƒฎแƒแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“, แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒ— แƒแƒ แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜ - แƒซแƒ•แƒ”แƒšแƒ˜ แƒ“แƒ แƒจแƒ”แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก max, แƒกแƒแƒจแƒฃแƒแƒšแƒ, sum แƒแƒฅแƒ•แƒก แƒ”แƒก แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ”แƒ“แƒ˜แƒแƒœแƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒก แƒแƒ แƒ.

แƒฉแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒ˜แƒ•แƒแƒ แƒแƒฃแƒ“แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒจแƒ”แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒœแƒแƒ™แƒแƒ“แƒ˜ แƒแƒ แƒ˜แƒก แƒ“แƒ แƒแƒจแƒ˜ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜. แƒ”แƒก แƒ›แƒแƒ’แƒ•แƒชแƒ”แƒ›แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒก แƒ•แƒ˜แƒ›แƒฃแƒจแƒแƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ‘แƒแƒšแƒ แƒฌแƒฃแƒ—แƒ—แƒแƒœ. แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒแƒจแƒ˜ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ“แƒ แƒฌแƒ˜แƒœแƒ แƒฌแƒฃแƒ—แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ, แƒ—แƒฃ แƒ แƒแƒ˜แƒ›แƒ” แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ. แƒกแƒ˜แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒแƒ  แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ— แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒก.

แƒแƒ’แƒ แƒ”แƒ’แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜

แƒกแƒแƒญแƒ˜แƒ แƒ แƒแƒ’แƒ แƒ”แƒ’แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜แƒ แƒฅแƒ•แƒ”แƒ›แƒแƒ—. แƒ แƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ”แƒขแƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜ แƒแƒ•แƒ˜แƒฆแƒ” แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ–แƒ” แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒกแƒแƒ–แƒ แƒ“แƒ”แƒšแƒแƒ“:

  • แƒ›แƒแƒฆแƒแƒšแƒ˜ โ€“ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒกแƒ˜ โ€“ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒกแƒ˜ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • แƒ“แƒแƒ‘แƒแƒšแƒ˜ โ€“ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒกแƒ˜ โ€“ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒคแƒแƒกแƒ˜ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒคแƒแƒกแƒ˜ โ€“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒคแƒแƒกแƒ˜ โ€“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒคแƒแƒกแƒ˜ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • lastPrice โ€“ แƒ‘แƒแƒšแƒ แƒคแƒแƒกแƒ˜ โ€“ แƒ‘แƒแƒšแƒ แƒคแƒแƒกแƒ˜ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • firstSize โ€“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ–แƒแƒ›แƒ โ€“ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒแƒญแƒ แƒแƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • lastSize - แƒ‘แƒแƒšแƒ แƒ–แƒแƒ›แƒ - แƒ‘แƒแƒšแƒ แƒ•แƒแƒญแƒ แƒแƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • numTrades โ€“ count i โ€“ แƒ’แƒแƒ แƒ˜แƒ’แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ โ€“ แƒฏแƒแƒ›แƒ˜แƒก แƒ–แƒแƒ›แƒ โ€“ แƒ•แƒแƒญแƒ แƒแƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒฏแƒแƒ›แƒ˜ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • pvolume โ€“ แƒฏแƒแƒ›แƒ˜แƒก แƒคแƒแƒกแƒ˜ โ€“ แƒคแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒฏแƒแƒ›แƒ˜ แƒฌแƒฃแƒ—แƒจแƒ˜, แƒกแƒแƒญแƒ˜แƒ แƒแƒ avgPrice-แƒกแƒ—แƒ•แƒ˜แƒก.
  • โ€“ แƒฏแƒแƒ›แƒฃแƒ แƒ˜ แƒ‘แƒ แƒฃแƒœแƒ•แƒ˜แƒก แƒคแƒแƒกแƒ˜*แƒ–แƒแƒ›แƒ โ€“ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒฏแƒแƒ›แƒฃแƒ แƒ˜ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • avgPrice โ€“ pvolume%numTrades โ€“ แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒคแƒแƒกแƒ˜ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • avgSize โ€“ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ%numTrades โ€“ แƒ•แƒแƒญแƒ แƒแƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒ–แƒแƒ›แƒ แƒฌแƒฃแƒ—แƒจแƒ˜.
  • vwap โ€“ แƒ‘แƒ แƒฃแƒœแƒ•แƒ%แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ โ€“ แƒกแƒแƒจแƒฃแƒแƒšแƒ แƒคแƒแƒกแƒ˜ แƒฌแƒฃแƒ—แƒจแƒ˜ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—.
  • cumVolume โ€“ แƒฏแƒแƒ›แƒ˜แƒก แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ โ€“ แƒขแƒ แƒแƒœแƒ–แƒแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ’แƒ แƒแƒ•แƒ˜แƒšแƒ˜ แƒ–แƒแƒ›แƒ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜.

แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒ”แƒ แƒ—แƒ˜ แƒแƒ แƒแƒแƒจแƒ™แƒแƒ แƒ แƒžแƒฃแƒœแƒฅแƒขแƒ˜ - แƒ แƒแƒ’แƒแƒ  แƒ›แƒแƒ•แƒแƒฎแƒ“แƒ˜แƒœแƒแƒ— แƒแƒ› แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ“แƒ แƒงแƒแƒ•แƒ”แƒšแƒ˜ แƒ›แƒแƒ›แƒ“แƒ”แƒ•แƒœแƒ แƒฌแƒฃแƒ—แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜Price แƒขแƒ˜แƒžแƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒกแƒ•แƒ”แƒขแƒ˜ แƒงแƒแƒ•แƒ”แƒš แƒฏแƒ”แƒ แƒ–แƒ” แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ˜แƒœแƒ˜แƒชแƒ˜แƒแƒšแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒฃแƒšแƒแƒ›แƒ“แƒ”; แƒ›แƒแƒ—แƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ แƒ’แƒแƒœแƒฃแƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒšแƒ˜แƒ. แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜ แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก 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 ะพะฑัŠััะฝะตะฝ ะฝะธะถะต

แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒก แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ” sym แƒ“แƒ แƒ“แƒ แƒ, แƒแƒฎแƒšแƒ initWith แƒแƒ แƒ˜แƒก แƒ›แƒ–แƒ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜ แƒกแƒแƒ‘แƒแƒšแƒแƒ แƒแƒ’แƒ แƒ”แƒ’แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒ“แƒแƒœ, แƒกแƒแƒ“แƒแƒช แƒ แƒฉแƒ”แƒ‘แƒ แƒกแƒฌแƒแƒ แƒ˜ แƒกแƒ˜แƒ›แƒ‘แƒแƒšแƒแƒก แƒ“แƒ แƒ“แƒ แƒแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ˜แƒ’แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒจแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ“.

แƒแƒ’แƒ แƒ”แƒ’แƒแƒชแƒ˜แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ aggCols. แƒกแƒ˜แƒ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒจแƒ”แƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ Q-แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒกแƒแƒฎแƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒคแƒแƒกแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ (แƒ›แƒแƒ แƒฏแƒ•แƒœแƒ˜แƒ“แƒแƒœ แƒ›แƒแƒ แƒชแƒฎแƒœแƒ˜แƒ•). แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒก, แƒ แƒแƒ› แƒ’แƒแƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒก แƒ›แƒแƒฆแƒแƒšแƒ˜แƒ“แƒแƒœ cumVolume-แƒ›แƒ“แƒ”, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒกแƒ•แƒ”แƒขแƒ˜ แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฌแƒ˜แƒœแƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ–แƒ”.

แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ™แƒแƒžแƒ˜แƒ แƒ“แƒ”แƒก แƒฌแƒ˜แƒœแƒ แƒฌแƒฃแƒ—แƒจแƒ˜ แƒแƒฎแƒแƒš แƒฌแƒฃแƒ—แƒจแƒ˜, แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒ›แƒแƒขแƒ”แƒ‘แƒ sym แƒกแƒ•แƒ”แƒขแƒ˜:

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-แƒจแƒ˜ select แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ แƒแƒ’แƒแƒ แƒช แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒกแƒแƒ“แƒแƒช แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฉแƒแƒแƒœแƒแƒชแƒ•แƒšแƒแƒ— แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜:

?[table;whereClause;byClause;selectClause]

แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒก แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ  แƒแƒฆแƒ•แƒฌแƒ”แƒ , แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ”แƒ‘แƒ˜ by แƒ“แƒ select แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒ แƒแƒขแƒ แƒ˜แƒ•แƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒคแƒแƒ แƒ›แƒ˜แƒก แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก!แƒ’แƒแƒ›แƒแƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒšแƒ”แƒฅแƒกแƒ˜แƒ™แƒแƒœแƒ”แƒ‘แƒ˜. แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒœแƒแƒ˜แƒ แƒแƒ“:

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-แƒจแƒ˜ แƒฎแƒจแƒ˜แƒ แƒ˜แƒ แƒ แƒฃแƒ™แƒ˜แƒก/แƒจแƒ”แƒ›แƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ›แƒแƒ แƒงแƒฃแƒŸแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ“แƒ’แƒแƒœ 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;โ€ฆ)];

แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“, แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒญแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ“แƒ แƒแƒ แƒ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒขแƒแƒœแƒแƒ— แƒ›แƒแƒขแƒ แƒ˜แƒชแƒ (แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒแƒจแƒ˜) Flip แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ”แƒก แƒซแƒ•แƒ˜แƒ แƒ˜แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒชแƒฎแƒ แƒ˜แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒ›แƒ˜แƒขแƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ’แƒแƒœแƒ–แƒแƒ’แƒแƒ“แƒ”แƒ‘แƒฃแƒš แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒแƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒกแƒ•แƒ”แƒขแƒ–แƒ” แƒชแƒแƒš-แƒชแƒแƒšแƒ™แƒ” แƒ แƒฃแƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— (แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒžแƒแƒกแƒขแƒ แƒแƒคแƒก แƒฐแƒ’แƒแƒ•แƒก):

.[aggTable;;:;]'[(idx;)each aggCols; (row[`high] | inputTable`high;row[`volume] + inputTable`volume;โ€ฆ)];

แƒฉแƒ•แƒ”แƒœ แƒ™แƒ•แƒšแƒแƒ• แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒชแƒ˜แƒแƒก. แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› Q-แƒจแƒ˜ แƒกแƒ˜แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒแƒกแƒ”แƒ•แƒ” แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒ แƒ“แƒ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒ›แƒแƒก แƒ•แƒฃแƒฌแƒแƒ“แƒแƒ— แƒงแƒแƒ•แƒ”แƒšแƒ˜(map) แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— แƒกแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“.

แƒ˜แƒ›แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“, แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒคแƒ˜แƒฅแƒกแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒ˜แƒ— แƒ–แƒ”แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ’แƒแƒ›แƒแƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“. แƒ›แƒแƒ“แƒ˜แƒ—, แƒฏแƒ”แƒ  แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ—แƒ•แƒšแƒ”แƒšแƒแƒ“, แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ˜แƒก แƒ“แƒ 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-แƒก แƒแƒฅแƒ•แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ - ?[Boolean 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 แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒ›แƒฌแƒ™แƒ แƒ˜แƒ•แƒ˜) แƒซแƒแƒšแƒ˜แƒแƒœ แƒ“แƒ˜แƒ“แƒ˜แƒ; แƒแƒกแƒ”แƒ— แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒจแƒ˜ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒšแƒแƒœแƒ˜แƒก (แƒแƒœ แƒ—แƒฃแƒœแƒ“แƒแƒช แƒแƒ—แƒแƒ‘แƒ˜แƒ— แƒ™แƒšแƒแƒœแƒ˜แƒก) แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ’แƒแƒœ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒžแƒ”แƒ แƒกแƒแƒœแƒแƒŸแƒ”แƒ‘แƒ˜แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒœแƒแƒฌแƒ˜แƒšแƒก. แƒ“แƒ แƒ›แƒแƒ˜แƒœแƒช, แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒจแƒ—แƒแƒ›แƒ‘แƒ”แƒญแƒ“แƒแƒ•แƒ˜แƒ แƒ˜แƒœแƒขแƒ”แƒ แƒžแƒ แƒ”แƒขแƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ”แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒแƒ“ แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒแƒก แƒแƒ›แƒแƒฎแƒ•แƒ˜แƒšแƒ”แƒ‘แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒแƒ–แƒ”.

แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒฉแƒœแƒ“แƒ”แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒ แƒแƒขแƒแƒ› แƒ˜แƒ–แƒ แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒแƒ แƒแƒฌแƒ แƒคแƒ˜แƒ•แƒแƒ“ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒ—. แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› shrink แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒ แƒ”แƒแƒšแƒฃแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก C แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ‘แƒ”แƒ•แƒ แƒแƒ“ แƒฃแƒคแƒ แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒ˜แƒ แƒ•แƒ˜แƒ“แƒ แƒ” updateAgg. แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ–แƒแƒ›แƒ˜แƒ“แƒแƒœ แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ (แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 10.000), updateAgg แƒแƒฆแƒฌแƒ”แƒ•แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒญแƒ”แƒ แƒก แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ˜แƒกแƒ˜ แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒแƒ–แƒ”. แƒ”แƒก แƒแƒ แƒ˜แƒก Q แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ แƒแƒ› แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ. แƒ”แƒก แƒฎแƒแƒ–แƒก แƒฃแƒกแƒ•แƒแƒ›แƒก แƒ˜แƒ›แƒแƒก, แƒ—แƒฃ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒแƒ“ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒกแƒฌแƒแƒ แƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ แƒ“แƒ˜แƒ“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก. แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜ แƒแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒกแƒฌแƒแƒ แƒแƒ“ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜. แƒ—แƒฃ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒจแƒ”แƒœแƒแƒฎแƒฃแƒšแƒ˜ แƒกแƒ•แƒ”แƒขแƒฃแƒ แƒแƒ“ แƒแƒœ แƒแƒ  แƒ˜แƒงแƒ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜ แƒ“แƒ แƒแƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒ”แƒชแƒแƒœแƒ˜แƒ— แƒ˜แƒกแƒ”แƒ— แƒ แƒแƒ›แƒ”แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ TLB แƒฅแƒ”แƒจแƒ˜แƒก แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒ - แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒžแƒ แƒแƒชแƒ”แƒกแƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒฅแƒ”แƒจแƒจแƒ˜. แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒแƒก แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 30-แƒฏแƒ”แƒ  แƒ›แƒ”แƒขแƒ˜ แƒ“แƒ แƒ แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ, แƒฎแƒแƒšแƒ แƒ—แƒฃ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ’แƒแƒคแƒแƒœแƒขแƒฃแƒšแƒ˜แƒ, แƒ›แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒฏแƒ”แƒ แƒ›แƒ” แƒจแƒ”แƒแƒœแƒ”แƒšแƒแƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜.

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ›แƒ” แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”, แƒ แƒแƒ› KDB+ แƒ“แƒ Q แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒจแƒ”แƒกแƒแƒคแƒ”แƒ แƒ˜แƒกแƒ˜แƒ แƒแƒ แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒ˜แƒ“แƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“ แƒ“แƒ แƒ›แƒแƒกแƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒแƒ แƒแƒ›แƒ”แƒ“ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒ›แƒ˜แƒšแƒ˜แƒแƒœแƒ˜ แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ˜/แƒ’แƒ˜แƒ’แƒแƒ‘แƒแƒ˜แƒขแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ. แƒ”แƒ แƒ—แƒ˜ Q แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜. Q แƒ”แƒœแƒ แƒ—แƒแƒ•แƒ˜แƒกแƒ—แƒแƒ•แƒแƒ“ แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒกแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ”แƒ‘แƒ˜แƒก แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒšแƒแƒ™แƒแƒœแƒฃแƒ  แƒ“แƒ แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ  แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ›แƒ˜แƒกแƒ˜ แƒ•แƒ”แƒฅแƒขแƒแƒ แƒฃแƒšแƒ˜ แƒ‘แƒฃแƒœแƒ”แƒ‘แƒ˜แƒก, แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ SQL แƒ“แƒ˜แƒแƒšแƒ”แƒฅแƒขแƒฃแƒ แƒ˜ แƒ—แƒแƒ แƒฏแƒ˜แƒ›แƒแƒœแƒ˜แƒกแƒ แƒ“แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ.

แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ•, แƒ แƒแƒ› แƒ–แƒ”แƒ›แƒแƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒœแƒแƒฌแƒ˜แƒšแƒ˜แƒ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒ˜แƒกแƒ˜ แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒแƒช Q-แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ, แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒกแƒฎแƒ•แƒ แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ—แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒช. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฃแƒ™แƒ˜แƒ“แƒฃแƒ แƒ”แƒกแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ IPC แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒšแƒ˜แƒก แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒก แƒชแƒแƒšแƒ™แƒ”แƒฃแƒš Q แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒ“แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ“แƒแƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒแƒ— แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒ”แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒ”แƒ แƒ— แƒฅแƒกแƒ”แƒšแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ“แƒ”แƒก แƒแƒ—แƒแƒ‘แƒ˜แƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ›แƒกแƒแƒคแƒšแƒ˜แƒแƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ™แƒฃแƒ—แƒฎแƒ”แƒจแƒ˜.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ