Убыток, которого никогда не было

Однажды утром месячный отчёт моего торгового бота сообщил мне, что он потерял почти всё — просадка почти на 99%, за считаные недели. У меня ёкнуло в животе раньше, чем мозг успел осознать.

Он ничего не потерял. Деньги все были на месте. То, на что я смотрел, было не убытком; это был мой собственный код, который не справился со счётом — и он отправил меня в погоню за катастрофой, которой никогда не было.

Число, от которого у меня ёкнуло в животе

Отчёт был однозначен. С начала месяца счёт сжался до жалкого остатка от того, с чего начинал. Каждый инстинкт твердил сделай что-нибудь: ужми риск, сократи размер, выдерни вилку. Число такой величины не приглашает к анализу — оно требует реакции.

И вот в этом и состоит ловушка, потому что реагировать на число, которое ты не проверил, — это ровно тот способ, которым ошибка измерения превращается в настоящую. Я был в одном паническом решении от того, чтобы навредить совершенно здоровому счёту, пытаясь «спасти» его от убытка, существовавшего лишь в столбце моей собственной арифметики.

Что код на самом деле измерял

Изъян был почти до неловкого простым. Мой учёт отслеживал ровно одну вещь: остаток наличных. Когда бот покупал актив, деньги уходили из столбца наличных — правильно, — но ничто не возвращало в книги стоимость того, что он только что купил. Поэтому в тот миг, когда он размещал большую часть счёта в позицию, гроссбух наблюдал, как наличные исчезают, и записывал это как почти полный убыток.

Позиция была прямо тут. Полностью цела. Стоила ровно того, что только что за неё было заплачено. Код просто на неё не смотрел.

Иными словами, бот воспринимал покупку как потерю. Потрать девяносто процентов наличных на актив — и для гроссбуха, который считает только наличные, ты только что потерял девяносто процентов своих денег. Эти −99% не были рыночным событием или плохой сделкой. Это был счёт, смотрящий на собственные активы и отказывающийся признавать их хоть сколько-нибудь стоящими.

Неправильная линейка отравляет каждое измерение

Вот почему это было хуже, чем косметический сбой отображения. Почти любое число, которое тебя волнует в торговой системе, происходит из одной-единственной величины: эквити, общей стоимости счёта. Просадка — функция эквити. Доходность, смысл винрейта, лимиты риска, коэффициент Sharpe, которым ты однажды будешь хвастаться или из-за которого будешь отчаиваться, — все они наследуют свою истинность из того, как ты определяешь, сколько стоит счёт.

Определи эту одну величину неправильно — и каждая метрика ниже по течению не просто сдвинется; она становится вымыслом. Мой график просадки был ярким, подробным и полностью воображаемым. Сломанная линейка не выдаёт тебе слегка неверные ответы — она выдаёт уверенные, точные, неверные, которые куда опаснее очевидно сломанных, потому что выглядят в точности как истина.

Почему я поверил числу, которое ни разу не проверил

В одном из ранних постов я писал о том, как чуть не поверил абсурдно хорошему результату, потому что какая-то жадная часть меня хотела, чтобы он был настоящим. Это было зеркальное отражение, и оно научило меня этой симметрии трудным путём: страх замыкает накоротко проверку даже быстрее, чем жадность.

Льстивое число хотя бы оставляет тебе немного времени полюбоваться им, прежде чем ты его проверишь. Ужасающее — нет. Оно толкает тебя прямиком от видения к действию, минуя тот единственный шаг — проверку, — который спас бы положение. Жадность делает тебя доверчивым медленно. Страх делает тебя доверчивым мгновенно. Оба заканчиваются в одном и том же месте: доверием к числу, которое ты ни разу не подверг аудиту.

Погоня за катастрофой, которой не существовало

Настоящим ущербом никогда не была сама ошибка. Им было то, что я сделал в ответ на неё. Несколько дней я считал фантомный убыток реальным и охотился за изъяном стратегии, который должен был его «вызвать». Я ставил под сомнение сайзинг. Я ужесточал лимиты, которые не нуждались в ужесточении. В один из худших моментов я был близок к тому, чтобы ослабить защитные проверки, лишь бы они перестали реагировать на убытки, которых никогда не было, — предлагая исправить ошибку измерения, отключив ограждения, существующие для настоящих убытков.

Вот в чём тихая угроза сломанного гроссбуха: он не сидит смирно, будучи неправ. Он активно вербует тебя в плохие решения, потому что каждая реакция кажется оправданной числом перед тобой. Можно нанести реальный вред здоровой системе, мчась чинить ущерб, который целиком живёт в твоём учёте.

Исправление: считай то, чем владеешь

Починка была одной-единственной идеей — переоценка по рынку. Эквити — это не наличные, лежащие без дела; это наличные плюс текущая стоимость всего, что счёт держит. Покупка — это перевод: деньги становятся активом равной стоимости в момент покупки, а не убытком. Как только гроссбух стал оценивать открытые позиции, эти −99% испарились, потому что они никогда не описывали ничего реального. Со счётом всё было в порядке всё это время. Сломанным было лишь его представление о самом себе.

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

Доверяй своей линейке прежде, чем доверять своим результатам

Урок, который я вынес, — это невзрачный близнец каждого эффектного: прежде чем ты сможешь доверять результату — хорошему или плохому, — ты должен доверять инструменту, который его произвёл. Стратегия, оценённая через сломанный учёт, вообще не оценивается. Её описывает генератор случайных чисел в белом халате.

Поэтому теперь измерение идёт первым — раньше стратегии, раньше оптимизации, раньше всех тех частей, что ощущаются как настоящая работа. Когда система показывает мне что-то драматичное, мой первый вопрос больше не «что сделала стратегия?». Он звучит «а я вообще верю этому числу?». Чаще, чем хотелось бы, драма оказывается в линейке.

Бот, который не умеет считать то, чем владеет, будет лгать тебе самым убедительным из возможных способов — с точностью. И некоторые из самых дорогих убытков — это те, в погоню за которыми ты впадаешь в панику прежде, чем проверишь, были ли они вообще реальны.

— Никаких сигналов, никакой доходности, не инвестиционная рекомендация.