{"id":305889,"date":"2020-06-25T09:01:02","date_gmt":"2020-06-25T09:01:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=305889"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=305889","title":{"rendered":"\u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 20 \u0441\u0442\u0440\u043e\u043a\u0430\u0445 \u043a\u043e\u0434\u0430"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/507954\/\">\u0421\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0435 \u0442\u0435\u043c\u044b \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e. \u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0438\u0437 \u043d\u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0435 API Yahoo finance. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u0442\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0434\u043e\u0431\u044b\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f Yahoo) \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u043b\u0438\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0432\u044d\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 20 \u0441\u0442\u0440\u043e\u043a \u0438 \u0432\u044b\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443, \u043d\u0435 \u0443\u043c\u0435\u044e\u0449\u0435\u043c\u0443 \u0432 CLI.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_4\/lb\/gh\/_4lbghjf1vld71tk296ioeluc2g.jpeg\"><\/p>\n<p>  <a name=\"habracut\"><\/a><\/p>\n<p>  <b>\u0412\u0430\u043d\u0438\u043b\u044c\u043d\u044b\u0439 Yahoo<\/b><\/p>\n<p>  \u0418\u0442\u0430\u043a, \u043d\u0430\u0447\u043d\u0435\u043c \u0441 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0443\u0442\u044c \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u2014 API Yahoo. \u041d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u044d\u0442\u043e API \u043d\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e\u0435, \u0438 \u043f\u043e \u0441\u043b\u043e\u0432\u0430\u043c \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0445\u0441\u044f \u043b\u044e\u0434\u0435\u0439 \u2014 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0438 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0430\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f. \u0411\u043e\u043b\u044c \u043d\u0430 \u044d\u0442\u0443 \u0442\u0435\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/quant.stackexchange.com\/questions\/35019\/is-yahoo-finance-data-good-or-bad-now\" rel=\"nofollow\">\u0442\u0430\u043c<\/a>. \u0415\u0441\u043b\u0438 \u043d\u0430\u0441 \u0442\u0430\u043a\u043e\u0435 \u043d\u0435 \u0441\u0442\u0440\u0430\u0448\u0438\u0442 \u2014 \u0442\u043e \u0432\u043f\u0435\u0440\u0435\u0434, \u043d\u0430\u0432\u0441\u0442\u0440\u0435\u0447\u0443 \u043f\u0440\u0438\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u043c.<br \/>  <a href=\"https:\/\/habr.com\/ru\/post\/505674\/\">\u041e\u0431\u0448\u0438\u0440\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f<\/a> \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c yahoo finance API \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u044b\u043b\u0430 \u043d\u0430 \u0425\u0430\u0431\u0440\u0435, \u0435\u0441\u0442\u044c \u0433\u0434\u0435 \u0440\u0430\u0437\u0433\u0443\u043b\u044f\u0442\u044c\u0441\u044f <br \/>  \u0442\u0435\u043c, \u043a\u0442\u043e \u043b\u044e\u0431\u0438\u0442 Node.js. \u041c\u044b \u0436\u0435 \u0431\u0443\u0434\u0435\u043c \u0442\u0435\u0440\u0435\u0431\u0438\u0442\u044c \u043f\u0438\u0442\u043e\u043d\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0436\u0438\u0437\u043d\u044c \u0432\u043c\u0435\u0441\u0442\u043e \u043f\u0440\u044f\u043c\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a API \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/github.com\/ranaroussi\/yfinance\" rel=\"nofollow\">yfinance<\/a>. \u0411\u0443\u0434\u0435\u043c \u043d\u0430\u0434\u0435\u044f\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u044b \u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u043c API \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0435\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0430 \u043d\u0430\u043c \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438. \u041f\u043e\u043c\u0438\u043c\u043e \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0436\u0438\u0437\u043d\u0438 \u044d\u0442\u043e \u0434\u043e\u043f\u0443\u0449\u0435\u043d\u0438\u0435 \u0433\u0440\u043e\u0437\u0438\u0442 \u0432 \u043e\u0434\u0438\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0434\u0435\u043d\u044c \u043f\u0440\u0435\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u043d\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u043a\u0438\u0440\u043f\u0438\u0447, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u0439 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u044f \u0431\u044b \u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043d\u0430 \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u0435\u043c\u044b\u0445 \u043f\u043e\u0437\u0436\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435.<\/p>\n<p>  \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u043c\u0441\u044f \u0430\u043a\u0446\u0438\u044f\u043c\u0438 \u043d\u0430 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u043c \u0440\u044b\u043d\u043d\u043a\u0435. \u0427\u0442\u043e\u0431\u044b \u043d\u0435 \u0434\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0443 <s>\u043c\u0430\u043c\u043a\u0438\u043d\u043e\u0433\u043e \u0438\u043d\u0432\u0435\u0441\u0442\u043e\u0440\u0430<\/s> \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e \u0432\u043e\u043b\u043a\u0430 \u0441 \u0432\u043e\u043b\u043b \u0441\u0442\u0440\u0438\u0442, \u043f\u0443\u0442\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0430\u0437\u043d\u044b\u0435 <a href=\"https:\/\/www.bloomberg.com\/news\/articles\/2020-03-26\/zoom-technologies-trading-suspended-amid-ticker-confusion\" rel=\"nofollow\">\u0437\u0443\u043c\u044b<\/a>, \u0438 <a href=\"https:\/\/www.bloomberg.com\/news\/articles\/2020-06-09\/fangdd-or-fang-china-real-estate-firm-adds-395-in-mystery-move\" rel=\"nofollow\">\u0441\u0447\u0438\u0442\u0430\u044e\u0449\u0435\u0433\u043e<\/a> \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0443\u044e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044e FANGDD ETF \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043a\u0446\u0438\u0439 \u0444\u043b\u0430\u0433\u043c\u0430\u043d\u043e\u0432 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043e\u0442\u0440\u0430\u0441\u043b\u0438, \u2014 \u043f\u043e\u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0448\u0435\u043c\u0443 \u044e\u0437\u0435\u0440\u0443 \u043d\u0435 \u0437\u0430\u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f, \u0430 \u0442\u043e \u0438 \u0434\u043e <a href=\"https:\/\/vc.ru\/finance\/135585-samoubiystvo-treydera-novichka-kak-neponyatnyy-interfeys-robinhood-privel-k-smerti-aleksandra-kirnsa\" rel=\"nofollow\">\u0431\u0435\u0434\u044b<\/a> \u043d\u0435\u0434\u0430\u043b\u0435\u043a\u043e.<\/p>\n<p>  \u0412\u043e\u0437\u044c\u043c\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435 \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0439 \u043a\u043e\u043c\u0438\u0441\u0441\u0438\u0438 \u043f\u043e \u0446\u0435\u043d\u043d\u044b\u043c \u0431\u0443\u043c\u0430\u0433\u0430\u043c \u0434\u043b\u044f \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u0438\u044f \u0438\u043c\u0435\u043d \u0438 \u0442\u0438\u043a\u0435\u0440\u043e\u0432. JSON \u043c\u043e\u0436\u043d\u043e \u0441\u0442\u0430\u0449\u0438\u0442\u044c \u0441 \u0438\u0445 <a href=\"https:\/\/www.sec.gov\/file\/company-tickers\" rel=\"nofollow\">\u0441\u0430\u0439\u0442\u0430<\/a>. \u042f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0439 csv-\u0448\u043a\u043e\u0439 \u0434\u043e\u0431\u044b\u0442\u043e\u0439 \u0432 <a href=\"http:\/\/rankandfiled.com\/#\/data\/tickers\" rel=\"nofollow\">\u0434\u0440\u0443\u0433\u043e\u043c \u043c\u0435\u0441\u0442\u0435<\/a> \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043d\u0430 \u0442\u0435\u0445 \u0436\u0435 \u0434\u0430\u043d\u043d\u044b\u0445. \u0410\u0445\u0442\u0443\u043d\u0433, \u0432 \u043f\u043e\u0434\u043e\u0431\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u0430\u0445 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0441\u043d\u044f\u0442\u044b\u0435 \u0441 \u0442\u043e\u0440\u0433\u043e\u0432, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u043a\u043e\u043c\u043c\u0435\u043d\u0434\u0443\u044e\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438.<br \/>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432 \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u043e\u043c \u043b\u0438\u0441\u0442\u0435 \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0438\u043a\u043e\u0432\u043e\u0439 \u043f\u0440\u043e\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u043e\u0441\u0442\u0438 VSEA \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0441\u043a\u0443\u043f\u0438\u043b AMAT \u0438 \u0443\u0431\u0440\u0430\u043b\u0438 \u0441 \u0440\u044b\u043d\u043a\u0430 \u043b\u0435\u0442 10 \u043d\u0430\u0437\u0430\u0434.<\/p>\n<p>  \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043c\u044b \u043f\u0438\u043b\u0438\u043c \u0435\u0433\u043e \u0432 <a href=\"https:\/\/www.streamlit.io\" rel=\"nofollow\">\u0441\u0442\u0440\u0438\u043c\u043b\u0438\u0442\u0435<\/a>. \u042d\u0442\u043e \u043a\u0440\u0430\u0441\u0438\u0432\u043e \u0438 \u041e\u0427\u0415\u041d\u042c \u0431\u044b\u0441\u0442\u0440\u043e \u0432 \u043f\u043b\u0430\u043d\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f. \u041d\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u0430\u043f\u0438\u0445\u0430\u0435\u043c \u0432\u0435\u0441\u044c \u043b\u0438\u0441\u0442 \u0432 14 000 \u043f\u043e\u0437\u0438\u0446\u0438\u0439 \u0432 \u0441\u0442\u0440\u0438\u043c\u043b\u0438\u0442\u043d\u044b\u0439 \u0441\u0435\u043b\u0435\u043a\u0442 \u0431\u043e\u043a\u0441 \u2014 \u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0431\u0443\u0434\u0435\u0442 \u0442\u043e\u0440\u043c\u043e\u0437\u0438\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044e \u043f\u043e \u0432\u0432\u043e\u0434\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<p>  \u0415\u0441\u043b\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u0432\u0435\u0441\u0442\u0438 Microsoft \u0442\u043e \u0432\u0430\u0441 \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u043a\u0438\u043d\u0435\u0442 \u0432 \u043d\u0443\u0436\u043d\u043e\u0435, \u0430 \u0435\u0441\u043b\u0438 therapeutics \u2014 \u0442\u043e \u0432\u0430\u0441 \u0436\u0434\u0435\u0442 \u043b\u0438\u0441\u0442 \u0441 \u0434\u043b\u0438\u043d\u043d\u044b\u043c \u0441\u043a\u0440\u043e\u043b\u043b\u043e\u043c, \u0437\u0430\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u0435\u0442\u0430\u0435\u0442 \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438. \u0413\u043e\u0442\u043e\u0432\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043d\u0435\u0437\u0430\u0442\u0435\u0439\u043b\u0438\u0432 \u0438 \u043f\u0440\u043e\u0441\u0442, \u043d\u0430 \u0432\u0441\u0435 \u043f\u0440\u043e \u0432\u0441\u0435 \u0441 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u043c \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u043c\u0438 \u0443\u0448\u043b\u043e 40 \u0441\u0442\u0440\u043e\u0447\u0435\u043a. \u0415\u0441\u043b\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u043a\u0430\u043a \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435, \u0442\u043e \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 20, \u043d\u0438\u043a\u0430\u043a\u043e\u0433\u043e \u043a\u043b\u0438\u043a\u0431\u0435\u0439\u0442\u0430 \u0432\u0441\u0435 \u0447\u0435\u0441\u0442\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vv\/xk\/eq\/vvxkeqrl5egycq3wuzos8l4vroo.png\"><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u043e\u0441\u0442\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">import yfinance as yf import streamlit as st import pandas as pd from datetime import datetime  # read SEC registered comanies sec_list = pd.read_csv('cik_ticker.csv', sep='|',                        names=['CIK', 'Ticker', 'Name', 'Exchange', 'SIC', 'Business', 'Incorporated', 'IRS']) name_options = ['Microsoft Corp'] name_hint = st.sidebar.text_input(label='Company name contains') if name_hint is not None:     name_options = sec_list[sec_list['Name'].str.contains(name_hint, case=False)]['Name'].tolist() if not name_options:     name_options = ['Microsoft Corp']  # get ticker from company name and dates from UI company_name = st.sidebar.selectbox('SEC listed companies', name_options) ticker = sec_list.loc[sec_list['Name'] == company_name, 'Ticker'].iloc[0] tickerData = yf.Ticker(ticker) end_date = st.sidebar.date_input('end date', value=datetime.now()).strftime(&quot;%Y-%m-%d&quot;) start_date = st.sidebar.date_input('start date', value=datetime(2010, 5, 31)).strftime(&quot;%Y-%m-%d&quot;)  # make API query ticker_df = tickerData.history(period='1d', start=start_date, end=end_date) md_chart_1 = f&quot;Price of **{ticker}** &quot; md_chart_2 = f&quot;Volume of **{ticker}** &quot; if len(ticker_df) == 0:     tickerData = yf.Ticker('MSFT')     ticker_df = tickerData.history(period='1d', start=start_date, end=end_date)     md_chart_1 = f&quot;Invalid ticker **{ticker}** showing **MSFT** price&quot;     md_chart_2 = f&quot;Invalid ticker **{ticker}** showing **MSFT** volume&quot;  # Add simple moving average ticker_df['sma 15'] = ticker_df.Close.rolling(window=15).mean()  # plot graphs st.markdown(f&quot;Demo app showing **Closing price** and **trade volume** of a selected ticker from Yahoo! finance API&quot;) st.markdown(md_chart_1) st.line_chart(ticker_df[['Close', 'sma 15']]) st.markdown(md_chart_2) st.line_chart(ticker_df.Volume) <\/code><\/pre>\n<p>  <\/div>\n<\/p><\/div>\n<p>  \u0418cx\u043e\u0434\u043d\u0438\u043a\u0438 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 <a href=\"https:\/\/github.com\/AndyShor\/Fin_API_demo\" rel=\"nofollow\">\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438<\/a>, \u0430 \u043f\u043e\u0438\u0433\u0440\u0430\u0442\u044c \u0441 \u0436\u0438\u0432\u044b\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c \u043d\u0430 <a href=\"https:\/\/yfinance-demo.herokuapp.com\/\" rel=\"nofollow\">heroku<\/a>, \u043d\u0443 \u0435\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043e\u0442\u0432\u0430\u043b\u0438\u0442\u0441\u044f.<\/p>\n<p>  <b>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 1<\/b><\/p>\n<p>  \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b. \u0415\u0441\u043b\u0438 \u043d\u0430\u0441 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u043d\u0435\u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0439 API Yahoo, \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0441\u043b\u043e\u0436\u043d\u043e \u0434\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0432 \u0434\u043e\u043b\u0433\u043e\u0441\u0440\u043e\u0447\u043d\u043e\u043c \u043f\u043b\u0430\u043d\u0435? \u041e\u0442\u043b\u0438\u0447\u043d\u043e\u0439 \u0430\u043b\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043e\u0439 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c API \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u043e\u0435 Quandl.<\/p>\n<p>  \u042d\u0442\u043e\u0442 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0438\u043d\u0442\u0435\u0440\u0441\u0435\u043d \u0442\u0435\u043c, \u0447\u0442\u043e API \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435, \u043f\u043b\u0430\u0442\u043d\u043e\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430 \u043f\u0440\u0435\u043c\u0438\u0443\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0438\u043c\u0435\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u044b \u043d\u0430 R \u0438 Python \u043e\u0442 \u0441\u0430\u043c\u0438\u0445 \u0436\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0435\u0439. API \u043e\u0447\u0435\u043d\u044c \u0449\u0435\u0434\u0440\u043e\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c 300 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0437\u0430 10 \u0441\u0435\u043a\u0443\u043d\u0434, 2000 \u0437\u0430 10 \u043c\u0438\u043d\u0443\u0442 \u0438 50 000 \u0432 \u0434\u0435\u043d\u044c. \u0410\u0442\u0442\u0440\u0430\u043a\u0446\u0438\u043e\u043d\u0430 \u0442\u0430\u043a\u043e\u0439 \u043d\u0435\u0432\u0438\u0434\u0430\u043d\u043d\u043e\u0439 \u0449\u0435\u0434\u0440\u043e\u0441\u0442\u0438 \u0442\u0440\u0443\u0434\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432 \u043d\u0430\u0448\u0438 \u0434\u043d\u0438. \u0417\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c- <a href=\"https:\/\/www.quandl.com\/tools\/api\" rel=\"nofollow\">Quandl<\/a><\/p>\n<p>  \u0418\u0437 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u2014 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u0440\u043e\u0434\u0435 S&amp;P 500 \u043f\u043e\u043f\u0430\u043b\u0438 \u0432 \u043f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0435. \u041f\u0438\u043b\u0438\u043c \u0442\u043e\u0442 \u0436\u0435 \u043d\u0435\u0445\u0438\u0442\u0440\u044b\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043d\u0430 20 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430. \u0412\u0441\u0435 \u0442\u0430\u043a \u0436\u0435 \u043f\u0440\u043e\u0441\u0442\u043e. \u0414\u043b\u044f \u043c\u0435\u043d\u0435\u0435 \u0447\u0435\u043c 50 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c \u043d\u0435 \u043d\u0443\u0436\u0435\u043d \u0434\u0430\u0436\u0435 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u043e \u043d\u0430\u0434\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c. \u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0432 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0443\u043c\u0435\u0449\u0430\u0435\u043c\u0441\u044f \u0432 20 \u0441\u0442\u0440\u043e\u043a (\u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0432\u0441\u0442\u0430\u0432\u0438\u0442\u044c API key, <a href=\"https:\/\/www.quandl.com\/sign-up\" rel=\"nofollow\">\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0442\u0430\u043c<\/a>)<\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u0427\u0443\u0434\u0435\u0441\u0430 \u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u043e\u0441\u0442\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">import quandl import streamlit as st from datetime import datetime  quandl.ApiConfig.api_key = &quot;YOUR_API_KEY&quot; ticker = st.sidebar.text_input(&quot;Ticker&quot;, 'MSFT') end_date = st.sidebar.date_input('end date', value=datetime.now()) start_date = st.sidebar.date_input('start date', value=datetime(2010, 5, 31))  ticker_df = quandl.get(&quot;WIKI\/&quot; + ticker, start_date=start_date, end_date=end_date) ticker_df['sma 15'] = ticker_df.Close.rolling(window=15).mean()  # plot graphs st.markdown(f&quot;Demo app showing **Closing price** and **trade volume** of a selected ticker from Quandl API&quot;) st.markdown(f&quot;Price of **{ticker}** &quot;) st.line_chart(ticker_df[['Close', 'sma 15']]) st.markdown(f&quot;Volume of **{ticker}** &quot;) st.line_chart(ticker_df['Volume']) <\/code><\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/as\/fq\/ok\/asfqok_hpq1f8ulkjxsnufsmude.png\"><\/p>\n<p>  \u0414\u0430\u043b\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0442\u044c \u0433\u0440\u0430\u0434\u0443\u0441 <s>\u043d\u0435\u0430\u0434\u0435\u043a\u0432\u0430\u0442\u0430<\/s> \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e, \u043f\u0430\u043d\u0434\u0430\u0441 \u0432\u0430\u043c \u0432 \u0440\u0443\u043a\u0438.<br \/>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0432\u0440\u043e\u0434\u0435 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0441 \u0440\u044b\u043d\u043a\u043e\u043c (\u0437\u0430 \u0440\u044b\u043d\u043e\u043a \u0431\u0435\u0440\u0435\u043c S&amp;P 500). \u0414\u043b\u044f \u043f\u0443\u0449\u0435\u0439 \u043d\u0430\u0443\u0447\u043d\u043e\u0441\u0442\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u0431\u0435\u0437\u0440\u0438\u0441\u043a\u043e\u0432\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c (\u0442\u0440\u0435\u0445\u043c\u0435\u0441\u044f\u0447\u043d\u044b\u0435 \u0442\u0440\u0435\u0436\u0435\u0440\u0438\u0441) \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c <a href=\"https:\/\/www.investopedia.com\/terms\/a\/alpha.asp\" rel=\"nofollow\">\u0430\u043b\u044c\u0444\u0443<\/a>, <a href=\"https:\/\/www.investopedia.com\/terms\/b\/beta.asp\" rel=\"nofollow\">\u0431\u0435\u0442\u0443<\/a> \u0438 <a href=\"https:\/\/www.investopedia.com\/terms\/s\/sharperatio.asp\" rel=\"nofollow\">\u0441\u043e\u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u0428\u0430\u0440\u043f\u0430<\/a>. \u042d\u0442\u043e \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430, \u0433\u0434\u0435 \u043d\u0430 \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u044e\u0442 \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c \u0433\u0440\u0443\u043f\u043f \u0434\u0430\u043d\u043d\u044b\u0445, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0438\u0441\u043b\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u0445\u043e\u0442\u044f quandl \u043d\u0430\u043c \u0442\u043e\u0436\u0435 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e \u0442\u0440\u0435\u0436\u0435\u0440\u0438\u0441 \u043c\u044b \u0432\u043e\u0437\u044c\u043c\u0435\u043c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c).<\/p>\n<p>  <b>\u0410\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430 2<\/b><\/p>\n<p>  \u041d\u0430\u0448 \u0432\u0442\u043e\u0440\u043e\u0439 \u043a\u043e\u043d\u043a\u0443\u0440\u0441\u0430\u043d\u0442 \u2014 Alpha Vantage. <a href=\"https:\/\/www.alphavantage.co\/documentation\/\" rel=\"nofollow\">Alpha Vantage API<\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u0438 \u0432\u043d\u0443\u0442\u0440\u0438\u0434\u043d\u0435\u0432\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0444\u043e\u043d\u0434\u043e\u0432\u044b\u043c \u0440\u044b\u043d\u043a\u0430\u043c, \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u044b \u0432 \u0433\u043e\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435, \u0434\u0430\u043d\u043d\u044b\u0435 \u0440\u044b\u043d\u043a\u043e\u0432 \u0432\u0430\u043b\u044e\u0442 \u0438 \u0434\u0430\u0436\u0435 \u043a\u0440\u0438\u043f\u0442\u044b. \u041f\u043e \u0432\u043d\u0443\u0442\u0440\u0438\u0434\u043d\u0435\u0432\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u044b \u0434\u043e 1 \u043c\u0438\u043d\u0443\u0442\u044b. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0435\u0441\u044c <s>\u043b\u043e\u0442\u0435\u0440\u0435\u0435\u0439<\/s> \u0432\u043d\u0443\u0442\u0440\u0438\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0442\u043e\u0440\u0433\u043e\u0432\u043b\u0435\u0439 \u0438 \u043f\u0440\u043e\u0447\u0438\u043c \u0441\u043a\u0430\u043b\u044c\u043f\u0438\u043d\u0433\u043e\u043c, \u0442\u043e 500 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0434\u0430\u0435\u0442 \u0432\u0430\u043c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u2014 \u0432\u0430\u043c \u0432\u043f\u043e\u043b\u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442. \u041d\u0443 \u0430 \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u0431\u0438\u0440\u0436\u0435\u0432\u043e\u0439 \u0432\u043e\u0440\u043e\u0442\u0438\u043b\u0430, \u0442\u043e \u043f\u0440\u0435\u043c\u0438\u0443\u043c \u043a\u043b\u044e\u0447 \u0441\u0442\u043e\u0438\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0447\u0435\u043c \u043c\u0430\u0441\u043b\u043e \u0432 \u0432\u0430\u0448\u0435\u043c \u0411\u0435\u043d\u0442\u043b\u0438 \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c, \u043e \u0447\u0435\u043c \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f? \u0417\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/www.alphavantage.co\/support\/#api-key\" rel=\"nofollow\">\u0442\u0430\u043c<\/a><\/p>\n<p>  \u0421\u043c\u0435\u043d\u0430 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043a\u043e\u0440\u0440\u0435\u043a\u0446\u0438\u0438 \u043a\u043e\u0434\u0430, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u0441\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0443\u043c\u0435\u044e\u0442 \u0432\u044b\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0430\u043d\u0434\u0430\u0441\u043e\u0432\u0441\u043a\u0438\u0435 \u0434\u0430\u0442\u0430\u0444\u0440\u0435\u0439\u043c\u044b. \u041f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0440\u044b\u043d\u043a\u043e\u0432 \u0432\u043f\u043e\u043b\u043d\u0435 \u0434\u043e\u0441\u0442\u043e\u0439\u043d\u043e\u0435, \u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u043c \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u043e \u0442\u0438\u043a\u0435\u0440\u0430\u043c \u0432\u0440\u043e\u0434\u0435 GAZP.ME, SBER.ME \u0432\u043f\u043e\u043b\u043d\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u043d\u0430\u0448\u0438\u043c \u043f\u043e\u0441\u043a\u043e\u043d\u043d\u044b\u043c. \u0418\u0437 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u2014 \u0434\u043b\u044f \u041f\u0438\u0442\u043e\u043d\u0430 \u0432\u0430\u043c \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0432\u0435\u0441 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API \u0435\u0441\u043b\u0438 \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0435\u0433\u043e \u0441\u0430\u043c\u0438. <a href=\"https:\/\/github.com\/RomelTorres\/alpha_vantage\" rel=\"nofollow\">\u041e\u043d \u0435\u0441\u0442\u044c<\/a>, \u043d\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0435\u0433\u043e \u043d\u0435 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0430\u0432\u0442\u043e\u0440\u0430\u043c\u0438 API \u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0441\u0442\u044c \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0436\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0433\u043e. <\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0435\u0441\u043b\u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0442\u0435\u0440\u0435\u0431\u0438\u0442\u044c API \u0447\u0430\u0441\u0442\u043e, \u0442\u043e \u0432\u044b\u044f\u0441\u043d\u044f\u0435\u0442\u0441\u044f \u0447\u0442\u043e \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e 500 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0432 \u0434\u0435\u043d\u044c \u0438 5 \u0432 \u043c\u0438\u043d\u0443\u0442\u0443 (\u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u0439\u0442\u0435 \u0432\u0432\u0435\u0440\u0445 \u0438 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u0435 \u0441 \u0446\u0438\u0444\u0440\u0430\u043c\u0438 quandl, \u043f\u0440\u043e \u043d\u0435\u0432\u0438\u0434\u0430\u043d\u043d\u0443\u044e \u0449\u0435\u0434\u0440\u043e\u0441\u0442\u044c \u044f \u043f\u0438\u0441\u0430\u043b \u0432\u043f\u043e\u043b\u043d\u0435 \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e!). \u0422\u0430\u043a \u0447\u0442\u043e \u0434\u043b\u044f \u0432\u0441\u044f\u043a\u043e\u0439 \u043c\u0435\u043b\u043e\u0447\u0438 \u0442\u0438\u043f\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0438\u043b\u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0442\u0438\u043a\u0435\u0440\u0430 (\u0432\u0440\u043e\u0434\u0435 S&amp;P 500) \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432 \u0441\u0442\u0440\u0438\u043c\u043b\u0438\u0442\u0435, \u0447\u0442\u043e\u0431 \u043d\u0435 \u0434\u0435\u0440\u0433\u0430\u0442\u044c API \u043f\u043e\u043d\u0430\u043f\u0440\u0430\u0441\u043d\u0443. \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u0441\u0442\u0440\u0438\u043c\u043b\u0438\u0442 \u0431\u0435\u0437 \u043a\u0435\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u043f\u043e\u0441\u043b\u0435 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u043b \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0442\u0440\u0435\u0437\u043a\u0430 \u0443\u0436\u0435 \u0441\u043a\u0430\u0447\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0417\u0430\u043f\u0440\u043e\u0441 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c outputsize=&#8217;full&#8217; \u0432\u044b\u0434\u0430\u0435\u0442 \u0432\u0441\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u0437\u0430 20 \u043b\u0435\u0442, \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e \u0434\u0430\u0442\u0430\u043c \u0434\u0435\u043b\u0430\u0435\u043c \u0443\u0436\u0435 \u043d\u0430 \u0441\u0432\u043e\u0435\u0439 \u0441\u0442\u043e\u0440\u043e\u043d\u0435, \u0442\u043e\u0436\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439.<br \/>  \u0413\u043b\u0430\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a API \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0434\u043e \u043e\u0431\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438 \u043d\u0430\u0432\u0435\u0441\u0438\u0442\u044c \u043d\u0430 \u043d\u0435\u0435 \u043a\u0435\u0448\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440<\/p>\n<pre><code class=\"python\">@st.cache(suppress_st_warning=True, allow_output_mutation=True) def get_ticker_daily(ticker_input):     ticker_data, ticker_metadata = ts.get_daily(symbol=ticker_input, outputsize='full')     return ticker_data, ticker_metadata <\/code><\/pre>\n<p>  \u0412 \u0433\u043e\u0442\u043e\u0432\u043e\u043c \u0432\u0438\u0434\u0435 \u043d\u0430\u0448 \u043d\u043e\u0432\u044b\u0439 \u0430\u043f\u043f \u0441 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u043c\u0438 \u043f\u0440\u0438\u0437\u043d\u0430\u043a\u0430\u043c\u0438 \u043d\u0435\u043a\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<br \/>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/df\/gm\/tz\/dfgmtzwfuzpwaabqh0_fkz5qbyk.png\"><\/p>\n<div class=\"spoiler\" role=\"button\" tabindex=\"0\">                         <b class=\"spoiler_title\">\u041f\u043e\u0442\u0440\u043e\u0445\u0430 \u043d\u0435\u0445\u0438\u0442\u0440\u043e\u0439 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438<\/b>                         <\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"python\">import streamlit as st from alpha_vantage.timeseries import TimeSeries from datetime import datetime import quandl import pandas as pd  quandl.ApiConfig.api_key = &quot;YOUR_QUANDL_API_KEY&quot; ts = TimeSeries(key='YOUR_ALPHA_VANTAGE_API_KEY', output_format='pandas')  st.markdown(f&quot;Demo app showing **Closing price** and  daily **APR change** of a selected ticker from alpha vantage API&quot;) ticker = st.sidebar.text_input(&quot;Ticker&quot;, 'MSFT').upper() end_date = st.sidebar.date_input('end date', value=datetime.now()).strftime(&quot;%Y-%m-%d&quot;) start_date = st.sidebar.date_input('start date', value=datetime(2015, 5, 31)).strftime(&quot;%Y-%m-%d&quot;)   @st.cache(suppress_st_warning=True, allow_output_mutation=True) def get_ticker_daily(ticker_input):     ticker_data, ticker_metadata = ts.get_daily(symbol=ticker_input, outputsize='full')     return ticker_data, ticker_metadata   try:     price_data, price_meta_data = get_ticker_daily(ticker)     market_data, market_meta_data = get_ticker_daily('SPY')     md_chart_1 = f&quot;Price of **{ticker}** &quot;     md_chart_2 = f&quot;APR daily change of **{ticker}** &quot; except:     price_data, price_meta_data = get_ticker_daily('MSFT')     market_data, market_meta_data = get_ticker_daily('SPY')     md_chart_1 = f&quot;Invalid ticker **{ticker}** showing **MSFT** price&quot;     md_chart_2 = f&quot;Invalid ticker **{ticker}** showing **MSFT** APR daily change of&quot;   def apr_change(pandas_series_input):     return ((pandas_series_input - pandas_series_input.shift(periods=-1,                                                              fill_value=0)) \/ pandas_series_input) * 100 * 252   price_data['change'] = apr_change(price_data['4. close']) market_data['change'] = apr_change(market_data['4. close'])  price_data_filtered = price_data[end_date:start_date] market_data_filtered = market_data[end_date:start_date] stock_market_correlation = price_data_filtered['change'].corr(market_data_filtered['change'], method='pearson')  # estimate risk free return via 3 months treasury bonds treasury_yield = quandl.get(&quot;FRED\/TB3MS&quot;, start_date=start_date, end_date=end_date) rfr = treasury_yield['Value'].mean()  # mean treasury yield over period  stock_volatility = price_data_filtered['change'].std() market_volatilidy = market_data_filtered['change'].std() stock_excess_return = price_data_filtered['change'].mean() - rfr market_excess_return = market_data_filtered['change'].mean() - rfr beta = stock_market_correlation * stock_volatility \/ market_volatilidy alpha = stock_excess_return - beta * market_excess_return sharpe = stock_excess_return \/ stock_volatility metrics_df = pd.DataFrame(     data={'mkt correlation': [stock_market_correlation], 'alpha': [alpha], 'beta': [beta], 'Sharpe ratio': [sharpe]}) metrics_df.index = [ticker]  st.markdown(md_chart_1) st.line_chart(price_data_filtered['4. close']) st.markdown(md_chart_2) st.line_chart(price_data_filtered['change'])  st.table(metrics_df) <\/code><\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<p>  \u0421\u0443\u0434\u044f \u043f\u043e \u0445\u043e\u0440\u043e\u0448\u0435\u0439 \u043a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u0441 \u0441\u0430\u043c\u0438\u043c \u0441\u043e\u0431\u043e\u0439 \u0438 \u043d\u0443\u043b\u0435\u0432\u043e\u0439 \u0430\u043b\u044c\u0444\u0435 \u2014 \u0433\u0440\u0443\u0431\u043e\u0439 \u043b\u0430\u0436\u0438 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c. \u041d\u0430 \u0432\u0441\u044f\u043a\u0438\u0439 \u0441\u043b\u0443\u0447\u0430\u0439 \u043d\u0430\u043f\u043e\u043c\u043d\u0431\u044e \u2014 \u0430\u043b\u044c\u0444\u0430 \u044d\u0442\u043e \u043f\u0440\u0435\u0432\u044b\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u0445\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0434 \u0440\u044b\u043d\u043a\u043e\u043c, \u0437\u0434\u0435\u0441\u044c \u0438 \u0434\u0430\u043b\u0435\u0435 \u0432 \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430\u0445 \u0432 \u0433\u043e\u0434\u043e\u0432\u043e\u043c \u0438\u0441\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0438. \u0427\u0435\u043c \u043f\u043e\u043b\u043e\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u2014 \u0442\u0435\u043c \u0431\u043e\u0434\u0440\u0435\u0435 \u0440\u0430\u0441\u0442\u0435\u0442 \u0430\u043a\u0446\u0438\u044f \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0440\u044b\u043d\u043a\u043e\u043c. \u0418\u043d\u0442\u0435\u0440\u0432\u0430\u043b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441 1 \u044f\u043d\u0432\u0430\u0440\u044f 2010 \u0433\u043e\u0434\u0430. \u041c\u043e\u0436\u043d\u043e \u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 10 \u043b\u0435\u0442, \u0447\u0442\u043e \u041c\u0430\u0439\u043a\u0440\u043e\u0441\u043e\u0444\u0442 (MSFT) \u0440\u0430\u0441\u0442\u0435\u0442 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0432\u044b\u0448\u0435 \u0440\u044b\u043d\u043a\u0430, <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ul\/nx\/bc\/ulnxbc3nixhhu-jlrowbenb8l5m.png\"><\/p>\n<p>  \u0430 \u0432\u043e\u0442 \u0424\u0435\u0439\u0441\u0431\u0443\u043a (FB) \u0438\u043b\u0438 \u0410\u043c\u0430\u0437\u043e\u043d (AMZN) \u2014 \u0432\u0441\u0435 \u0435\u0449\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043e\u0431\u0433\u043e\u043d\u044f\u044e\u0442. <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/l1\/h4\/ik\/l1h4ikhshit9gmiaiptcoz2josq.png\"><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tk\/wl\/6e\/tkwl6eonmmu5sach6mdzf01dxg8.png\"><\/p>\n<p>  \u041c\u043e\u0436\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0447\u0430\u0441\u0442\u043d\u044b\u0435 \u0442\u044e\u0440\u044c\u043c\u044b \u0438 \u043f\u0440\u043e\u0447\u0438\u0439 \u043a\u043e\u043c\u043c\u0435\u0440\u0447\u0435\u0441\u043a\u0438\u0439 \u0413\u0423\u041b\u0410\u0413 (CXW, GEO) \u2014 <\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/eo\/vy\/8w\/eovy8wiz6k4en8jtn8f5kqvk45u.png\"><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dm\/de\/yk\/dmdeykbvuf6z44mk6abecyjgi60.png\"><\/p>\n<p>  \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u043c \u0443\u0436 \u043f\u0440\u0438\u0432\u043b\u0435\u043a\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0430\u043a\u0442\u0438\u0432\u043e\u043c, \u043f\u0440\u0438 \u0422\u0440\u0430\u043c\u043f\u0435 \u0442\u0430\u043a \u0438 \u0432\u043e\u0432\u0441\u0435 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e \u0438\u0434\u0443\u0442 \u0432\u043d\u0438\u0437, \u0432 \u043e\u0431\u0449\u0435\u043c \u0435\u0441\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0445\u0435\u0434\u0436\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0438\u0441\u043a\u043e\u0432.<\/p>\n<p>  <b>\u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 streamlit \u0430\u043f\u043f\u0430 \u043d\u0430 \u0434\u043e\u043c<\/b><\/p>\n<p>  \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043a \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438. \u0414\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u0438\u0434\u0438\u0442 \u0434\u0430\u043b\u0435\u043a\u043e \u0437\u0430 \u0444\u0430\u0435\u0440\u0432\u043e\u043b\u043e\u043c, \u0430 \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u043c \u0445\u043e\u0441\u0442\u0438\u043d\u0433\u0435 \u2014 \u043d\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442. \u041d\u0443, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u044b \u0441\u0445\u043e\u0434\u0438\u043b\u0438 \u043d\u0430 \u0442\u0440\u0435\u043d\u0438\u043d\u0433 \u043f\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c\u0443 \u0443\u0441\u043f\u0435\u0445\u0443 \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0434\u0430\u0435\u0442\u0435 \u044d\u0442\u043e\u0442 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0432\u0435\u0441\u0442\u043e\u0440\u0430 \u0442\u0435\u043c, \u043a\u0442\u043e \u043f\u0440\u043e\u0448\u0435\u043b \u0432\u0430\u0448 \u0432\u0435\u0431\u0438\u043d\u0430\u0440 \u0437\u0430 199 000 \u0440\u0443\u0431 (\u0445\u043e\u0434\u044f\u0442 \u0441\u043b\u0443\u0445\u0438, \u0447\u0442\u043e \u044d\u0442\u043e \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0435\u0442 \u043a\u0430\u0440\u043c\u0443 \u0438 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0435\u0440\u0435\u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f\u0445 \u0442\u0430\u043a\u0438\u0435 \u043b\u044e\u0434\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u0442\u0443\u0430\u043b\u0435\u0442\u043d\u044b\u043c\u0438 \u0435\u0440\u0448\u0438\u043a\u0430\u043c\u0438). \u0418\u0442\u0430\u043a, \u043f\u0430\u043a\u0443\u0435\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438.<\/p>\n<p>  \u041f\u0440\u043e\u0441\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <a href=\"https:\/\/containds.com\/desktop\/\" rel=\"nofollow\">ContainDS<\/a> \u0438 \u0414\u043e\u043a\u0435\u0440\u0430. \u0421\u0442\u0430\u0432\u0438\u043c \u0441\u0435\u0431\u0435. \u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0441\u0442\u0440\u0438\u043c\u043b\u0438\u0442 \u043e\u0431\u0440\u0430\u0437, \u0443\u043a\u0430\u0437\u0430\u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u043d\u0430\u0448\u0438\u043c \u043f\u043e\u0434\u0435\u043b\u0438\u0435\u043c, \u043a\u043b\u0438\u043a\u043d\u0443\u0432 \u043d\u0430 CMD \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043d\u0443\u0436\u043d\u044b\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0437 requirements.txt. \u0418 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0432\u0441\u0435 \u044d\u0442\u043e \u0434\u043e\u0431\u0440\u043e \u0432 \u043e\u0434\u0438\u043d *.containds \u0444\u0430\u0439\u043b. \u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438 \u0448\u043b\u0435\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0443 (\u043d\u0435 \u043f\u043e \u0435\u043c\u0435\u0439\u043b\u0443 \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0430\u0448 \u043e\u0431\u0440\u0430\u0437 \u0432\u0435\u0441\u0438\u0442 \u0431\u0435\u0437 \u043c\u0430\u043b\u043e\u0433\u043e 600 \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442)<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pk\/sv\/to\/pksvtor7ft1t6jqj78grmmztfey.png\"><\/p>\n<p>  \u041e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0444\u0430\u0439\u043b \u0438 \u043c\u044b\u0448\u043a\u043e\u0439 \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u043d\u0430 WEB. \u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0445\u0430\u043a\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043d\u0441\u043e\u043b\u0435\u0439, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u0445\u043e\u0442\u044c \u0442\u0435\u0442\u0435\u043d\u0435\u043a \u0432 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u0438. \u0411\u0443\u0434\u0435\u0442\u0435 \u043f\u043e\u0442\u043e\u043c \u0433\u043e\u0440\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0442\u0435\u0442\u0435\u043d\u044c\u043a\u0438 \u0432 \u0431\u0443\u0445\u0433\u0430\u043b\u0442\u0435\u0440\u0438\u0438 \u0433\u043e\u043d\u044f\u044e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0432 \u0434\u043e\u043a\u0435\u0440\u043d\u044b\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445. \u041f\u043e\u0448\u0430\u0433\u043e\u0432\u0430\u044f <a href=\"https:\/\/containds.com\/desktop\/tutorials\/share-streamlit-container-as-a-file\/\" rel=\"nofollow\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f<\/a>.<\/p>\n<p>  <b>\u0411\u043e\u043d\u0443\u0441<\/b><\/p>\n<p>  \u041d\u0443 \u0438 \u043d\u0430\u043a\u043e\u043d\u0435\u0446 \u0434\u043b\u044f \u0442\u0435\u0445 \u0447\u0442\u0438\u0442\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u043b\u0438 \u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043a\u0442\u043e \u0437\u0430\u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u043b\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u043d\u043e \u0441\u0447\u0438\u0442\u0430\u0435\u0442 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0434\u043e\u043a\u0435\u0440\u044b \u0441 \u0436\u0430\u0432\u0430\u0441\u043a\u0440\u0438\u043f\u0442\u0430\u043c\u0438 \u043f\u043e\u0432\u0435\u0440\u0445 \u043f\u0438\u0442\u043e\u043d\u043e\u0432 \u2014 \u0438\u0437\u043b\u0438\u0448\u043d\u0438\u043c\u0438 \u0441\u0432\u0438\u0441\u0442\u0435\u043b\u043a\u0430\u043c\u0438 \u0438 \u043f\u0435\u0440\u0434\u0435\u043b\u043a\u0430\u043c\u0438. \u0414\u043b\u044f \u0430\u043a\u0443\u043b \u0441\u0442\u0430\u0440\u043e\u0439 \u0448\u043a\u043e\u043b\u044b \u2014 <a href=\"https:\/\/appsource.microsoft.com\/en-us\/product\/office\/WA200001365\" rel=\"nofollow\">\u044d\u043a\u0441\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u043b\u0430\u0433\u0438\u043d<\/a> \u0434\u043b\u044f \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 alpha vantage. <a href=\"https:\/\/www.quandl.com\/tools\/excel\" rel=\"nofollow\">\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e\u0435<\/a> \u0434\u043b\u044f Quandl. \u0412\u0441\u0435\u043c \u043a\u0442\u043e \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u043d\u043e\u0441\u0442\u0430\u043b\u044c\u0433\u0438\u0440\u043e\u0432\u0430\u043b \u0432 <a href=\"https:\/\/habr.com\/ru\/company\/it-grad\/blog\/507114\/\">\u044e\u0431\u0438\u043b\u0435\u0439\u043d\u043e\u0439 \u0442\u0440\u0438\u0431\u044c\u044e\u0442-\u0442\u0435\u043c\u0435<\/a> \u2014 \u0447\u0443\u0432\u0430\u043a\u0438, \u043f\u0440\u043e \u0432\u0430\u0441 \u043f\u043e\u043c\u043d\u044f\u0442!<\/p>\n<p>  \u0414\u043b\u044f \u0444\u0430\u043d\u0430\u0442\u043e\u0432 \u0432\u0438\u043d\u0442\u0430\u0436\u043d\u043e\u0433\u043e \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u043b\u0430\u0434 \u0441 \u043c\u0430\u0444\u0444\u0438\u043d\u0430\u043c\u0438, \u0441\u043c\u0443\u0437\u0438 \u0438 \u043c\u0438\u0442\u0431\u043e\u043b\u0430\u043c\u0438 \u2014 \u0435\u0441\u0442\u044c \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0441 <a href=\"https:\/\/gsuite.google.com\/marketplace\/app\/alpha_vantage_market_data\/434809773372\" rel=\"nofollow\">\u0433\u0443\u0433\u043b\u043e\u0432\u0441\u043a\u0438\u043c\u0438 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c\u0438<\/a>, \u0438 \u0437\u0438\u0440\u043e \u043a\u043e\u0434\u0438\u043d\u0433 \u0438 \u043c\u043e\u0434\u043d\u043e\u0435 \u043e\u0431\u043b\u0430\u043a\u043e <\/p>\n<p>  \u0418\u0437 \u043c\u043e\u0435\u0433\u043e \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430 \u0441 \u0442\u0440\u0435\u043c\u044f API \u043c\u043d\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u0432 \u0446\u0435\u043b\u043e\u043c \u0441\u0430\u043c\u044b\u0439 \u0449\u0435\u0434\u0440\u044b\u0439 \u044d\u0442\u043e Quandl, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043f\u043b\u0430\u0442\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043c\u0430\u043b\u043e, \u0430 \u043f\u043b\u0430\u0442\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0442\u043e alpha vantage \u0441\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0442\u043e\u0436\u0435. \u0421 yahoo \u043d\u0430\u0441\u0442\u043e\u0440\u0430\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a\u0442\u043e \u0436\u0435 \u043f\u043b\u0430\u0442\u0438\u0442 \u0437\u0430 \u0443\u0433\u043e\u0449\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445, \u043d\u0435 \u0438\u0441\u0447\u0435\u0437\u043d\u0435\u0442 \u043b\u0438 \u043e\u043d\u043e \u0432 \u043e\u0434\u0438\u043d \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0434\u0435\u043d\u044c. \u041c\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Quandl \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0432\u043e \u0432\u0442\u043e\u0440\u043e\u043c \u0438\u0437\u0434\u0430\u043d\u0438\u0438 <a href=\"https:\/\/www.amazon.com\/Mastering-Python-Finance-state-art-ebook\/dp\/B07MVGW93W\/ref=dp_ob_title_def\" rel=\"nofollow\">Mastering Python for Finance<\/a> (\u0435\u0441\u0442\u044c \u043d\u0430 \u041b\u0438\u0431\u0440\u0443\u0441\u0435\u043a\u0435). \u0414\u0435\u043b\u0438\u0442\u0435\u0441\u044c \u0441\u0432\u043e\u0438\u043c\u0438 \u043d\u0430\u0445\u043e\u0434\u043a\u0430\u043c\u0438 \u0432 \u043e\u0431\u043b\u0430\u0441\u0442\u0438, \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0445 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u043e yahoo finance API \u043f\u0438\u0441\u0430\u043b\u0438 \u043f\u0440\u043e \u0422\u0438\u043d\u044c\u043a\u043e\u0432\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b, \u043d\u043e \u0431\u0435\u0437 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439<\/p>\n<p>  \u0424\u043e\u0442\u043e \u043d\u0430 \u043e\u0431\u043b\u043e\u0436\u043a\u0435 \u043f\u043e\u0441\u0442\u0430 \u2014 Photo by <a href=\"https:\/\/unsplash.com\/@m_b_m\" rel=\"nofollow\">M. B. M.<\/a> on Unsplash<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/507954\/\"> https:\/\/habr.com\/ru\/post\/507954\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\" data-io-article-url=\"https:\/\/habr.com\/ru\/post\/507954\/\">\u0421\u0442\u0430\u0442\u044c\u0438 \u043d\u0430 \u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0435 \u0442\u0435\u043c\u044b \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u0425\u0430\u0431\u0440\u0435 \u0440\u0435\u0433\u0443\u043b\u044f\u0440\u043d\u043e. \u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0438\u0437 \u043d\u0438\u0445 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0435 API Yahoo finance. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u043a\u0430\u0436\u0443 \u0442\u0440\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u0430 \u0434\u043e\u0431\u044b\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 (\u0432\u043a\u043b\u044e\u0447\u0430\u044f Yahoo) \u0430 \u0442\u0430\u043a\u0436\u0435 \u043a\u0430\u043a \u043d\u0430\u043f\u0438\u043b\u0438\u0442\u044c \u0438\u0437 \u043d\u0438\u0445 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0432\u044d\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 20 \u0441\u0442\u0440\u043e\u043a \u0438 \u0432\u044b\u0434\u0430\u0442\u044c \u0435\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443, \u043d\u0435 \u0443\u043c\u0435\u044e\u0449\u0435\u043c\u0443 \u0432 CLI.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_4\/lb\/gh\/_4lbghjf1vld71tk296ioeluc2g.jpeg\"><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-305889","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305889","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=305889"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/305889\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=305889"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=305889"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=305889"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}