āĻā§āĻĄāĻŋāĻŦāĻŋ+ āĻŦā§āĻ¸, āĻāĻŋāĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻž āĻā§, āĻ¤āĻžāĻĻā§āĻ° āĻļāĻā§āĻ¤āĻŋ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻā§ āĻ¤āĻž āĻāĻŽāĻžāĻ° āĻāĻā§āĻ° āĻ˛ā§āĻāĻžāĻ¯āĻŧ āĻāĻĒāĻ¨āĻŋ āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻā§āĻŽāĻŋāĻāĻž
KDB+ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻāĻ˛āĻžāĻŽāĻžāĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¯āĻž āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻĄā§āĻāĻžāĻ° āĻāĻĒāĻ° āĻĻā§āĻˇā§āĻāĻŋ āĻ¨āĻŋāĻŦāĻĻā§āĻ§ āĻāĻ°ā§, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĒāĻžāĻ¯āĻŧā§ (āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§) āĻ āĻ°ā§āĻĄāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ°ā§āĻĨāĻŋāĻ āĻĒā§āĻ°āĻ¤āĻŋāĻˇā§āĻ āĻžāĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ - āĻŦā§āĻ¯āĻžāĻāĻ, āĻŦāĻŋāĻ¨āĻŋāĻ¯āĻŧā§āĻ āĻ¤āĻšāĻŦāĻŋāĻ˛, āĻŦā§āĻŽāĻž āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĨ¤ Q āĻāĻžāĻˇāĻž āĻšāĻ˛ KDB+ āĻāĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻāĻžāĻˇāĻž āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻĄā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ Q āĻŽāĻ¤āĻžāĻĻāĻ°ā§āĻļ āĻšāĻ˛ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¤āĻž āĻāĻŦāĻ āĻĻāĻā§āĻˇāĻ¤āĻž, āĻ¯āĻāĻ¨ āĻ¸ā§āĻŦāĻā§āĻāĻ¤āĻž āĻŦāĻ˛āĻŋ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻ āĻ¸āĻ¤ā§āĻ¯ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨ā§āĻ¯āĻžāĻ¯ā§āĻ¯ āĻ¯ā§ āĻā§āĻā§āĻāĻ° āĻāĻžāĻˇāĻžāĻāĻŋ āĻ¯ā§ āĻā§āĻ¨āĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦā§āĻāĻž āĻāĻ āĻŋāĻ¨ āĻšāĻŦā§ āĻāĻŦāĻ āĻ°ā§āĻāĻ°ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¤āĻž āĻāĻŦāĻ āĻ¸āĻŽā§āĻĻā§āĻ§āĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ¨ā§ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽā§āĻ° āĻ āĻ¨ā§āĻ āĻŦāĻĄāĻŧ āĻ āĻāĻļ āĻĻā§āĻāĻ¤ā§ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦā§āĻāĻž āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻŽāĻ°āĻž Q-āĻ¤ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻžāĻā§āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§ āĻĻā§āĻāĻ¤ā§ āĻāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻā§āĻ¤ Q āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻŋ kx āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻāĻ¯āĻŧā§āĻŦāĻ¸āĻžāĻāĻā§ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§ 32-āĻŦāĻŋāĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ -
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻ āĻ¨
āĻāĻāĻāĻŋ āĻā§āĻ¸ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋ 25 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĄā§āĻāĻž āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ āĻĒāĻžāĻ āĻžāĻ¯āĻŧāĨ¤ āĻ¯ā§āĻšā§āĻ¤ā§ KDB+ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻĢāĻžāĻāĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¸ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ§āĻ°ā§ āĻ¨ā§āĻŦ āĻ¯ā§ āĻāĻāĻŋ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŖā§ (āĻŦāĻžāĻŖāĻŋāĻā§āĻ¯), āĻ¯āĻžāĻ° āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ˛āĻžāĻŽ āĻ°āĻ¯āĻŧā§āĻā§: āĻ¸āĻŽāĻ¯āĻŧ (āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻ¸āĻŽāĻ¯āĻŧ), āĻ¸āĻŋāĻŽ (āĻ¸ā§āĻāĻ āĻāĻā§āĻ¸āĻā§āĻā§āĻā§ āĻā§āĻŽā§āĻĒāĻžāĻ¨āĻŋāĻ° āĻĒāĻĻāĻŦā§ - āĻāĻāĻŦāĻŋāĻāĻŽ, AAPL,âĻ), āĻŽā§āĻ˛ā§āĻ¯ (āĻ¯ā§ āĻĻāĻžāĻŽā§ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻā§āĻ¨āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛), āĻāĻāĻžāĻ° (āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻāĻžāĻ°)āĨ¤ 25 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨āĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§, āĻā§āĻŦ āĻā§āĻ āĻ¨āĻ¯āĻŧ āĻāĻŦāĻ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ āĻ¨āĻ¯āĻŧā§ˇ āĻāĻ° āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ āĻ°ā§āĻĨ āĻšāĻ˛ āĻĄā§āĻāĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻ°āĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻāĻ¸ā§ā§ˇ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛ā§āĻĄā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŦāĻžāĻĢāĻžāĻ°āĻŋāĻ āĻ¸āĻš āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻĻāĻŋāĻā§ āĻŦāĻžāĻĢāĻžāĻ°āĻŋāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻšāĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻ°āĻ˛āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ā§ āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻŦāĨ¤
āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸āĻŋāĻŽ āĻāĻ˛āĻžāĻŽ āĻĨā§āĻā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻāĻ¤ āĻĒā§āĻ°āĻ¤ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻ¤ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ - āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻŽā§āĻ˛ā§āĻ¯, āĻāĻĄāĻŧ āĻŽā§āĻ˛ā§āĻ¯, āĻ¯ā§āĻāĻĢāĻ˛ā§āĻ° āĻāĻāĻžāĻ° āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋāĨ¤ āĻĻāĻ°āĻāĻžāĻ°ā§ āĻ¤āĻĨā§āĻ¯āĨ¤ āĻ¸āĻ°āĻ˛āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻ§āĻ°ā§ āĻ¨ā§āĻŦ āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨āĻāĻžāĻŦā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ¨ āĻĒā§āĻ¤ā§, āĻĻā§āĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻžāĻ¨āĻž āĻ¯āĻĨā§āĻˇā§āĻ - āĻĒā§āĻ°āĻžāĻ¨ā§ āĻāĻŦāĻ āĻāĻāĻ¤ āĻŽāĻžāĻ¨āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ, āĻāĻĄāĻŧ, āĻ¯ā§āĻāĻĢāĻ˛ āĻāĻ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŽāĻ§ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨ā§āĻ.
āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ āĻ§āĻ°ā§ āĻ¨ā§āĻŦ āĻ¯ā§ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°ā§āĻŽ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤ āĻāĻāĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻļā§āĻˇ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻ¯ā§āĻ āĻĻā§āĻŦā§āĨ¤ āĻ āĻ¨ā§āĻļā§āĻ˛āĻ¨ā§, āĻāĻŋāĻā§ āĻāĻĒāĻĄā§āĻ āĻĻā§āĻ°ā§ āĻšāĻ˛ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻāĻ¯āĻŧāĻž āĻ¯āĻĨā§āĻˇā§āĻāĨ¤ āĻ¸āĻ°āĻ˛āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦ āĻ¨āĻžāĨ¤
āĻāĻāĻ¤ā§āĻ°ā§āĻāĻ°āĻŖ āĻĢāĻžāĻāĻļāĻ¨
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨ā§āĻā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻāĻŽāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻ˛ā§āĻĄ āĻŦāĻžāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ:
- āĻāĻā§āĻ â āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻŽā§āĻ˛ā§āĻ¯ â āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻŽā§āĻ˛ā§āĻ¯āĨ¤
- āĻāĻŽ - āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻŽā§āĻ˛ā§āĻ¯ - āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻŽā§āĻ˛ā§āĻ¯ā§ˇ
- āĻĒā§āĻ°āĻĨāĻŽ āĻŽā§āĻ˛ā§āĻ¯ - āĻĒā§āĻ°āĻĨāĻŽ āĻŽā§āĻ˛ā§āĻ¯ - āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻĒā§āĻ°āĻĨāĻŽ āĻŽā§āĻ˛ā§āĻ¯ā§ˇ
- āĻļā§āĻˇ āĻŽā§āĻ˛ā§āĻ¯ - āĻļā§āĻˇ āĻŽā§āĻ˛ā§āĻ¯ - āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻļā§āĻˇ āĻŽā§āĻ˛ā§āĻ¯āĨ¤
- āĻĒā§āĻ°āĻĨāĻŽ āĻāĻāĻžāĻ° - āĻĒā§āĻ°āĻĨāĻŽ āĻāĻāĻžāĻ° - āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻžāĻŖāĻŋāĻā§āĻ¯ āĻāĻāĻžāĻ°āĨ¤
- āĻ˛āĻžāĻ¸ā§āĻ āĻ¸āĻžāĻāĻ - āĻļā§āĻˇ āĻ¸āĻžāĻāĻ - āĻāĻ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻļā§āĻˇ āĻā§āĻ°ā§āĻĄ āĻ¸āĻžāĻāĻāĨ¤
- numTrades â āĻāĻžāĻāĻ¨ā§āĻ i â āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻā§āĻ°ā§āĻĄā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĨ¤
- āĻāĻ˛āĻŋāĻāĻŽ â āĻ¸āĻŽāĻˇā§āĻāĻŋāĻ° āĻāĻāĻžāĻ° â āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻā§āĻ°ā§āĻĄ āĻ¸āĻžāĻāĻā§āĻ° āĻ¸āĻŽāĻˇā§āĻāĻŋāĨ¤
- pvolume â āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻŽā§āĻ˛ā§āĻ¯ â āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻĻāĻžāĻŽā§āĻ° āĻ¯ā§āĻāĻĢāĻ˛, avgPrice āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
- - āĻ¯ā§āĻāĻĢāĻ˛ āĻāĻžāĻ°ā§āĻ¨āĻāĻāĻžāĻ° āĻŽā§āĻ˛ā§āĻ¯ * āĻāĻāĻžāĻ° - āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻŽā§āĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖāĨ¤
- avgPrice â pvolume%numTrades â āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻāĻĄāĻŧ āĻŽā§āĻ˛ā§āĻ¯āĨ¤
- avgSize â āĻāĻ˛āĻŋāĻāĻŽ%numTrades â āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻāĻĄāĻŧ āĻā§āĻ°ā§āĻĄ āĻ¸āĻžāĻāĻāĨ¤
- vwap - āĻāĻžāĻ°ā§āĻ¨āĻāĻāĻžāĻ°% āĻāĻ˛āĻŋāĻāĻŽ - āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻāĻāĻžāĻ° āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻāĻĄāĻŧ āĻŽā§āĻ˛ā§āĻ¯āĨ¤
- āĻāĻŽ āĻāĻ˛āĻŋāĻāĻŽ - āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻāĻ˛āĻŋāĻāĻŽ - āĻĒā§āĻ°ā§ āĻ¸āĻŽāĻ¯āĻŧ āĻ§āĻ°ā§ āĻ˛ā§āĻ¨āĻĻā§āĻ¨ā§āĻ° āĻ¸āĻā§āĻāĻŋāĻ¤ āĻāĻāĻžāĻ°āĨ¤
āĻāĻ¸ā§āĻ¨ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻāĻāĻāĻŋ āĻ -āĻ¸ā§āĻĒāĻˇā§āĻ āĻŦāĻŋāĻˇāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻ - āĻā§āĻāĻžāĻŦā§ āĻāĻ āĻāĻ˛āĻžāĻŽāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĨāĻŽāĻŦāĻžāĻ° āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻĢāĻžāĻ°ā§āĻ¸ā§āĻāĻĒā§āĻ°āĻžāĻāĻ¸ āĻāĻžāĻāĻĒā§āĻ° āĻāĻŋāĻā§ āĻāĻ˛āĻžāĻŽ āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻļā§āĻ¨ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻāĻ°āĻŽā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§; āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻžāĻ¨ āĻ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤āĨ¤ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻāĻ˛āĻŋāĻāĻŽ āĻĒā§āĻ°āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž 0 āĻ¤ā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻā§ˇ āĻāĻŽāĻ¨ āĻāĻ˛āĻžāĻŽāĻā§āĻ˛āĻŋāĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻŽāĻŋāĻ˛āĻŋāĻ¤ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ - āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, cumVolume āĻ āĻŦāĻļā§āĻ¯āĻ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻŽāĻŋāĻ¨āĻŋāĻ āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻāĻŦāĻ āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ 0 āĻ¸ā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ā§ˇ āĻāĻ¸ā§āĻ¨ āĻ āĻāĻŋāĻ§āĻžāĻ¨ āĻĄā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ āĻāĻ°āĻŋā§ˇ āĻāĻžāĻāĻĒ (āĻāĻāĻāĻŋ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒ):
// list ! list â ŅОСдаŅŅ ŅĐģОваŅŅ, 0n â float null, 0N â long null, `sym â ŅиĐŋ ŅиĐŧвОĐģ, `sym1`sym2 â ŅĐŋиŅĐžĐē ŅиĐŧвОĐģОв
initWith:`sym`time`high`low`firstPrice`lastPrice`firstSize`lastSize`numTrades`volume`pvolume`turnover`avgPrice`avgSize`vwap`cumVolume!(`;00:00;0n;0n;0n;0n;0N;0N;0;0;0.0;0.0;0n;0n;0n;0);
aggCols:reverse key[initWith] except `sym`time; // ŅĐŋиŅĐžĐē вŅĐĩŅ
вŅŅиŅĐģŅĐĩĐŧŅŅ
ĐēĐžĐģĐžĐŊĐžĐē, reverse ОйŅŅŅĐŊĐĩĐŊ ĐŊиĐļĐĩ
āĻāĻŽāĻŋ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻāĻŋāĻ§āĻžāĻ¨ā§ sym āĻāĻŦāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¯ā§āĻ āĻāĻ°ā§āĻāĻŋ, āĻāĻāĻ¨ initWith āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻ¸āĻžāĻ°āĻŖā§ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻ°ā§āĻĄāĻŋāĻŽā§āĻĄ āĻ˛āĻžāĻāĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ āĻ¸āĻ āĻŋāĻ sym āĻāĻŦāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĨāĻžāĻā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻžāĻ°āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻāĻŋ āĻ¸āĻŽāĻˇā§āĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻžāĻĻā§āĻ° aggCols āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§āĨ¤ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻ˛ā§āĻāĻžāĻ¤ā§ āĻšāĻŦā§ āĻāĻžāĻ°āĻŖ Q-āĻ¤ā§ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (āĻĄāĻžāĻ¨ āĻĨā§āĻā§ āĻŦāĻžāĻŽā§)āĨ¤ āĻ˛āĻā§āĻˇā§āĻ¯ āĻšāĻ˛ āĻāĻŖāĻ¨āĻž āĻāĻā§āĻ āĻĨā§āĻā§ āĻāĻŽ āĻāĻ˛āĻŋāĻāĻŽā§ āĻ¯āĻžāĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž, āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŋāĻā§ āĻāĻ˛āĻžāĻŽ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§āĨ¤
āĻ¯ā§ āĻāĻ˛āĻžāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻāĻā§āĻ°āĻāĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻŽ āĻāĻ˛āĻžāĻŽāĻāĻŋ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
rollColumns:`sym`cumVolume;
āĻāĻāĻ¨ āĻāĻ˛āĻžāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻāĻžāĻŦā§ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¸ā§ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻā§āĻ°ā§āĻĒā§ āĻāĻžāĻ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻ¤āĻŋāĻ¨ āĻ§āĻ°āĻ¨ā§āĻ° āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
- āĻ¸āĻā§āĻāĻ¯āĻŧāĻāĻžāĻ°ā§ (āĻāĻ˛āĻŋāĻāĻŽ, āĻāĻžāĻ°ā§āĻ¨āĻāĻāĻžāĻ°, ..) - āĻāĻŽāĻžāĻĻā§āĻ° āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻā§āĻ°āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻŽāĻžāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
- āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ (āĻāĻā§āĻ, āĻ¨āĻŋāĻŽā§āĻ¨, ..) - āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻŽāĻžāĻ¨āĻāĻŋ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻĄā§āĻāĻž āĻĨā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ, āĻŦāĻžāĻāĻŋāĻā§āĻ˛āĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
- āĻŦāĻŋāĻļā§āĻ°āĻžāĻŽ. āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻ˛ā§āĻ¨ āĻāĻ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯āĻžāĻ:
accumulatorCols:`numTrades`volume`pvolume`turnover;
specialCols:`high`low`firstPrice`firstSize;
āĻāĻŖāĻ¨āĻžāĻ° āĻāĻĻā§āĻļ
āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻŋ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻ¤ āĻā§āĻŦāĻŋāĻ˛ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻŦāĨ¤ āĻĻāĻā§āĻˇāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻ¨āĻāĻžāĻŽāĻŋāĻ āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻ¸āĻā§āĻā§āĻāĻŋāĻ¤ āĻāĻ°āĻŋ āĻ¯āĻžāĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻā§āĻˇāĻ° āĻāĻŦāĻ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŋ āĻĨāĻžāĻā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻā§āĻ°āĻŽāĻŦāĻ°ā§āĻ§āĻŽāĻžāĻ¨ āĻāĻŦāĻ āĻ¸āĻšāĻ¯ā§āĻā§ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻāĻŋ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻāĻ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻŦāĻŋāĻ˛ āĻ¸āĻā§āĻā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
select high:max price, low:min price âĻ by sym,time.minute from table
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻāĻāĻāĻŋ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻāĻā§ - āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻāĻ˛āĻžāĻŽā§āĻ° āĻ¸ā§āĻ āĻĒā§āĻ°ā§āĻŦāĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŋāĻ¤āĨ¤ āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, Q-āĻ¤ā§, āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
?[table;whereClause;byClause;selectClause]
āĻāĻŽāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻŦāĻŋāĻļāĻĻāĻāĻžāĻŦā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻŦ āĻ¨āĻž; āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŦāĻ āĻŦāĻžāĻāĻžāĻ āĻāĻ°āĻž āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ āĻ¤ā§āĻā§āĻ āĻšāĻŦā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻĢāĻ°ā§āĻŽ āĻāĻ˛āĻžāĻŽā§āĻ° āĻ āĻāĻŋāĻ§āĻžāĻ¨ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤! āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋā§ˇ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻ¸āĻā§āĻā§āĻāĻŋāĻ¤ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§:
selExpression:`high`low`firstPrice`lastPrice`firstSize`lastSize`numTrades`volume`pvolume`turnover!parse each ("max price";"min price";"first price";"last price";"first size";"last size";"count i";"sum size";"sum price";"sum price*size"); // each ŅŅĐž ŅŅĐŊĐēŅиŅ map в Q Đ´ĐģŅ ОдĐŊĐžĐŗĐž ŅĐŋиŅĐēĐ°
preprocess:?[;();`sym`time!`sym`time.minute;selExpression];
āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻĒāĻžāĻ°ā§āĻ¸ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ, āĻ¯āĻž āĻāĻāĻāĻŋ Q āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨āĻ¤ā§ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻāĻ°ā§ āĻ¯āĻž eval āĻĢāĻžāĻāĻļāĻ¨ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¯āĻž āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻĒā§āĻ°āĻŋāĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻāĻļāĻ¨ (āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻāĻļāĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨) āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ (āĻā§āĻŦāĻŋāĻ˛) āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§ āĻĒā§āĻ°āĻŋāĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻŋ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻāĻŋāĻ¤ āĻā§āĻŦāĻŋāĻ˛ āĻĒāĻžāĻŦāĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻāĻ¤ āĻā§āĻŦāĻŋāĻ˛ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¸āĻŋāĻāĻĄā§āĻā§āĻĄā§ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻ˛āĻŋāĻāĻŋ:
for each sym in inputTable
idx: row index in agg table for sym+currentTime;
aggTable[idx;`high]: aggTable[idx;`high] | inputTable[sym;`high];
aggTable[idx;`volume]: aggTable[idx;`volume] + inputTable[sym;`volume];
âĻ
Q-āĻ¤ā§, āĻ˛ā§āĻĒā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻŽā§āĻ¯āĻžāĻĒ/āĻ°āĻŋāĻĄā§āĻ¸ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯ā§āĻšā§āĻ¤ā§ Q āĻāĻāĻāĻŋ āĻā§āĻā§āĻāĻ° āĻāĻžāĻˇāĻž āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ¸āĻšāĻā§āĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¤ā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻŦāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ˛ā§āĻĒ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, āĻāĻāĻŦāĻžāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻŋāĻšā§āĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
idx:calcIdx inputTable;
row:aggTable idx;
aggTable[idx;`high]: row[`high] | inputTable`high;
aggTable[idx;`volume]: row[`volume] + inputTable`volume;
âĻ
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻ°āĻ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ, Q-āĻāĻ° āĻāĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻļāĻā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§ āĻ āĻĒāĻžāĻ°ā§āĻāĻ° āĻ°āĻ¯āĻŧā§āĻā§ - āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻ āĻ āĻĒāĻžāĻ°ā§āĻāĻ°āĨ¤ āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻāĻ, āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻāĻāĻŋāĻ˛ āĻĄā§āĻāĻž āĻāĻžāĻ āĻžāĻŽā§āĻ¤ā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
idx:calcIdx inputTable;
rows:aggTable idx;
// .[target;(idx0;idx1;..);function;argument] ~ target[idx 0;idx 1;âĻ]: function[target[idx 0;idx 1;âĻ];argument], в ĐŊĐ°ŅĐĩĐŧ ŅĐģŅŅĐ°Đĩ ŅŅĐŊĐēŅиŅ â ŅŅĐž ĐŋŅиŅваиваĐŊиĐĩ
.[aggTable;(idx;aggCols);:;flip (row[`high] | inputTable`high;row[`volume] + inputTable`volume;âĻ)];
āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸āĻžāĻ°āĻŋāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨, āĻāĻ˛āĻžāĻŽ āĻ¨āĻ¯āĻŧ, āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻĢā§āĻ˛āĻŋāĻĒ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŽā§āĻ¯āĻžāĻā§āĻ°āĻŋāĻā§āĻ¸ (āĻ¸āĻžāĻ°āĻŋāĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻāĻ˛āĻžāĻŽā§āĻ° āĻ¤āĻžāĻ˛āĻŋāĻāĻž) āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛, āĻ¤āĻžāĻ āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻŽā§āĻ¯āĻžāĻĒ āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ˛āĻžāĻŽā§ āĻāĻ˛āĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻŋ (āĻ¯āĻž āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ¸ā§āĻā§āĻ°āĻĢāĻŋāĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻžāĻ¯āĻŧ):
.[aggTable;;:;]'[(idx;)each aggCols; (row[`high] | inputTable`high;row[`volume] + inputTable`volume;âĻ)];
āĻāĻŽāĻ°āĻž āĻāĻŦāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°āĻā§āĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ Q-āĻ¤ā§, āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻĒā§āĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ (āĻŽāĻžāĻ¨āĻāĻŋāĻ¤ā§āĻ°) āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻāĻ˛āĻžāĻŽā§āĻ° āĻ¸ā§āĻāĻāĻŋ āĻ¸ā§āĻĨāĻŋāĻ° āĻ¨āĻ¯āĻŧ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§āĻā§āĻ¤ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŦāĨ¤ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻŦāĻ āĻāĻ¨āĻĒā§āĻ āĻĄā§āĻāĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻ°āĻŋ āĻāĻŦāĻ inp āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ˛āĻžāĻŽ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽā§ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯āĻžāĻ:
aggExpression:`high`low`firstPrice`lastPrice`firstSize`lastSize`avgPrice`avgSize`vwap`cumVolume!
("row[`high]|inp`high";"row[`low]&inp`low";"row`firstPrice";"inp`lastPrice";"row`firstSize";"inp`lastSize";"pvolume%numTrades";"volume%numTrades";"turnover%volume";"row[`cumVolume]+inp`volume");
āĻāĻŋāĻā§ āĻāĻ˛āĻžāĻŽ āĻŦāĻŋāĻļā§āĻˇ; āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻŽāĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¯ā§ āĻāĻāĻŋ āĻ¸āĻžāĻ°āĻŋ [`numTrades] āĻāĻ˛āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽ - āĻ¯āĻĻāĻŋ āĻāĻ¤ā§ 0 āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻŽāĻžāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻĨāĻŽāĨ¤ Q-āĻāĻ° āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ˛ā§āĻā§āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻā§ - ?[āĻŦā§āĻ˛āĻŋāĻ¯āĻŧāĻžāĻ¨ āĻ¤āĻžāĻ˛āĻŋāĻāĻž;āĻ˛āĻŋāĻ¸ā§āĻ1;āĻ˛āĻŋāĻ¸ā§āĻ2] - āĻ¯āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻļāĻ°ā§āĻ¤ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻž 1 āĻŦāĻž 2 āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§:
// high -> ?[isFirst;inp`high;row[`high]|inp`high]
// @ - ŅĐžĐļĐĩ ОйОйŅĐĩĐŊĐŊĐžĐĩ ĐŋŅиŅваиваĐŊиĐĩ Đ´ĐģŅ ŅĐģŅŅĐ°Ņ ĐēĐžĐŗĐ´Đ° иĐŊĐ´ĐĩĐēŅ ĐŊĐĩĐŗĐģŅйОĐēиК
@[`aggExpression;specialCols;{[x;y]"?[isFirst;inp`",y,";",x,"]"};string specialCols];
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ āĻāĻŽāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ (āĻā§āĻāĻāĻĄāĻŧāĻž āĻ§āĻ¨ā§āĻ°ā§āĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋ) āĻ¸āĻš āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻ āĻāĻ˛ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻžāĻ¨ (āĻĒā§āĻ°āĻĨāĻŽ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ) āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻĒāĻžāĻ¯āĻŧ, āĻ¯āĻž āĻāĻŽāĻŋ 4 āĻ°ā§āĻĨ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻŋāĨ¤
āĻāĻ¸ā§āĻ¨ āĻāĻ˛āĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻžāĻāĻžāĻ°āĻŋ āĻ¸ā§āĻĒāĻŋāĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻŋ, āĻ¯ā§āĻšā§āĻ¤ā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ:
// volume -> row[`volume]+inp`volume
aggExpression[accumulatorCols]:{"row[`",x,"]+inp`",x } each string accumulatorCols;
āĻāĻāĻŋ Q āĻŽāĻžāĻ¨ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻ¸āĻžāĻāĻ¨āĻŽā§āĻ¨ā§āĻ, āĻ¤āĻŦā§ āĻāĻŽāĻŋ āĻāĻāĻŦāĻžāĻ°ā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻāĻŋāĨ¤ āĻ āĻŦāĻļā§āĻˇā§, āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ:
// ":",/:aggExprs ~ map[{":",x};aggExpr] => ":row[`high]|inp`high" ĐŋŅиŅвОиĐŧ вŅŅиŅĐģĐĩĐŊĐŊĐžĐĩ СĐŊĐ°ŅĐĩĐŊиĐĩ ĐŋĐĩŅĐĩĐŧĐĩĐŊĐŊОК, ĐŋĐžŅĐžĐŧŅ ŅŅĐž ĐŊĐĩĐēĐžŅĐžŅŅĐĩ ĐēĐžĐģĐžĐŊĐēи СавиŅŅŅ ĐžŅ ŅĐļĐĩ вŅŅиŅĐģĐĩĐŊĐŊŅŅ
СĐŊĐ°ŅĐĩĐŊиК
// string[cols],'exprs ~ map[,;string[cols];exprs] => "high:row[`high]|inp`high" СавĐĩŅŅиĐŧ ŅОСдаĐŊиĐĩ ĐŋŅиŅваиваĐŊиŅ. ,â ŅĐ°ŅŅиŅŅОвŅваĐĩŅŅŅ ĐēĐ°Đē map[concat]
// ";" sv exprs â String from Vector (sv), ŅĐžĐĩдиĐŊŅĐĩŅ ŅĐŋиŅĐžĐē ŅŅŅĐžĐē вŅŅавĐģŅŅ â;â ĐŋĐžŅŅĐĩдиĐŊĐĩ
updateAgg:value "{[aggTable;idx;inp] row:aggTable idx; isFirst_0=row`numTrades; .[aggTable;;:;]'[(idx;)each aggCols;(",(";"sv string[aggCols],'":",/:aggExpression aggCols),")]}";
āĻāĻ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻŋāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§, āĻāĻŽāĻŋ āĻāĻ¤āĻŋāĻļā§āĻ˛āĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻ¯āĻžāĻ¤ā§ āĻāĻŽāĻŋ āĻāĻĒāĻ°ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻŋ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§āĨ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻŦā§:
{[aggTable;idx;inp] rows:aggTable idx; isFirst_0=row`numTrades; .[aggTable;;:;]'[(idx;)each aggCols ;(cumVolume:row[`cumVolume]+inp`cumVolume;âĻ ; high:?[isFirst;inp`high;row[`high]|inp`high])]}
āĻāĻ˛āĻžāĻŽ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻā§āĻ°āĻŽ āĻāĻ˛ā§āĻāĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻāĻžāĻ°āĻŖ Q-āĻ¤ā§ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻā§āĻ°āĻŽ āĻĄāĻžāĻ¨ āĻĨā§āĻā§ āĻŦāĻžāĻŽā§ āĻĨāĻžāĻā§āĨ¤
āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻŖāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻļā§āĻ§ā§ āĻāĻāĻā§ āĻĒāĻ°āĻŋāĻāĻžāĻ āĻžāĻŽā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤āĨ¤
āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻĒāĻĻāĻā§āĻˇā§āĻĒ
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻŋāĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻāĻŦāĻ āĻāĻĒāĻĄā§āĻāĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŽāĻŋāĻ¨āĻŋāĻā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻ āĻŋāĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻž āĻāĻŦāĻ āĻ¸āĻŽāĻˇā§āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻāĻ āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻāĻāĻ¨āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, init āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻž āĻ¯āĻžāĻ:
init:{
tradeAgg:: 0#enlist[initWith]; // ŅОСдаĐĩĐŧ ĐŋŅŅŅŅŅ ŅиĐŋиСиŅОваĐŊĐŊŅŅ ŅĐ°ĐąĐģиŅŅ, enlist ĐŋŅĐĩвŅĐ°ŅĐ°ĐĩŅ ŅĐģОваŅŅ в ŅĐ°ĐąĐģиŅŅ, Đ° 0# ОСĐŊĐ°ŅĐ°ĐĩŅ вСŅŅŅ 0 ŅĐģĐĩĐŧĐĩĐŊŅОв иС ĐŊĐĩĐĩ
currTime::00:00; // ĐŊĐ°ŅĐŊĐĩĐŧ Ņ 0, :: ОСĐŊĐ°ŅĐ°ĐĩŅ, ŅŅĐž ĐŋŅиŅваиваĐŊиĐĩ в ĐŗĐģОйаĐģŅĐŊŅŅ ĐŋĐĩŅĐĩĐŧĐĩĐŊĐŊŅŅ
currSyms::`u#`symbol$(); // `u# - ĐŋŅĐĩвŅĐ°ŅĐ°ĐĩŅ ŅĐŋиŅĐžĐē в Đ´ĐĩŅĐĩвО, Đ´ĐģŅ ŅŅĐēĐžŅĐĩĐŊиŅ ĐŋОиŅĐēĐ° ŅĐģĐĩĐŧĐĩĐŊŅОв
offset::0; // иĐŊĐ´ĐĩĐēŅ в tradeAgg, ĐŗĐ´Đĩ ĐŊĐ°ŅиĐŊĐ°ĐĩŅŅŅ ŅĐĩĐēŅŅĐ°Ņ ĐŧиĐŊŅŅĐ°
rollCache:: `sym xkey update `u#sym from rollColumns#tradeAgg; // ĐēŅŅ Đ´ĐģŅ ĐŋĐžŅĐģĐĩĐ´ĐŊиŅ
СĐŊĐ°ŅĐĩĐŊиК roll ĐēĐžĐģĐžĐŊĐžĐē, ŅĐ°ĐąĐģиŅĐ° Ņ ĐēĐģŅŅĐžĐŧ sym
}
āĻāĻŽāĻ°āĻž āĻ°ā§āĻ˛ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋāĻ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°āĻŦ, āĻ¯āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŽāĻŋāĻ¨āĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻŦā§:
roll:{[tm]
if[currTime>tm; :init[]]; // ĐĩŅĐģи ĐŋĐĩŅĐĩваĐģиĐģи Са ĐŋĐžĐģĐŊĐžŅŅ, ŅĐž ĐŋŅĐžŅŅĐž вŅСОвĐĩĐŧ init
rollCache,::offset _ rollColumns#tradeAgg; // ОйĐŊОвиĐŧ ĐēŅŅ â вСŅŅŅ roll ĐēĐžĐģĐžĐŊĐēи иС aggTable, ОйŅĐĩСаŅŅ, вŅŅавиŅŅ в rollCache
offset::count tradeAgg;
currSyms::`u#`$();
}
āĻ¨āĻ¤ā§āĻ¨ āĻ āĻā§āĻˇāĻ° āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻŦā§:
addSyms:{[syms]
currSyms,::syms; // дОйавиĐŧ в ŅĐŋиŅĐžĐē иСвĐĩŅŅĐŊŅŅ
// дОйавиĐŧ в ŅĐ°ĐąĐģиŅŅ sym, time и rollColumns вОŅĐŋĐžĐģŅСОвавŅиŅŅ ОйОйŅĐĩĐŊĐŊŅĐŧ ĐŋŅиŅваиваĐŊиĐĩĐŧ.
// ФŅĐŊĐēŅиŅ ^ ĐŋОдŅŅавĐģŅĐĩŅ СĐŊĐ°ŅĐĩĐŊиŅ ĐŋĐž ŅĐŧĐžĐģŅĐ°ĐŊиŅ Đ´ĐģŅ roll ĐēĐžĐģĐžĐŊĐžĐē, ĐĩŅĐģи ŅиĐŧвОĐģĐ° ĐŊĐĩŅ в ĐēŅŅĐĩ. value flip table вОСвŅĐ°ŅĐ°ĐĩŅ ŅĐŋиŅĐžĐē ĐēĐžĐģĐžĐŊĐžĐē в ŅĐ°ĐąĐģиŅĐĩ.
`tradeAgg upsert @[count[syms]#enlist initWith;`sym`time,cols rc;:;(syms;currTime), (initWith cols rc)^value flip rc:rollCache ([] sym: syms)];
}
āĻāĻŦāĻ āĻ āĻŦāĻļā§āĻˇā§, upd āĻĢāĻžāĻāĻļāĻ¨ (Q āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤ āĻ¨āĻžāĻŽ), āĻ¯āĻž āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĄā§āĻāĻž āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ:
upd:{[tblName;data] // tblName ĐŊĐ°Đŧ ĐŊĐĩ ĐŊŅĐļĐŊĐž, ĐŊĐž ОйŅŅĐŊĐž ŅĐĩŅвиŅ ОйŅайаŅŅваĐĩŅ ĐŊĐĩŅĐēĐžĐģŅĐēĐž ŅĐ°ĐąĐģиŅ
tm:exec distinct time from data:() xkey preprocess data; // preprocess & calc time
updMinute[data] each tm; // дОйавиĐŧ Đ´Đ°ĐŊĐŊŅĐĩ Đ´ĐģŅ ĐēĐ°ĐļдОК ĐŧиĐŊŅŅŅ
};
updMinute:{[data;tm]
if[tm<>currTime; roll tm; currTime::tm]; // ĐŋĐžĐŧĐĩĐŊŅĐĩĐŧ ĐŧиĐŊŅŅŅ, ĐĩŅĐģи ĐŊĐĩОйŅ
ОдиĐŧĐž
data:select from data where time=tm; // ŅиĐģŅŅŅĐ°ŅиŅ
if[count msyms:syms where not (syms:data`sym)in currSyms; addSyms msyms]; // ĐŊОвŅĐĩ ŅиĐŧвОĐģŅ
updateAgg[`tradeAgg;offset+currSyms?syms;data]; // ОйĐŊОвиĐŧ Đ°ĐŗŅĐĩĐŗиŅОваĐŊĐŊŅŅ ŅĐ°ĐąĐģиŅŅ. ФŅĐŊĐēŅиŅ ? иŅĐĩŅ иĐŊĐ´ĐĩĐēŅ ŅĐģĐĩĐŧĐĩĐŊŅОв ŅĐŋиŅĐēĐ° ŅĐŋŅава в ŅĐŋиŅĐēĐĩ ŅĐģĐĩва.
};
āĻāĻāĻžāĻ¨ā§āĻ āĻļā§āĻˇ. āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻā§āĻĄ, āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋ āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§, āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨:
initWith:`sym`time`high`low`firstPrice`lastPrice`firstSize`lastSize`numTrades`volume`pvolume`turnover`avgPrice`avgSize`vwap`cumVolume!(`;00:00;0n;0n;0n;0n;0N;0N;0;0;0.0;0.0;0n;0n;0n;0);
aggCols:reverse key[initWith] except `sym`time;
rollColumns:`sym`cumVolume;
accumulatorCols:`numTrades`volume`pvolume`turnover;
specialCols:`high`low`firstPrice`firstSize;
selExpression:`high`low`firstPrice`lastPrice`firstSize`lastSize`numTrades`volume`pvolume`turnover!parse each ("max price";"min price";"first price";"last price";"first size";"last size";"count i";"sum size";"sum price";"sum price*size");
preprocess:?[;();`sym`time!`sym`time.minute;selExpression];
aggExpression:`high`low`firstPrice`lastPrice`firstSize`lastSize`avgPrice`avgSize`vwap`cumVolume!("row[`high]|inp`high";"row[`low]&inp`low";"row`firstPrice";"inp`lastPrice";"row`firstSize";"inp`lastSize";"pvolume%numTrades";"volume%numTrades";"turnover%volume";"row[`cumVolume]+inp`volume");
@[`aggExpression;specialCols;{"?[isFirst;inp`",y,";",x,"]"};string specialCols];
aggExpression[accumulatorCols]:{"row[`",x,"]+inp`",x } each string accumulatorCols;
updateAgg:value "{[aggTable;idx;inp] row:aggTable idx; isFirst_0=row`numTrades; .[aggTable;;:;]'[(idx;)each aggCols;(",(";"sv string[aggCols],'":",/:aggExpression aggCols),")]}"; / '
init:{
tradeAgg::0#enlist[initWith];
currTime::00:00;
currSyms::`u#`symbol$();
offset::0;
rollCache:: `sym xkey update `u#sym from rollColumns#tradeAgg;
};
roll:{[tm]
if[currTime>tm; :init[]];
rollCache,::offset _ rollColumns#tradeAgg;
offset::count tradeAgg;
currSyms::`u#`$();
};
addSyms:{[syms]
currSyms,::syms;
`tradeAgg upsert @[count[syms]#enlist initWith;`sym`time,cols rc;:;(syms;currTime),(initWith cols rc)^value flip rc:rollCache ([] sym: syms)];
};
upd:{[tblName;data] updMinute[data] each exec distinct time from data:() xkey preprocess data};
updMinute:{[data;tm]
if[tm<>currTime; roll tm; currTime::tm];
data:select from data where time=tm;
if[count msyms:syms where not (syms:data`sym)in currSyms; addSyms msyms];
updateAgg[`tradeAgg;offset+currSyms?syms;data];
};
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻ
āĻ¸ā§āĻŦāĻžāĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻ¯āĻžāĻ. āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻāĻžāĻ˛āĻžāĻ¨ (āĻā§āĻĄāĻāĻŋ service.q āĻĢāĻžāĻāĻ˛ā§ āĻ°āĻžāĻā§āĻ¨) āĻāĻŦāĻ init āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ˛ āĻāĻ°ā§āĻ¨:
q service.q âp 5566
q)init[]
āĻ āĻ¨ā§āĻ¯ āĻāĻ¨āĻ¸ā§āĻ˛ā§, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ Q āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻĨāĻŽāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
h:hopen `:host:5566
h:hopen 5566 // ĐĩŅĐģи Ойа ĐŊĐ° ОдĐŊĐžĐŧ Ņ
ĐžŅŅĐĩ
āĻĒā§āĻ°āĻĨāĻŽā§, āĻāĻ¸ā§āĻ¨ āĻĒā§āĻ°āĻ¤ā§āĻāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ - 10000 āĻā§āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻā§āĻŦāĻŋāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻŋāĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻāĻ¨āĻ¸ā§āĻ˛ā§:
syms:`IBM`AAPL`GOOG,-9997?`8
rnd:{[n;t] ([] sym:n?syms; time:t+asc n#til 25; price:n?10f; size:n?10)}
āĻā§āĻŦāĻŋāĻ˛ā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻ¸āĻšāĻ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻ¯āĻŧ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻāĻŋāĻšā§āĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻāĻŋāĨ¤ rnd āĻĢāĻžāĻāĻļāĻ¨ n āĻ¸āĻžāĻ°āĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§āĻŦāĻŋāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻŽāĻ¯āĻŧ t āĻĨā§āĻā§ t+25 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ¤ā§ āĻĄā§āĻāĻž āĻĒāĻžāĻ āĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻĒā§āĻ°āĻĨāĻŽ āĻĻāĻļ āĻāĻ¨ā§āĻāĻž āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨):
{h (`upd;`trade;rnd[10000;x])} each `time$00:00 + til 60*10
āĻāĻĒāĻ¨āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋāĻ¤ā§ āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§ āĻā§āĻŦāĻŋāĻ˛āĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§:
c 25 200
select from tradeAgg where sym=`AAPL
-20#select from tradeAgg where sym=`AAPL
āĻĢāĻ˛āĻžāĻĢāĻ˛:
sym|time|high|low|firstPrice|lastPrice|firstSize|lastSize|numTrades|volume|pvolume|turnover|avgPrice|avgSize|vwap|cumVolume
--|--|--|--|--|--------------------------------
AAPL|09:27|9.258904|9.258904|9.258904|9.258904|8|8|1|8|9.258904|74.07123|9.258904|8|9.258904|2888
AAPL|09:28|9.068162|9.068162|9.068162|9.068162|7|7|1|7|9.068162|63.47713|9.068162|7|9.068162|2895
AAPL|09:31|4.680449|0.2011121|1.620827|0.2011121|1|5|4|14|9.569556|36.84342|2.392389|3.5|2.631673|2909
AAPL|09:33|2.812535|2.812535|2.812535|2.812535|6|6|1|6|2.812535|16.87521|2.812535|6|2.812535|2915
AAPL|09:34|5.099025|5.099025|5.099025|5.099025|4|4|1|4|5.099025|20.3961|5.099025|4|5.099025|2919
āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ āĻāĻ¤ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¤āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨ āĻ˛ā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻŽāĻ¨ā§ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻĒāĻĄā§āĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻ§āĻžāĻ¨ 25 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĄā§āĻāĻž āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¯āĻŧ āĻĻāĻŋāĻ¤ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ (āĻāĻĄāĻŧā§) āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻĒāĻĄā§āĻā§ āĻāĻŽāĻĒāĻā§āĻˇā§ 20 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĢāĻŋāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛āĻŋāĻā§āĻ¨:
tm:10:00:00.000
stressTest:{[n] 1 string[tm]," "; times,::h ({st:.z.T; upd[`trade;x]; .z.T-st};rnd[n;tm]); tm+:25}
start:{[n] times::(); do[4800;stressTest[n]]; -1 " "; `min`avg`med`max!(min times;avg times;med times;max times)}
4800 āĻšāĻ˛ āĻĻā§āĻ āĻŽāĻŋāĻ¨āĻŋāĻāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻ¤āĻŋ 1000 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ 25 āĻ¸āĻžāĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻĨāĻŽā§ āĻĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨:
start 1000
āĻāĻŽāĻžāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻĒāĻĄā§āĻā§ āĻāĻ¯āĻŧā§āĻ āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻāĻžāĻāĻžāĻāĻžāĻāĻŋāĨ¤ āĻ¤āĻžāĻ āĻāĻŽāĻŋ āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¸āĻžāĻ°āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻŦāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§ 10.000 āĻāĻ°āĻŦ:
start 10000
āĻĢāĻ˛āĻžāĻĢāĻ˛:
min| 00:00:00.004
avg| 9.191458
med| 9f
max| 00:00:00.030
āĻāĻŦāĻžāĻ°, āĻŦāĻŋāĻļā§āĻˇ āĻāĻŋāĻā§ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ 24 āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻ˛āĻžāĻāĻ¨, āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ 400 āĻšāĻžāĻāĻžāĻ°āĨ¤ 25 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ°āĻ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ§āĻ°ā§, āĻāĻĒāĻĄā§āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° 5 āĻŦāĻžāĻ° āĻ§ā§āĻ° āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ, āĻĻā§āĻļā§āĻ¯āĻ¤ āĻ¯āĻāĻ¨ āĻŽāĻŋāĻ¨āĻŋāĻ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻšāĻ¯āĻŧāĨ¤ 100.000-āĻ āĻŦā§āĻĻā§āĻ§āĻŋ āĻāĻ°āĻž āĻ¯āĻžāĻ:
start 100000
āĻĢāĻ˛āĻžāĻĢāĻ˛:
min| 00:00:00.013
avg| 25.11083
med| 24f
max| 00:00:00.108
q)sum times
00:02:00.532
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻ¸āĻŦā§āĻŽāĻžāĻ¤ā§āĻ° āĻŽā§āĻāĻžāĻŦā§āĻ˛āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻŦā§ āĻ¤āĻŦā§āĻ āĻāĻāĻŋ āĻā§āĻ¸ā§ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻĄā§āĻāĻžāĻ° āĻāĻ˛āĻŋāĻāĻŽ (āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻŋāĻ¨āĻŋāĻā§ 240 āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻ¸āĻžāĻ°āĻŋ) āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻŦāĻĄāĻŧ; āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻā§āĻ˛ā§āĻ¨ (āĻŦāĻž āĻāĻŽāĻ¨āĻāĻŋ āĻāĻ¯āĻŧā§āĻ āĻĄāĻāĻ¨ āĻā§āĻ˛ā§āĻ¨) āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ, āĻ¯āĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻā§āĻˇāĻ°ā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ āĻāĻļ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§āĨ¤ āĻ¤āĻŦā§āĻ, āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻāĻžāĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻ¤ā§āĻ¤āĻžāĻāĻ°ā§āĻˇāĻ āĻ¯āĻž āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻāĻāĻžāĻŦā§ āĻĄā§āĻāĻž āĻ¸ā§āĻā§āĻ°ā§āĻā§āĻ° āĻāĻĒāĻ° āĻĢā§āĻāĻžāĻ¸ āĻāĻ°ā§āĨ¤
āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻ āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻā§āĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻĒāĻĄā§āĻā§āĻ° āĻāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ -āĻ°ā§āĻāĻŋāĻāĻāĻžāĻŦā§ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻāĻžāĻ°āĻŖāĻāĻŋ āĻšāĻ˛ āĻ¸āĻā§āĻā§āĻāĻŋāĻ¤ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ¸āĻ˛ā§ āĻāĻāĻāĻŋ āĻ¸āĻŋ āĻĢāĻžāĻāĻļāĻ¨, āĻ¯āĻž āĻāĻĒāĻĄā§āĻāĻāĻā§āĻ° āĻā§āĻ¯āĻŧā§ āĻ āĻ¨ā§āĻ āĻŦā§āĻļāĻŋ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°āĨ¤ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĒāĻĄā§āĻā§āĻ° āĻāĻāĻžāĻ° (āĻĒā§āĻ°āĻžāĻ¯āĻŧ 10.000) āĻĨā§āĻā§ āĻļā§āĻ°ā§ āĻāĻ°ā§, updateAgg āĻāĻ° āĻ¸āĻŋāĻ˛āĻŋāĻāĻ¯āĻŧā§ āĻĒā§āĻāĻā§ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻāĻŋāĻ° āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻĄā§āĻā§āĻ° āĻāĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻĒāĻĻāĻā§āĻˇā§āĻĒ Q āĻāĻ° āĻāĻžāĻ°āĻŖā§ āĻ¯ā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻāĻ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĄā§āĻāĻž āĻšāĻāĻŽ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽāĨ¤ āĻāĻāĻŋ āĻšāĻžāĻāĻ˛āĻžāĻāĻ āĻāĻ°ā§ āĻ¯ā§ āĻŦāĻĄāĻŧ āĻĄā§āĻāĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻ āĻŋāĻ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻāĻ¤āĻāĻž āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖāĨ¤ āĻāĻ°ā§āĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻšāĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻĄā§āĻāĻžāĻ° āĻ¸āĻ āĻŋāĻ āĻ¸ā§āĻā§āĻ°ā§āĻāĨ¤ āĻ¯āĻĻāĻŋ āĻĄā§āĻāĻž āĻāĻ˛āĻžāĻŽāĻžāĻ°āĻ˛āĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻ¨āĻž āĻšāĻ¯āĻŧ āĻŦāĻž āĻ¸āĻŽāĻ¯āĻŧ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻ āĻ°ā§āĻĄāĻžāĻ° āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž TLB āĻā§āĻ¯āĻžāĻļā§ āĻŽāĻŋāĻ¸ - āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻ ā§āĻ¯āĻžāĻĄā§āĻ°ā§āĻ¸ āĻā§āĻ¯āĻžāĻļā§ āĻŽā§āĻŽāĻ°āĻŋ āĻĒā§āĻˇā§āĻ āĻžāĻ° āĻ āĻŋāĻāĻžāĻ¨āĻžāĻ° āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻšāĻŦāĨ¤ āĻāĻāĻāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ˛ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 30 āĻā§āĻŖ āĻŦā§āĻļāĻŋ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻā§, āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻĄā§āĻāĻž āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻĒāĻĄāĻŧā§, āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻāĻŋ āĻāĻ¯āĻŧā§āĻāĻŦāĻžāĻ° āĻ§ā§āĻ° āĻāĻ°ā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§ā§ˇ
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻŋ āĻĻā§āĻāĻŋāĻ¯āĻŧā§āĻāĻŋ āĻ¯ā§ KDB+ āĻāĻŦāĻ Q āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦāĻĄāĻŧ āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻšāĻā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻ¯āĻŧ, āĻŦāĻ°āĻ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻŋāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ¯āĻž āĻāĻ¯āĻŧā§āĻ āĻŽāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨ āĻ¸āĻžāĻ°āĻŋ/āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻ āĻĄā§āĻāĻž āĻšāĻāĻŽ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽāĨ¤ āĻāĻāĻāĻŋ āĻāĻāĻ Q āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤ Q āĻāĻžāĻˇāĻž āĻ¨āĻŋāĻā§āĻ āĻāĻ° āĻā§āĻā§āĻāĻ° āĻĒā§āĻ°āĻā§āĻ¤āĻŋ, āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ SQL āĻāĻĒāĻāĻžāĻˇāĻž āĻĻā§āĻāĻžāĻˇā§ āĻāĻŦāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻā§āĻŦ āĻ¸āĻĢāĻ˛ āĻ¸ā§āĻā§āĻ° āĻāĻžāĻ°āĻŖā§ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻ˛āĻāĻ°āĻŋāĻĻāĻŽāĻā§āĻ˛āĻŋāĻ° āĻ āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻāĻŦāĻ āĻĻāĻā§āĻˇ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻŽāĻŋ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŦ āĻ¯ā§ āĻāĻĒāĻ°ā§āĻ°āĻāĻŋ Q āĻāĻ° āĻā§āĻˇāĻŽāĻ¤āĻžāĻ° āĻ
āĻāĻļ āĻŽāĻžāĻ¤ā§āĻ°; āĻāĻāĻŋāĻ° āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ
āĻ¨āĻ¨ā§āĻ¯ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯āĻ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻāĻāĻŋ āĻ
āĻ¤ā§āĻ¯āĻ¨ā§āĻ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ IPC āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻ¯āĻž āĻĒā§āĻĨāĻ Q āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸ā§āĻŽāĻžāĻ¨āĻž āĻŽā§āĻā§ āĻĻā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ āĻļāĻ¤ āĻļāĻ¤ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻŦāĻŋāĻļā§āĻŦā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ
āĻāĻļā§ āĻāĻ¯āĻŧā§āĻ āĻĄāĻāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ
āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com