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

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

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

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

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



Блог им. 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 |Поиск точек входа для алгоритма.

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

Был проведен эксперемент со стратегией на двух скользящих средних. Пересечение средних — это наш триггер, если цена со 100% вероятностью дошла до минимально заданной цели то мы можем искользовать этот триггер. Далее можно посчитать всякого рода статистику, сколько прибыльных, сколько убыточных сделок. Тут никаких нейросети не нужны, посмотрели результат, увидили что ничерта не работает. :) Однако можно пойти другим путем, берем пересечение прямых, и смотрим куда после нашего триггера пошла цена, вверх или вниз, если видим некоторый перекос в результатах, скажем на истории у нас оказалось 60% прибыльных и 40% убыточных сделок, то тут есть уже над чем подумать. Встает вопрос как узнать будет ли сделка прибыльна или убыточна. Вот тут то и можно попытаться использовать нейронные сети, которые нам могут заменить сложные статистические модели. Мы же всегда работаем с предположениями и вероятностями, если мы скормили модели наши данные, и модель, не дай бог, обучилась и смогла в этих данных что то найти, то мы можем смело сказать, что у нас есть зависимость между нашими данными и результатом. Зависимость эта нам не известна, да и не нужно нам ее знать. Эдакий простой метод и не надо нам все эти заумные статистические, математические методы поиска нужного процесса.

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

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

Всем привет. 

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



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

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

Всем привет, 
если кому-то все еще интресно, мы продолжаем. Ох и медленно длится у меня процесс )

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



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

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