Инсайдерская серия·2026-05-04·10 мин чтения·← все посты

Path-dependent бэктест: что скрывает большинство крипто-трек-рекордов

Большинство трек-рекордов с «проверенным бэктестом» в крипте математически не способны проиграть. Не потому что стратегия работает, а потому что симуляция не моделирует, как сделки выходят на самом деле. Path-dependent-симуляция — правильный ответ, она даёт цифры ниже, и почти никто их не публикует. Вот как мы гоняем свою.

Векторизованный против path-dependent: разница по сути

A Векторизованный бэктест смотрит на стратегию и считает исход каждой сделки изолированно: цена входа, цена выхода, P&L. Выход задают правила: сработал TP, сработал SL или выход по времени. Последовательность симуляции: перечислить все сделки, посчитать каждую независимо, сложить.

A Path-dependent-бэктест идёт по таймлайну поминутно (или побарно) и на каждом шаге спрашивает: что сейчас открыто, что делает цена прямо сейчас, не сработало ли что-то только что? Сделки выходят только тогда, когда они вышли бы в проде: когда цена физически дошла до SL или TP, в том порядке, в каком дошла, с учётом того, что внутрибарные движения цены важны.

Почему это важно? Потому что векторизованные бэктесты регулярно засчитывают прибыльные выходы, которых не могло случиться в предполагаемом порядке.

Классическая векторизованная ложь

Представьте SHORT со входом на $100, SL на +2% ($102), TP на −10% ($90). За следующие 4 часа движение цены выглядит так:

Наивный векторизованный бэктест видит: TP сработал (цена дошла до $89, ниже TP на $90). SL тоже сработал (цена дошла до $103, выше SL на $102). Бэктест должен выбрать что-то одно. Многие наивные бэктесты берут выгодное (TP) и рапортуют +10%. Другие берут худшее (SL) и рапортуют −2%.

Честный ответ: SL сработал первым, в час 1. Позиция закрылась на $102 с убытком −2% ещё до того, как TP вообще стал достижим. Path-dependent-симуляция корректно показала бы −2%. Векторизованная часто показывает +10%, потому что никогда не знает порядок событий внутри бара.

Как мы гоняем свою

Движок бэктеста Hedonist обрабатывает 1-минутные клайны:

  1. Для каждой стратегии генерируем список кандидатов на вход (таймстамп, монета, сторона).
  2. Для каждого входа берём 1-минутные клайны от entry_ts до entry_ts + hold_window.
  3. Идём вперёд бар за баром, отслеживая накопленный P&L от входа.
  4. На каждом баре проверяем: пересёк ли максимум SL (для SHORT) или уровень частичного TP? пересёк ли минимум SL (LONG) или уровень частичного TP? Применяем реалистичный внутрибарный порядок: в пределах одного 1-минутного бара порядок максимума и минимума неизвестен, поэтому берём консервативное допущение, что худшее (SL) достигается раньше лучшего (TP), когда оба случаются в одну минуту.
  5. На выходе считаем чистый P&L со слиппеджем (0.2% туда-обратно), комиссиями (0.08% туда-обратно) и начислениями фандинга.
  6. Обновляем баланс портфеля. Переходим к следующему сигналу, но только если лимит CONC портфеля это позволяет (ограничиваем двумя одновременными позициями).

Лимит CONC важнее, чем принято думать. Без него любой бэктест выглядит отлично, ведь можно держать 50 позиций одновременно. При CONC=2 приходится выбирать, какие сигналы брать, а какие пропускать; именно это реально происходит в проде при ограниченном капитале.

Что это меняет

Три вещи, которые векторизованные симуляции делают неверно, а path-dependent — верно:

1. Реалистичный порядок выходов. SL срабатывает раньше TP, когда должен. Гипотетические «победы», которые держатся на том, что TP сработал первым, перестают засчитываться.

2. Составной баланс во времени. Векторизованные симуляции складывают P&L. Path-dependent дают вашей $1k вырасти до $1.5k за первую неделю, а затем сайзят следующую сделку как 2% от $1.5k (не 2% от $1k). Так корректно складываются и прибыли, И убытки. Число в конце — это то, что у вас реально было бы, а не сумма процентов.

3. Издержки упущенной возможности из-за CONC. Когда можно вести только 2 позиции, приходится выбирать. Часть сигналов пропускается. Честный бэктест воспроизводит это пропускание, что часто снижает итоговую доходность против «брать каждый сигнал».

Чего это нам стоит

Цифры, которые мы публикуем, ниже тех, что показала бы векторизованная прогонка на тех же стратегиях. Форма разрыва по категориям:

Path-dependent-число — честное. Другие сервисы опубликовали бы более высокую векторизованную цифру на тех же данных. Явно они бы не врали: их методология просто допускает раздувание.

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

Как распознать path-dependent-бэктест со стороны

Три вопроса любому сервису, публикующему трек-рекорд:

  1. Какой слиппедж и структуру комиссий вы закладываете? Если отвечают «комиссии не моделируем» или «слиппедж пренебрежимо мал», значит, они векторизованные.
  2. Какой у вас лимит одновременных позиций? Если отвечают «без лимита» или пожимают плечами, они векторизованные.
  3. Что вы предполагаете, когда SL и TP оба достижимы в одном баре? Если отвечают «берём TP в прибыль и SL в убыток» — это как раз неверно (и обычно так не говорят). Если отвечают «используем 1-минутные бары и закладываем худший порядок внутри бара», они path-dependent.

Как это выглядит в проде

Геройское число на intel.hedonist.trading непрерывно обновляет path-dependent-движок. По мере закрытия живых сделок их вшивают в кривую эквити. По мере того как модели фирмы выдают новые исторические сигналы (работая на каждом баре каждого дня), их прогоняют через path-replay и добавляют в симуляцию. 30-дневное окно катится вперёд.

Геройская цифра на странице — это выход симуляции для стартового баланса $1,000, прогнанной вперёд на 30-дневном окне, CONC=2, слиппедж 0.2%, комиссии 0.08%, без фокусов с плечевым компаундингом. Её производит методология, описанная в этом посте. Модель за сигналами (собственный внутренний quant фирмы + AI-исследования) здесь не описывается. Симулятор мы отдаём; модель нет.

Почему мы это публикуем

Если вы оцениваете крипто-сервис сигналов, спрашивать надо не «какой у вас винрейт?», а «как ваш винрейт посчитан?». Большинство удобных для маркетинга цифр в индустрии пережили бы повторную path-dependent-прогонку на уровне 50–70% от заявленного. Некоторые не пережили бы вовсе.

Мы публикуем свою по path-dependent-числу. Это честный ответ. Другие сервисы публикуют векторизованные цифры, потому что те выглядят лучше. Вам стоит знать разницу.

Смотреть кривую эквити вживую

Геройскую статистику на intel.hedonist.trading генерирует path-dependent-реплей, непрерывно обновляемый на 30-дневном окне, по точной методологии, описанной выше.

Открыть Hedonist Intel →
Раскрытие рисков. Торговля бессрочными крипто-фьючерсами сопряжена с существенным риском потерь и подходит не каждому инвестору. Цифры бэктеста историчны и посчитаны при определённых допущениях; прошлые результаты не гарантируют и не проецируют будущие. Смотрите полное раскрытие рисков перед подпиской на любой платный сервис.