рдЕрдореЗрдЬрд╝реЕрди рдХреНрд▓рд╛рдЙрдб рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдФрд░ рдирд┐рд╡реЗрд╢ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╢реЗрдпрд░ рдмрд╛рдЬрд╛рд░реЛрдВ рдореЗрдВ рдЙрдЪреНрдЪ рдЕрд╕реНрдерд┐рд░рддрд╛ рджреЗрдЦреА рдЧрдИ рд╣реИ, рдЬрдм, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдХрдВрдкрдиреА рдХрд╛ рдПрдХ рд╕реНрдерд┐рд░ рдкреЗрдкрд░ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЕрдкрдиреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рдЦрд┐рд▓рд╛рдл рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреА рдЦрдмрд░ рдкрд░ рдХрдИ рдкреНрд░рддрд┐рд╢рдд рдЦреЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯ рдкрд░ рдЖрд╕рдорд╛рди рдореЗрдВ рдЪрдврд╝ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд-рд▓рд╛рдн рд▓рд╛рднрд╛рдВрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд╡реЗрд╢рдХреЛрдВ рдХреА рдЙрдореНрдореАрджреЗрдВред

рдпрд╣ рдХреИрд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдХрд┐ рджреА рдЧрдИ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╕реЗ рдЖрдп рд╣реБрдИ рд╣реИ рдпрд╛ рдХреЗрд╡рд▓ рдиреБрдХрд╕рд╛рди рдФрд░ рдирд┐рд░рд╛рд╢рд╛ рд╣реБрдИ рд╣реИ?

(рд╕реНрд░реЛрдд)

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд рд╡рд┐рддреНрддреАрдп рдкрд░рд┐рдгрд╛рдо рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рдХрд▓реНрдкрдирд╛ рдХреИрд╕реЗ рдХрд░реЗрдВред

рдХреНрд▓рд╛рдЗрдВрдЯ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдУрдкрдирд┐рдВрдЧ рдмреНрд░реЛрдХрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреНрд╡рд┐рдХрд╕рд╛рдЗрдЯ рдореЗрдВ рдмрд╛рдж рдХреЗ рд╕рд░рд▓ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реБрдП, рд╕реНрдЯреЙрдХ рдорд╛рд░реНрдХреЗрдЯ рдХреЗ рд▓рд┐рдП рдмреНрд░реЛрдХрд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рд╕рдореЗрдХрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдХрд╛рд░реНрдп рд╡рд┐рд╡рд░рдг


рдХрдИ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рд╢реИрдХреНрд╖рд┐рдХ рдкрд╛рда рд╣рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░реА рдХреА рдкрддреНрд░рд┐рдХрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕рднреА рд▓реЗрдирджреЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЯреНрд░реЗрдбрд┐рдВрдЧ рд░рдгрдиреАрддрд┐ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рдЖрдкрдХреЛ рдПрдХ рд╡реНрдпрд╛рдкрд╛рд░реА рдХреЛ рдЕрдиреБрд╢рд╛рд╕рд┐рдд рдХрд░рдиреЗ, рдЙрд╕рдХреА рдЪреЗрддрдирд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдердХрд╛рдК рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рднреА рдирд┐рдХрд╛рд▓ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдореИрдВрдиреЗ рдЬрд░реНрдирд▓рд┐рдВрдЧ рдХреА рд╕рд▓рд╛рд╣ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдирджреЗрди рдХреЛ рдПрдХреНрд╕реЗрд▓ рдЯреЗрдмрд▓ рдореЗрдВ рдЕрдкрдиреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрд╛, рдХреБрдЫ рд░рд┐рдкреЛрд░реНрдЯ, рд╕рд╛рд░рд╛рдВрд╢ рдЪрд╛рд░реНрдЯ, рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓реЗрдирджреЗрди рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рд▓реЗрдХрд┐рди ... рдореИрдВ рдЬрд▓реНрджреА рд╕реЗ рдпрд╣ рд╕рдм рдердХ рдЧрдпрд╛ рдерд╛ред

рдХрд┐рд╕реА рд╡реНрдпрд╛рдкрд╛рд░реА рдХреА рдкрддреНрд░рд┐рдХрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░рдЦрдирд╛ рдХреНрдпреЛрдВ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ?
  • рдЬрд░реНрдирд▓ рдХреА рдореИрдиреБрдЕрд▓ рдлрд┐рд▓рд┐рдВрдЧ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрдВрд╢рд┐рдХ рд╕реНрд╡рдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЯреНрд░реЗрдбрд┐рдВрдЧ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рджреИрдирд┐рдХ рд▓реЗрдирджреЗрди рдХреЛ рдЙрддрд╛рд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ) рдЬрд▓реНрджреА рд╕реЗ рдЯрд╛рдпрд░;
  • рдореИрдиреНрдпреБрдЕрд▓ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдпрд╛ рдЯрд╛рдЗрдкреЛ рдХрд╛ рдПрдХ рдЙрдЪреНрдЪ рдЬреЛрдЦрд┐рдо рд╣реИ;
  • рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдХреНрд░рд┐рдп рд╡реНрдпрд╛рдкрд╛рд░реА рдПрдХ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдирд┐рд╡реЗрд╢рдХ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡рд╣ рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рдкрддреНрд░рд┐рдХрд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ (рдореЗрд░рд╛ рдорд╛рдорд▓рд╛) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреВрд▓ рдЬрд╛рддрд╛ рд╣реИ; рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рдЕрдВрдд рдореЗрдВ
  • рд╣рдо рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ рдФрд░ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░реЗрдВ? рддреЛ, рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВ!

рдЕрдХреНрд╕рд░, рдмреНрд░реЛрдХрд░реЗрдЬ рдХрдВрдкрдирд┐рдпрд╛рдВ рдЙрдЪреНрдЪ рддрдХрдиреАрдХ рд╡рд╛рд▓реЗ рд╕рдВрдЧрдарди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдмреНрдпрд╛рдЬ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдореБрджреНрджреЛрдВ рдкрд░ рдХрд╛рдлреА рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдХреА рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХрд╣рдирд╛ рдЙрдЪрд┐рдд рд╣реИ рдХрд┐ рдпрд╣ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рддреНрдпреЗрдХ рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдФрд░ рдмреЗрд╣рддрд░ рд╣реЛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдЙрдиреНрдирдд рдореЗрдВ рднреА рдЕрдиреБрдХреВрд▓рди рдФрд░ рд╕рдореЗрдХрди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдорд╛рдВрдЧ рдФрд░ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдЧреНрд░рд╛рд╣рдХ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдУрдкрдирд┐рдВрдЧ рдмреНрд░реЛрдХрд░ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдореЗрдВ рдПрдХреНрд╕рдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдмреНрд░реЛрдХрд░реЗрдЬ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореЙрд╕реНрдХреЛ рд╕реНрдЯреЙрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ (рдПрдордУрдИрдПрдХреНрд╕) рдкрд░ рдПрдХ рдЖрдИрдЖрдИрдП рдФрд░ рдПрдХ рдирд┐рдпрдорд┐рдд рдмреНрд░реЛрдХрд░реЗрдЬ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдпреЗ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╣реЛрдВрдЧреЗ, рдФрд░ рдпрджрд┐ рдЖрдк рд╕реЗрдВрдЯ рдкрд░ рдПрдХ рдФрд░ рдЦрд╛рддрд╛ рд╣реИрдВ рдкреАрдЯрд░реНрд╕рдмрд░реНрдЧ рд╕реНрдЯреЙрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬ (рдПрд╕рдкреАрдмреА), рдлрд┐рд░ рдкрд╣рд▓реЗ рджреЛ рдПрдХ рдФрд░ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдирд┐рд╡реЗрд╢рдХ рдХреА рдПрдХ рд╕рдореЗрдХрд┐рдд рдкрддреНрд░рд┐рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рддреАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред

рдПрдордУрдИрдПрдХреНрд╕ рдФрд░ рдПрд╕рдкреАрдмреА рдкрд░ рдЙрдкрд░реНрдпреБрдХреНрдд рд░рд┐рдкреЛрд░реНрдЯ рдЙрдирдХреЗ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдереЛрдбрд╝рд╛ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рдореИрдкрд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рддрд╣рдд рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЙрдбрд▓ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ:


рдкрд╛рд░реНрд╕рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд╣рдо рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддреЗ рдореЗрдВ рд╕рднреА рддреАрди рдЦрд╛рддреЛрдВ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ (рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрд╖ рдХреЗ рд▓рд┐рдП рдХрдИ рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдЙрдиреНрд╣реЗрдВ XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдбрд╛рд▓реЗрдВред рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдЧреНрд░рд╛рд╣рдХ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдмрд╛рдЬрд╛рд░ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдУрдВ рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рдеред


рдорд╛рди рд▓реЗрдВ рдХрд┐ рдирд┐рд╡реЗрд╢рдХ рд╢реНрд░реА рдПрдХреНрд╕ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдкрд╛рдВрдЪ рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рд╣реИ:

  1. SPB рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рджреЛ рдкреЗрдкрд░ рд╣реЛрдВрдЧреЗ: Apple рдФрд░ Microsoft;
  2. рдПрдордУрдПрдХреНрд╕ рдПрдХреНрд╕рдЪреЗрдВрдЬ (рдмреНрд░реЛрдХрд░реЗрдЬ) рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдПрдХ рдкреЗрдкрд░ рд╢рд╛рдорд┐рд▓ рд╣реИ: рдПрдлрдЬреАрд╕реА рдпреВрдИрдПрд╕;
  3. MOEX рдПрдХреНрд╕рдЪреЗрдВрдЬ (IIS) рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рджреЛ рдкреНрд░рддрд┐рднреВрддрд┐рдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: MMK рдФрд░ OFZ 24019;

рд╣рдорд╛рд░реА рдкрд╛рдВрдЪ рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЦрд░реАрдж / рдмрд┐рдХреНрд░реА, рд▓рд╛рднрд╛рдВрд╢ рдХрд╛ рднреБрдЧрддрд╛рди рдФрд░ рдХреВрдкрди рдкрд░ рд▓реЗрдирджреЗрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреАрдордд рдмрджрд▓ рд╕рдХрддреА рд╣реИ, рдЖрджрд┐ред рд╣рдо рд╡рд░реНрддрдорд╛рди рд╕рдордп рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН: рд╡рд┐рддреНрддреАрдп рдкрд░рд┐рдгрд╛рдо, рд╕рднреА рднреБрдЧрддрд╛рдиреЛрдВ, рд▓реЗрдирджреЗрди рдФрд░ рд╡рд░реНрддрдорд╛рди рдмрд╛рдЬрд╛рд░ рдореВрд▓реНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдПред

рдФрд░ рдпрд╣рд╛рдБ рдкрд╛рдпрдерди рдЦреЗрд▓ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд╣рдо рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдПрдХ рд╕рд░рдгреА рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ:

my_files_list = [join('Data/', f) for f in listdir('Data/') if isfile(join('Data/', f))] my_xml_data = [] #     for f in my_files_list: tree = ET.parse(f) root = tree.getroot() my_xml_data.append(root) 

рд╡рд┐рд╢реНрд▓реЗрд╖рд┐рдХреА рдХреЗ рд▓рд┐рдП, рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рд╣рдореЗрдВ рдХрдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН:

  • рдПрдХ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдореЗрдВ рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐;
  • рд╕рдВрдмрдВрдзрд┐рдд рд╕реМрджреЗ;
  • рдЧреИрд░-рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдФрд░ рдЕрдиреНрдп рдЦрд╛рддрд╛ рдЖрдВрджреЛрд▓рдиреЛрдВ;
  • рдЦреБрд▓реЗ рдкрджреЛрдВ рдХреА рдФрд╕рдд рдХреАрдорддреЗрдВ
рдирдореВрдирд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдкрд░реЛрдХреНрдд рд╕реЗрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░ рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

 dict_stocks = {'stock_name': [], 'account': [], 'currency': [], 'current_cost': [], 'current_cost_rub': [], 'saldo' : []} dict_deals = {'stock_name': [], 'account': [], 'date_oper': [], 'type_oper': [], 'quantity': [], 'price': [], 'currency': [], 'brokerage': [], 'result': []} dict_flows = {'stock_name': [], 'account': [], 'date_oper': [], 'type_oper': [], 'result': [], 'currency': []} dict_avg_price = {'stock_name': [], 'account': [], 'avg_open_price' : []} 

рдЗрди рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж рд╕рднреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИрдВред

рдбрд┐рдХреНрдЯ_рд╕реНрдЯреЙрдХреНрд╕ рд╢рдмреНрджрдХреЛрд╢
рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрдЯреИрдВрдЯ_рд╕реНрдЯреЙрдХреНрд╕ рд╢рдмреНрджрдХреЛрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдХрд╛рдЧрдЬ рдХрд╛ рдирд╛рдо (stock_name);
  • рдЦрд╛рддреЗ рдХрд╛ рдирд╛рдо (SPB, MOEX BROK, MOEX IIS) (рдЦрд╛рддрд╛);
  • рдЗрд╕ рдХрд╛рдЧрдЬ (рдореБрджреНрд░рд╛) рдкрд░ рдмрд╕реНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдореБрджреНрд░рд╛;
  • рд╡рд░реНрддрдорд╛рди рдорд╛рди (рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЦрд╛рддрд╛ рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд░реЛрдХрд░ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рдордп) (current_cost)ред рдпрд╣рд╛рдВ рдореИрдВ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреА рдЕрдзрд┐рдХ рдорд╛рдВрдЧ рдХреЗ рд▓рд┐рдП, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХреНрд╕рдЪреЗрдВрдЬ рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдЙрджреНрдзрд░рдг рдХреА рдЧрддрд┐рд╢реАрд▓ рд░рд╕реАрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
  • рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рд╕рдордп рд╕реБрд░рдХреНрд╖рд╛ рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп (current_cost_rub)
    рдЙрдкрд░реЛрдХреНрдд рд╡рд╕реНрддреБ рдХреЗ рд╕рдорд╛рди, рдпрд╣рд╛рдВ рднреА рдЖрдк рд╡рд░реНрддрдорд╛рди рд╕рдордп рдореЗрдВ рд╕реЗрдВрдЯреНрд░рд▓ рдмреИрдВрдХ рдХреА рджрд░ рдпрд╛ рд╡рд┐рдирд┐рдордп рджрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрддреБрд▓рди (рд╕реИрд▓реНрдбреЛ)

рд╢рдмреНрджрдХреЛрд╢ рддрд╛рдирд╛рд╢рд╛рд╣реА
рддрд╛рдирд╛рд╢рд╛рд╣реА рдбрд┐рдХреНрд╢рдирд░реА рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдкреВрд░реНрдг рд▓реЗрдирджреЗрди рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

  • рдХрд╛рдЧрдЬ рдХрд╛ рдирд╛рдо (stock_name);
  • рдЦрд╛рддреЗ рдХрд╛ рдирд╛рдо (SPB, MOEX BROK, MOEX IIS) (рдЦрд╛рддрд╛);
  • рд▓реЗрди-рджреЗрди рдХреА рддрд╛рд░реАрдЦ, рдЕрд░реНрдерд╛рддреН рдЯреА 0 (рддрд╛рд░реАрдЦ_рдкрд░);
  • рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреНрд░рдХрд╛рд░ (type_oper);
  • рд▓реЗрдирджреЗрди рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рднреВрддрд┐рдпреЛрдВ рдХреА рдорд╛рддреНрд░рд╛ (рдорд╛рддреНрд░рд╛);
  • рдЬрд┐рд╕ рдореВрд▓реНрдп рдкрд░ рд▓реЗрдирджреЗрди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдореВрд▓реНрдп);
  • рд╡рд╣ рдореБрджреНрд░рд╛ рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдирджреЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдореБрджреНрд░рд╛);
  • рд▓реЗрдирджреЗрди (рдмреНрд░реЛрдХрд░реЗрдЬ) рдХреЗ рд▓рд┐рдП рдмреНрд░реЛрдХрд░реЗрдЬ рдХрдореАрд╢рди;
  • рд▓реЗрди-рджреЗрди рдХрд╛ рд╡рд┐рддреНрддреАрдп рдкрд░рд┐рдгрд╛рдо (рдкрд░рд┐рдгрд╛рдо)

Dict_flows рд╢рдмреНрджрдХреЛрд╢
Dict_flows рд╢рдмреНрджрдХреЛрд╢ рдХреНрд▓рд╛рдЗрдВрдЯ рдЦрд╛рддреЗ рдкрд░ рдзрди рдХреА рдЖрд╡рд╛рдЬрд╛рд╣реА рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

  • рдХрд╛рдЧрдЬ рдХрд╛ рдирд╛рдо (stock_name);
  • рдЦрд╛рддреЗ рдХрд╛ рдирд╛рдо (SPB, MOEX BROK, MOEX IIS) (рдЦрд╛рддрд╛);
  • рд▓реЗрди-рджреЗрди рдХреА рддрд╛рд░реАрдЦ, рдЕрд░реНрдерд╛рддреН рдЯреА 0 (рддрд╛рд░реАрдЦ_рдкрд░);
  • рдСрдкрд░реЗрд╢рди рдХрд╛ рдкреНрд░рдХрд╛рд░ (type_oper)ред рдпрд╣ рдХрдИ рдореВрд▓реНрдп рд▓реЗ рд╕рдХрддрд╛ рд╣реИ: div, NKD, рдХрд░;
  • рд╡рд╣ рдореБрджреНрд░рд╛ рдЬрд┐рд╕рдореЗрдВ рд▓реЗрдирджреЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдореБрджреНрд░рд╛);
  • рдСрдкрд░реЗрд╢рди рдХрд╛ рд╡рд┐рддреНрддреАрдп рдкрд░рд┐рдгрд╛рдо (рдкрд░рд┐рдгрд╛рдо)

рдбрд┐рдХреНрд╢рдирд░реА__рдЧ__рдкреНрд░рд╛рдЗрд╕
рдкреНрд░рддреНрдпреЗрдХ рдкреЗрдкрд░ рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдЦрд░реАрдж рдореВрд▓реНрдп рдкрд░ рд▓реЗрдЦрд╛ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрдЯреИрдВрдЯ_рд╡рдЧ_рдкреНрд░рд╛рдЗрд╕ рд╢рдмреНрджрдХреЛрд╢ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

  • рдХрд╛рдЧрдЬ рдХрд╛ рдирд╛рдо (stock_name);
  • рдЦрд╛рддреЗ рдХрд╛ рдирд╛рдо (SPB, MOEX BROK, MOEX IIS) (рдЦрд╛рддрд╛);
  • рдПрдХ рдЦреБрд▓реА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдФрд╕рдд рдореВрд▓реНрдп (avg_open_price)

рд╣рдо рдПрдХреНрд╕рдПрдордПрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрди рд╢рдмреНрджрдХреЛрд╢реЛрдВ рдХреЛ рдЙрдЪрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рднрд░рддреЗ рд╣реИрдВ:

 #       for XMLdata in my_xml_data: #      exchange_name = 'SPB' if XMLdata.get('board_list') == ' ' else 'MOEX' client_code = XMLdata.get('client_code') account_name = get_account_name(exchange_name, client_code) #   current_position, deals, flows, stock_name, \ saldo, ticketdate, price, brokerage, \ operationdate, currency, \ current_cost, current_cost_rub, \ stock_name_deal, payment_currency, currency_flows = get_allias(exchange_name) #      get_briefcase(XMLdata) df_stocks = pd.DataFrame(dict_stocks) df_stocks.set_index("stock_name", drop = False, inplace = True) #    get_deals(XMLdata) df_deals = pd.DataFrame(dict_deals) df_avg = pd.DataFrame(dict_avg_price) #       get_nontrade_operation(XMLdata) df_flows = pd.DataFrame(dict_flows) 

рд╕рднреА рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рд╕рднреА XML рдбреЗрдЯрд╛ рдкрд░ рд▓реВрдк рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИред рдЯреНрд░реЗрдбрд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдореЗрдВ рд╕рдорд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рдПрдХ рд╣реА рдЯреИрдЧ рд╕реЗ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╣рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд░рд┐рдкреЛрд░реНрдЯ (SPB рдпрд╛ MOEX) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдирд╛рдо рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрди рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдореЗрдВ рдкреНрд░рдХреГрддрд┐ рдбреЗрдЯрд╛ рдореЗрдВ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЯреИрдЧ рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ
  • SBP рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рд▓реЗрдирджреЗрди рдмреНрд░реЛрдХрд░ рдХрдореАрд╢рди рдмреНрд░реЛрдХрд░реЗрдЬ рдЯреИрдЧ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ, рдФрд░ MOEX рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ - рдмреНрд░реЛрдХрд░_рдХрдорд┐рд╢рди ;
  • рдПрд╕рдкреАрдмреА рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЧреИрд░-рдЯреНрд░реЗрдбрд┐рдВрдЧ рдЦрд╛рддреЗ рдХреА рд▓реЗрди-рджреЗрди рдХреА рддрд╛рд░реАрдЦ рдСрдкрд░реЗрд╢рдирдбреЗрдЯ рд╣реИ, рдФрд░ рдПрдордУрдИрдПрдХреНрд╕ рдореЗрдВ, рдпрд╣ рдСрдкрд░реЗрд╢рди_рдбреЗрдЯ рд╣реИ, рдЖрджрд┐ред

рдЯреИрдЧ рдорд╛рдирдЪрд┐рддреНрд░рдг рдЙрджрд╛рд╣рд░рдг
 tags_mapping = { 'SPB': { 'current_position': 'briefcase_position', 'deals': 'closed_deal', 'flows': 'nontrade_money_operation', ... 'stock_name_deal': 'issuername', 'paymentcurrency': 'paymentcurrency', 'currency_flows': 'currencycode' }, 'MOEX': { 'current_position': 'spot_assets', 'deals': 'spot_main_deals_conclusion', 'flows': 'spot_non_trade_money_operations', ... 'stock_name_deal': 'security_name', 'paymentcurrency': 'price_currency_code', 'currency_flows': 'currency_code' } } 

Get_allias рдлрд╝рдВрдХреНрд╢рди рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЯреИрдЧ рдХрд╛ рдирд╛рдо рджреЗрддрд╛ рд╣реИ, рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЯреНрд░реЗрдбрд┐рдВрдЧ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ:

Get_allias рдлрд╝рдВрдХреНрд╢рди
 def get_allias(exchange_name): return( tags_mapping[exchange_name]['current_position'], tags_mapping[exchange_name]['deals'], tags_mapping[exchange_name]['flows'], ... tags_mapping[exchange_name]['stock_name_deal'], tags_mapping[exchange_name]['paymentcurrency'], tags_mapping[exchange_name]['currency_flows'] ) 

рдлрд╝рдВрдХреНрд╢рди get_briefcase рдХреНрд▓рд╛рдЗрдВрдЯ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:

Get_briefcase рдлрд╝рдВрдХреНрд╢рди
 def get_briefcase(XMLdata): #         briefcase_position briefcase_position = XMLdata.find(current_position) if not briefcase_position: return try: for child in briefcase_position: stock_name_reduce = child.get(stock_name).upper() stock_name_reduce = re.sub('[,\.]|(\s?INC)|(\s+$)|([-\s]?)', '', stock_name_reduce) dict_stocks['stock_name'].append(stock_name_reduce) dict_stocks['account'].append(account_name) dict_stocks['currency'].append(child.get(currency)) dict_stocks['current_cost'].append(float(child.get(current_cost))) dict_stocks['current_cost_rub'].append(float(child.get(current_cost_rub))) dict_stocks['saldo'].append(float(child.get(saldo))) except Exception as e: print('get_briefcase --> Oops! It seems we have a BUG!', e) 

рдЕрдЧрд▓рд╛, get_deals рдлрд╝рдВрдХреНрд╢рди рд▓реЗрдирджреЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ:

Get_deals рдлрд╝рдВрдХреНрд╢рди
 def get_deals(XMLdata): stock_name_proc = '' closed_deal = XMLdata.find(deals) if not closed_deal: return #   SPB    -    , #    MOEX:  ,      #    : if exchange_name == 'SPB': sortchildrenby(closed_deal, stock_name_deal) for child in closed_deal: sortchildrenby(child, stock_name_deal) try: for child in closed_deal: stock_name_reduce = child.get(stock_name_deal).upper() stock_name_reduce = re.sub('[,\.]|(\s?INC)|(\s+$)|([-\s]?)', '', stock_name_reduce) dict_deals['stock_name'].append(stock_name_reduce) dict_deals['account'].append(account_name) dict_deals['date_oper'].append(to_dt(child.get(ticketdate)).strftime('%Y-%m-%d')) current_cost = get_current_cost(stock_name_reduce) #    SPB     - quantity, #   MOEX  : buy_qnty  sell_qnty if exchange_name == 'MOEX': if child.get('buy_qnty'): quantity = float(child.get('buy_qnty')) else: quantity = - float(child.get('sell_qnty')) else: quantity = float(child.get('quantity')) dict_deals['quantity'].append(quantity) dict_deals['price'].append(float(child.get('price'))) dict_deals['type_oper'].append('deal') dict_deals['currency'].append(child.get(payment_currency)) brok_comm = child.get(brokerage) if brok_comm is None: brok_comm = 0 else: brok_comm = float(brok_comm) dict_deals['brokerage'].append(float(brok_comm)) #         if stock_name_proc != stock_name_reduce: if stock_name_proc != '': put_avr_price_in_df(account_name, stock_name_proc, \ pnl.m_net_position, pnl.m_avg_open_price) current_cost = get_current_cost(stock_name_proc) pnl.update_by_marketdata(current_cost) if len(dict_deals['result']) > 0: if exchange_name != 'SPB': dict_deals['result'][-1] = pnl.m_unrealized_pnl * 0.87 -dict_deals['brokerage'][-2] else: dict_deals['result'][-1] = pnl.m_unrealized_pnl - dict_deals['brokerage'][-2] stock_name_proc = stock_name_reduce pnl = PnlSnapshot(stock_name_proc, float(child.get('price')), quantity) dict_deals['result'].append(-1 * brok_comm) else: pnl.update_by_tradefeed(float(child.get('price')), quantity) #  ,   if quantity < 0: if pnl.m_realized_pnl > 0 and exchange_name != 'SPB': pnl_sum = pnl.m_realized_pnl * 0.87 - brok_comm else: pnl_sum = pnl.m_realized_pnl - brok_comm dict_deals['result'].append(float(pnl_sum)) else: pnl.update_by_marketdata(current_cost) dict_deals['result'].append(-1 * brok_comm) put_avr_price_in_df(account_name, stock_name_proc, \ pnl.m_net_position, pnl.m_avg_open_price) current_cost = get_current_cost(stock_name_proc) pnl.update_by_marketdata(current_cost) if len(dict_deals['result']) > 0: if exchange_name != 'SPB': dict_deals['result'][-1] = pnl.m_unrealized_pnl * 0.87 -dict_deals['brokerage'][-2] else: dict_deals['result'][-1] = pnl.m_unrealized_pnl - dict_deals['brokerage'][-2] except Exception as e: print('get_deals --> Oops! It seems we have a BUG!', e) 

рд▓реЗрдирджреЗрди рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЦреБрд▓реА рд╕реНрдерд┐рддрд┐ рдХреА рдФрд╕рдд рдХреАрдордд рдФрд░ рдПрдлрдЖрдИрдПрдлрдУ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреАрдПрдирдПрд▓ рджреНрд╡рд╛рд░рд╛ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред PnlSnapshot рд╡рд░реНрдЧ рдЗрд╕ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдкреНрд░рд╕реНрддреБрдд рдХреЛрдб рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: P & L рдЧрдгрдирд╛

рдФрд░ рдЕрдВрдд рдореЗрдВ, рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдореБрд╢реНрдХрд┐рд▓ рдЧреИрд░-рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ - get_nontrade_operation ред рдЗрд╕рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдЗрд╕ рддрдереНрдп рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рдХрд┐ рдЧреИрд░-рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд░рд┐рдкреЛрд░реНрдЯ рдмреНрд▓реЙрдХ рдореЗрдВ рд▓реЗрдирджреЗрди рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд┐рд╕ рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рдмрдВрдзрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИред

рдЧреИрд░-рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рд╕реНрдерд▓реЛрдВ рдХрд╛ рдЙрджрд╛рд╣рд░рдг
рд▓рд╛рднрд╛рдВрд╢ рдпрд╛ рд╕рдВрдЪрд┐рдд рдХреВрдкрди рдЖрдп рдХрд╛ рднреБрдЧрддрд╛рди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рдЖрдп рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рднреБрдЧрддрд╛рди <777777> рд▓рд╛рднрд╛рдВрд╢ < APPLE INC-ao> -> SPB рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рд▓рд╛рднрд╛рдВрд╢ рдХрд╛ рднреБрдЧрддрд╛рди;
  2. рдЖрдп рдЧреНрд░рд╛рд╣рдХ рдХрд╛ рднреБрдЧрддрд╛рди <777777> рд▓рд╛рднрд╛рдВрд╢ < MICROSOFT COM->
  3. рдЧреНрд░рд╛рд╣рдХ рдХреА рдЖрдп рдХрд╛ рднреБрдЧрддрд╛рди 777777i (NKD 2 OFZ 24019 ) рдХрд░ 0.00 рд░реВрдмрд▓ рдХреА рд░реЛрдХ -> MOEX рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рдХреВрдкрди рднреБрдЧрддрд╛рди;
  4. рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдЖрдп рдХрд╛ рднреБрдЧрддрд╛рди 777777 рдПрдлрдЬреАрд╕реА рдпреВрдИрдПрд╕ -рдПрдУ рдХреЗ рд▓рд╛рднрд╛рдВрд╢ рдХреЛ рдХрд░ XX.XX рд░реВрдмрд▓ -> рдПрдордУрдИрдПрдХреНрд╕ рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рд▓рд╛рднрд╛рдВрд╢ рдХрд╛ рднреБрдЧрддрд╛рдиред рдЖрджрд┐

рддрджрдиреБрд╕рд╛рд░, рдирд┐рдпрдорд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдореБрджреНрджреЗ рдХрд╛ рджреВрд╕рд░рд╛ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрдкрдиреА рдХрд╛ рдирд╛рдо рд╣рдореЗрд╢рд╛ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдореЗрдВ рдирд╛рдо рдХреЗ рд╕рд╛рде рдпрд╛ рднреБрдЧрддрд╛рди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд▓реЗрдирджреЗрди рдореЗрдВ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рднреБрдЧрддрд╛рди рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХрд╛ рдкреНрд░рд╛рдкреНрдд рдирд╛рдо рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд╕рд╛рде рд╕рд╣рд╕рдВрдмрджреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рд╕реМрджреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреА рд╕рдмрд╕реЗ рдкреВрд░реНрдг рд╕реВрдЪреА рд╣реИред

Get_company_from_str рдлрд╝рдВрдХреНрд╢рди рдЯрд┐рдкреНрдкрдгреА рд╕реЗ рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХрд╛ рдирд╛рдо рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ:

Get_company_from_str рдлрд╝рдВрдХреНрд╢рди
 def get_company_from_str(comment): company_name = '' #    / flows_pattern = [ '^.+\s<(\w+)?.+->$', '^.+\s(.+)-.+$', '^.+\(\s\d?\s(.+)\).+$', '^.+\s(.+)-.+$' ] for pattern in flows_pattern: match = re.search(pattern, comment) if match: return match.group(1).upper() return company_name 

рдпрджрд┐ рдпрд╣ рд▓реЗрдирджреЗрди рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ get_company_from_borrowcase рдлрд╝рдВрдХреНрд╢рди рдХрдВрдкрдиреА рдХрд╛ рдирд╛рдо рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ:

Get_company_from_briefcase рдлрд╝рдВрдХреНрд╢рди
 def get_company_from_briefcase(company_name): company_name_full = None value_from_dic = df_deals[df_deals['stock_name'].str.contains(company_name)] company_arr = value_from_dic['stock_name'].unique() if len(company_arr) == 1: company_name_full = company_arr[0] return company_name_full 


рдФрд░ рдЕрдВрдд рдореЗрдВ, рдЧреИрд░-рд╡реНрдпрд╛рдкрд╛рд░ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп get_nontrade_operation рд╣реИ :

Get_nontrade_operation рдлрд╝рдВрдХреНрд╢рди
 def get_nontrade_operation(XMLdata): nontrade_money_operation = XMLdata.find(flows) if not nontrade_money_operation: return try: for child in nontrade_money_operation: comment = child.get('comment') type_oper_match = re.search('||^.+.+.+$', comment) if type_oper_match: company_name = get_company_from_str(comment) type_oper = get_type_oper(comment) dict_flows['stock_name'].append(company_name) dict_flows['account'].append(account_name) dict_flows['date_oper'].append(to_dt(child.get(operationdate)).strftime('%Y-%m-%d')) dict_flows['type_oper'].append(type_oper) dict_flows['result'].append(float(child.get('amount'))) dict_flows['currency'].append(child.get(currency_flows)) except Exception as e: print('get_nontrade_operation --> Oops! It seems we have a BUG!', e) 

рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рддреАрди рдбреЗрдЯрд╛рдлреНрд░реЗрдо рд╣реЛрдВрдЧреЗ, рдЬреЛ рд▓рдЧрднрдЧ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИрдВ:

  1. рдЦреБрд▓реЗ рдкрджреЛрдВ рдХреА рдФрд╕рдд рдХреАрдорддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛ рдирд╛рдо:
  2. рдбреАрд▓рдлрд╝реНрд░реЗрдо:
  3. рдЧреИрд░-рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо:


рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдпрд╣ рд╕рдм рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рд╕реВрдЪрдирд╛ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рд▓реЗрдирджреЗрди рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдПрдХ рдмрд╛рд╣рд░реА рд╕рдВрдШ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдирд╛ рд╣реИ:

 df_result = pd.merge(df_deals, df_stocks_avg, how='outer', on=['stock_name', 'account', 'currency']).fillna(0) df_result.sample(10) 


рдФрд░ рдЕрдВрдд рдореЗрдВ, рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдЕрдВрддрд┐рдо рднрд╛рдЧ рдЧреИрд░-рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХреЗ рд╕рд╛рде рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХрд╛ рд╡рд┐рд▓рдп рд╣реИред
рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рд╕рдкрд╛рдЯ рддрд╛рд▓рд┐рдХрд╛ рд╣реИ:

 df_result_full = df_result.append(df_flows, ignore_index=True).fillna(0) df_result_full.sample(10).head() 


DataFrame рд╕реЗ рдкрд░рд┐рдгрд╛рдореА рдбреЗрдЯрд╛ рд╕реЗрдЯ (рдлрд╛рдЗрдирд▓ рд░рд┐рдкреЛрд░реНрдЯ) рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ CSV рдкрд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА BI рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 if not exists('OUTPUT'): makedirs('OUTPUT') report_name = 'OUTPUT\my_trader_diary.csv' df_result_full.to_csv(report_name, index = False, encoding='utf-8-sig') 


AWS рдореЗрдВ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб рдФрд░ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░реЗрдВ


рдкреНрд░рдЧрддрд┐ рдЕрднреА рднреА рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдм рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдПрдВ рдФрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдореЙрдбрд▓ рдбреЗрдЯрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рднрдВрдбрд╛рд░рдг рдореЗрдВ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреА рд╕рд╛рджрдЧреА рдФрд░ рд╕рд╕реНрддреЗрдкрди рдХреЗ рдХрд╛рд░рдг рд╣реИ, рдЬрдм рдЖрдкрдХреЛ рдЬрдЯрд┐рд▓ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдпрд╛ рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рдВрдЧреЗ рдЙрдкрдХрд░рдг рдЦрд░реАрджрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдХреЗрд╡рд▓ рдЬрд░реВрд░рдд рдХреЗ рд╕рдордп рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдмрд┐рдЬрд▓реА рдХрд┐рд░рд╛рдП рдкрд░ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЗ рд╢реБрд▓реНрдХ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВред ред

рдмрд╛рдЬрд╛рд░ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реЗ рдФрд░ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдореЗрдЬрд╝рди рд╣реИред рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдирд┐рд╡реЗрд╢ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдкрд░ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдореЗрдЬрд╝рди рд╡реЗрдм рд╕рд░реНрд╡рд┐рд╕реЗрдЬ (AWS) рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рджреЗрдЦреЗрдВред

AWS рдХреЗ рдкрд╛рд╕ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдЪрдпрди рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

  • рдЕрдореЗрдЬрд╝реЕрди рдПрд╕ 3 - рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдЯреЛрд░реЗрдЬ, рдЬреЛ рдЖрдкрдХреЛ рд▓рдЧрднрдЧ рдЕрд╕реАрдорд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  • рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдЧреЛрдВрдж - рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдХреНрд▓рд╛рдЙрдб рдИрдЯреАрдПрд▓ рд╕реЗрд╡рд╛ рдЬреЛ рд╕реНрд╡рдпрдВ рд╕рдВрд░рдЪрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рджрд┐рдП рдЧрдП рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рд╕реЗ рдИрдЯреАрдПрд▓ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреА рд╣реИ;
  • рдЕрдореЗрдЬрд╝реЕрди рдПрдереЗрдирд╛ , рдПрдХ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдСрдирд▓рд╛рдЗрди рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рд╕реЗрд╡рд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдмрд╣реБрдд рддреИрдпрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдПрд╕ 3 рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрдирдХреЗ рдкрд╛рд╕ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рднреА рд╣реИ рдЬреЛ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдЧреЛрдВрдж рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдИрдЯреАрдПрд▓ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  • рдЕрдореЗрдЬрд╝реЕрди рдХреНрд╡рд┐рдХрд╕рд╛рдЗрдЯ - рд╕рд░реНрд╡рд░рд▓реЗрд╕ рдмреАрдЖрдИ-рд╕реЗрд╡рд╛, рдЖрдк рдХрд┐рд╕реА рднреА рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди, рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯ "рдлреНрд▓рд╛рдИ рдкрд░" рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐ред

рдЕрдореЗрдЬрд╝реЕрди рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕рдм рдареАрдХ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдПрдХ рдЕрдЪреНрдЫрд╛ рд▓реЗрдЦ рд╣реИ рдмреЗрд╕реНрдЯ рдкреНрд░реИрдХреНрдЯрд┐рд╕ рд╡реНрд╣реЗрди рдпреВрдЬрд╝рд┐рдВрдЧ рдПрдереЗрдирд╛ рд╡рд┐рде рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдЧреНрд▓реВ , рдЬрд┐рд╕рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдЧреНрд▓реВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрдмрд▓ рдФрд░ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЖрдЗрдП рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдПрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рдгрд╛рд▓реА рдХреА рдЕрдкрдиреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░реЗрдВред

рд╣рдорд╛рд░реА рд░рд┐рдкреЛрд░реНрдЯ рдкрд╛рд░реНрд╕рд░ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХреА рдЧрдИ CSV рдлрд╛рдЗрд▓реЗрдВ S3 рдмрд╛рд▓реНрдЯреА рдореЗрдВ рдЬреЛрдбрд╝реА рдЬрд╛рдПрдВрдЧреАред рдпрд╣ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ рдХрд┐ рдПрд╕ 3 рдкрд░ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рд╢рдирд┐рд╡рд╛рд░ рдХреЛ рдЯреНрд░реЗрдбрд┐рдВрдЧ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдк рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдЙрддреНрдкрдиреНрди рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреА рддрд╛рд░реАрдЦ рдХреЛ рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдкреЗрдкрд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рддреНрддреАрдп рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

Amazon S3 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
  • S3 рдкрд░ рдПрдХ рдмрдХреЗрдЯ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ "рд░рд┐рдкреЛрд░реНрдЯ-рдкрд╛рд░реНрд╕рд░" рдХрд╣реЗрдВ;
  • рдЗрд╕ рдмрдХреЗрдЯ рдореЗрдВ "рд░рд┐рдкреЛрд░реНрдЯ-рдкрд╛рд░реНрд╕рд░" "my_trader_diary" рдирд╛рдордХ рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рддреЗ рд╣реИрдВ;
  • рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ "my_trader_diary" рд╡рд░реНрддрдорд╛рди рд░рд┐рдкреЛрд░реНрдЯ рдХреА рддрд╛рд░реАрдЦ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "date_report = 2018-10-01" рдФрд░ рдЗрд╕рдореЗрдВ CSV рдлрд╝рд╛рдЗрд▓ рд░рдЦреЗрдВ;
  • рдХреЗрд╡рд▓ рдкреНрд░рдпреЛрдЧ рдФрд░ рд╡рд┐рднрд╛рдЬрди рдХреА рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛ рдФрд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдПрдВрдЧреЗ: "date_report = 2018-09-27" рдФрд░ "date_report = 2018-10-08"ред рд╣рдордиреЗ рдЙрдирдореЗрдВ рд╡рд╣реА CSV рдлрд╝рд╛рдЗрд▓ рдбрд╛рд▓реА;
  • рдЕрдВрддрд┐рдо S3 рдмрд╛рд▓реНрдЯреА "рд░рд┐рдкреЛрд░реНрдЯ-рдкрд╛рд░реНрд╕рд░" рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░реЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рд╡реНрдпрдХреНрддрд┐ рдХреА рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:


AWS рдЧреЛрдВрдж рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рджреНрд╡рд╛рд░рд╛ рдФрд░ рдмрдбрд╝реЗ, рдЖрдк S3 рдкрд░ рдкрдбрд╝реЗ рдбреЗрдЯрд╛ рд╕реЗ рдмрд╛рд╣рд░реА рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ Amazon Athena рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди AWS Glue рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред

  • рд╣рдо AWS Glue рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдХреНрд░реЙрд▓рд░ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рддрд╛рд░реАрдЦреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ CSV рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЯреЗрдмрд▓ рдПрдХрддреНрд░ рдХрд░реЗрдЧрд╛:
    • рдирдП рдХреНрд░реЙрд▓рд░ рдХрд╛ рдирд╛рдо рд╕реЗрдЯ рдХрд░реЗрдВ;
    • рд╣рдо рдЙрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ (s3: // report-parser / my_trader_diary /)
    • рд╣рдо рдПрдХ рдирдИ IAM рднреВрдорд┐рдХрд╛ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХреНрд░реЙрд▓рд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдФрд░ S3 рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрдЧреА;
    • рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдкреНрд░рд╛рд░рдВрдн рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдЕрднреА рдХреЗ рд▓рд┐рдП рдорд╛рдВрдЧ рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд▓реЙрдиреНрдЪ рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛;
    • рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдХреНрд░реЙрд▓рд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред
  • рдЬрдм рдХреНрд░реЙрд▓рд░ рддреИрдпрд╛рд░ рд░рд╛рдЬреНрдп рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ!

  • рдПрдХ рдмрд╛рд░ рдЬрдм рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреЛ AWS Glue рдореЗрдВ рдПрдХ рдирдпрд╛ my_trader_diary рдЯреЗрдмрд▓ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛: рдбреЗрдЯрд╛рдмреЗрд╕ -> рдЯреЗрдмрд▓реНрд╕ рдЯреИрдм:


рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЙрддреНрдкрдиреНрди рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдпрджрд┐ рдЖрдк рдмрдирд╛рдИ рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдирд╛рдо рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВрдЧреЗред рдиреАрдЪреЗ рдПрдХ рдЯреЗрдмрд▓ рд▓реЗрдЖрдЙрдЯ рд╣реИ рдФрд░ рд╕рдмрд╕реЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╕реНрддрдВрдн рд╣реИ рдЬреЛ рд╕реНрд░реЛрдд CSV рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВ рдерд╛ - date_reportред рдпрд╣ рдХреЙрд▓рдо AWS Glue рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдбреЗрдЯрд╛ рдХреЗ рд╡рд░реНрдЧреЛрдВ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ (рдмрд╛рд▓реНрдЯреА S3 рдореЗрдВ, рд╣рдордиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░реНрд╕ рдХрд╛ рдирд╛рдо date_report = YYYY-MM-DD рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рддрд╛рд░реАрдЦреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ)ред

рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рднрд╛рдЬрди

рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рдПрдХ рд╡реНрдпреВ рдкрд╛рд░реНрдЯреАрд╢рди рдмрдЯрди рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдП рдЧрдП рдЯреЗрдмрд▓ рдореЗрдВ рдХреМрди рд╕реЗ рд╕реЗрдХреНрд╢рди рд╣реИрдВ:

рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг


рд╣рдорд╛рд░реЗ рдирд┐рдкрдЯрд╛рди рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрд┐рдд рдбреЗрдЯрд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдореЗрдЬрд╝реЕрди рдПрдереЗрдирд╛ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдФрд░ рддреЗрдЬрд╝ рддрд░реАрдХрд╛ рд╕рдордЭреЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдореЗрдЬрд╝реЕрди рдПрдереЗрдирд╛ рд╕реЗрд╡рд╛ рдкрд░ рдЬрд╛рдПрдВ, рд╣рдореЗрдВ рдЙрд╕ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ (рд╡рд┐рддреНрддреАрдп) рдФрд░ рдирд┐рдореНрди рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛрдб рд▓рд┐рдЦреЗрдВ:

 select d.date_report, d.account, d.stock_name, d.currency, sum(d.quantity) as quantity, round(sum(d.result), 2) as result from my_trader_diary d group by d.date_report, d.account, d.stock_name, d.currency order by d.account, d.stock_name, d.date_report; 

рдпрд╣ рдЕрдиреБрд░реЛрдз рд╣рдореЗрдВ рд╕рднреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рддрд┐рдерд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╢реБрджреНрдз рд╡рд┐рддреНрддреАрдп рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд░реАрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рддреАрди рдмрд╛рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛, рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмрд╛рдЬрд╛рд░ рдореЗрдВ рдЕрд▓рдЧ рд╣реЛрдЧрд╛:


рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рд▓рдЪреАрд▓реЗ рдЯреЗрдмрд▓ рдпрд╛ рдЖрд░реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╣рд╛рдВ рдЕрдореЗрдЬрд╝реЕрди рдХреНрд╡рд┐рдХрд╕рд┐рдЯ рдмрдЪрд╛рд╡ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдЖрдк SQL рдХреНрд╡реЗрд░реА рд▓рд┐рдЦрддреЗ рд╕рдордп рд▓рдЪреАрд▓реЗ рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдХреЛ рд▓рдЧрднрдЧ рдЬрд▓реНрджреА рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо Amazon QuickSight рд╕реЗрд╡рд╛ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ (рдпрджрд┐ рдЖрдкрдиреЗ рд╡рд╣рд╛рдВ рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд░рд╛рдпрд╛ рд╣реИ, рддреЛ рдкрдВрдЬреАрдХрд░рдг рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред

рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдирдпрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг -> рдирдпрд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдФрд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЬреЛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдЪреБрдирд┐рдВрджрд╛ рд╕реНрд░реЛрдд рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдПрдереЗрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:



рд╣рдо рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЖрдПрдВрдЧреЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "PNL_analysis" рдФрд░ "рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдмрдирд╛рдПрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рд╡рд┐рдВрдбреЛ рдЪреБрдиреЗрдВ, рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ - рд╡рд┐рддреНрддреАрдп, рдФрд░ рдЗрд╕рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛: my_traider_diaryред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рдВрдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк "рдХрд╕реНрдЯрдо SQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдирдореВрдиреЗ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдкреВрд░реА рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдкрд╛рджрди / рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдбреЗрдЯрд╛ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВред

рдПрдХ рдирдпрд╛ рдкреЗрдЬ рдЦреБрд▓реЗрдЧрд╛ рдЬрд╣рд╛рдБ рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореМрдЬреВрджрд╛ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧрдгрдирд╛ рд╡рд╛рд▓реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рддрд┐рдорд╛рд╣реА рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╡рд░реНрд╖ред рдПрдХ рдЪреМрдХрд╕ рдкрд╛рдардХ рдпрд╣ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ CSV рдХреЛ рдЕрдВрддрд┐рдо рд░рд┐рдкреЛрд░реНрдЯ рд╕рд╣реЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдкрд╛рд░реНрд╕рд░ рдХреА рддрд░рдл рдХрд░рдирд╛ рдЖрд╕рд╛рди рдерд╛ред рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рдЕрдм рдордХреНрдЦреА рдкрд░ рдмреАрдЖрдИ-рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рд╣реИред рд╣рдо "рдирдИ рдлрд╝реАрд▓реНрдб" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдкрд░рд┐рдХрд▓рд┐рдд рдлрд╝реАрд▓реНрдб рдмрдирд╛рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред

рдПрдХ рдирдпрд╛ рдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдПрдБ

рдСрдкрд░реЗрд╢рди рдХреЗ рд╡рд░реНрд╖ рдФрд░ рддрд┐рдорд╛рд╣реА рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рд░рд▓ рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдПрдХ рдирдП рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░реЛрдВ рдореЗрдВ рднрд░рдирд╛

рдЬрдм рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдлрд╝реАрд▓реНрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдФрд░ рдЪрдпрди рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдПрдХ рдирд╛рдо рджреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "my_pnl_analyze" рдФрд░ "рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдореЗрдЬрд╝реЕрди рдХреНрд╡рд┐рдХрд╕рд╛рдЗрдЯ рдореБрдЦреНрдп рдмреЛрд░реНрдб рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рд╡рд╣ рд░рд┐рдкреЛрд░реНрдЯ рддрд┐рдерд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реИ (рдЗрд╕ рддрдереНрдп рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐ рдПрдХ рд╣реА рдбреЗрдЯрд╛ рддреАрди рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рджрд┐рдирд╛рдВрдХ 2018-10-01 рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЕрдкреНрд▓рд╛рдИ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдБред

рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧ

рдЕрдм рд╣рдо рдХрд┐рд╕реА рднреА рд╡рд┐рдорд╛рди рдореЗрдВ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЯреНрд░реЗрдбрд┐рдВрдЧ рдЦрд╛рддреЗ рдХреЗ рдЕрдВрджрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП, рдФрд░ рдореБрджреНрд░рд╛ рджреНрд╡рд╛рд░рд╛ рдмрджрд▓реЗ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╡рд┐рднрд┐рдиреНрди рдореБрджреНрд░рд╛рдУрдВ рдореЗрдВ рддреБрд▓рдиреАрдп рдирд╣реАрдВ рд╣реИ) рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкреНрд░рдХрд╛рд░ред рдЪрд▓реЛ рдХрд┐рд╕реА рднреА рдмреАрдЖрдИ - рдкрд┐рд╡рдЯ рдЯреЗрдмрд▓ рдХреЗ рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдореБрджреНрд░рд╛ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд░рдЦрд╛ (рдПрдордПрд╕ рдПрдХреНрд╕реЗрд▓ рдореЗрдВ рд╕реНрд▓рд╛рдЗрд╕ рдХрд╛ рдПрдирд╛рд▓реЙрдЧ)

рдКрдкрд░ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдирд┐рд╡реЗрд╢рдХ рдЕрдм рдПрдлрдЬреАрд╕реА рдпреВрдИрдПрд╕ рдХреЗ рд╕рднреА рд╢реЗрдпрд░реЛрдВ рдХреЛ рдмреЗрдЪрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдиреБрдХрд╕рд╛рди рджрд░реНрдЬ рдХрд░реЗрдЧрд╛ 1,509.91 рдкреА рдХреА рд░рд╛рд╢рд┐ рдореЗрдВ рднреБрдЧрддрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд▓рд╛рднрд╛рдВрд╢ред рд╡реЗ рдЗрд╕рдХреА рд▓рд╛рдЧрдд (1,763.36 рд░реВрдмрд▓ - рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рд╡рд┐рдирд┐рдордп рджрд░ рдЕрдВрддрд░ рдФрд░ 174 рд░реВрдмрд▓ - рд▓рд╛рднрд╛рдВрд╢ рдкрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЖрдпрдХрд░) рдХреЛ рдХрд╡рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкрд░ рдмреЗрд╣рддрд░ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдФрд░ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреНрд░рд╛рдл рдПрдХ рдмрд╛рд░ рдЪрд╛рд░реНрдЯ рд╣реИ:


рдФрд░ рдЕрдм рд╣рдо рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВрдЧреЗ рдЬреЛ рд╣рдореЗрдВ рджрд┐рдЦрд╛рдПрдЧреА рдХрд┐ рд╣рдордиреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреЗрдкрд░ рдореЗрдВ рдХрд┐рддрдирд╛ рдирд┐рд╡реЗрд╢ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рд╣рдорд╛рд░реЗ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдореЗрдВ рдХрд┐рддрдиреЗ рджрд┐рдиреЛрдВ рдХрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдХреА рдкреВрд░реА рдЕрд╡рдзрд┐ рдХреЗ рд▓рд┐рдП рд▓рд╛рднрдкреНрд░рджрддрд╛ рдХреНрдпрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреЛ рдирдП рдкрд░рд┐рдХрд▓рд┐рдд рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВ: sum_investment рдФрд░ count_daysред

рдлрд╝реАрд▓реНрдб sum_investment
sum_investment ( ) :

ifelse({stock_name} = ' 24019',{avg_open_price} * quantity * 10,{avg_open_price} * quantity)

, тАУ ( тАУ 1000).

рдлрд╝реАрд▓реНрдб count_days
count_day ( ) :

dateDiff(parseDate({date_oper}),parseDate({date_report}))

рдЕрдВрддрд┐рдо рддрд╛рд▓рд┐рдХрд╛ рдиреАрдЪреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХреА рдЧрдИ рд╣реИ:



рдирд┐рд╖реНрдХрд░реНрд╖ рдФрд░ рд╕рд╛рд░рд╛рдВрд╢


рд╣рдордиреЗ рдЖрдкрдХреЗ рд╕рд╛рде рд░рд┐рдкреЛрд░реНрдЯ рдкрд╛рд░реНрд╕рд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдордХреНрдЦреА рдкрд░" рдЕрдореЗрдЬрд╝реЕрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рдВрдЪ рдХреА рд╣реИред рд╣рдордиреЗ рдирд┐рд╡реЗрд╢ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдХреБрдЫ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рдкрд╣рд▓реБрдУрдВ рдкрд░ рднреА рдмрд╛рдд рдХреА рд╣реИ рдпрд╣ рд╡рд┐рд╖рдп рд▓рдЧрднрдЧ рд╡рд┐рд╢рд╛рд▓ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдлрд┐рдЯ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд╢рди рдпрд╛ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рдмреНрд░реЛрдХрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдЯреВрд▓ рдФрд░ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдФрд░ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рдмреНрд░реЛрдХрд░реЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрдкрдпреБрдХреНрдд рд╕рдВрд╢реЛрдзрди рдХреЗ рд╕рд╛рде) рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ - рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдгрд╛рд▓реА рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЛ рдкрд╛ рд▓реЗрдЧреА рдФрд░ рдЖрдЧреЗ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдбрд┐рдкреЙрдЬрд┐рдЯрд░реА рдФрд░ рдЕрдиреНрдп рд╢реБрд▓реНрдХ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдзрди рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП), рд╕рд╛рде рд╣реА рдмрд╛рдВрдб рдХрд╛ рднреБрдЧрддрд╛рди, рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдкреАрдПрдирдПрд▓ рдХреА рдЧрдгрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ ... Quicksight рдХреЗ рдкрд░рд┐рдХрд▓рд┐рдд рдлрд╝реАрд▓реНрдб рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдкрд╛рд░реНрд╕рд░ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗред рдЗрди рд╕рднреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реНрддрдВрднреЛрдВ рдХреЛ рдкрд╛рдпрдерди рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкрд╛рд░реНрд╕рд░ рдХреА рдУрд░ рд╕реЗ рдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреАред

рдПрдХ рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рдФрд░ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдореБрдЦреНрдп рд╡реНрдпрд╡рд╕рд╛рдп рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рдирд┐рдореНрди рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдФрд░ рдЙрдиреНрдирдпрди рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ: рдареАрдХ рд╣реИ, рдореИрдВ рд╣рд░ рдмрд╛рд░ рдЗрди XML рд░рд┐рдкреЛрд░реНрдЯреЛрдВ рдХрд╛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛! рдмреЗрд╢рдХ, рдЕрдм рддрдХ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЯреЛрдХрди рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдмреНрд░реЛрдХрд░ рдПрдкреАрдЖрдИ рдФрд░ рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рдХрдЪреНрдЪреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛ рд░реЗрдВрдЬ рдЖрджрд░реНрд╢ рд╣реЛрдЧрд╛ред рдЕрдореЗрдЬрд╝рди рдкрд░ рдмрд╛рдж рдореЗрдВ рдкреВрд░реНрдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг: рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдЧреЛрдВрдж рдкрд░ рдИрдЯреАрдПрд▓-рдиреМрдХрд░реА рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рд▓реЗрдХрд░ рдЕрдореЗрдЬрд╝реЕрди рдХреНрд╡рд┐рдХрд╕рд╛рдЗрдЯ рдореЗрдВ рдЧреНрд░рд╛рдлрд╝ рдФрд░ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрд░реЗ GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

Source: https://habr.com/ru/post/hi426027/


All Articles