Русский
Русский
English
Статистика
Реклама

Нейросети и трейдинг. Часть 3 прогнозируем биток на 1 час вперед

Впрошлой статьебыла попытка показать весь процесс обучения, отбора и тестирования моделей на торговой паре EUR/USD. В Google Colab работала схема:обучаем модели->тестируем->рисуем на графике. Попытка оказалась неудачной. Стремление не тащить в Colab тонну кода, а максимально все упростить привело к очень низкому качеству обучения. Сигналы выглядели неубедительно и кучковались в очевидных местах.

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

Двигаемся дальше

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

В прошлой статье об этом было подробно, а здесь просто напомню, что нейросеть отвечает на вопрос куда пойдет цена "вверх" или "вниз" и не отвечает на вопрос насколько сильно будет движение. Ответ бинарный: 1 - вверх, 0 - вниз. Т.е. если после опроса вернулся ответ [0.8, 0.2] это значит "пойдет вверх", а [0.4, 0.6] "наверно пойдет вниз, но это не точно". Разница внутри этих бинарных ответов характеризует степень уверенности сети, +0.6 в первом случае и -0.2 во втором. Чем больше эта разница стремится к 1 (или -1), тем выше качество прогноза.

"Степень уверенности" при которой ответ можно считать сигналом, индивидуальна для каждой модели и определяется при прогоне на тестовых данных. Более того, этот порог различен для сигналов "вверх" и "вниз". Модели, которые будут загружены в колаб, имеют название файла типа BTCUSD_M6_0.66_0.75.h5
Последние два значения и есть эти лимиты. Перед опросом модели из ее названия вынимаются значения срабатывания и сравниваются с ее ответом.

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

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

Когда эта задачка решилась, возникла необходимость всю эту красоту нарисовать и выставить напоказ. Сегодня браузер является самым массовым средством доставки. Беру открытую библиотеку которая рисует свечи а-ля TradingView, добавляю туда свои сигналы, быстро все это собираю "на коленке" и готово... таков был первоначальный наивный план. На практике, после питона вникать в JavaScript + Vue + NodeJS оказалось погружением в ад. В итоге,сайтзаработал, но тормозит и периодически подвисает, зато график BTC/USD на свечах 5m похож на новогоднюю елку.

Google Colab

В колабе к этой статье будет следующее:

  1. установим/подключим все нужные библиотеки

  2. загрузим уже обученные модели

  3. скачаем данные по паре BTC/USD за последние две недели, в данных будет время, цена и вектор для опроса моделей (подробнее было в предыдущей статье).

  4. нарисуем графики с прогнозами, каждый прогноз на, примерно, 1 час вперед.

"Муть какая-то..."скажет внимательный читатель."Ты даешь нам готовые модели + данные из истории. А может модели переобучены на этих данных? Поэтому и прогнозируют".

Читатель был бы прав если бы не одно "но". Модели не меняются, а вот данные подгружаются с биржи самые последние разбитые на свечи 6м, т.е. каждые 6 минут добавляется новый блок данных, всего 3000 блоков. Через сутки график обновится примерно на 10%, а через две недели на 100%. Последний раздел колаба дает возможность скачать архив моделей. Потом архив можно вернуть обратно и проверить результат спустя сутки или более.

Google Colab можно найти поэтой ссылке. Не забудьте сначала залогиниться в свою учетную запись на Google (или Gmail).

Копируйте ноутбук себе.

Если выпрыгнет предупреждение типа
Warning: This notebook was not authored by Google
соглашайтесь и продолжайте, никакие данные не собираются, весь код открыт.

Теперь нужно последовательно запускать блоки сверху вниз...
На этом все.

P.S. Не пытайтесь заработать на реальном рынке, 97% начинающих теряют депозит. Цель исследования - решить интересную задачу.

Источник: habr.com
К списку статей
Опубликовано: 10.06.2021 12:09:47
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Машинное обучение

Исследования и прогнозы в it

Трейдинг

Нейросети

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru