ГлавнаяБлогТрансформер для торговли криптовалютой: инженерный опыт
AI / Нейросети

Трансформер для торговли криптовалютой: инженерный опыт

Как я построил гибрид Transformer + BiLSTM для предсказания Bitcoin, исправил три критических бага и получил 54.9% точности. Читайте инженерную историю.

Al
Редакция Algolitalgolit.ru
8 мин чтения13 июля 2026 г.

В январе 2026 года я задался простым вопросом: сможет ли Transformer, обученный на технических индикаторах, предсказывать направление Bitcoin лучше, чем подбрасывание монетки? К июню система обработала более 87 000 поколений обучения, пережила три серьёзных архитектурных бага и научила меня машинному обучению больше, чем любой курс. Это не пост «как разбогатеть с помощью AI». Это инженерная история.

Архитектура системы

Система использует гибридную архитектуру Transformer + BiLSTM.

Transformer

6 блоков, 8 голов внимания. Та же архитектура, что лежит в основе GPT и BERT, адаптированная для финансовых временных рядов. Механизм самовнимания захватывает краткосрочные паттерны между различными техническими индикаторами.

BiLSTM

Двунаправленный LSTM с двумя слоями. Обрабатывает долгосрочные зависимости, которые Transformer может упустить — например, смену режима рынка, разворачивающуюся часами или днями.

Слой перекрёстного внимания

Объединяет представления обеих ветвей перед передачей в головы предсказания.

10 специализированных голов

По одной на каждый временной горизонт — от 5 секунд до 1 дня. Каждая голова имеет разную глубину и регуляризацию, отражающую уровень шума на своём горизонте.

Вся сеть написана вручную на PyTorch. Никакого AutoML. Никаких сторонних торговых библиотек. Каждый тензор, каждый градиент, каждая функция потерь — реализованы с нуля.

Конвейер верификации

Большинство систем предсказания криптовалют показывают результаты бэктестов. Бэктесты лгут. Я построил конвейер верификации, который штампует временем каждое предсказание. Когда целевой горизонт истекает, система сравнивает предсказание с реальной ценой Binance и записывает результат. Никакого выбора удачных сделок. Никаких удалённых трейдов. Панель аудита публична.

Эта приверженность прозрачности стала ключевой ценностью проекта. Но она же выявила баг, который чуть не заставил меня бросить всё.

Баг №1: Автокорреляция (ложь 96%)

Я получал 96% точности на 5-минутных предсказаниях. Я праздновал. Затем я посмотрел на сырые данные:

[0, 0, 0, 0, 0, 0, 0, 0, ... 300 нулей подряд ...]
[1, 1, 1, 1, 1, 1, 1, 1, ... 200 единиц подряд ...]

Ни одна модель не даёт таких результатов. Проблема была во временной зависимости: я записывал «сделку» каждые 2 секунды, а затем проверял все ~900 снимков на одно и то же рыночное событие. Модель не предсказывала направление цены — она просто отражала, вырос рынок или упал в этом окне.

Я исправил это статистической подвыборкой:

_FATOR_SUBSAMPLE = {
    5: 1,    # 5с: запись каждого тика
    60: 5,   # 1мин: запись каждого 5-го тика
    300: 25, # 5мин: запись каждого 25-го тика
    1800: 150, # 30мин: запись каждого 150-го тика (5 мин)
    3600: 300, # 1ч: запись каждого 300-го тика (10 мин)
}

Точность упала с 96% до ~52%. Было больно. Но теперь каждая сделка в истории представляет собой независимое решение модели.

Баг №2: Заглядывание в будущее

Если вы предсказываете горизонт в 1 час, вы должны получить награду только через 1 час — не секундой раньше. Но моя ранняя реализация позволяла информации о будущей цене просачиваться в обучающий сигнал.

Исправлением стал буфер отложенной награды. Каждое предсказание сохраняется с меткой времени. Награда вычисляется и применяется только тогда, когда целевой горизонт действительно истекает. Модель никогда не видит будущего во время обучения.

Баг №3: Усечение градиента

Несколько недель мой Transformer и LSTM на самом деле не обучались. Градиент от функции потерь останавливался на головах предсказания — он никогда не доходил до основной сети. Мне пришлось пересчитывать полный прямой проход во время вычисления градиента, чтобы сигнал ошибки распространялся через всю сеть. Вентиляторы моего компьютера сразу зашумели громче. Основная сеть наконец начала учиться.

Текущее состояние

После исправления этих багов и обучения на 365 днях данных Binance с GPU T4:

  • 54.9% средняя точность направления (горизонты 5с–1ч)
  • 59.8% на часовых предсказаниях (лучший отдельный горизонт)
  • Все метрики публично проверяемы по реальным ценам Binance

Эти цифры никого не сделают богатым за одну ночь. Но они реальны. И на рынке, перенасыщенном ложными заявлениями о производительности, реальные метрики — это преимущество.

Что я узнал

Создание этой системы научило меня трём вещам, которым не учат на курсах:

  1. Доверяйте метрикам, а не ощущениям. Когда точность 96% — что-то сломано. Когда она 53% — возможно, всё работает идеально. Цифры говорят правду, если вы позволяете им.
  2. Прозрачность окупается. Панель аудита сначала была обузой. Теперь это мой сильнейший сигнал доверия. На рынке, полном мошенников, показывать свои потери убедительнее, чем скрывать их.
  3. Терпение важнее хайпа. Самый сложный баг (автокорреляция) потребовал трёх дней на диагностику и одной строки на исправление. Коротких путей нет.

Что делать прямо сейчас

Если вы строите собственную торговую систему: начните с конвейера верификации. Не верьте бэктестам. Добавьте отложенные награды. Проверьте, доходят ли градиенты до всех слоёв. И помните: 55% реальной точности стоят больше, чем 96% на подтасованных данных.

Ссылки:

#Transformer#криптовалюта#машинное обучение#BiLSTM#баги
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →