А теперь про магию, которой я сам не верил месяц назад.
Полторы недели назад я рассказывал, что модели входа в позицию пока не готовы. Но настало время, когда робот не просто пытается нелепо предсказать движение цены — он начал искать полноценные закономерности.
Баскетбольная аналогия 🏀
Представь, что ты учишь робота бросать мяч. Ты можешь настроить:
· высоту прыжка
· угол локтя
· силу броска
Это гиперпараметры. Ты не знаешь заранее, какие значения лучшие. Можно угадать, а можно — оптимизировать.
Как работает оптимизация у меня
Робот перебирает разные комбинации гиперпараметров, запоминает лучшие и пробует похожие.
Вот что он крутил (список для гиков):
· num_leaves — на сколько частей модель делит данные
· learning_rate — скорость обучения (чем ниже, тем осторожнее)
· n_estimators — количество деревьев решений
· subsample — сколько процентов истории использовать за раз
· colsample_bytree — сколько признаков анализировать
· reg_alpha / reg_lambda — регуляризация (чтобы не выучить шум)
Метрика успеха — ROC-AUC
Если совсем просто: насколько хорошо модель отличает прибыльную сделку от убыточной.
· 0.5 — монетка
· 0.7 — уже что-то понимает
· 0.9 — профи
У меня на тесте вышло 0.77. Не гениально, но уже лучше случайности.
Как это выглядит в реальности
Робот берёт все сделки, смотрит на индикаторы, ищет лучшее соотношение и обучает модель. По сравнению с настройками «на глаз» — теперь робот учится медленнее, но стабильнее. И почти не переобучается на шум.
При активации каждая модель проходит свою оптимизацию. И потом — при каждом переобучении. Рынок меняется — робот подстраивается. Без моего участия.
Появилась новая проблема - нужны обучающие сделки 📚
Модели входа запоминают параметры по сделкам, которые были совершены, ищут похожие. И чтобы модель не переставала учиться и изучать новое - надо подкидывать ей новые сделки.
Для этого был реализован функционал тестирования сделок на разных стратегиях с разным набором индикаторов.
Робот подбирает большое значение вариаций индикаторов, прогоняет их на исторических данных за последние 5-7 дней, находит стратегии, которые принесли больше всего профита и по ним открывает сделки на минимальный лот. Это помогает роботу нащупать новые закономерности и учесть их в моделях.
Особенность - если открыта тестовая сделка, но вдруг сигнал от ML-модели приходит с высокой уверенностью, тестовая закрывается и открывается уже полноценная.
Это не про деньги. Это про любопытство: сможет ли он сам доползти до ума?
💬 А вы бы доверились роботу, который учится на своих ошибках в реальном времени? Или только после тысяч виртуальных тренировок? А может запустить автоследование на него? 😂
#aft_id #алготрейдинг #Ml #гиперпараметры #оптимизация