Что такое бэктест простыми словами
Главное
бэктест прокручивает прошлые котировки и каждый раз применяет одно и то же правило так, будто будущих свечей ещё нет. Ценность метода не в кривой доходности, а в возможности повторить проверку и увидеть все исходы правила.
TradingView определяет backtesting как воссоздание работы стратегии на исторических данных. Проверяемый объект здесь не название вроде «торговля по тренду», а точная инструкция: когда появляется вход, по какой цене он считается исполненным, где выход, какой размер позиции и когда сделка пропускается.
Если эти правила исполняет программа, это уже часть алгоритмической торговли; бэктест отвечает только за их проверку на выбранной истории.
Представим учебное правило: после закрытия дневной свечи выше максимума предыдущих 20 свечей открыть длинную позицию на следующей доступной цене; выйти по заранее заданному стопу или условию обратного сигнала. Чтобы протестировать его, нужны ещё источник котировок, период истории, способ учёта гэпа, комиссия и проскальзывание. Без них два человека получат разные результаты и оба назовут их «тем же бэктестом».
У бэктеста есть три слоя. Первый - рыночные данные: цена, время, доступный объём и корпоративные корректировки. Второй - логика стратегии. Третий - модель исполнения, которая решает, когда и по какой цене виртуальная заявка могла быть исполнена. Ошибка в любом слое меняет итог.
- 1
Идея
Наблюдение без вывода о доходности
- 2
Правила
Вход, выход, стоп и пропуск
- 3
Данные
Инструмент, таймфрейм и период
- 4
Исполнение
Комиссия, проскальзывание и тип заявки
- 5
Прогон
Все сделки без удаления неудобных случаев
- 6
Проверка
Нетронутый участок и журнал версии
Схема 1. Бэктест начинается до нажатия кнопки «Запустить»: сначала фиксируется проверяемая версия идеи.
Чем бэктест отличается от форвард-теста и демо-счёта
Главное
бэктест смотрит назад, форвард-тест применяет замороженные правила к новым данным в реальном времени, а демо-счёт дополнительно имитирует отправку заявок. Эти этапы отвечают на разные вопросы и не заменяют друг друга.
Исторический прогон удобен скоростью. За несколько минут можно увидеть множество рыночных эпизодов, сравнить периоды и обнаружить очевидную слабость. Но исследователь уже знает, чем закончилась история, и может незаметно использовать это знание при выборе параметров.
Forward test начинается после того, как правила заморожены. TradingView описывает его как воспроизведение стратегии в реальном времени по мере обновления графика. MetaTrader 5 позволяет отделять позднюю часть истории для forward-проверки результатов оптимизации. Общий принцип один: проверочный участок не должен участвовать в выборе параметров.
Демо-счёт проверяет ещё один слой - путь виртуальной заявки через интерфейс и текущий поток котировок. Он помогает увидеть задержки, пропуски и поведение типов ордеров, но не создаёт настоящую очередь заявок и не воспроизводит полностью ликвидность реального рынка. Переход к малому реальному риску, если он вообще планируется, остаётся отдельным решением.
История
Бэктест
Проверяет правила на выбранном прошлом периоде
Новые свечи
Форвард-тест
Параметры заморожены до появления результата
Текущий рынок
Демо-счёт
Проверяет поток виртуальных заявок
После проверки
Решение
Учитывает расхождения, риск и допустимый размер
Схема 2. История, новые данные и демо проверяют разные причины расхождения; один удачный этап не делает остальные лишними.
Из чего состоит корректный бэктест: данные, правила, издержки, исполнение
Главное
корректный бэктест можно воспроизвести по паспорту. В нём записаны версия данных, точные условия стратегии, стоимость сделки и правила виртуального исполнения. Неизвестное значение помечается неизвестным, а не нулём.
Начните с данных. Укажите тикер вместе с площадкой, часовой пояс, таймфрейм, даты начала и конца. Для акций важно, скорректирована ли история на сплиты и дивиденды. Для фьючерсов - как собран непрерывный контракт. Для круглосуточного рынка - у какого поставщика взяты свечи. Один символ у разных источников может иметь отличающиеся экстремумы.
Затем перепишите торговую стратегию в форму, где нет слов «примерно», «сильный» или «красивый». У сигнала должна быть вычислимая граница. Вместо «покупать при сильном росте» запишите «после закрытия выше максимума N предыдущих закрытых свечей». Отдельно задайте выход, стоп, повторный вход, одновременные сигналы, размер позиции и случай, когда данных не хватает.
Торговые издержки обычно состоят не из одной цифры. Комиссия может взиматься на входе и выходе. Спред разделяет цены покупки и продажи. Проскальзывание отражает отличие ожидаемой цены от исполнения. На высокочастотных правилах небольшой расход на сделку способен изменить вывод сильнее, чем новый фильтр.
Модель исполнения решает, что делать внутри свечи. Если в одном баре были задеты и стоп, и цель, одних OHLC-значений недостаточно, чтобы узнать порядок. TradingView использует брокерский эмулятор и позволяет настраивать комиссию, проскальзывание, строгость исполнения лимитной заявки и задержку. Эти настройки не являются косметикой: они определяют, какие сделки существуют в отчёте.
Минимальный паспорт прогона выглядит так:
- Название и версия правила.
- Инструмент, площадка, источник данных и часовой пояс.
- Таймфрейм и точные границы периода.
- Условия входа, выхода, стопа и пропуска.
- Размер позиции и правила повторного входа.
- Комиссия, спред, проскальзывание и тип заявки.
- Момент расчёта: внутри свечи или после её закрытия.
- Версия кода или снимок настроек.
Если хотя бы одно поле меняется, сохраните новую версию. Перезаписывать старый отчёт нельзя: иначе количество испробованных вариантов исчезнет, а риск подгонки станет невидимым.
Как провести бэктест вручную на графике: пошаговый протокол
Главное
ручной тест проводят слева направо, открывая по одной новой свече. До начала фиксируют правила и таблицу, во время прогона записывают каждый сигнал, после - считают итог без удаления неудобных сделок.
Ручная проверка полезна, когда правило ещё нельзя описать кодом или нужно понять его механику. Она медленнее автоматической, зато быстро обнаруживает расплывчатые слова. Если два одинаковых рисунка вы оцениваете по-разному, формализация пока не закончена.
Сначала выберите участок истории и закройте правую часть графика режимом повтора. Не начинайте с места, которое помните как большое движение. Запишите версию правила и все параметры в шапке таблицы. Затем двигайтесь по одной закрытой свече и принимайте решение только по данным слева.
Для каждого сигнала сохраняйте одинаковые поля: дата и время, цена сигнала, предполагаемая цена исполнения, направление, стоп, выход, комиссия, проскальзывание, итог после издержек и максимальное неблагоприятное движение внутри сделки. Отдельная колонка «причина пропуска» защищает от избирательности: отсутствие сделки тоже становится наблюдением.
Порядок ручного прогона:
- Откройте график до неизвестного вам участка и включите воспроизведение по свечам.
- Зафиксируйте инструмент, период, таймфрейм и версию правил.
- На каждой закрытой свече проверьте условия входа в неизменном порядке.
- Если есть сигнал, запишите его до открытия следующей свечи.
- Примените заранее выбранную модель исполнения, комиссию и проскальзывание.
- Доведите сделку до выхода, не двигая стоп задним числом.
- Сохраните и прибыльные, и убыточные, и пропущенные случаи.
- Закончив участок, заблокируйте таблицу от правок и только потом считайте метрики.
Полезная контрольная техника - повторить часть выборки через несколько дней, не глядя в первую таблицу. Если сделки расходятся, причина обычно в неоднозначном правиле. Уточните формулировку и начните новую версию, а не исправляйте отдельные строки старой.
Подойдёт, если
- Понять неоднозначные места торгового правила
- Проверить небольшой набор сигналов по закрытым свечам
- Собрать примеры ошибок и причин пропуска
Не подойдёт, если
- Быстро перебрать десятки параметров и рынков
- Точно восстановить порядок тиков внутри свечи
- Исключить усталость и субъективный выбор человеком
Карточка 1. Ручной тест - инструмент формализации; большой воспроизводимый прогон удобнее передать стратегии или тестеру.
Какие метрики смотреть: сделки, просадка, profit factor, серии
Главное
сначала проверьте полноту выборки и число сделок, затем результат после издержек, максимальную просадку, profit factor и худшую серию. Ни одна метрика в одиночку не показывает устойчивость.
Число сделок - это знаменатель всех остальных выводов. Пять сделок могут дать высокий процент успеха случайно. Универсального «достаточного» числа нет: оно зависит от частоты стратегии, разброса результатов и разнообразия рыночных режимов. Поэтому рядом с числом всегда указывают длительность периода и состав рынка.
Чистый результат считают после комиссии, спреда и проскальзывания. Если часть расходов неизвестна, покажите отдельные сценарии, например базовый и более строгий, а не подставляйте ноль. Разница между ними часто полезнее одной оптимистичной цифры.
Максимальная просадка - наибольшее снижение капитала от локального пика к следующему минимуму. Она показывает не только итоговый убыток, но и путь к нему. Две стратегии с одинаковым конечным результатом могут требовать совершенно разной способности пережить падение.
Profit factor равен сумме прибылей по прибыльным сделкам, делённой на абсолютную сумму убытков. Значение выше единицы означает, что валовая прибыль в этой выборке больше валового убытка, но ничего не гарантирует на новой. Если убыточных сделок нет, деление теряет обычный смысл: вместо красивой бесконечности покажите число сделок и отметьте отсутствие наблюдавшихся убытков.
Худшая серия убыточных сделок помогает оценить режим, в котором правило временно перестаёт работать, и психологическую нагрузку. Средний результат скрывает эту последовательность. Рядом стоит смотреть крупнейшую прибыльную сделку: если она создаёт большую часть итога, устойчивость зависит от редкого события.
Минимальная таблица итогов:
- число всех сигналов, исполненных сделок и пропусков;
- валовая прибыль, валовой убыток и чистый результат после издержек;
- максимальная просадка в деньгах и процентах;
- profit factor с числом сделок рядом;
- доля прибыльных сделок без вывода о будущей вероятности;
- средняя прибыль, средний убыток и их разброс;
- худшая серия убытков;
- вклад крупнейшей сделки в общий результат.
Сравнивайте версии по одному набору данных и одной модели исполнения. Если у версии A комиссия нулевая, а у версии B реальная, ранжирование не имеет смысла. Точно так же нельзя сравнивать дневную стратегию за десять лет с минутной за один спокойный месяц только по profit factor.
Оверфиттинг и другие ошибки, которые делают бэктест бесполезным
Главное
оверфиттинг возникает, когда правило запоминает шум конкретной истории. Чем больше вариантов вы просмотрели и чем свободнее меняли параметры, тем выше шанс найти победителя, который не выдержит новые данные.
Исследование Bailey, Borwein, Lopez de Prado и Zhu формализует проблему выбора лучшей версии после множества бэктестов. Даже если отдельный тест выглядит аккуратно, серия переборов превращает исследование в соревнование за случайно красивый результат. Поэтому журнал должен хранить не только победителя, но и число проверенных вариантов.
Самая заметная ошибка - заглядывание в будущее. Оно появляется, если условие использует максимум ещё не закрытой свечи, берёт окончательный состав индекса для старых лет или исполняет заявку по цене, которая стала известна после сигнала. Менее заметная форма - ручной выбор начала периода сразу перед удачным трендом.
Вторая ошибка - смещение выживших. Тест по сегодняшнему списку активов забывает бумаги и фонды, которые закрылись или были исключены. Итог описывает победителей, известных задним числом. Третья - идеальное исполнение: каждая лимитная заявка считается исполненной по касанию, а комиссия и проскальзывание равны нулю.
Четвёртая ошибка - изменение правил после каждой неудачи. Отдельное изменение допустимо как новая гипотеза, но его нельзя тайно внести в старый отчёт. Заморозьте версию, разделите данные по времени на участок настройки и нетронутую проверку, а после просмотра проверки не возвращайте параметры назад.
Правила и расходы записаны заранее
Параметры выбраны по лучшей кривой
- 1.Одна версия
- 2.Несколько версий в журнале
- 3.Победитель без истории поиска
Схема 3. Опасность создаёт не сам подбор параметров, а скрытый перебор без независимой проверки и учёта всех попыток.
Признаки бесполезного бэктеста:
- правила невозможно повторить по письменному описанию;
- период выбран после просмотра графика;
- сделки удалялись как «нетипичные» после результата;
- использованы будущие или пересчитанные задним числом данные;
- комиссия, спред и проскальзывание не указаны;
- один бар одновременно задевает стоп и цель, но порядок всегда выбирается в пользу стратегии;
- показана только лучшая версия из множества;
- нет отдельного участка проверки;
- отчёт сообщает проценты без числа сделок и периода.
Защита не требует сложной математики. Нужны неизменяемый паспорт версии, журнал всех прогонов, разумная модель расходов, временное разделение данных и отдельный forward-тест. Если результат исчезает при небольшом ухудшении исполнения или на соседнем периоде, это важный ответ, а не повод спрятать тест.
Проверьте правила стратегии до реальной сделки
Midas BackTester превращает заданные условия в исторические сделки TradingView, чтобы оценивать стратегию по полной статистике, а не по нескольким удачным примерам.
- Long и Short условия на выбор
- стопы, цели и фильтры в одной логике
- статистика на доступной истории TradingView
Воспроизводимая проверка той же стратегии в Midas BackTester
Главное
Midas BackTester позволяет перенести формализованные условия в бот-стратегию TradingView и получить сделки на графике, результат, просадку, долю прибыльных сделок, profit factor и кривую капитала. Он ускоряет прогон, но не отменяет качество правил и данных.
Возьмите тот же паспорт, по которому проводили ручную проверку. В инструкции Midas BackTester инструмент описан как бот-стратегия в TradingView: условия Long и Short, выходы, стопы и цели задаются настройками, а расчёт по истории выполняет TradingView. Так ручная идея превращается в повторяемую конфигурацию без переписывания правил для каждой сделки.
Порядок остаётся прежним:
- Сохраните исходную формулировку входа, выхода и пропуска.
- Зафиксируйте инструмент, таймфрейм, период и источник котировок.
- Перенесите правила в условия BackTester и сохраните снимок настроек.
- Задайте доступные параметры комиссии и исполнения в свойствах стратегии TradingView.
- Запустите прогон и экспортируйте таблицу сделок или сохраните отчёт.
- Сверьте несколько случаев с ручным журналом, особенно гэпы и бары, где могли сработать и стоп, и цель.
- Запишите число сделок, чистый результат, максимальную просадку, profit factor и худшую серию.
- Повторите неизменную конфигурацию на нетронутом временном участке.
Если ручной журнал и автоматический отчёт расходятся, не выбирайте более приятный результат. Проверьте момент сигнала, цену исполнения, округление, комиссию, повторные входы и порядок событий внутри свечи. До объяснения расхождения вывод о стратегии откладывается.
Чего бэктест не гарантирует: границы метода
Главное
бэктест не предсказывает будущий режим рынка, ликвидность, гэп или технический сбой. Он снижает неопределённость вокруг конкретного правила, но не превращает исторический результат в обещание.
Исторические данные содержат только реализованный путь. Будущее может дать другую волатильность, структуру участников, комиссии и доступность ликвидности. Стратегия, которая пережила прошлый кризис, не обязана пережить следующий, потому что механизм движения может отличаться.
Эмулятор не знает вашего места в очереди лимитных заявок и полного объёма на каждой цене. На редком рынке виртуальная заявка способна исполниться целиком там, где реальная исполнилась бы частично. Гэп может провести цену через стоп. Сбой связи или площадки вообще не является свойством торгового правила и требует отдельного контроля.
Нельзя переносить процент результата с одного инструмента и периода на капитал пользователя. Размер позиции, валюта счёта, плечо и ограничения брокера меняют риск. Поэтому вывод формулируют ограниченно: «версия 1.3 на данных источника X за период Y при издержках Z показала такой-то результат и прошла/не прошла нетронутый участок».
После бэктеста оставьте параметры неизменными и соберите новые сигналы. Сравнивайте частоту сделок, средний результат, просадку и серии с историческим диапазоном. Если поведение заметно разошлось, остановите интерпретацию и выясните, изменился рынок, данные, код или исполнение.
Подойдёт, если
- Проверить, повторяется ли результат правила на записанных данных
- Увидеть, как комиссия и проскальзывание меняют вывод
- Прогнать правило на участке, который не участвовал в настройке
Не подойдёт, если
- Узнать будущий режим рынка и доступную ликвидность
- Оценить своё место в очереди заявок на реальном объёме
- Учесть гэпы, сбои связи и ограничения конкретного брокера
Карточка 2. Границы метода не отменяют его пользы: бэктест сужает неопределённость вокруг правила, но не вокруг самого рынка.
Связанные правила управления размером позиции и пределом потерь разобраны в материале про риск-менеджмент. Сам по себе хороший отчёт не задаёт допустимый риск. Материал носит образовательный характер и не является индивидуальной инвестиционной рекомендацией.
Источники
- Источники и живые страницы проверены 7 сентября 2026 года. Материал носит образовательный характер и не является индивидуальной инвестиционной рекомендацией. Торговля на финансовых рынках связана с риском потерь.
Частые вопросы
Что такое бэктест торговой стратегии?
Это применение заранее заданных правил входа, выхода и риска к историческим данным. Результат относится только к выбранным данным, настройкам, издержкам и модели исполнения. Он помогает отсеять слабые или неоднозначные идеи, но не гарантирует будущий результат.
Как сделать бэктест стратегии вручную?
Запишите правила и параметры до просмотра результата, скройте будущую часть графика и двигайтесь по одной закрытой свече. Каждый сигнал заносите в таблицу вместе с предполагаемым исполнением, комиссией, выходом и итогом. Не удаляйте убыточные или неудобные случаи.
Сколько сделок нужно для бэктеста?
Универсального числа нет. Оно зависит от частоты правила, разброса сделок и разнообразия рыночных режимов. Всегда показывайте число сделок рядом с метрикой, проверяйте несколько периодов и оставляйте отдельный участок данных, который не участвовал в настройке.
Какие показатели важнее всего?
Базовый набор - число сделок, чистый результат после издержек, максимальная просадка, profit factor, средняя прибыль и убыток, а также худшая серия. Дополнительно проверьте, не создан ли весь итог одной крупной сделкой.
Чем бэктест отличается от форвард-теста?
Бэктест использует уже известную историю. Форвард-тест применяет замороженные правила к новым данным, которые появляются после завершения настройки. Он снижает риск подгонки, но тоже не воспроизводит полностью реальное исполнение.
Как учесть комиссию и проскальзывание?
Задайте комиссию на обе стороны сделки по действующим условиям площадки, а спред и проскальзывание - отдельными параметрами или консервативным сценарием. Если точное значение неизвестно, покажите диапазон. Ноль нельзя подставлять только потому, что данных нет.
Может ли высокий profit factor доказать, что стратегия работает?
Нет. Profit factor описывает отношение валовой прибыли к валовому убытку в конкретной выборке. Его нужно читать вместе с числом сделок, просадкой, периодом, издержками и результатом на нетронутых данных.










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