Представляем NeuroTrend Crypto - программный комплекс предсказания направления движения цены на основе нейронной сети. Часть 1.
Приближается к завершению коммерческая реализация программного комплекса предсказания направления тренда цены на основе нейронной сети NeuroTrend Crypto (НейроТренд Крипто).
В данный момент нейронная сеть обучена на паре BTCUSDT на таймфреймах 1, 5, 15 минут. Нейросеть предсказывает движение цены coins на следующий таймфрейм. Предсказание проводится на двух классах: класс 0 - цена coins снизится или останется той же и класс 1 - цена coins вырастет.
Нейронная сеть имеет 58 033 502 параметров и первоначально обучалась на таймфрейме 1 минута на 1 400 292 свечах. Тестовая выборка последний 500 свечей.
Датасет обучения на графике цены coins:
Точность обучения составила:
Данная нейронка после большого ряда экспериментов по подбору гиперпараметров была признана лучшей по точности предсказания тренда криптовалюты.
А вот обучение на старших таймфреймах выявило, что предобученная на 1М нейронка при обучении на 5 и 15 минутах показывает лучшую точность, чем если на этой архитектуре нейросеть обучать со случайных начальных весах. Особенность обучения связана с тем, что наш датасет для обучения снижается с увеличением таймфрейма, на 5 минутах он содержит всего 280 062 свечей, а на 15М уже 93 356 свечей.
Так точность на таймфрейме 5 минут при обучении на случайных начальных весах составляет:
А обученная на начальных весах на таймфрейме 1М точность выше и с меньшим разбросом по классам:
@Евгений Миронов, На вход подается история трендов ряда предыдущих свечей обработанная определенным образом. Объем не подавали, так как получили очень хороший результат и без них. А с объемами есть заморочка, так как на истории обучения цена ходит в пределах от 4500 до 79000, сейчас в районе 20000. Там надо было бы решать проблему адекватного скалирования. А гиперпараметры подбирали для оптимизации работы только на простом Колабе, без плюс и Про. А вот на обучении время одной эпохи совсем не доброе, поэтому писали колбэк для сохранения лучших весов. Для предотвращения переобучения сильно дропили сетку, поэтому надо было ловить лучшие веса.