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

процесс оценки ПО для бэктеста криптовалютКонтролируемое сравнение инструментов бэктеста, не зависящее от поставщика, фиксирует спецификацию исследования, нормализует входные данные, проверяет модель времени и исполнения каждого движка, сверяет журнал сделок и сохраняет версии и ограничения. Совпадение допущений не подтверждает исполнение в реальной торговле.СРАВНИВАЙТЕ МОДЕЛЬ, А НЕ МАРКЕТИНГОВУЮ КРИВУЮ01 · Зафиксировать спецификациюрынок · правило · датысохранить версию02 · Сопоставить входные данныеUTC · свечи · фандингзафиксировать пропуски03 · Проверить движоксигнал · ордер · исполнениеиздержки · неоднозначность04 · Сверитьсделка за сделкойобъяснить расхождения05 · Сохранить доказательстважурнал · отпечаткиограничения · следующий тестСравнивайте итоговые метрики только после того, как объяснено каждое существенное расхождение.Историческое моделирование не гарантирует исполнение на площадке или будущие результаты
Контролируемое сравнение инструментов бэктеста, не зависящее от поставщика, фиксирует спецификацию исследования, нормализует входные данные, проверяет модель времени и исполнения каждого движка, сверяет журнал сделок и сохраняет версии и ограничения. Совпадение допущений не подтверждает исполнение в реальной торговле. ?????????????????? ?????????????????????? ?? ???? ???????????????? ?????????????? ?????????????????? ??????????????

Начните с контролируемого набора тестов

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

Область Вопрос для проверки Какие данные сохранить
Данные Можно ли определить поставщика, тип рынка, отметки времени, часовой пояс, пропуски и синтетические строки? Источник, дата получения, охват, необработанный экспорт или отпечаток
Момент срабатывания сигнала Оценивается ли правило на информации, доступной в тот момент? Когда его ордер может впервые исполниться? Отметка времени сигнала, соглашение о баре, отметка времени входа
Ордера Что происходит при гэпе, частичном исполнении, устаревшей цене или баре, пересекающем и стоп, и цель? События по ордерам, модель исполнения, правило для неоднозначного бара
Затраты и контракт Явно ли заданы уровень комиссии, спред, проскальзывание, расчёт фандинга, размер тика, маржа и допущения о ликвидации? Конфигурация и реестр затрат; отмечайте неизвестные пункты как не смоделированные
Воспроизводимость Можно ли снова запустить и проверить точную стратегию, данные и версию движка? Версия стратегии, отпечаток входных данных, настройки, реестр сделок

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

Используйте четыре теста, которые могут не пройти

  1. Проверка момента срабатывания: создайте короткую последовательность свечей, которую можно проверить вручную. Зафиксируйте, когда сигнал становится известен и какую следующую цену использует движок. Добавьте гэп, чтобы увидеть, исполняется ли стоп на своём уровне или по худшей доступной цене в рамках выбранной модели.
  2. Проверка неоднозначности: включите бар, у которого и максимум, и минимум пересекают и стоп, и цель. Сам бар OHLC не показывает, что было первым. Полезный инструмент раскрывает своё правило очерёдности или помечает результат как неоднозначный; он не должен молча выдавать один путь за наблюдавшийся факт.
  3. Проверка на заглядывание в будущее: зафиксируйте запуск, затем добавьте более поздние свечи. Более ранние события сигналов и ордеров не должны смещаться только из-за добавления будущих строк; позиция, всё ещё открытая на старом конце выборки, может позже получить выход. Провал теста указывает на заглядывание в будущее, пересмотренные данные или правило с состоянием, которое требует изучения.
  4. Проверка повторного запуска и затрат: повторите тот же зафиксированный ввод, затем меняйте по одному допущению за раз. Убедитесь, что запуск на тех же входных данных воспроизводим и что добавленные комиссии, фандинг или проскальзывание попадают в реестр один раз. Сохраняйте оба запуска, а не только более привлекательный.

Проведите небольшой набор опровергающих тестов

Используйте несколько строк, где вы уже знаете, какая информация доступна и что движок обязан раскрыть. Цель — выявить допущения до того, как тратить время на масштабный поиск стратегий.

  1. Сигнал по закрытию: сделайте так, чтобы сигнал зависел от финального закрытия свечи. Зафиксируйте, когда это закрытие становится известно и какое первое смоделированное исполнение разрешает движок. Более раннее исполнение требует явного альтернативного механизма данных или ордеров; пометка на свече сама по себе не доказывает исполнение.
  2. Гэп через стоп: поставьте стоп на $95 и сделайте так, чтобы следующая наблюдённая цена открылась на $92. Спросите, может ли модель исполнить на уровне стопа, по следующей доступной цене или по другому заявленному правилу. Тест пройден, когда выбранное поведение видно и согласуется с задокументированной моделью ордеров, а не когда все инструменты показывают одно и то же число.
  3. Стоп и цель в одном баре: разместите стоп и цель внутри диапазона максимума-минимума свечи. OHLC сам по себе не показывает, какая цена была первой. Инструмент должен раскрыть предполагаемую последовательность, использовать более детальные данные, если они доступны, или пометить результат как неоднозначный.
  4. Пропущенный фандинг (carry): удалите наблюдения фандинга за один интервал. Проверьте, сохраняет ли запуск статус «неизвестно», исключает ли пропущенный денежный поток с предупреждением или применяет раскрытый запасной вариант. Молчаливое превращение пропущенных данных в нулевой платёж меняет сам вопрос.
  5. Точный повторный запуск: повторите запуск с теми же сохранёнными данными, правилом, версией движка и настройками. Сравните события сделок и итоги реестра. Затем добавьте более поздние бары и убедитесь, что более ранние закрытые события не меняются; позиция, открытая на исходной границе выборки, может получить более поздний выход.
пять небольших тестов для проверки допущений в софте для бэктестаПять контролируемых тестов проверяют тайминг сигнала на закрытии, гэп через стоп, неоднозначную свечу со стопом и целью, отсутствующий фандинг и точные повторные прогоны с более поздними барами. Ожидаемый результат — видимое, задокументированное поведение, а не общая оценка или гарантия исполнения в реальной торговле.ПЯТЬ НЕБОЛЬШИХ ТЕСТОВ, ДЕЛАЮЩИХ СКРЫТЫЕ ДОПУЩЕНИЯ ВИДИМЫМИ01 · Сигнал на закрытииКогда известен?Первое смоделированное исполнение?Нет более ранних данных02 · Гэп через стопСтоп $95Следующее открытие $92Указать правило исполнения03 · Задеты оба уровняМаксимум пробивает цельМинимум пробивает стопПоказать ограничение последовательности04 · Отсутствующий фандингФандинг отсутствуетНеизвестное остаётся видимымНикогда не молчаливый ноль05 · Повторный прогонЗафиксировать версииСравнить событияСохранить обаПрохождение означает, что поведение модели поддаётся проверке и соответствует исследовательскому вопросу
Пять контролируемых тестов проверяют тайминг сигнала на закрытии, гэп через стоп, неоднозначную свечу со стопом и целью, отсутствующий фандинг и точные повторные прогоны с более поздними барами. Ожидаемый результат — видимое, задокументированное поведение, а не общая оценка или гарантия исполнения в реальной торговле. ?????????????????? ?????????????????????? ?? ???? ???????????????? ?????????????? ?????????????????? ??????????????

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

Моделирование ордеров — это выбор ПО, а не универсальное свойство под названием «реалистичность». Текущая документация TradingView по Pine Script v6 описывает эмулятор брокера, который исполняет по данным графика и предполагает внутрибарный путь цены на исторических барах; его Bar Magnifier может использовать бары младшего таймфрейма, где они доступны. Текущая документация QuantConnect по моделям исполнения говорит, что встроенные модели исполнения в бэктесте предполагают полное исполнение, и описывает поведение при устаревшей цене. Это примеры для конкретных платформ, а не рейтинг. Они показывают, почему стоит читать модель для именно того продукта, версии и настроек, которые рассматриваются.

Сравните доказательства, затем сравните баллы

Если два инструмента расходятся, сравните первую различающуюся строку в реестре сделок: время сигнала, время ордера, цену исполнения, количество, комиссии, фандинг или причину выхода. Проверьте допущения о данных и исполнении, прежде чем смотреть на итоговую доходность. Одинаковые входные данные не требуют идентичных результатов, когда движки реализуют разные правила; цель — объяснить различие и решить, подходит ли каждая модель для поставленного вопроса.

как проследить расхождение между двумя движками бэктестаКонтролируемое сравнение фиксирует одинаковые версии данных и правил, сопоставляет оба журнала сделок, находит первое расходящееся событие и проверяет соответствующее допущение о данных, тайминге, исполнении или издержках, прежде чем зафиксировать, какая модель отвечает исследовательскому вопросу. Разные результаты — это не рейтинг продуктов и не доказательство исполнения в реальной торговле.КОГДА ДВА БЭКТЕСТА РАСХОДЯТСЯ, ПРОСЛЕДИТЕ ПЕРВОЕ РАСХОЖДЕНИЕ01 · Зафиксировать входные данныете же свечи + правилоте же даты + издержкисохранить версии02 · Сопоставить журналыдвижок A · событиядвижок B · событиясохранить оба результата03 · Проследить строкусигнал · ордер · исполнениеразмер · комиссия · выходнайти первое расхождение04 · Объяснить модельданные · тайминг · исполнениеиздержки · ограничениясоответствие вопросуОбъяснённое расхождение моделей полезнее, чем таблица лидеров по доходности из заголовков
Контролируемое сравнение фиксирует одинаковые версии данных и правил, сопоставляет оба журнала сделок, находит первое расходящееся событие и проверяет соответствующее допущение о данных, тайминге, исполнении или издержках, прежде чем зафиксировать, какая модель отвечает исследовательскому вопросу. Разные результаты — это не рейтинг продуктов и не доказательство исполнения в реальной торговле. ?????????????????? ?????????????????????? ?? ???? ???????????????? ?????????????? ?????????????????? ??????????????

Отложенный период помогает только в том случае, если решения, принятые после его просмотра, записаны. Постоянная настройка на одних и тех же «нетронутых» данных превращает их в ещё одну исследовательскую выборку. Работа Probability of Backtest Overfitting обсуждает, почему простой отложенный период может не уловить повторяющийся отбор стратегий. Ведите журнал изменений как для отброшенных, так и для сохранённых вариантов; не считайте самый сильный запуск ПО независимым доказательством.

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

Движок SuperQuant выполняет бэктесты раз в час, а отдельный процесс демо-торговли выполняется вручную; встроенные примеры историй синтетические. Его расчёты исполнения и маржи — упрощённые модели, они не сертифицированы биржей и не отправляют реальные ордера. Эти границы описывают данный продукт, а не заявляют о его превосходстве. Используйте руководство по бэктесту, руководство по затратам и руководство по качеству данных, чтобы изучить связанные допущения. Это руководство носит образовательный характер и не является продвижением продукта или инвестиционной рекомендацией.