CNN и финансовые TimeSeries » Элитный трейдер
Элитный трейдер


CNN и финансовые TimeSeries

24 сентября 2020 smart-lab.ru
Есть такая CNN, сверточная сеть то бишь. На вход ей подаются картинки, на которых она учится отличать собачек от кошечек. Меня это, относительно применения на фондовой бирже всегда привлекало.

Сначала определимся какие рисунки подносим CNN. В качестве рисунков мы можем подать:

Сырые ряды: цены, обьемы, индикаторы
Индикаторы. То есть для каждого значения подсчитать набор тех.индикаторов и красиво оформить их в матрицу. Ведь что такое рисунок? Это всего лишь набор пикселей, каждый пиксель это значение какого то техиндикатора, чем он больше тем пиксель темней. Тут есть даже практическая реализация которой я частично и воспользовался.
Представить сырые временные ряды в другой системе координат. Например GramianAngularField, где как пишут авторы больше информации. Так блин и пишут. Набиваете в гугле GramianAngularField и выпадает куча ссылок, но мне лично больше понравилась работа иранских товарищей
Ну и понятно что есть траблы. Например, если мы используем рисунки по первому типу, может некрасиво получится, ведь они не учитывают важность разных частей рисунка, а кто торгует знает, что последние (правые значения на рисунке) важней чем менее свежие (левые). А CNN это не интересно ей что слева, что справа, что наверху. Рисунки по типу два устраняют эту проблему, но мы получаем урезанную информацию о прошлом. Что может быть как плюсом так и минусом. Зато возникает вопрос: значение какого индикатора в какую ячейку сунуть. Например есть 9 индикаторов, и решили мы засунуть их в картинку 3на3 пикселя. В пиксель с координатами (1,1), какой совать, а рядом с ним какие? Какая разница скажете вы. Но ведь дальше пойдет свертка 2на2 (например), и при неправильном выборе соседства мы можем потерять важное сочетание индикаторов. Это как взять картинку собачек и перемешать все пиксели, за это нейросеть спасибо не скажет и вряд ли справится. Парень чьим кодом я частично пользовался, рассудил что рядом лучше помещать схожие индикаторы, но вот с чего вдруг? Мне это вовсе не кажется логичным.

Ну и третий вид рисунка, самый красивый, но там вообще ни в чем нельзя быть уверенным.

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

CNN и финансовые TimeSeries


А вот тренд вниз



а вот рост но с флетом на концах



А вот просто флет



Человеческий глаз сразу замечает разницу, ну а нейросеть она же умная, она тем более должна. Так я думал. В общем нарезал я под 2000 картиночек, каждой присвоил лейбл, погонял, погонял… попробовал применить к трейдингу, в общем получил какой то профит на out-sample аж в 0,05-0,1% И это в лучшем случаи! На test и train было что то вроде профита 0,25-0,5% на сделку. То есть нейросеть что то нащупывала, но при прогнозировании все скатывалось в унылость.

Что насчет 2 представления рисунков? Тут картинки выглядят не так красиво, по спартански:



Первая соответствует лейблу-рост, вторая -падение, третья-флет. Или наоборот, да не суть. Я взял 256 тех индикаторов и раскидал их в картинку (2 мерную матрицу) 16 на 16. Каждая клеточка на рисунке это индикатор, чем он больше тем цвет насыщенней и наоборот. Как я уже писал, тут важно понять в таком порядке все эти 256 индикаторов разместить, комбинаций как понимаете огромное. Я попробовал потестить пару десятков вариантов, случайным образом определяя порядок техиндикаторов на картинке. И даже как будто нашел 3-4 интересных сочетаний, но по большому счету все это… эээ… сомнительно.

Пока как то так

А кода на пайтон здесь

/ (C) Источник
Не является индивидуальной инвестиционной рекомендацией
При копировании ссылка обязательна Нашли ошибку: выделить и нажать Ctrl+Enter