Содержание
Что бэктест может доказать, а что нетПорядок проверки по шагамДанные и правила: что значит «воспроизводимо»Комиссии, funding и исполнение на одной сделкеОтложенный период и стресс-сценарииЧто дополнительно проверяет forward-testКак понять, что проверка пройденаЕсли результат не выдержал проверкиЧто бэктест может доказать, а что нет
Проверка на истории отвечает на узкий вопрос. Дали бы эти правила положительный чистый результат на прошлых данных, если бы вы исполняли их без единого отступления и без ручных правок по ходу? Это фильтр, а не прогноз. Правила, которые не прошли фильтр, почти наверняка не заработают и вживую. Прошедшие получают право на следующий этап. Только это.
Учебная ситуация на всю статью такая. Стратегия открывает лонг по BTCUSDT по условной цене 58 000 USDT с номиналом 300 USDT, это около 0,00517 BTC. Цель и стоп стоят симметрично, на расстоянии 1,5% от входа. Цифры условные. Они нужны, чтобы на каждом шаге было видно, что именно меняется в итоге.
Бэктест бесполезен, если правила не формализуются. Фразу «вхожу, когда рынок выглядит сильным» в историю не загрузить. У неё нет ни условия, ни числа, ни момента срабатывания, поэтому программа не поймёт, где здесь сделка. Если у вас пока такой уровень описания, начните с выбора и формулировки торговой логики. К истории стоит вернуться потом.
Порядок проверки по шагам
Запишите правила до первого прогона
Опишите вход, выход, стоп, размер позиции, фильтры и максимальное время удержания. Описание должно быть таким, чтобы другой человек или скрипт получил на тех же данных те же самые сделки. Результат шага — документ из условий без оценочных слов. Типовая ошибка: править правила после каждого прогона. Через десять правок вы описываете уже прошлое, а не стратегию.
Соберите данные именно этого контракта
Нужны свечи бессрочного контракта, а не спота, и история funding по нему. Если в стратегии есть плечо, добавьте mark price. Типовая ошибка: проверять только монеты, которые торгуются сегодня. Делистинговые контракты выпадают из выборки вместе со своими провалами, и результат выглядит лучше реального.
Отложите часть истории
Отрежьте последний кусок данных, например последнюю четверть периода (учебная пропорция). Не открывайте его до конца подбора. Типовая ошибка: «одним глазом» посмотреть на отложенный период, а потом подправить параметры так, чтобы и он выглядел прилично.
Прогоните тест с полными расходами
Комиссия считается от номинала каждого исполнения по вашей ставке. Funding берётся по фактической истории, к рыночным выходам добавляется проскальзывание. Итог записывайте в USDT. Типовая ошибка: оценивать доходность в процентах к марже. Плечо раздувает эти проценты, хотя денежный результат при том же номинале не меняется.
Проверьте, как сделки исполнялись внутри свечи
Если сигнал появляется на закрытии свечи, вход возможен не раньше следующей. Если стоп и цель задеты одной свечой, засчитывайте худший вариант или смотрите младший таймфрейм. Типовая ошибка: вход по цене закрытия той же свечи, которая дала сигнал. Это заглядывание в будущее (lookahead).
Откройте отложенный период и устройте стресс
Сделайте один прогон зафиксированных правил на новых данных. Затем повторите те же правила с удвоенными расходами и соседними параметрами. Типовая ошибка: перебрать несколько вариантов на отложенном куске и оставить лучший. После этого он перестаёт быть отложенным.
Запустите forward-test
Сначала демо или наблюдение без сделок, затем минимальная сумма. Каждую сделку сверяйте с тем, что дал бы бэктест на тех же свечах. Типовая ошибка: менять правила после двух-трёх убытков подряд, не дождавшись осмысленного числа сделок.
Данные и правила: что значит «воспроизводимо»
Первый источник искажений — несовпадение инструмента. Перпетуал и спот расходятся на величину премии. У срочного фьючерса есть базис и экспирация. У инверсного контракта (COIN-M) результат считается в монете и по другой формуле, так что линейный расчёт туда не переносится. Тест на одном инструменте ничего не говорит о другом.
Funding нельзя заложить одной средней ставкой. На Binance расчёт по умолчанию идёт каждые 8 часов, у части контрактов каждые 4 часа. Когда ставка упирается в лимит, интервал может сократиться до часа. На Hyperliquid funding считается каждый час. Интервал funding указан в спецификации контракта и в истории ставок: сохраняйте его вместе с каждой ставкой.
Одна и та же ставка при разном интервале даёт разную сумму за сутки.
С TradFi-перпетуалами тонкостей больше. Перпетуалы на акции во фьючерсах Binance появились 6 октября 2026 года. Собственной истории у них считанные дни. Котировки самой акции можно подставить вместо неё только с оговоркой. Контракт торгуется и в выходные, когда фондовая биржа закрыта, и за эти два дня цена может уйти туда, где у акции истории просто нет. Ещё у equity-перпетуалов Binance предусмотрена дивидендная корректировка. Тест, который её не учитывает, искажает результат вокруг дат дивидендов.
И последнее про данные. Если стратегия использует плечо, ликвидацию проверяют по mark price, а не по свечам последних сделок. Короткий прокол по last price мог не задеть позицию, а движение mark price могло её закрыть. Как это устроено, разобрано в статье о ликвидации.
Тестируйте именно тот контракт, которым будете торговать, и сохраняйте интервал funding вместе с каждой ставкой. При торговле с плечом ликвидацию проверяйте по mark price.
Комиссии, funding и исполнение на одной сделке
Расходы решают судьбу стратегии сильнее, чем кажется по одной сделке. Сравним две версии одних правил: свинговую с целью 1,5% и удержанием около суток и внутридневную с целью 0,3%. Комиссия тейкера 0,05% соответствует базовому уровню USDⓈ-M на Binance. Свою ставку сверьте в профиле. Проскальзывание и ставка funding здесь учебные.
| Статья, USDT | Цель 1,5%, держим сутки | Цель 0,3%, внутри дня |
|---|---|---|
| Валовой результат лонга | +4,50 | +0,90 |
| Комиссии тейкера 0,05% на входе и выходе | −0,30 | −0,30 |
| Проскальзывание 0,02% на входе и выходе | −0,12 | −0,12 |
| Funding: три расчёта по 0,01% | −0,09 | 0, расчёт не застали |
| Чистый итог при движении в вашу сторону | +3,99 | +0,48 |
| Чистый итог при таком же движении против | −5,01 | −1,32 |
Без расходов обе версии безубыточны при 50% прибыльных сделок. С расходами свинговой версии нужно уже около 56% (5,01 ÷ 9,00). Внутридневной нужно около 73% (1,32 ÷ 1,80): расходы забрали почти половину её валовой цели, а каждый убыток стал почти втрое тяжелее прибыли. Бэктест без издержек показал бы обе версии одинаково привлекательными. На деле они очень разные.
Заменить рыночные входы на лимитные ради ставки мейкера можно. Но тогда тест должен моделировать и неисполненные заявки. Цена коснулась вашего лимита, а ордер при этом мог не исполниться: перед ним в стакане стояла очередь других заявок по той же цене. Подробнее о цене исполнения — в материале о проскальзывании.
Чем короче цель сделки, тем сильнее расходы сдвигают порог безубыточности, поэтому тест без издержек нельзя использовать для оценки. Лимитные входы требуют моделировать и неисполненные заявки.
Отложенный период и стресс-сценарии
Подбор параметров всегда немного подгоняет правила под историю. Отложенный период показывает, сколько осталось от результата на данных, которых правила не видели. Заметное ухудшение нормально. А вот смена знака результата означает, что на подборе вы нашли шум.
Проверка соседних параметров отвечает на тот же вопрос с другой стороны. Допустим, стоп 1,5% даёт хороший итог, а стопы 1,4% и 1,6% дают убыток. Значит, вы попали на случайный пик. Устойчивая стратегия ведёт себя иначе. Похожий результат держится на целом плато соседних значений, и небольшая неточность в настройке не превращает прибыль в убыток.
- Удвойте комиссии и проскальзывание: результат должен остаться выше нуля.
- Утройте проскальзывание на стоп-выходах: стоп-маркет в резком движении исполняется хуже рынка.
- Уберите пять лучших сделок: если без них итог отрицательный, стратегия держится на редкой удаче.
- Разделите историю на рост, падение и боковик и посмотрите каждый отрезок отдельно.
- Для позиций, которые держатся днями, подставьте период с высоким funding против вашей стороны.
Разбивка по типам рынка подробно описана в статье о режимах рынка. Одно разделение на «подбор» и «проверку» — минимальный вариант. Надёжнее повторять его скользящими окнами, шаг за шагом сдвигая вперёд по истории оба отрезка. Этому посвящена walk-forward-проверка.
Результат на отложенном периоде может ухудшиться, но не должен менять знак. Стратегия должна остаться в плюсе при удвоенных расходах и после исключения пяти лучших сделок.
Что дополнительно проверяет forward-test
Бэктест видит
- Историю цен и funding
- Правила в идеальном исполнении
- Расходы по заданным вами ставкам
- Сколько сделок дали бы правила
Forward-test добавляет
- Реальные исполнения, частичные заполнения и очередь в стакане
- Задержку между сигналом и ордером
- Минимальный ордер и округление количества по спецификации
- Вашу реакцию на серию убытков
В нашем примере 300 USDT по 58 000 дают 0,00517 BTC. Биржа округлит количество до шага контракта, и фактический номинал будет немного другим. Минимальная позиция по BTCUSDT на Binance — 0,001 BTC, по нашей цене это 58 USDT номинала. Такие детали всплывают только при реальном ордере.
Как вести наблюдение без денег, описано в статье о проверке бота в демо. Демо проверяет механику, но не исполнение и не нервы. Поэтому за ним следует этап с минимальной суммой.
Как понять, что проверка пройдена
Проверку можно считать пройденной при нескольких условиях. Чистый результат в USDT положительный после всех расходов. Он не держится на паре сделок. Отложенный период и стресс не меняют знак. Максимальная просадка в деньгах укладывается в то, что вы готовы пережить. Число сделок тоже имеет значение: на двадцати сделках случай может нарисовать любую картину.
Какие показатели смотреть и как их читать, разобрано в статье об оценке серии сделок.
Forward-test пройден, когда расхождение с бэктестом на тех же свечах объяснимо. Обычно его составляют проскальзывание, округление количества и пропущенные лимитные входы. Необъяснимая разница — повод искать ошибку, а не продолжать.
Проверка пройдена, если чистый результат в USDT положителен после всех расходов, не держится на паре сделок, выдерживает стресс, а просадка вам по силам. Расхождение forward-test с бэктестом должно иметь объяснение.
Если результат не выдержал проверки
Если стратегию съели расходы, честных путей два. Можно сделать сделки реже и крупнее по ходу цены. Можно перейти на лимитные входы, но тогда тест должен учитывать неисполненные заявки. Подбирать ставку комиссии, при которой всё сходится, бессмысленно.
Если провалился отложенный период, не перенастраивайте правила на нём же. Вернитесь к гипотезе: почему она должна работать, на каком рынке, при каком условии. Потом проверьте новую версию на данных, которых ещё не видели.
Если вживую результат расходится с бэктестом, разделите разницу на три части: исполнение, данные и собственные отступления от правил. Журнал сделок с отметкой «по правилам / не по правилам» отвечает на это быстрее всего.
Не подгоняйте ставку комиссии и не перенастраивайте правила на отложенном периоде. Вернитесь к гипотезе и проверьте новую версию на данных, которых она ещё не видела.
Почему хороший бэктест расходится с реальной торговлей?
Чаще всего причин четыре: расходы занижены или не учтены, в правилах есть заглядывание в будущее, параметры подогнаны под историю, а реальное исполнение хуже идеального. Пятая причина — отступления от правил, которых в тесте не бывает. Сверка каждой живой сделки с тестовой показывает, какая из них ваша.
Как проверить на истории funding carry?
Нужна история funding именно этого контракта с интервалами. Ещё нужны цены спота и перпетуала на моменты входа и выхода, потому что две ноги исполняются не одновременно. Учитывайте комиссии обеих ног и периоды, когда ставка меняла знак. Ликвидность стакана на ваш объём по истории свечей не проверить, это задача forward-test. Сама стратегия разобрана в статье о funding carry.
Сколько истории нужно для бэктеста?
Универсального числа нет. Ориентируйтесь на то, чтобы история включала рост, падение и боковик и давала достаточно сделок для вашей частоты. У новых контрактов собственной истории может не хватать. Тогда тест на близком инструменте даёт только грубую оценку.
Можно ли оценивать бэктест по ROE?
Лучше не надо. ROE считается к марже, и при более высоком плече тот же денежный результат выглядит крупнее. Сравнивайте варианты по чистому результату в USDT и просадке в деньгах при одинаковом номинале или одинаковом риске на сделку.
Источники и проверка
Binance: Introduction to Futures Funding RatesBinance: Equity Perpetual Futures — Dividend AdjustmentHyperliquid: FundingУсловия площадок проверены 17 октября 2026 г. Они меняются — сверяйтесь со спецификацией контракта в своём аккаунте.
