Блог им. DenisVo |А че, так можно было что-ли!?

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

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

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

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



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

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

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

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

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

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

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

Все привет, 

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

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

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

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

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

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

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

Блог им. DenisVo |Тестирование торговой стратегии на основе RL

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

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

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

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

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

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

Аллоха!

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

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

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



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

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




Блог им. DenisVo |Обучение с подкреплением. Торговая среда для агента.

Всем привет.

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

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

Выглядят он так:

Обучение с подкреплением. Торговая среда для агента.



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

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

Далее, взяв простого DQN агента, и два разных варианта среды: одна содержит только один сгенрированный ряд, вторая содержит два:

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

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

Всем привет. 

Медленно продалжаем копать в строну нейронных сетей. В этом видео я расскажу о некоторых своих неудачах, которые встретились на моем пути :)



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

Блог им. DenisVo |Tорговая система на базе глубокого обучения от начала до реальных торгов. Часть IV. TFX продолжение.

Итак, в ходе моего эксперемента, как это часто бывает, я отошел немного в сторону и погрузился в рассмотрение работы TFX pipeline. Что на самом деле довольно не плохо, так как теперь понимаю как он работает.
Однако TFX, как и большинство опен сорс софта, имеет свои проблемы:

  • Как я писал в предыдущем посте, компоненты работают в основном только с тренировочным и оценочным (train, eval) наборами данных
  • Версия TFX 0.15 работает только с estimator API — однако говорят что в версии 0.21 ввели поддержку keras моделей без конвертирования ее в estimator, к сожалению не удалось это опробовать, так как в этой версии они сломали interactive context. Конечно, можно было бы и без него, просто все компоненты загнать в пайплайн, но хотелось, что бы и в ноутбуке все работало. 
  • При использовании keras моделей, так и не разобрался как заставить работать TFMA в полную силу, а штука выглядит забавной. Если кто то в курсе, буду рад совету %).

В общем и целом можно смело использовать все эти технологии, но лучше без интерактивных компонентов. Загоняем все в apache beam и строим модельки, проверяем, лучшие используем :). Думаю простейший метод это простой конвейер с функцией трансформации данных и самой моделью. Остальное можно и проигнорировать для домашнего пользования. 

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

Блог им. DenisVo |Структура и элементы автоматической торговой сиситемы!

Всем привет.

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



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

Блог им. DenisVo |CloseToAlgotrading: Еще один пример того, как мы можем улучшить нашу торговое окружение!

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

В прошлый раз, некоторые участники smart-lab'а скептически отнеслись к докеру, в этом случае он нам тоже очень пригодиться, что бы легко и быстро запустить сам Tensorflow serving.

В общем смотрим :) комментируем.



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

....все тэги
UPDONW