Как мы сократили просадку smartmoney
Разбираем, что стоит за улучшением realized_pnl в smartmoney: с -13.1088 до -1.8235 и что это меняет для продукта.
В smartmoney у нас сдвинулась одна из самых неприятных метрик — trade_stats.realized_pnl. Она была на уровне -13.1088, а затем ушла к -1.8235. Это не делает систему идеальной и не превращает убыточную серию в победную, но это уже совсем другой режим работы. Для нас такие изменения важны не сами по себе, а как сигнал: механизм перестал терять так же быстро, как раньше, и мы можем смотреть на следующие узкие места без ощущения, что фундамент всё ещё проваливается.
Почему мы вообще смотрим на realized_pnl
В торговом продукте легко увлечься красивыми вторичными графиками: количеством сигналов, скоростью исполнения, процентом попаданий, временем жизни позиции. Но если закрывать глаза на realized_pnl, можно долго обсуждать «качество» стратегии и при этом не замечать, что по факту деньги уходят не туда. Поэтому мы держим в фокусе именно метрику реализованного результата, а не только поведенческие признаки системы.
У smartmoney эта метрика особенно полезна, потому что она показывает не абстрактную активность бота, а итог уже завершённых сделок. В этом смысле trade_stats.realized_pnl — не красивый индикатор для витрины, а прямой ответ на вопрос, что происходит с капиталом после серии входов и выходов.
Когда значение было -13.1088, мы видели не просто «минус», а запас для ошибок, который уже нельзя было игнорировать. Если бот продолжает в том же духе, он начинает требовать от следующих улучшений слишком многого. Поэтому задача была не в том, чтобы быстро нарисовать плюс, а в том, чтобы сократить глубину просадки и вернуть продукт в область, где изменения можно оценивать спокойно и по шагам.
Что означает переход от -13.1088 к -1.8235
С точки зрения процесса это важнее, чем с точки зрения красивой презентации. Мы не называем это победой, потому что итог всё ещё отрицательный. Но сам характер изменения показывает, что текущие правки повлияли на поведение системы в нужную сторону.
Для нас такое улучшение обычно означает сразу несколько вещей:
- часть входов стала менее вредной для результата;
- выходы перестали фиксировать такой же объём ошибки, как раньше;
- система стала ближе к режиму, где можно уже искать качество, а не тушить пожар.
Именно поэтому мы не любим относиться к realized_pnl как к одной точке на графике. Важно не только число на текущий момент, но и то, как оно меняется после конкретных изменений в логике продукта. Если метрика двигается в правильную сторону, значит, мы не просто гоняем данные по кругу, а действительно влияем на итог.
При этом мы сознательно не приписываем этому сдвигу лишних выводов. Улучшение одной метрики ещё не означает, что стратегия стала устойчивой. Оно лишь говорит, что один из самых грубых провалов уменьшился. Для торгового бота это уже немало, потому что дальше можно смотреть на стабильность, повторяемость и то, насколько поведение выдерживает новые рыночные условия.
Как мы используем такие вехи в разработке
В портфеле ИИ-продуктов у нас почти везде один и тот же принцип: мы не работаем «по ощущениям», а смотрим на конкретную метрику, которая отвечает на конкретный вопрос. Для smartmoney этим вопросом сейчас был не «можем ли мы показать красивую историю», а «перестали ли мы терять так, как раньше».
Когда ответ частично становится положительным, мы не останавливаемся. Наоборот, именно в этот момент полезно:
- проверить, не держится ли улучшение на случайном отрезке;
- посмотреть, какие сценарии ещё дают минус;
- понять, не сломали ли мы что-то соседнее ради этого улучшения;
- зафиксировать состояние, с которого уже можно двигаться дальше.
Такой подход скучнее, чем обещать «прорыв», но он лучше работает. Особенно в торговых продуктах, где красивый единичный результат почти ничего не стоит без повторяемости. Один удачный день не делает систему хорошей. А вот сдвиг realized_pnl в сторону нуля — уже признак, что мы двигаемся по осмысленной траектории.
Мы стараемся смотреть на подобные сигналы как на промежуточные контрольные точки. В smartmoney это особенно важно, потому что продукт не должен просто «торговать», он должен торговать так, чтобы у нас было пространство для улучшений, а не бесконечная борьба с отрицательной базой.
Что мы делаем после такого сдвига
После улучшения метрики мы не спешим радоваться раньше времени. Следующий шаг — понять, за счёт чего именно сократился минус и не является ли это побочным эффектом слишком узкого режима работы. Если результат стал ближе к нулю, значит, у нас появился материал для следующей итерации: можно точнее резать шум, аккуратнее подбирать сценарии входа и не спешить с выводами по коротким отрезкам.
Для нас важно ещё и то, что такие изменения помогают принимать продуктовые решения без лишнего тумана. Когда метрика сильно отрицательная, почти любое улучшение можно списать на случайность или на хороший участок рынка. Когда она становится менее отрицательной, уже можно честнее оценивать, что именно дало эффект.
Именно поэтому мы фиксируем такие переходы отдельно. Это не просто отчёт о состоянии системы, а отметка о том, что smartmoney вышел из более тяжёлой зоны и теперь дальше работать с ним можно предметнее.
Если вам интересен сам продукт и то, как мы строим его итерациями, посмотрите smartmoney.
В блоге мы и дальше будем разбирать не абстрактные советы по трейдингу, а конкретные изменения в наших продуктах: что сработало, что не сработало и где метрика наконец сдвинулась в нужную сторону.
Рассылка новых статей
Выберите, куда присылать новые статьи и разборы — без спама, только новые материалы.
Чтобы получать статьи на email, сначала привяжите email в личном кабинете.
Чтобы получать статьи в Telegram, войдите через Telegram-кнопку на странице входа.
Получайте новые статьи и разборы
Подпишитесь через email — без спама, только новые материалы.