Подбил результаты торгового месяца — так сложилось, что делаю это на закрытие 19 числа. С ростом портфеля удалось взять очередную круглую отметку по дивидендам за предыдущие 12 месяцев — 5 млн рублей.
Так как сторонников долгосрочного инвестирование по ощущениям становится больше, решил поглядеть сколько времени у меня заняло увеличение дивидендного потока в 10 раз с 500 тысяч до 5 млн рублей — оказалось, что 7 лет и 4 месяца.
Наконец удалось взять отметку в 90 млн рублей.
Продолжаю процесс увеличения количества анализируемых бумаг — на данный момент 195 штук. В основном в этом году добавляю американские акции. Сложилось первое поверхностное впечатление, что они действительно относительно слабее скоррелированны с нашим рынком, что положительно сказывается на диверсификации. Но при этом их частенько колбасит, как какой-то шлак из третьего эшелона. В результате для получения эффекта от диверсификации в портфеле нужно держать гораздо больше позиций.
На данный момент на фоне отсутствия санкций и роста цен на сырьевые товары иностранные акции оказывают скорее негативное воздействие на доходность портфеля, но надеюсь сыграют свою роль в случае разворота тенденций. MOEX выполняет свои обещания по расширению перечня иностранных акций, поэтому в ближайшие годы так же продолжу добавлять новые бумажки в анализ.
В начале года года решил изучить Go и загорелся идеей переписать блок сбора необходимых данных на нем. Но потом со мной связался один человек и прислал реализации нескольких вариантов оценки ковариационный матрицы. В результате завязалась интересная дискуссия про портфельную теорию, которая перекинулась на тему автоматического создания торговых стратегий и их последующего отбора и сравнения. В процессе обсуждения и различных экспериментов несколько раз переписал эволюционный блок своей стратегии. На данный момент этот процесс практически завершено, поэтому в ближайшее время опять вернусь к изучению Go.
Вернулся из поездки по Абхазии, подбил результат за время отсутствия, и оказалось, что портфель взял очередную круглую отметку в 80 миллионов рублей.
Январь месяц традиционных технических операций с портфелем. Необходимо продать часть акций для уплаты налогов, а потом перекинуть средства с обычного счета на ИИС. После этого можно заняться дальнейшим развитием торговой модели.
Перед Новым Годом начал потихоньку добавлять в анализ иностранные акции, но пока не реализовал поддержку дивидендов в иностранной валюте. В первую очередь сосредоточусь на этом. Если MOEX выполнит свое обещание и добавит около 200 акций в 2021 году, то будет достаточно претендентов для включения в портфель. В первую очередь буду выбирать бумажки с минимальной корреляцией с текущими позициями для максимального усиления диверсификации.
Примерно три года назад уволился с последней работы и стал жить на доходы от инвестиций.
Доходность с 2019-12-19 по 2020-12-18 составила 25.0% против 14.9% у индекса полной доходности MOEX.
Долгое время старался получать максимально высокие и стабильные дивиденды, но потом перешел на максимизации полной доходности. В результате дивиденды просели, но по мере роста портфеля стали восстанавливать, и как раз в этом месяце удалось взять очередную круглую отметку в 4 млн рублей за 12 месяцев.
Мне всегда было интересно путешествовать и изучать всякие, часто практически не сильно полезные вещи, чему и просвещаю основное время.
С уходом с формальной работы начал изучать программирование (раньше сидел только в Excel и Word) и ML/DL. В начале года попал на несколько семинаров по эволюционным методам оптимизации, в результате переписал весь блок формирования портфеля с использованием ансамбля моделей, нейронных сетей и дифференциальной эволюции.
В этом году много времени посвятил изучению Reinforcement Learning, но пока не придумал, как это использовать.
На фоне текущего роста портфель обновил максимум и взял отметку в 70 млн рублей.
По совпадению я как раз завершил постепенный процесс увеличения перечня анализируемых акций, доведя их количество до 111 штук. На MOEX акций примерно в два раза больше, но у остальных совсем уж плохо с ликвидностью. В качестве потенциального направления развития можно добавить ETF, ДР, а в перспективе MOEX обещает и иностранные акции подвезти.
Для учета информации в нескольких валютах прийдется существенно переработать блок хранения данных. Опять же по совпадению прочитал пару книжек про Domain-driven design — руки чешутся переписать все чуть более грамотно.
Так же в последнее время прочитал множество статей про Reinforcement learning. Раньше никак не мог придуматься, как прикрутить RL к портфельной оптимизации, а тут вдруг возникло несколько идей. Надо будет поэкспериментировать, и возможно в итоге совершу закономерных шаг от DL к RL.
Продолжаю потихоньку добавлять новые акции для анализа в портфель и наконец добрался до 100 штук. Собираюсь включить все акции с дневным оборотом более 1% от величины портфеля (осталось примерно 25 штук), после чего заняться ETF. Чем больше акций, тем больше обучающих примеров для тренировки градиентного бустинга и сетей — сейчас около 180 тысяч, а в перспективе их количество увеличится до 250-300 тысяч.
Потихоньку продолжаю заниматься сетями. Раньше жаловался, что они обучаются существенно медленней градиентного бустинга, но после профайлинга оказалось, что тормозит не обучение, а подготовка и загрузка данных. Переписал код — в результате сети стали учатся быстрее градиентного бустинга.
Плюсом сетей является возможность реализации множества выходов — на данный момент экспериментирую с прогнозированием доходности одновременно с СКО по аналогии с GluonTS.
Для поиска гиперпараметров для градиентного бустинга использую байесовскую оптимизацию с помощью hyperopt. Для сетей решил попробовать
Наконец дошли руки сделать работающий прототип на нейронных сетях — сразу же получился результат близкий к текущей используемой модели на основе градиентного бустинга. Учитывая, что в нейронные сети подавалась только часть информации по сравнению с той, которая используется для построения признаков для градиентного бустинга, и пара простых архитектур без всякой оптимизации, то есть все шансы в перспективе обойти градиентный бустинг. Из минусов — сетки обучаются в разы медленнее бустинга, но для моей инвестиционной стратегии это не принципиально.
Сходил недавно на семинар по эволюционному поиску нейросетевых архитектур — очень проникся темой. Пока останусь на градиентном бустинге, но буду двигаться в сторону сетей и эволюционного поиска их архитектур. В какой-то момент столкну бустинг и сети в эволюционном процессе, а там посмотрим, кто победит.
В последние время причесал некоторые блоки своей программки по управлению портфелем. Из последнего добавил в качестве фичи оборот и получил известную зависимость, что малоликвидные бумаги в среднем имеют большую доходность (по горизонтали натуральный логарифм дневного оборота, по вертикали ожидаемая доходность).
По большому счету дальше можно лишь потихоньку расширять перечень анализируемых бумаг и добавлять новые признаки, объясняющие доходность, но придумывать в рукопашную новые фичи не хочется, поэтом попробую переписать все на нейронных сетях и сырых котировках без всякой обработки.
В основном раньше имел дело с TF/Keras, но по ощущениям в последнее время подавляющая часть статей по сетям сопровождается кодом на PyTorch, поэтому решил изучить его и использовать в своей программе. В качестве обучения собираюсь принять участие в соревновании Кто поставит лайк без использования градиентного бустинга только с помощью PyTorch. Ну о потом приступить уже к использованию сеточек для прогнозирования доходности.