CloseToAlgoTrading

Читают

User-icon
63

Записи

43

Битва методов оптимизации портфеля!

Всем привет, 

Не смотря на то, что многие люди довольно скептически отнеслись к китайской идее напрямую оптимизировать значение шарпа и подберать веса для активов используя LSTM сеть (А что так можно было?), я решил все же этот метод протестировать. 

Я не люблю всякого рода сложные подходы, поэтому я пошел в лоб, написал простую стратегию для динамической ребалансировки портфеля (только лонг) и протестировал на ней различные методы.

Для тестов были взяты следующие методы оптимизации финасового портфеля:

Классические:
  • Mean-Variance
  • Hierarchical Risk Parity (созданный Маркусом Лопезом де Прадо)
  • Critical Line Algorithm (говаривают метод специально для оптимизации портфелей придуман)
  • Efficient Frontier with nonconvex optimizer (нашел в примерах питоновского пакета, добавил для кучи)
Экзотические:
  • LSTM (модель предложенная китайцами, из предыдущего поста)
  • Trained LSTM (обученная модель на истории, предсказывает распределение на следующие 22 дня)


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

А че, так можно было что-ли!?

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

А че, так можно было что-ли!?
На вход подается исторические данные по закрытию и доходность. На выходе получают значение весов каждой бумаги в портфеле. После чего считают шарп как функцию ошибки. Т.е. они ничего не предстказывают, а просто находят наилучшее решение для текущих данных.

Работает это все только в лонг, и как утверждают авторы лучше чем марковец. Сам подход использования сетей показался интересным. :)
Что думаете, имеет право на жизнь?

Cсылка на источник:
paperswithcode.com/paper/deep-learning-for-portfolio-optimisation



Одна из многих причин, почему нейронные сети не способны предсказывать рыночную цену.

Буквально на днях, в комментариях я выразил обеспокойство тем, что если брать ценовой ряд как фичу, то нужно наши входные данные (ценовой ряд) привести к одному виду, а это на мой взгляд довольно сложно. Простой пример это волатильность, если она изменяется, то наша сеть начнет выдавать больше ошибок. 
Эти размышления, заставили меня вернуться к основам, и посмотреть сможет ли сеть выучить простейшие математические функции. Конечно, с линейной функцией проблем не возникло, а вот с нелинейными как и ожидалось мы получили массу проблем. Так как сети неплохо работают внутри того диапазона на котором они обучались, и с грохотом проваливаются вне этого диапазона. 

Вот простой пример предсказания функции синуса. y = sin(x)

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

На самом деле, мне кажется это довольно большая проблема в целом. 

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

Пример использования IB API - C++ - Flask - Reinforcement learning agent

Все привет, 

Если кто помнит, я когда то рассматривал структуру алгоритмисческого окружения, идея состояла в том, что не следуют все связывать в один монолит.
Структура и элементы автоматической торговой сиситемы!
Дизайн доморощенного алгоритмического окружения.

Было и несколько тем про применение обучения с подкреплением и моделей глубокого обучения, а так же как деплоить модели используя TensorFlow Extended (TFX)

Эксперимент: торговая система на базе глубокого обучения от начала до реальных торгов. Часть III. Начинаем работу с TFX

Пришло время собрать все это вместе, и показать, что все эти части могут работать совместно.

Пример использования IB API - C++ - Flask - Reinforcement learning agent

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

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

Вопрос про расчет волатильности по годам для сравнения активов.

Всем привет. Собственно у меня вопрос. 

Я тут решил пересмотреть свой долгосрочный портфель, ну и как то оценить альтернативы и что то затупил… %)

Скажите, как считать волатильность или можно обойтись обычным стандартным отклонением? (суть по идее одна и та же) и как именно считать? 

питоновский пример:
достаточно ли
close_prices.pct_changes(periods=252).std()
или же лучше 
close_prices.pct_change().rolling(windows=252).std()*(252**0.5)
Есть ли вообще разница, если мы будем сравнивать разные активы по одной и той же метрике? Ну и да, нужен ли нам логретурн в этом случае?

Спасибо



Тестирование торговой стратегии на основе RL

Здарова комерады,

И так продолжим рассказ о том как тестировать обученного агента, о котором был рассказ тут: https://smart-lab.ru/blog/655417.php

В общем пару дней обучал я нашего агента, и решил проверить как он там справляется с торговлей, тем более что на валидационных данных при использовании созданной торговой среды, он показывал уж очень приятные проценты. Что кстати, явилось сигналом проверить, а не сделал ли я какой ошибки. И конечно же, я ее сделал.
Ошибка оказалась простецкой, в обучающей среде, я выбирал изначально 20 исторических цен, 10 были видны сразу, каждая последующая добавлялась на следующем шаге. Однако сперва я проводил преобразование данных к промежутку от 0 до 1 в самом начале, по всем 20 значением сразу. Т.е. получилось что я как бы заглядываю в будущее %).

Ну да ладно, подумал я и все же решил протестировать как работает алгоритм. Для этого взял простенький питоновский фреймворк для бэктестинга, и прикрутил к нему обученного агента. 

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

Инвестирование в некомерческую недвижимость для простых смертных, на примере Германии.

Всем доброго времени суток. 

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

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

Для примера возмем, наверное самый дорогой город германии, Мюнхен и его окрестности. Обычную семью в которой два человека работают, и в данный момент не имеют своей собственности, а живут в съемной квартире. Не будем усложнять и предположим, что они получают среднюю зарплату по региону. Это где то чуть больше 4000€ брутто. 

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

Алгоритмическая торговля с помощью самообущающегося DQN агента.

Аллоха!

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

Для эксперемента было выбранно 200 дней в обучающую выборку и 50 в тестовую. Обучались два DQN агента, один использовал Q-Network, второй Q-RNN-Network. На картинке можно видеть результаты обоих агентов после обучении на 700 итераций.

Алгоритмическая торговля с помощью самообущающегося DQN агента.



Проверялась работа агентов на 80 эпизодах по 10 раз. Как можно видеть агент использующих QRnnNetwork показал вполне себе неплохие результаты. Так что вполне возможно, что при правильной готовке можно получить таки самостоятельного агента, способного торговать не хуже чем сконструированная стратегия.

Кому интересно как создать агента при помощи TF-agents фреймворка, а так же узнать больше деталей, прошу смотреть видео. Код можно найти на гитхабе, ссылка в описании к видео.




теги блога CloseToAlgoTrading

....все тэги



UPDONW