Всем привет! Наконец-то я закончил работу над своей первой настоящей, правда еще консольной, программой, с помощью которой можно скачать все исторические данные (свечки OHLCV) с различными таймфреймами по всем акциям Мосбиржи. И вроде достаточно простая задача, но отняла достаточное количество времени. И кажется я все больше начинаю понимать как программировать, хотя осознаю, что знаний в безграничном python катастрофически не хватает. Тем не менее получилось сделать то, о чем не мог себе представить еще месяц назад. Открывая сейчас код программы начинаю чувствую на подсознании, что не все так страшно, как было совсем недавно.
Итак, в конце года я писал о том, как с помощью Algopack можно вытащить справочную информацию о всех акциях Мосбиржи. Был написан мой первый небольшой и достаточно простой скрипт использующий библиотеку moexalgo. И я обозначил планы дописать его с целью добычи всех исторических данных.
Сказано – сделано. В итоге получилась, как я считаю, вполне полноценная программа.
Люди добрые, подскажите пожалуйста как выкачать исторические данные скорректированной цены закрытия по российским акциям для Python?
Я хочу в питоне построить модель Марковитца для российских акций и для этого мне нужно откуда то тянуть дату. С амер акциями все просто — используешь API yahoo и все бесплатно, но в июле яху перестал отслеживать рос рынок. Далее посмотрел на API инвстинга но они тоже его в начале 2023 отключили вроде для всех стоков в прицнипе и больше не поддерживают. Полез в Api MOEX (который ISS) но там там можно выкачивать только цену закрытия акций а хочется доставать Скорректированую цену закрытия (с учетом дивов и сплитов). Может вы знаете ответ как можно скачать историю 10 летних торговс скорректированной ценой закрытия для рос акций
может кто уже испытывал эту проблему
На своем сайте Мосбиржа сегодня опубликовала один интересный пресс-релиз.
Управляющий директор по управлению и монетизации данных Московской биржи рассказал о планах развития АЛГОПАКа:
в ближайшее время будут добавлены фьючерсные контракты, а в первом квартале следующего года – основные валютные пары, а также уведомления о выявлении колебаний цен и заявок с помощью моделей искусственного интеллекта.
Также стало известно, что АЛГОПАК – первый продукт информационно-финансового маркетплейса ДАТАШОП, который планируется к запуску во втором квартале 2024 года.
Пока неясно в какой степени АЛГОПАК станет платным и за что именно придется платить.
Не появится ли в перспективе угроза того, что и брокеры сделают данные через API платными?
Telegram-канал Алготрейдинг на Python
Что такое Алгопак я уже писал, как и то, как можно сделать для библиотеки на Python moexalgo документацию из докстрингов – ведь пока никакого хорошего пособия с “разжеванными” примерами от Мосбиржи не существует.
На данный момент я поставил задачу – вытащить исторические данные по российским акциям и в дальнейшем их регулярно обновлять. Это позволит мне при изучении Backtrader использовать данные Мосбиржи для компонента DataFeeds, а также разрабатывать и тестировать на исторических данных собственные торговые стратегии.
Приступим. Отправная точка – раздел moexalgo на Гитхабе. Файл samples/quick_start.ipynb начинается с примера:
Совсем недавно, буквально 2 месяца назад, Мосбиржа запустила Algopack и выложила на Гитхаб долгожданную многими библиотеку на python –moexAlgo, которая должна упростить работу с AlgoPack API.
Что такое Алгопак?ALGOPACK предоставляет исторические данные, на которых можно тестировать стратегии и делать бэктестинг. Также предполагаются онлайн данные для запуска торговых стратегий.
Данные в ALGOPACK включают:
– Super Candles – 5-минутные свечи с 50+ параметрами, история с 2020 года.
– Mega Alerts – уведомления о рыночных аномалиях.
– Market Signals – сигналы о рыночных аномалиях.
– Market Data – стандартные онлайн данные: стаканы и свечи.
Исторические данные в алгопаке доступны с 2020 года. Доступ к данным возможен через API и Python клиент на библиотеке moexAlgo.
В настоящий момент в Алгопаке доступен только раздел Super Candles (суперсвечи), который (согласно информации с мосбиржи) имеет более 50 готовых сигналов, рассчитанных:
В очередных поисках полезной информации, как сохранить и преумножить (ради этого же мы все тут собрались) нашел очень интересную статью Historical Returns on Stocks, Bonds and Bills: 1928-2022 с показателями следующих классов активов S&P 500 (includes dividends), 3-month T. Bill (Real), !0-year T.Bonds, Baa Corp Bonds, Real Estate, Gold.
Данные, понятное дело, по рынку США, Европа пережила этот век слишком бурно, чтобы делать по ней какие-то выводы, а Азия включилась в современный мировой капиталистический рынок всего лишь лет 50 назад и пока мало данных.
Советую забрать там xls файл с расчетами и поковыряться по собственному усмотрению.
Сразу итоги для нетерпеливых
Средняя годовая доходность с учетом инфляции
S&P500(+divs) | 3-month T.Bill | !0-year T.Bonds | Baa Corp Bonds | Real Estate | Gold | |
1928-2022 | 8,27% | 0,31% | 1,88% | 3,91% | 1,28% | 3,21% |
1973-2022 | 7,56% | 0,40% | 2,63% | 4,74% | 1,50% | 5,10% |
2013-2022 | 10,78% | -1,76% | -1,91% | 1,29% | 4,91% | -0,53% |
Очень часто сталкиваюсь с мнением, что взвешивание по капитализации — не совсем грамотный подход.
Газпром стоил 15 лет назад 300₽, а сегодня стоит 170₽ за акцию! Если придерживаться принципов взвешивания по капитализации (как это устроено в Индексе Мосбиржи), то надо набирать его на огромную котлету и надеяться непонятно на что!
Участники подобных дискуссий часто соглашаются, что выбор отдельных акций на основе каких-то личных предпочтений или фундаментальных показателей (которые имеют свойство кардинально меняться всего за месяц) — может стать ловушкой.
И тут приходит на ум вариант с равновзвешенным портфелем. Собрать 20-25 компаний, раздать им равный вес, и в ус не дуть! Звучит заманчиво. Но каким будет результат? Давайте посчитаем.
Расчет делал в «Лаборатории портфелей» Snowball Income.
У меня сейчас 39 компаний в портфеле, так что я просто скопировал свой портфель и распределил доли между ними равномерно: примерно по 2,5% на каждую. Я выбрал размер портфеля 1 млн рублей, включил ежеквартальную ребалансировку и реинвестицию дивидендов с учетом уплаты 13% налога.