Блог им. WLMike |70m, больше акций и RL

На фоне текущего роста портфель обновил максимум и взял отметку в 70 млн рублей.


По совпадению я как раз завершил постепенный процесс увеличения перечня анализируемых акций, доведя их количество до 111 штук. На MOEX акций примерно в два раза больше, но у остальных совсем уж плохо с ликвидностью. В качестве потенциального направления развития можно добавить ETF, ДР, а в перспективе MOEX обещает и иностранные акции подвезти.


Для учета информации в нескольких валютах прийдется существенно переработать блок хранения данных. Опять же по совпадению прочитал пару книжек про Domain-driven design — руки чешутся переписать все чуть более грамотно.


Так же в последнее время прочитал множество статей про Reinforcement learning. Раньше никак не мог придуматься, как прикрутить RL к портфельной оптимизации, а тут вдруг возникло несколько идей. Надо будет поэкспериментировать, и возможно в итоге совершу закономерных шаг от DL к RL.


Блог им. WLMike |100 акций и сетки

Продолжаю потихоньку добавлять новые акции для анализа в портфель и наконец добрался до 100 штук. Собираюсь включить все акции с дневным оборотом более 1% от величины портфеля (осталось примерно 25 штук), после чего заняться ETF. Чем больше акций, тем больше обучающих примеров для тренировки градиентного бустинга и сетей — сейчас около 180 тысяч, а в перспективе их количество увеличится до 250-300 тысяч.

Потихоньку продолжаю заниматься сетями. Раньше жаловался, что они обучаются существенно медленней градиентного бустинга, но после профайлинга оказалось, что тормозит не обучение, а подготовка и загрузка данных. Переписал код — в результате сети стали учатся быстрее градиентного бустинга.

Плюсом сетей является возможность реализации множества выходов — на данный момент экспериментирую с прогнозированием доходности одновременно с СКО по аналогии с GluonTS.

Для поиска гиперпараметров для градиентного бустинга использую байесовскую оптимизацию с помощью hyperopt. Для сетей решил попробовать



( Читать дальше )

Блог им. WLMike |MVP на нейронных сетях

Наконец дошли руки сделать работающий прототип на нейронных сетях — сразу же получился результат близкий к текущей используемой модели на основе градиентного бустинга. Учитывая, что в нейронные сети подавалась только часть информации по сравнению с той, которая используется для построения признаков для градиентного бустинга, и пара простых архитектур без всякой оптимизации, то есть все шансы в перспективе обойти градиентный бустинг. Из минусов — сетки обучаются в разы медленнее бустинга, но для моей инвестиционной стратегии это не принципиально. 

Сходил недавно на семинар по эволюционному поиску нейросетевых архитектур — очень проникся темой. Пока останусь на градиентном бустинге, но буду двигаться в сторону сетей и эволюционного поиска их архитектур. В какой-то момент столкну бустинг и сети в эволюционном процессе, а там посмотрим, кто победит.


Блог им. WLMike |Оценка ковариации акций в портфеле

Вынес в отдельное репо реализацию расчета ковариационной матрицы Ledoit-Wolf на Python.

Может быть полезно для тех кто занимается количественной оптимизацией портфелей акций.

Блог им. WLMike |Библиотечка для MOEX ISS

Написал библиотечку для асинхронной загрузки данных с MOEX ISS на Python. Большой выигрыш по скорости, когда нужно данные по десяткам или сотням бумаг загрузить. 

Пока реализованы запросы по перечню торгуемых бумаг и историческим котировкам. На следующей неделе собираюсь добавить загрузку свечек, информации по доступным свечкам и общего справочника MOEX ISS.

Блог им. WLMike |Предсказание дивидендов

Долго пытался применить ML к предсказанию дивидендов, но получить результат лучше, чем у совсем базовой гипотезы, что все акции имеют одинаковую дивидендную доходность, равную средней по всей выборке, не получалось. Но все-таки после долгих раздумий удалось сформировать подход, объясняющий около 20% дисперсии. Несколько методов ML дают близкий результат, поэтому остановлюсь на наиболее простом с точки зрения количества подбираемых гиперпараметров — гребневой регрессии.

Ключевая задача на ближайшую перспективу переписать оптимизацию портфеля с учетом нового подхода к прогнозированию дивидендов. 

Предсказание дивидендов



Блог им. WLMike |Моделирование дивидендов

По большинству эмитентов СД сформулировали рекомендации по годовым дивидендам, потому решил обновить статистику и перевести модель на новую базу расчетов с учетом данных за 2017 год. Оценка ожидаемых за следующие 12 месяцев дивидендов по портфелю изменилась с  3 067 660 до 3 045 319, а минимальных с 2 478 950 до 2 467 599. Изменения незначительны, что свидетельствует о том, что используемый подход к прогнозированию работает нормально и не склонен к переоптимизации. 

В тоже время хотелось бы перейти с ежегодного обновления базы расчета на более регулярное  по мере поступления новых данных об утвержденных дивидендах. К сожалению, так и не смог найти нормальней источник с большой глубиной истории и проверенными данными — везде наблюдаются те или иные косячки.

Видимо, прийдется вести свою базу данных. Переодически проверять сайты с данными по дивидендам (https://dohod.ru, https://www.conomy.ru, https://smart-lab.ru) в автоматическом режиме. При появлении новой информации на них проводится дополнительная ручная проверка, после которой обновляются данные в основной базе.



( Читать дальше )

Блог им. WLMike |Автопоиск акций на MOEX

Наконец дошли руки написать автоматический поиск акций на MOEX, которые потенциально можно включить в портфель. Всего на MOEX торгуется 279 акции, а если отбросить акции иностранных эмитентов, то 270 — есть где развернуться.
Программа по очереди перебирает все бумаги отбрасывает акции со слишком низким оборотом и отбирает, бумаги с высоким Momentum и низкой корреляцией с текущим портфелем.
Хорошо бы что-нибудь аналогичное замутить с фундаментальными данными, но нормальных источников данных нет. 

Автопоиск акций на MOEX



Блог им. WLMike |Чудесное совпадение

Сегодня дописал и покрыл тестами последний блок программки по управлению портфелем, а тут такой денек — волатильность подросла, и куча хороших акций продается со скидками. Последний раз система давала сигнал о необходимости торговли перед Новым годом, после чего 4 месяца ничего не менял. Но сегодня система видит большой потенциал для оптимизации портфеля — 11 СКО давненько не бывало. Завтра день будет занят, но если будет возможность продам MRSB и куплю SNGSP.

Чудесное совпадение

В плане дальнейшей работы над программой стоит оптимизация: изначально один расчёт  занимал около 100 секунд, и достаточно просто его удалось сократить до 10 секунд. Цель снизить время исполнения до 1 секунды.

Хотя для инвестиционной торговли это не принципиально, но для дальнейшей поддержки и развития программы лучше причесать и оптимизировать код.


Блог им. WLMike |Отмизация дивидендов

Продолжаю потихоньку писать программу по управлению портфелем и недавно закончил блок про оптимизации дивидендов.

Стоимостное инвестирование широко известный подход. Почему он вкратце работает. Нобелевский лауреат Шиллер открыл так называемую excess volatility puzzle, которая грубо говоря сводится к наблюдению, что цены акции гуляют существенно сильнее, чем фундаментальные показатели компаний. Соответственно, регулярно должны появляться шансы купить акции дешево относительно цены. На примере моего портфеля, годовое ско дивидендов порядка 0,7% от стоимости портфеля, а годовое ско стоимости портфеля около 10% от стоимости портфеля — различие более, чем на порядок.

После того, как купил за дешево, как долго приходится ждать возвращения цены к разумному с точки зрения фундамента уровню. Дивиденды объясняют около 15% доходности за следующий год, то есть быстрого результата ждать не стоит, но на горизонте 5 лет они  объясняют более 60% доходности (выдержки из главы 20 Expected returns in the Time Series and Cross Section книжки Asset pricing) и являются одним из самых серьезных факторов, объясняющих долгосрочную доходность акций.



( Читать дальше )

....все тэги
UPDONW
Новый дизайн