Если оператор не может объяснить, почему бот вошёл, бот не должен работать
Объяснимость в трейдинге — не этическое требование. Это то, что определяет, сможет ли человек принять верное решение о системе в четыре часа ночи.
Инженеры Vizanix · об авторе
- РАЗДЕЛ
- Будущее рынка и ИИ
- ОПУБЛИКОВАНО
- 2026-08-29
- ГЛАВ
- 5
- ЧИТАТЬ ДАЛЬШЕ
- 3
- ЯЗЫК
- написано на русском
Аргумент за объяснимые модели обычно выстраивают вокруг регулирования или этики. В трейдинге есть более насущная причина: оператор, не понимающий, почему система сработала, не может решить, вмешиваться ли.
Проблема четырёх часов ночи
Бот взял три убыточные сделки подряд по одному инструменту. Вы не спите, смотрите в экран, и вариантов ровно два:
- Стратегия работает как задумано, и это обычная серия убытков. Вмешательство разрушит преимущество, которое вы валидировали.
- Что-то сломано — устаревший поток, изменённая спецификация инструмента, режим, которого модель не видела. Невмешательство усугубит ущерб.
Чтобы их различить, надо знать, что модель видела и почему сработала. Без этого решение — подбрасывание монеты, наряженное в суждение, а предсказуемая человеческая реакция — выключить, что неверно в половине случаев.
Что должно нести каждое решение
Не глобальный график важности признаков. Запись по каждому решению, сделанную в момент решения:
@dataclass
class Decision:
ts: datetime
symbol: str
action: str
model_version: str # какой артефакт это произвёл
features: dict # точные увиденные значения
prediction: dict # направление, ожидаемый MFE, ожидаемый MAE, уверенность
top_contributors: list # 3-5 признаков, сдвинувших это предсказание
ev_calc: dict # преимущество, издержки, запас — арифметика фильтра
risk_verdict: str # одобрено / уменьшено / отклонено и каким правилом
reason: str # человекочитаемо, одна строкаЦена — место на диске и несколько миллисекунд. Выгода — у каждого вопроса, который может задать оператор, есть ответ, не требующий восстановления состояния.
Записывайте и отказы
Самый частый вопрос оператора не «почему он торговал», а «почему он ничего не делает». На этот вопрос нельзя ответить, если отказы не логируются с причинами.
Наш сигнальный движок хранит каждую оценку — 5,76 миллиона за пятнадцать суток — со значениями факторов и конкретной причиной пропуска: серия коротка, доджи в цепочке, не прошёл фильтр расширения, RSI не экстремален, импульс вне коридора, нет свободного слота, спред широк. «Почему сегодня нет входов» — это запрос.
Это ограничивает выбор модели, и это нормально
Градиентный бустинг на именованных признаках даёт читаемую важность и атрибуцию по образцу почти бесплатно. Глубокая модель над сырыми последовательностями — нет, а методы пост-хок объяснений производят правдоподобные истории, которые не всегда являются реальным механизмом.
Учитывая, что у предсказания рынка и так низкое отношение сигнал/шум — где разрыв в точности между бустингом и глубокой моделью обычно невелик, — менять интерпретируемость на маржинальное улучшение метрики плохой обмен. Вы теряете возможность эксплуатировать эту штуку.
Проверка
Перед выходом модели в бой один вопрос: сможет ли дежурный, только по логам и за пять минут, объяснить, почему система совершила три последних действия?
Если нет, недостающее — не качество модели. Недостающее — запись, и добавить её сейчас дешевле, чем во время инцидента, который в итоге её потребует.
Статья описывает инженерную практику. Это не инвестиционная рекомендация. Vizanix разрабатывает программное обеспечение и не обещает торговую доходность.