Блог им. afecn19
Займемся бессмыслицей. Никакого прогнозирования, просто попробуем методами вейвлет преобразований и CNN ответить на вопрос — есть или нет разница в цикличности при росте фишки и падении? Эллиот чертил 3 волны вверх и 2 вниз. Давайте почертим и мы.
Данные я взял недельные, от понедельника до пятницы, но с разбивкой по 15 минуткам, итого ряд в 175 элементов. Судя по прошлым результатам, мизерная длина, и никакой цикличности там нет. Но...«а вдруг?!». Ну а разбивка недельная, в надежде уловить недельную цикличность, все таки понедельник это «день тяжелый», пятница это «тяпницы», четверг это маленькая пятница. В общем каждый день недели уникален и помню какие то корреляции/антикорреляции даже были, вроде пятница и понедельник шли вразрез, а четверг и пятница шли вместе. Впрочем точно не помню.
Каждому ряду в 175 отчетов я присвоил лейбл (1 рост, 0 падение). Ряд прогнал через вейлет преобразование, получив квадратную картинку. Все это добро загнал в CNN и стал ждать чего нейросеть намутит. В теории, после вейвлет преобразования, на полученной картинке, не должно быть никакого намека на то росла фишка или нет. Следы наличия тренда присутствуют, но какого именно не указывается. Хотя это не точно. А вот точно что должны быть следы цикличности, и если при росте и падении цикличность разная то точность классификации должна быть больше 0,5… Хотя это не точно. Ну нам жалко чтоли, попробовать? Пуская нейросетка крутит колесико. Крутило колесико нейросеть долго....:
Более 200 эпох нейросетка вообще ничего цеплять не могла, даже на трейне, болтаясь практически вокруг 50% угадайки. Тормознулось обучение на 7 часу обучения, по валидации.
А это матрица, так хорошо знакомая всем машинленингистам пишущих на пайтон:
По диагонали угаданное. В общем на тесте угадали 66,5%, на валидации 56%, а на тесте, что нас интересует больше всего — 60%.
То есть как бы и правда при падении и при росте частоты разные?! И мы типа это выловили?! Может быть, но это не точно. Смущает что картинки вейвлет преобразования выглядят жутко похожими:
То есть преобразовывают в частоты разные графики, а на человеческий взгляд, картиночки выглядят одинаково. И визуально никаких периодов не выявлено. Но это на человеческий взгляд, если посмотреть на матрицы с цифрами, то можно увидеть что они разные, то есть формы на рисуночках одинаковые, но цифры за ними разные стоят.
Лейблы я ставил только два: рост и падение, а сами понимаете бывает рост на +0,1% и бывает падение на -0,1%, что практически одинаково. Поэтому если использовать оценки уверенности нейросети то получим более интересную картинку:
Как видим если убрать случаи, когда нейросеть уверенно в своем решении менее чем на 55% («50/50»), то как раз получим случаи со слабо выраженной динамикой. И наоборот, когда сеть уверенна в прогнозе на более чем 57,5%, то там и точность 67,87 (для роста) и 100-23,9 (для падения) и движение в предсказанную сторону более выраженное.
Как то так.
А вы что вообще хотели показать? Как круто вы овладели методами machine learning применительно к анализу временных рядов ??
Ну, вы хотя бы написали какой именно ряд (инструмент) исследуете, где зависимость то ищите ?
Если хотите, то можем пообсуждать… Вы с какой целью вейвлет преобразование применяли?
уж простите меня, ваш пост начался с утверждения, что вы занялись бессмыслицей. И после этого утверждения сплошная бессмыслица у вас.
Вот, например, вы пишите: «есть или нет разница в цикличности при росте фишки и падении». Тут вам следовало пояснить разницу в чем вы ищите: в длине цикла или еще каких то характеристиках. Далее вам следовало пояснить, где вы цикл то ищите? Сам рост не может быть цикличным, а вот в временном ряду, который растёт, может быть цикличная компонента. Аналогично про падение. Вы представляете временной ряд как сумму компонент, одна их которых цикличная. Верно или у вас другая логика ?
Название инструмента, который вы исследуете нужно писать обязательно. Т.к. поведение разных инструментов разной. Нужно четко указать какие даты временных рядов вы берете. Во-первых, интересно. А, во-вторых, кто-то может захотеть повторить ваши исследования.
Но самое спорное, это применимость ко всему этому CNN. Нет, ну если очень хочется, то применить можно.
Вообще правильные статьи на такие темы имеют достаточно стандартную структуру и должны содержать определения и допущения на хорошем математическом языке.
Люблю когда люди не просто пишут отсебятину, а делятся результатами своих исследований!
1. Почему займемся бессмыслицей? Результат вроде же норм). Или это из-за этого вэйвлета? Я просто не до конца понял, что это за хренована, видимо обучение после преобразования не позволяет это использовать в торговле?
2. А я когда недавно с нейросетями игрался останавливался на 1-3 эпохах, не до конца понимал, как они работают. У меня получалось, что лучшие результаты после 1-2, на 3-й уже начинают падать, возможно это какие-то локальные больше колебания, надо попробовать подольше погонять, дороговато, конечно, по времени на CPU нейросети обучать).
3. По табличке с пробами — странное какое-то представление данных. Я делаю так (и это намного наглядней и как-то логичней) — определяю пороги вероятностей и и считаю результаты общие для шорта и лонга, т.е. если порог 0.55, например, я смотрю долю верно спрогнозированных шортов и лонгов в общем (естественно, я смотрю лонги, по которым нейросеть на 0.55+ уверена, что это лонг, а шорты те, где нейросеть на 0.55+ уверена, что шорт).