Π ΡΠΎΠΌΠ΅ ΡΡΠ° ΡΠ΅ ΠΠΠ+ Π±Π°Π·Π°, Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ΅Π·ΠΈΠΊ, ΠΊΠΎΡΠ΅ ΡΡ ΡΠΈΡ
ΠΎΠ²Π΅ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΈ ΠΌΠ°Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΠΈ Ρ ΠΌΠΎΠΌ ΠΏΡΠ΅ΡΡ
ΠΎΠ΄Π½ΠΎΠΌ
Π£Π²ΠΎΠ΄
ΠΠΠ+ ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π°ΡΠ½Π° Π±Π°Π·Π° ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΡΠΎΠΊΡΡΠΈΡΠ°Π½Π° Π½Π° Π²Π΅ΠΎΠΌΠ° Π²Π΅Π»ΠΈΠΊΠ΅ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π΅ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°, ΠΏΠΎΡΠ΅Π΄Π°Π½ΠΈΡ Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ°Π½ Π½Π°ΡΠΈΠ½ (ΠΏΡΠ΅ ΡΠ²Π΅Π³Π° ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Ρ). ΠΠΎΡΠΈΡΡΠΈ ΡΠ΅ ΠΏΡΠ²Π΅Π½ΡΡΠ²Π΅Π½ΠΎ Ρ ΡΠΈΠ½Π°Π½ΡΠΈΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΡΠΈΡΡΡΠΈΡΠ°ΠΌΠ° - Π±Π°Π½ΠΊΠ°ΠΌΠ°, ΠΈΠ½Π²Π΅ΡΡΠΈΡΠΈΠΎΠ½ΠΈΠΌ ΡΠΎΠ½Π΄ΠΎΠ²ΠΈΠΌΠ°, ΠΎΡΠΈΠ³ΡΡΠ°Π²Π°ΡΡΡΠΈΠΌ Π΄ΡΡΡΡΠ²ΠΈΠΌΠ°. Π ΡΠ΅Π·ΠΈΠΊ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ½ΠΈ ΡΠ΅Π·ΠΈΠΊ ΠΠΠ+ ΠΊΠΎΡΠΈ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π΄Π° Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎ ΡΠ°Π΄ΠΈΡΠ΅ ΡΠ° ΠΎΠ²ΠΈΠΌ ΠΏΠΎΠ΄Π°ΡΠΈΠΌΠ°. Π ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΡΠ° ΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎΡΠ° ΠΈ Π΅ΡΠΈΠΊΠ°ΡΠ½ΠΎΡΡ, Π΄ΠΎΠΊ ΡΠ΅ ΡΠ°ΡΠ½ΠΎΡΠ° ΠΆΡΡΠ²ΡΡΠ΅. Π’ΠΎ ΡΠ΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π²Π° ΡΠΈΡΠ΅Π½ΠΈΡΠΎΠΌ Π΄Π° ΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡΠΊΠΈ ΡΠ΅Π·ΠΈΠΊ Ρ ΡΠ²Π°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°ΡΡ Π±ΠΈΡΠΈ ΡΠ΅ΡΠΊΠΎ ΡΠ°Π·ΡΠΌΡΠΈΠ², Π° ΡΠ°ΠΆΠ΅ΡΠΎΡΡ ΠΈ Π±ΠΎΠ³Π°ΡΡΡΠ²ΠΎ ΡΠ½ΠΈΠΌΠΊΠ° ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π²Π°ΠΌ Π΄Π° Π½Π° ΡΠ΅Π΄Π½ΠΎΠΌ Π΅ΠΊΡΠ°Π½Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠΈ Π΄Π΅ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°, ΡΡΠΎ Π³Π° Π½Π° ΠΊΡΠ°ΡΡ ΡΠΈΠ½ΠΈ Π»Π°ΠΊΡΠΈΠΌ Π·Π° ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΠ΅.
Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»Π°Π½ΠΊΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΠΌΠΎ ΠΏΡΠ½ΠΎΠΏΡΠ°Π²Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌ Ρ Π ΠΈ ΠΌΠΎΠΆΠ΄Π° Π±ΠΈΡΡΠ΅ ΠΆΠ΅Π»Π΅Π»ΠΈ Π΄Π° Π³Π° ΠΈΡΠΏΡΠΎΠ±Π°ΡΠ΅. ΠΠ° Π±ΠΈΡΡΠ΅ ΡΠΎ ΡΡΠ°Π΄ΠΈΠ»ΠΈ, Π±ΠΈΡΠ΅ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±Π°Π½ ΠΏΡΠ°Π²ΠΈ Π. ΠΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΡΠ·Π΅ΡΠΈ Π±Π΅ΡΠΏΠ»Π°ΡΠ½Ρ 32-Π±ΠΈΡΠ½Ρ Π²Π΅ΡΠ·ΠΈΡΡ Π½Π° Π²Π΅Π± Π»ΠΎΠΊΠ°ΡΠΈΡΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ΅ ΠΊΠΊ β
ΠΡΠΎΠ±Π»Π΅ΠΌ ΡΡΠ°ΡΠ΅ΠΌΠ΅Π½Ρ
ΠΠΎΡΡΠΎΡΠΈ ΠΈΠ·Π²ΠΎΡ ΠΊΠΎΡΠΈ ΡΠ°ΡΠ΅ ΡΠ°Π±Π΅Π»Ρ ΡΠ° ΠΏΠΎΠ΄Π°ΡΠΈΠΌΠ° ΡΠ²Π°ΠΊΠΈΡ 25 ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ. ΠΠΎΡΡΠΎ ΡΠ΅ ΠΠΠ+ ΠΊΠΎΡΠΈΡΡΠΈ ΠΏΡΠ²Π΅Π½ΡΡΠ²Π΅Π½ΠΎ Ρ ΡΠΈΠ½Π°Π½ΡΠΈΡΠ°ΠΌΠ°, ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ΠΌΠΎ Π΄Π° ΡΠ΅ ΡΠ°Π΄ΠΈ ΠΎ ΡΠ°Π±Π΅Π»ΠΈ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ° (ΡΡΠ³ΠΎΠ²Π°), ΠΊΠΎΡΠ° ΠΈΠΌΠ° ΡΠ»Π΅Π΄Π΅ΡΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π΅: Π²ΡΠ΅ΠΌΠ΅ (Π²ΡΠ΅ΠΌΠ΅ Ρ ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌΠ°), ΡΠΈΠΌ (ΠΎΠ·Π½Π°ΠΊΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ΅ Π½Π° Π±Π΅ΡΠ·ΠΈ - ΠΠΠ-, ΠΠΠΠ,β¦), ΡΠ΅Π½Π° (ΡΠ΅Π½Π° ΠΏΠΎ ΠΊΠΎΡΠΎΡ ΡΡ Π°ΠΊΡΠΈΡΠ΅ ΠΊΡΠΏΡΠ΅Π½Π΅), Π²Π΅Π»ΠΈΡΠΈΠ½Π° (Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ΅). ΠΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΠ΄ 25 ΠΌΠΈΠ»ΠΈΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΡΠ°Π½, Π½ΠΈΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Π»ΠΈ ΠΈ Π½Π΅ ΠΏΡΠ΅Π΄ΡΠ³Π°ΡΠ°ΠΊ. ΠΠ΅Π³ΠΎΠ²ΠΎ ΠΏΡΠΈΡΡΡΡΠ²ΠΎ Π·Π½Π°ΡΠΈ Π΄Π° ΠΏΠΎΠ΄Π°ΡΠΈ Π΄ΠΎΠ»Π°Π·Π΅ Ρ ΡΠ΅ΡΠ²ΠΈΡ Π²Π΅Ρ Π±Π°ΡΠ΅ΡΠΎΠ²Π°Π½ΠΈ. ΠΠΈΠ»ΠΎ Π±ΠΈ Π»Π°ΠΊΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠΈ Π±Π°ΡΠ΅ΡΠΎΠ²Π°ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈ ΡΡΠ»ΡΠ³Π΅, ΡΠΊΡΡΡΡΡΡΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΎ Π±Π°ΡΠ΅ΡΠΎΠ²Π°ΡΠ΅ Ρ Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΎΠ΄ ΡΡΠ΅Π½ΡΡΠ½ΠΎΠ³ ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ°, Π°Π»ΠΈ ΡΠ°Π΄ΠΈ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎΡΡΠΈ, ΡΠΎΠΊΡΡΠΈΡΠ°ΡΠ΅ΠΌΠΎ ΡΠ΅ Π½Π° ΡΠΈΠΊΡΠ½ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π».
Π£ΡΠ»ΡΠ³Π° ΠΌΠΎΡΠ° Π΄Π° Π±ΡΠΎΡΠΈ ΡΠ²Π°ΠΊΠΈ ΠΌΠΈΠ½ΡΡ Π·Π° ΡΠ²Π°ΠΊΠΈ Π΄ΠΎΠ»Π°Π·Π½ΠΈ ΡΠΈΠΌΠ±ΠΎΠ» ΠΈΠ· ΠΊΠΎΠ»ΠΎΠ½Π΅ ΡΠΈΠΌ ΡΠΊΡΠΏ ΡΡΠ½ΠΊΡΠΈΡΠ° Π°Π³ΡΠ΅Π³ΠΈΡΠ°ΡΠ° - ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΡΠ΅Π½Π°, ΠΏΡΠΎΡΠ΅ΡΠ½Π° ΡΠ΅Π½Π°, Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΡΠΌΠ΅, ΠΈΡΠ΄. ΠΊΠΎΡΠΈΡΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°. Π Π°Π΄ΠΈ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎΡΡΠΈ, ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ΠΌΠΎ Π΄Π° ΡΠ΅ ΡΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΡΠ΅ ΠΌΠΎΠ³Ρ ΠΈΠ·ΡΠ°ΡΡΠ½Π°ΡΠΈ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ, ΡΡ. Π΄Π° Π±ΠΈΡΡΠ΅ Π΄ΠΎΠ±ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ Π²ΡΠ΅Π΄Π½ΠΎΡΡ, Π΄ΠΎΠ²ΠΎΡΠ½ΠΎ ΡΠ΅ Π·Π½Π°ΡΠΈ Π΄Π²Π° Π±ΡΠΎΡΠ° - ΡΡΠ°ΡΠΈ ΠΈ Π΄ΠΎΠ»Π°Π·Π½Π΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΡΠ΅ ΠΌΠ°ΠΊ, ΠΏΡΠΎΡΠ΅ΠΊ, Π·Π±ΠΈΡ ΠΈΠΌΠ°ΡΡ ΠΎΠ²ΠΎ ΡΠ²ΠΎΡΡΡΠ²ΠΎ, Π°Π»ΠΈ ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΌΠ΅Π΄ΠΈΡΠ°Π½Π° Π½Π΅.
Π’Π°ΠΊΠΎΡΠ΅ ΡΠ΅ΠΌΠΎ ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΈΡΠΈ Π΄Π° ΡΠ΅ Π΄ΠΎΠ»Π°Π·Π½ΠΈ ΡΠΎΠΊ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΡΠΊΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅ΡΠ΅Π½. ΠΠ²ΠΎ ΡΠ΅ Π½Π°ΠΌ Π΄Π°ΡΠΈ ΠΏΡΠΈΠ»ΠΈΠΊΡ Π΄Π° ΡΠ°Π΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΠ΅ΠΌ ΡΡΠ΅Π½ΡΡΠΊΡ. Π£ ΠΏΡΠ°ΠΊΡΠΈ ΡΠ΅ Π΄ΠΎΠ²ΠΎΡΠ½ΠΎ Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π΄ΠΈΡΠ΅ ΡΠ° ΡΡΠ΅Π½ΡΡΠ½ΠΈΠΌ ΠΈ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠΈΠ½ΡΡΠ°ΠΌΠ° Ρ ΡΠ»ΡΡΠ°ΡΡ Π΄Π° Π½Π΅ΠΊΠ° Π°ΠΆΡΡΠΈΡΠ°ΡΠ° ΠΊΠ°ΡΠ½Π΅. Π Π°Π΄ΠΈ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎΡΡΠΈ, Π½Π΅ΡΠ΅ΠΌΠΎ ΡΠ°Π·ΠΌΠ°ΡΡΠ°ΡΠΈ ΠΎΠ²Π°Ρ ΡΠ»ΡΡΠ°Ρ.
Π€ΡΠ½ΠΊΡΠΈΡΠ΅ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΠ΅
ΠΠΎΡΡΠ΅Π±Π½Π΅ ΡΡΠ½ΠΊΡΠΈΡΠ΅ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΠ΅ ΡΡ Π½Π°Π²Π΅Π΄Π΅Π½Π΅ Ρ Π½Π°ΡΡΠ°Π²ΠΊΡ. Π£Π·Π΅ΠΎ ΡΠ°ΠΌ ΡΡΠΎ ΡΠ΅ Π²ΠΈΡΠ΅ ΠΌΠΎΠ³ΡΡΠ΅ Π΄Π° ΠΏΠΎΠ²Π΅ΡΠ°ΠΌ ΠΎΠΏΡΠ΅ΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΠ»ΡΠ³Π΅:
- Π²ΠΈΡΠΎΠΊΠ° β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΡΠ΅Π½Π° β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° ΡΠ΅Π½Π° ΠΏΠΎ ΠΌΠΈΠ½ΡΡΡ.
- Π½ΠΈΡΠΊΠ° β ΠΌΠΈΠ½ ΡΠ΅Π½Π° β ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° ΡΠ΅Π½Π° ΠΏΠΎ ΠΌΠΈΠ½ΡΡΡ.
- ΡΠΈΡΡΡΠΡΠΈΡΠ΅ β ΠΏΡΠ²Π° ΡΠ΅Π½Π° β ΠΏΡΠ²Π° ΡΠ΅Π½Π° ΠΏΠΎ ΠΌΠΈΠ½ΡΡΡ.
- Π»Π°ΡΡΠΡΠΈΡΠ΅ β ΠΏΠΎΡΠ»Π΅Π΄ΡΠ° ΡΠ΅Π½Π° β ΠΏΠΎΡΠ»Π΅Π΄ΡΠ° ΡΠ΅Π½Π° ΠΏΠΎ ΠΌΠΈΠ½ΡΡΡ.
- ΡΠΈΡΡΡΠ‘ΠΈΠ·Π΅ β ΠΏΡΠ²Π° Π²Π΅Π»ΠΈΡΠΈΠ½Π° β ΠΏΡΠ²Π° Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΡΠ³ΠΎΠ²ΠΈΠ½Π΅ Ρ ΠΌΠΈΠ½ΡΡΠΈ.
- Π»Π°ΡΡΠ‘ΠΈΠ·Π΅ β ΠΏΠΎΡΠ»Π΅Π΄ΡΠ° Π²Π΅Π»ΠΈΡΠΈΠ½Π° β ΠΏΠΎΡΠ»Π΅Π΄ΡΠ° Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΡΠ³ΠΎΠ²ΠΈΠ½Π΅ Π·Π° ΠΌΠΈΠ½ΡΡ.
- Π½ΡΠΌΠ’ΡΠ°Π΄Π΅Ρ β ΡΠΎΡΠ½Ρ ΠΈ β Π±ΡΠΎΡ ΡΡΠ³ΠΎΠ²ΠΈΠ½Π° Ρ ΠΌΠΈΠ½ΡΡΠΈ.
- Π²ΠΎΠ»ΡΠΌΠ΅ β ΡΡΠΌΠ° ΡΠΈΠ·Π΅ β Π·Π±ΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΡΠ³ΠΎΠ²ΠΈΠ½Π΅ Ρ ΠΌΠΈΠ½ΡΡΠΈ.
- ΠΏΠ²ΠΎΠ»ΡΠΌΠ΅ β Π·Π±ΠΈΡ ΡΠ΅Π½Π° β Π·Π±ΠΈΡ ΡΠ΅Π½Π° ΠΏΠΎ ΠΌΠΈΠ½ΡΡΡ, ΠΏΠΎΡΡΠ΅Π±Π°Π½ Π·Π° Π°Π²Π³ΠΡΠΈΡΠ΅.
- β Π·Π±ΠΈΡΠ½Π° ΡΠ΅Π½Π° ΠΏΡΠΎΠΌΠ΅ΡΠ°*Π²Π΅Π»ΠΈΡΠΈΠ½Π° β ΡΠΊΡΠΏΠ°Π½ ΠΎΠ±ΠΈΠΌ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ° ΠΏΠΎ ΠΌΠΈΠ½ΡΡΡ.
- Π°Π²Π³ΠΡΠΈΡΠ΅ β ΠΏΠ²ΠΎΠ»ΡΠΌΠ΅%Π½ΡΠΌΠ’ΡΠ°Π΄Π΅Ρ β ΠΏΡΠΎΡΠ΅ΡΠ½Π° ΡΠ΅Π½Π° ΠΏΠΎ ΠΌΠΈΠ½ΡΡΡ.
- Π°Π²Π³Π‘ΠΈΠ·Π΅ β Π²ΠΎΠ»ΡΠΌΠ΅%Π½ΡΠΌΠ’ΡΠ°Π΄Π΅Ρ β ΠΏΡΠΎΡΠ΅ΡΠ½Π° Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΡΠ³ΠΎΠ²ΠΈΠ½Π΅ Ρ ΠΌΠΈΠ½ΡΡΠΈ.
- Π²Π²Π°ΠΏ β ΠΎΠ±ΡΡ%Π²ΠΎΠ»ΡΠΌΠ΅ β ΠΏΡΠΎΡΠ΅ΡΠ½Π° ΡΠ΅Π½Π° ΠΏΠΎ ΠΌΠΈΠ½ΡΡΡ ΠΏΠΎΠ½Π΄Π΅ΡΠΈΡΠ°Π½Π° Π²Π΅Π»ΠΈΡΠΈΠ½ΠΎΠΌ ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ΅.
- ΡΡΠΌΠΠΎΠ»ΡΠΌΠ΅ β Π·Π±ΠΈΡΠ½ΠΈ ΠΎΠ±ΠΈΠΌ β Π°ΠΊΡΠΌΡΠ»ΠΈΡΠ°Π½Π° Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΡΠ°Π½ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎΠΊΠΎΠΌ ΡΠΈΡΠ°Π²ΠΎΠ³ Π²ΡΠ΅ΠΌΠ΅Π½Π°.
Π₯Π°ΡΠ΄Π΅ ΠΎΠ΄ΠΌΠ°Ρ Π΄Π° ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠ°ΠΌΠΎ ΠΎ ΡΠ΅Π΄Π½ΠΎΡ Π½Π΅ΠΎΡΠΈΠ³Π»Π΅Π΄Π½ΠΎΡ ΡΠ°ΡΠΊΠΈ - ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·ΡΡΠ΅ΠΌΠΎ ΠΎΠ²Π΅ ΠΊΠΎΠ»ΠΎΠ½Π΅ ΠΏΡΠ²ΠΈ ΠΏΡΡ ΠΈ Π·Π° ΡΠ²Π°ΠΊΠΈ ΡΠ»Π΅Π΄Π΅ΡΠΈ ΠΌΠΈΠ½ΡΡ. ΠΠ΅ΠΊΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π΅ ΡΠΈΠΏΠ° ΡΠΈΡΡΡΠΡΠΈΡΠ΅ ΠΌΠΎΡΠ°ΡΡ Π±ΠΈΡΠΈ ΠΈΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π΅ Π½Π° Π½ΡΠ»Π» ΡΠ²Π°ΠΊΠΈ ΠΏΡΡ; ΡΠΈΡ ΠΎΠ²Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ ΡΠ΅ Π½Π΅Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π°. ΠΡΡΠ³ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ Π²ΠΎΠ»ΡΠΌΠ΅Π½Π° ΡΠ²Π΅ΠΊ ΠΌΠΎΡΠ°ΡΡ Π±ΠΈΡΠΈ ΠΏΠΎΠ΄Π΅ΡΠ΅Π½ΠΈ Π½Π° 0. ΠΠΎΡΡΠΎΡΠ΅ ΠΈ ΠΊΠΎΠ»ΠΎΠ½Π΅ ΠΊΠΎΡΠ΅ Π·Π°Ρ ΡΠ΅Π²Π°ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΎΠ²Π°Π½ΠΈ ΠΏΡΠΈΡΡΡΠΏ β Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΌΠΠΎΠ»ΡΠΌΠ΅ ΡΠ΅ ΠΌΠΎΡΠ° ΠΊΠΎΠΏΠΈΡΠ°ΡΠΈ ΠΈΠ· ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³ ΠΌΠΈΠ½ΡΡΠ°, Π° Π·Π° ΠΏΡΠ²ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ΅Π½ Π½Π° 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 ΠΎΠ±ΡΡΡΠ½Π΅Π½ Π½ΠΈΠΆΠ΅
ΠΠΎΠ΄Π°ΠΎ ΡΠ°ΠΌ ΡΠΈΠΌ ΠΈ Π²ΡΠ΅ΠΌΠ΅ Ρ ΡΠ΅ΡΠ½ΠΈΠΊ ΡΠ°Π΄ΠΈ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎΡΡΠΈ, ΡΠ°Π΄Π° ΡΠ΅ ΠΈΠ½ΠΈΡΠΠΈΡΡ Π³ΠΎΡΠΎΠ²Π° Π»ΠΈΠ½ΠΈΡΠ° ΠΈΠ· ΠΊΠΎΠ½Π°ΡΠ½Π΅ Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ ΡΠ°Π±Π΅Π»Π΅, Π³Π΄Π΅ ΠΎΡΡΠ°ΡΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ΄Π΅ΡΠΈ ΡΠ°ΡΠ°Π½ ΡΠΈΠΌ ΠΈ Π²ΡΠ΅ΠΌΠ΅. ΠΠΎΠΆΠ΅ΡΠ΅ Π³Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ Π·Π° Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π½ΠΎΠ²ΠΈΡ ΡΠ΅Π΄ΠΎΠ²Π° Ρ ΡΠ°Π±Π΅Π»Ρ.
ΠΠΈΡΠ΅ Π½Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π°Π³Π³Π¦ΠΎΠ»Ρ ΠΊΠ°Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΠΌΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΠ΅. ΠΠΈΡΡΠ° ΠΌΠΎΡΠ° Π±ΠΈΡΠΈ ΠΎΠ±ΡΠ½ΡΡΠ° Π·Π±ΠΎΠ³ ΡΠ΅Π΄ΠΎΡΠ»Π΅Π΄Π° ΠΊΠΎΡΠΈΠΌ ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡΡ ΠΈΠ·ΡΠ°Π·ΠΈ Ρ Π (Ρ Π΄Π΅ΡΠ½Π° Π½Π° Π»Π΅Π²ΠΎ). Π¦ΠΈΡ ΡΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π΄Π° ΠΏΡΠΎΡΠ°ΡΡΠ½ ΠΈΠ΄Π΅ ΠΎΠ΄ Π²ΠΈΡΠΎΠΊΠΎΠ³ Π΄ΠΎ ΡΡΠΌΠΠΎΠ»ΡΠΌΠ΅, ΠΏΠΎΡΡΠΎ Π½Π΅ΠΊΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π΅ Π·Π°Π²ΠΈΡΠ΅ ΠΎΠ΄ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΈΡ .
ΠΠΎΠ»ΠΎΠ½Π΅ ΠΊΠΎΡΠ΅ ΡΡΠ΅Π±Π° ΠΊΠΎΠΏΠΈΡΠ°ΡΠΈ Ρ Π½ΠΎΠ²ΠΈ ΠΌΠΈΠ½ΡΡ ΠΎΠ΄ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎΠ³, ΠΊΠΎΠ»ΠΎΠ½Π° ΡΠΈΠΌ ΡΠ΅ Π΄ΠΎΠ΄Π°ΡΠ΅ ΡΠ°Π΄ΠΈ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎΡΡΠΈ:
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
ΠΠ²Π°Ρ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠΌΠ° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠ°ΠΊ - ΡΠΊΡΠΏ ΠΈΠ·ΡΠ°ΡΡΠ½Π°ΡΠΈΡ ΠΊΠΎΠ»ΠΎΠ½Π° ΡΠ΅ ΡΠ½Π°ΠΏΡΠ΅Π΄ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½. ΠΠ° ΡΡΠ΅ΡΡ, Ρ Π-Ρ, ΡΠ΅Π»Π΅ΡΡ ΡΠ΅ ΡΠ°ΠΊΠΎΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ ΠΊΠ°ΠΎ ΡΡΠ½ΠΊΡΠΈΡΠ° Ρ ΠΊΠΎΡΠΎΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈ ΠΊΡΠ΅ΠΈΡΠ°Π½Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅:
?[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];
Π Π°Π΄ΠΈ ΡΠ°ΡΠ½ΠΎΡΠ΅, ΠΊΠΎΡΠΈΡΡΠΈΠΎ ΡΠ°ΠΌ ΡΡΠ½ΠΊΡΠΈΡΡ ΠΏΠ°ΡΡΠ΅, ΠΊΠΎΡΠ° ΠΏΡΠ΅ΡΠ²Π°ΡΠ° ΡΡΡΠΈΠ½Π³ ΡΠ° Π ΠΈΠ·ΡΠ°Π·ΠΎΠΌ Ρ Π²ΡΠ΅Π΄Π½ΠΎΡΡ ΠΊΠΎΡΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ ΠΏΡΠ΅Π½Π΅ΡΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΈ Π΅Π²Π°Π» ΠΈ ΠΊΠΎΡΠ° ΡΠ΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° Ρ ΡΡΠ½ΠΊΡΠΈΡΠΈ ΡΠ΅Π»Π΅ΡΡ. Π’Π°ΠΊΠΎΡΠ΅ ΠΈΠΌΠ°ΡΡΠ΅ Π½Π° ΡΠΌΡ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΡΠΎΡΠ΅Ρ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ ΠΊΠ°ΠΎ ΠΏΡΠΎΡΠ΅ΠΊΡΠΈΡΠ° (ΡΡ. ΡΡΠ½ΠΊΡΠΈΡΠ° ΡΠ° Π΄Π΅Π»ΠΈΠΌΠΈΡΠ½ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈΠΌΠ°) ΡΡΠ½ΠΊΡΠΈΡΠ΅ Π·Π° ΠΈΠ·Π±ΠΎΡ, ΡΠ΅Π΄Π°Π½ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ (ΡΠ°Π±Π΅Π»Π°) Π½Π΅Π΄ΠΎΡΡΠ°ΡΠ΅. ΠΠΊΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΏΡΠ΅ΡΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ°Π±Π΅Π»Ρ, Π΄ΠΎΠ±ΠΈΡΠ΅ΠΌΠΎ ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΎΠ²Π°Π½Ρ ΡΠ°Π±Π΅Π»Ρ.
ΠΡΡΠ³Π° ΡΠ°Π·Π° ΡΠ΅ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ Π·Π±ΠΈΡΠ½Π΅ ΡΠ°Π±Π΅Π»Π΅. Π₯Π°ΡΠ΄Π΅ Π΄Π° ΠΏΡΠ²ΠΎ Π½Π°ΠΏΠΈΡΠ΅ΠΌΠΎ Π°Π»Π³ΠΎΡΠΈΡΠ°ΠΌ Ρ ΠΏΡΠ΅ΡΠ΄ΠΎΠΊΠΎΠ΄Ρ:
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];
β¦
Π£ Π, ΡΠΎΠ±ΠΈΡΠ°ΡΠ΅Π½ΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈΡΠΈ ΡΡΠ½ΠΊΡΠΈΡΠ΅ ΠΌΠ°ΠΏΠΈΡΠ°ΡΠ°/ΡΠ΅Π΄ΡΡΠΈΡΠ°ΡΠ° ΡΠΌΠ΅ΡΡΠΎ ΠΏΠ΅ΡΡΠΈ. ΠΠ»ΠΈ ΠΏΠΎΡΡΠΎ ΡΠ΅ Π Π²Π΅ΠΊΡΠΎΡΡΠΊΠΈ ΡΠ΅Π·ΠΈΠΊ ΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π»Π°ΠΊΠΎ Π΄Π° ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΡΠ²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ΅ Π½Π° ΡΠ²Π΅ ΡΠΈΠΌΠ±ΠΎΠ»Π΅ ΠΎΠ΄ΡΠ΅Π΄Π½ΠΎΠΌ, ΠΎΠ½Π΄Π° Ρ ΠΏΡΠ²ΠΎΡ Π°ΠΏΡΠΎΠΊΡΠΈΠΌΠ°ΡΠΈΡΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΡΠΎΠΏΡΡΠ΅ Π±Π΅Π· ΠΏΠ΅ΡΡΠ΅, ΠΈΠ·Π²ΡΡΠ°Π²Π°ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ΅ Π½Π° ΡΠ²ΠΈΠΌ ΡΠΈΠΌΠ±ΠΎΠ»ΠΈΠΌΠ° ΠΎΠ΄ΡΠ΅Π΄Π½ΠΎΠΌ:
idx:calcIdx inputTable;
row:aggTable idx;
aggTable[idx;`high]: row[`high] | inputTable`high;
aggTable[idx;`volume]: row[`volume] + inputTable`volume;
β¦
ΠΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΠΈΡΠΈ Π΄Π°ΡΠ΅, Π ΠΈΠΌΠ° ΡΠ΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ ΠΈ ΠΈΠ·ΡΠ·Π΅ΡΠ½ΠΎ ΠΌΠΎΡΠ°Π½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ - Π³Π΅Π½Π΅ΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π΄ΠΎΠ΄Π΅Π»Π΅. ΠΠΌΠΎΠ³ΡΡΠ°Π²Π° Π²Π°ΠΌ Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠΊΡΠΏ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΎΡ ΡΡΡΡΠΊΡΡΡΠΈ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ Π»ΠΈΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°, ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Π°ΡΠ°. Π£ Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°ΡΡ ΡΠΎ ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΠ²Π°ΠΊΠΎ:
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;β¦)];
ΠΠΎΠ½ΠΎΠ²ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠΎ ΠΏΡΠΎΡΠ΅ΠΊΡΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡΠ΅. Π’Π°ΠΊΠΎΡΠ΅ ΠΈΠΌΠ°ΡΡΠ΅ Π½Π° ΡΠΌΡ Π΄Π° ΡΠ΅ Ρ Π ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ Π»ΠΈΡΡΠ΅ ΡΠ°ΠΊΠΎΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ ΡΠ΅ ΠΏΠΎΠ·Π²Π°ΡΠΈ ΠΏΠΎΠΌΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΡΠ΅ Π΅Π²Π΅ΡΠΈ(ΠΌΠ°ΠΏ) Π΄Π° Π±ΠΈΡΠΌΠΎ Π΄ΠΎΠ±ΠΈΠ»ΠΈ Π»ΠΈΡΡΡ Π»ΠΈΡΡΠ°.
ΠΠ° Π±ΠΈΡΠΌΠΎ ΠΎΡΠΈΠ³ΡΡΠ°Π»ΠΈ Π΄Π° ΡΠΊΡΠΏ ΠΈΠ·ΡΠ°ΡΡΠ½Π°ΡΠΈΡ ΠΊΠΎΠ»ΠΎΠ½Π° Π½ΠΈΡΠ΅ ΡΠΈΠΊΡΠ°Π½, ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ΠΌΠΎ Π³ΠΎΡΡΠΈ ΠΈΠ·ΡΠ°Π· Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈ. Π₯Π°ΡΠ΄Π΅ Π΄Π° ΠΏΡΠ²ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ΅ΠΌΠΎ ΡΡΠ½ΠΊΡΠΈΡΠ΅ Π·Π° ΠΈΠ·ΡΠ°ΡΡΠ½Π°Π²Π°ΡΠ΅ ΡΠ²Π°ΠΊΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π΅, ΠΊΠΎΡΠΈΡΡΠ΅ΡΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΈΠ²Π΅ ΡΠ΅Π΄Π° ΠΈ ΠΈΠ½ΠΏ Π·Π° ΡΠΏΡΡΠΈΠ²Π°ΡΠ΅ Π½Π° Π°Π³ΡΠ΅Π³ΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ»Π°Π·Π½Π΅ ΠΏΠΎΠ΄Π°ΡΠΊΠ΅:
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");
ΠΠ΅ΠΊΠ΅ ΠΊΠΎΠ»ΠΎΠ½Π΅ ΡΡ ΠΏΠΎΡΠ΅Π±Π½Π΅; ΡΠΈΡ ΠΎΠ²Π° ΠΏΡΠ²Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡ Π½Π΅ Π±ΠΈ ΡΡΠ΅Π±Π°Π»ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ·ΡΠ°ΡΡΠ½Π°Π²Π° ΠΏΠΎΠΌΠΎΡΡ ΡΡΠ½ΠΊΡΠΈΡΠ΅. ΠΠΎΠΆΠ΅ΠΌΠΎ ΡΡΠ²ΡΠ΄ΠΈΡΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠ²ΠΈ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΈ ΡΠΎΠ²[`Π½ΡΠΌΠ’ΡΠ°Π΄Π΅Ρ] - Π°ΠΊΠΎ ΡΠ°Π΄ΡΠΆΠΈ 0, ΠΎΠ½Π΄Π° ΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡ ΠΏΡΠ²Π°. Π ΠΈΠΌΠ° ΡΡΠ½ΠΊΡΠΈΡΡ ΠΈΠ·Π±ΠΎΡΠ° - ?[ΠΠΎΠΎΠ»Π΅Π°Π½ Π»ΠΈΡΡ;Π»ΠΈΡΡ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;
ΠΠ²ΠΎ ΡΠ΅ Π½ΠΎΡΠΌΠ°Π»Π°Π½ Π·Π°Π΄Π°ΡΠ°ΠΊ ΠΏΠΎ Π ΡΡΠ°Π½Π΄Π°ΡΠ΄ΠΈΠΌΠ°, Π°Π»ΠΈ ΡΠ° Π΄ΠΎΠ΄Π΅ΡΡΡΠ΅ΠΌ Π»ΠΈΡΡΡ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΎΠ΄ΡΠ΅Π΄Π½ΠΎΠΌ. ΠΠ° ΠΊΡΠ°ΡΡ, Π½Π°ΠΏΡΠ°Π²ΠΈΠΌΠΎ Π³Π»Π°Π²Π½Ρ ΡΡΠ½ΠΊΡΠΈΡΡ:
// ":",/: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])]}
Π Π΅Π΄ΠΎΡΠ»Π΅Π΄ Π²ΡΠ΅Π΄Π½ΠΎΠ²Π°ΡΠ° ΠΊΠΎΠ»ΠΎΠ½Π΅ ΡΠ΅ ΠΎΠ±ΡΠ½ΡΡ ΡΠ΅Ρ ΡΠ΅ Ρ Π ΡΠ΅Π΄ΠΎΡΠ»Π΅Π΄ Π΅Π²Π°Π»ΡΠ°ΡΠΈΡΠ΅ Ρ Π΄Π΅ΡΠ½Π° Π½Π° Π»Π΅Π²ΠΎ.
Π‘Π°Π΄Π° ΠΈΠΌΠ°ΠΌΠΎ Π΄Π²Π΅ Π³Π»Π°Π²Π½Π΅ ΡΡΠ½ΠΊΡΠΈΡΠ΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½Π΅ Π·Π° ΠΏΡΠΎΡΠ°ΡΡΠ½Π΅, ΡΠ°ΠΌΠΎ ΡΡΠ΅Π±Π° Π΄Π° Π΄ΠΎΠ΄Π°ΠΌΠΎ ΠΌΠ°Π»ΠΎ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ΅ ΠΈ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ΅ ΡΠΏΡΠ΅ΠΌΠ°Π½.
ΠΠ°Π²ΡΡΠ½ΠΈ ΠΊΠΎΡΠ°ΡΠΈ
ΠΠΌΠ°ΠΌΠΎ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅Ρ ΠΈ ΡΠΏΠ΄Π°ΡΠ΅ΠΠ³Π³ ΡΡΠ½ΠΊΡΠΈΡΠ΅ ΠΊΠΎΡΠ΅ ΠΎΠ±Π°Π²ΡΠ°ΡΡ ΡΠ°Π² ΠΏΠΎΡΠ°ΠΎ. ΠΠ»ΠΈ ΠΈ Π΄Π°ΡΠ΅ ΡΠ΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΡΠΈ ΠΈΡΠΏΡΠ°Π²Π°Π½ ΠΏΡΠ΅Π»Π°Π· ΠΊΡΠΎΠ· ΠΌΠΈΠ½ΡΡΠ΅ ΠΈ ΠΈΠ·ΡΠ°ΡΡΠ½Π°ΡΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ Π·Π° Π°Π³ΡΠ΅Π³Π°ΡΠΈΡΡ. ΠΡΠ΅ ΡΠ²Π΅Π³Π°, Ρ Π°ΡΠ΄Π΅ Π΄Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ΅ΠΌΠΎ ΠΈΠ½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡΡ:
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:{[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];
};
Π’Π΅ΡΡΠΈΡΠ°ΡΠ΅
Π₯Π°ΡΠ΄Π΅ Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌΠΎ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠ΅ ΡΡΠ»ΡΠ³Π΅. ΠΠ° Π±ΠΈΡΠΌΠΎ ΡΠΎ ΡΡΠ°Π΄ΠΈΠ»ΠΈ, ΠΏΠΎΠΊΡΠ΅Π½ΠΈΠΌΠΎ Π³Π° Ρ ΠΏΠΎΡΠ΅Π±Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡ (ΡΡΠ°Π²ΠΈΡΠ΅ ΠΊΠΎΠ΄ Ρ Π΄Π°ΡΠΎΡΠ΅ΠΊΡ ΡΠ΅ΡΠ²ΠΈΡΠ΅.ΠΊ) ΠΈ ΠΏΠΎΠ·ΠΎΠ²ΠΈΠΌΠΎ ΡΡΠ½ΠΊΡΠΈΡΡ ΠΈΠ½ΠΈΡ:
q service.q βp 5566
q)init[]
Π£ Π΄ΡΡΠ³ΠΎΡ ΠΊΠΎΠ½Π·ΠΎΠ»ΠΈ ΠΏΠΎΠΊΡΠ΅Π½ΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈ Π ΠΏΡΠΎΡΠ΅Ρ ΠΈ ΠΏΠΎΠ²Π΅ΠΆΠΈΡΠ΅ ΡΠ΅ ΡΠ° ΠΏΡΠ²ΠΈΠΌ:
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)}
ΠΠΎΠ΄Π°ΠΎ ΡΠ°ΠΌ ΡΡΠΈ ΠΏΡΠ°Π²Π° ΡΠΈΠΌΠ±ΠΎΠ»Π° Π½Π° Π»ΠΈΡΡΡ ΠΊΠ°ΠΊΠΎ Π±ΠΈΡ ΠΈΡ Π»Π°ΠΊΡΠ΅ ΡΡΠ°ΠΆΠΈΠΎ Ρ ΡΠ°Π±Π΅Π»ΠΈ. Π€ΡΠ½ΠΊΡΠΈΡΠ° ΡΠ½Π΄ ΠΊΡΠ΅ΠΈΡΠ° ΡΠ»ΡΡΠ°ΡΠ½Ρ ΡΠ°Π±Π΅Π»Ρ ΡΠ° Π½ ΡΠ΅Π΄ΠΎΠ²Π°, Π³Π΄Π΅ Π²ΡΠ΅ΠΌΠ΅ Π²Π°ΡΠΈΡΠ° ΠΎΠ΄ Ρ Π΄ΠΎ Ρ+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), ΡΠΏΠ΄Π°ΡΠ΅ΠΠ³Π³ Π΄ΠΎΡΡΠΈΠΆΠ΅ ΡΠ²ΠΎΡ ΠΏΠ»Π°ΡΠΎΠ½ ΠΈ ΡΠ°Π΄Π° ΡΠ΅Π³ΠΎΠ²ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠ·Π²ΡΡΠ΅ΡΠ° Π½Π΅ Π·Π°Π²ΠΈΡΠΈ ΠΎΠ΄ Π²Π΅Π»ΠΈΡΠΈΠ½Π΅ Π°ΠΆΡΡΠΈΡΠ°ΡΠ°. ΠΠ±ΠΎΠ³ ΠΏΡΠ΅Π»ΠΈΠΌΠΈΠ½Π°ΡΠ½ΠΎΠ³ ΠΊΠΎΡΠ°ΠΊΠ° Π ΡΡΠ»ΡΠ³Π° ΡΠ΅ Ρ ΡΡΠ°ΡΡ Π΄Π° ΡΠ²Π°ΡΠΈ ΡΠ°ΠΊΠ²Π΅ ΠΊΠΎΠ»ΠΈΡΠΈΠ½Π΅ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ°. ΠΠ²ΠΎ Π½Π°Π³Π»Π°ΡΠ°Π²Π° ΠΊΠΎΠ»ΠΈΠΊΠΎ ΡΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ΄Π°Π±ΡΠ°ΡΠΈ ΠΏΡΠ°Π²ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠ°ΠΌ ΠΊΠ°Π΄Π° ΡΠ°Π΄ΠΈΡΠ΅ ΡΠ° Π²Π΅Π»ΠΈΠΊΠΈΠΌ ΠΏΠΎΠ΄Π°ΡΠΈΠΌΠ°. ΠΡΡΠ³Π° ΡΡΠ²Π°Ρ ΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° Ρ ΠΌΠ΅ΠΌΠΎΡΠΈΡΠΈ. ΠΠΊΠΎ ΠΏΠΎΠ΄Π°ΡΠΈ Π½ΠΈΡΡ ΠΏΠΎΡ ΡΠ°ΡΠ΅Π½ΠΈ Ρ ΠΊΠΎΠ»ΠΎΠ½Π°ΠΌΠ° ΠΈΠ»ΠΈ Π½ΠΈΡΡ ΠΏΠΎΡΠ΅ΡΠ°Π½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Ρ, ΠΎΠ½Π΄Π° Π±ΠΈΡΠΌΠΎ ΡΠ΅ ΡΠΏΠΎΠ·Π½Π°Π»ΠΈ ΡΠ° ΡΠ°ΠΊΠ²ΠΎΠΌ ΡΡΠ²Π°ΡΠΈ ΠΊΠ°ΠΎ ΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΠΌΠ°ΡΠ°Ρ Π’ΠΠ ΠΊΠ΅ΡΠ° - ΠΎΠ΄ΡΡΡΡΠ²ΠΎ Π°Π΄ΡΠ΅ΡΠ΅ ΠΌΠ΅ΠΌΠΎΡΠΈΡΡΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΠ΅ Ρ ΠΊΠ΅ΡΡ Π°Π΄ΡΠ΅ΡΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡΠ°. Π’ΡΠ°ΠΆΠ΅ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ΅ ΡΡΠ°ΡΠ΅ ΠΎΠΊΠΎ 30 ΠΏΡΡΠ° Π΄ΡΠΆΠ΅ Π°ΠΊΠΎ ΡΠ΅ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΎ, Π° Π°ΠΊΠΎ ΡΡ ΠΏΠΎΠ΄Π°ΡΠΈ ΡΠ°Π·Π±Π°ΡΠ°Π½ΠΈ, ΠΌΠΎΠΆΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΏΡΡΠ° ΡΡΠΏΠΎΡΠΈΡΠΈ ΡΡΠ»ΡΠ³Ρ.
ΠΠ°ΠΊΡΡΡΠ°ΠΊ
Π£ ΠΎΠ²ΠΎΠΌ ΡΠ»Π°Π½ΠΊΡ ΡΠ°ΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΠΎ Π΄Π° ΡΡ ΠΠΠ+ ΠΈ Π Π±Π°Π·Π° ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΏΠΎΠ³ΠΎΠ΄Π½Π΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠ΅ Π²Π΅Π»ΠΈΠΊΠΈΡ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΈ Π»Π°ΠΊ ΠΏΡΠΈΡΡΡΠΏ ΡΠΈΠΌΠ° ΠΏΡΡΠ΅ΠΌ ΡΠ΅Π»Π΅ΠΊΡΠΈΡΠ΅, Π²Π΅Ρ ΠΈ Π·Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΡΠ»ΡΠ³Π° ΠΎΠ±ΡΠ°Π΄Π΅ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΠΊΠΎΡΠ΅ ΡΡ ΡΠΏΠΎΡΠΎΠ±Π½Π΅ Π΄Π° ΠΎΠ±ΡΠ°ΡΡΡΡ ΡΡΠΎΡΠΈΠ½Π΅ ΠΌΠΈΠ»ΠΈΠΎΠ½Π° ΡΠ΅Π΄ΠΎΠ²Π°/Π³ΠΈΠ³Π°Π±Π°ΡΡΠ° ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° ΡΠ°ΠΊ ΠΈΡ ΡΠ΅Π΄Π°Π½ ΡΠ΅Π΄ΠΈΠ½ΠΈ Π ΠΏΡΠΎΡΠ΅Ρ. Π‘Π°ΠΌ Π ΡΠ΅Π·ΠΈΠΊ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° ΠΈΠ·ΡΠ·Π΅ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΠΈΠ·Π½Ρ ΠΈ Π΅ΡΠΈΠΊΠ°ΡΠ½Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠ°ΠΌΠ° Π²Π΅Π·Π°Π½ΠΈΡ Π·Π° ΠΎΠ±ΡΠ°Π΄Ρ ΠΏΠΎΠ΄Π°ΡΠ°ΠΊΠ° Π·Π±ΠΎΠ³ ΡΠ²ΠΎΡΠ΅ Π²Π΅ΠΊΡΠΎΡΡΠΊΠ΅ ΠΏΡΠΈΡΠΎΠ΄Π΅, ΡΠ³ΡΠ°ΡΠ΅Π½ΠΎΠ³ ΡΡΠΌΠ°ΡΠ° Π‘ΠΠ Π΄ΠΈΡΠ°Π»Π΅ΠΊΡΠ° ΠΈ Π²Π΅ΠΎΠΌΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ ΡΠΊΡΠΏΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΡΠΊΠΈΡ ΡΡΠ½ΠΊΡΠΈΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΠΈΡΡ Π΄Π° ΡΠ΅ Π³ΠΎΡΠ΅ Π½Π°Π²Π΅Π΄Π΅Π½ΠΎ ΡΠ°ΠΌΠΎ Π΄Π΅ΠΎ ΠΎΠ½ΠΎΠ³Π° ΡΡΠΎ Π ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π΄ΠΈ, ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³Π΅ ΡΠ΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ΅. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΡΠ·Π΅ΡΠ½ΠΎ ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π°Π½ ΠΠΠ¦ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» ΠΊΠΎΡΠΈ Π±ΡΠΈΡΠ΅ Π³ΡΠ°Π½ΠΈΡΡ ΠΈΠ·ΠΌΠ΅ΡΡ ΠΏΠΎΡΠ΅Π΄ΠΈΠ½Π°ΡΠ½ΠΈΡ
Π ΠΏΡΠΎΡΠ΅ΡΠ° ΠΈ ΠΎΠΌΠΎΠ³ΡΡΠ°Π²Π° Π²Π°ΠΌ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΡΡΠ΅ΡΠ΅ ΡΡΠΎΡΠΈΠ½Π΅ ΠΎΠ²ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΠ° Ρ ΡΠ΅Π΄Π½Ρ ΠΌΡΠ΅ΠΆΡ, ΠΊΠΎΡΠ° ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π½Π°Π»Π°Π·ΠΈΡΠΈ Π½Π° Π΄Π΅ΡΠ΅ΡΠΈΠ½Π°ΠΌΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° Ρ ΡΠ°Π·Π»ΠΈΡΠΈΡΠΈΠΌ Π΄Π΅Π»ΠΎΠ²ΠΈΠΌΠ° ΡΠ²Π΅ΡΠ°.
ΠΠ·Π²ΠΎΡ: Π²Π²Π².Ρ
Π°Π±Ρ.ΡΠΎΠΌ