Бэктест стратегии: данные, расходы и порядок событий
Высокая доля прибыльных сделок на истории сама по себе не устанавливает преимущество. Тест на исторических данных проверяет явные правила на определенном наборе данных и при заданной модели исполнения. Даже тщательная проверка не гарантирует будущую доходность.
Что устанавливает исторический тест
Положительное историческое математическое ожидание относится к проверенной выборке. Оно может отражать случайность, выбор удачного варианта или подгонку. До более широкого вывода оцените отдельные данные, расходы и устойчивость. Полезен и отрицательный результат: он может выявить противоречие в правилах. Общий контекст — поиск торгового преимущества (на английском) и раздел практической работы.
Запишите правила и время доступности информации
Зафиксируйте инструмент, период свечи, входные данные, момент сигнала, порядок отправки заявки, выход, размер позиции и обработку отсутствующих данных, уже открытой позиции и нехватки обеспечения. В условном дневном правиле закрытие завершенной свечи сравнивается с максимумом предыдущей; заявку отправляют только после того, как закрытие стало известно. Использование этого окончательного закрытия для входа по более ранней цене открытия той же свечи вносит информацию из будущего.
Набор условных настроек EMA50/EMA200, RSI14 ниже 70, средняя 20, стоп 1.5ATR(14), цель 2.5ATR и риск 1% еще не определяет полную систему. Это произвольно выбранные параметры, не рекомендация. Нужно однозначно задать, что значит касание средней, какая свеча уже закрыта, по какой доступной цене подается и исполняется заявка и как рассчитывается допустимый объем. Настройки индикатора не гарантируют сделку. Перерисовывающиеся исторические значения проверяйте по версии алгоритма и времени их фактической доступности; обзор методов есть в разделе технического анализа.
Данные должны соответствовать инструменту и правилам
Фьючерсы на валюту, внебиржевой спот и CFD — разные контракты. Централизованные фьючерсные данные не становятся автоматически подходящей заменой для розничной спот-стратегии. Запишите провайдера, продукт, сторону котировки, часовой пояс, пропуски и версию данных. Для набора инструментов сохраните доступный на тот момент состав; для макроданных — тогдашнюю публикацию, а не поздний пересмотр.
Универсального порога статистической значимости в 100 сделок нет. Требуемые доказательства зависят от разброса и зависимости результатов, размера эффекта, числа опробованных идей и охвата режимов. 100 зависимых наблюдений не равны 100 независимым. Ни 300 сделок, ни пять лет для дневной стратегии, два для внутридневной или год тиков для скальпинга сами по себе не подтверждают преимущество. Укажите неопределенность и ограничения выборки. Добавление инструментов меняет проверяемую гипотезу, а не только счетчик.
В MT5 название режима реальных тиков не доказывает происхождение каждого тика: для минуты с имеющейся минутной свечой, но без тиков, тестер может сгенерировать тики. Документация MQL5 описывает и проверку согласованности с минутными барами. Сверяйте конкретные данные и журнал. OHLC не сообщает, был ли первым стоп или цель внутри свечи. Выбирайте инструмент тестирования по моделируемым правилам и данным, а не по неизменной цене программы или универсальному рейтингу платформ.
Согласуйте цены до учета спреда
Два способа дают один результат
Полностью вымышленная покупка одной единицы объема: вход Bid 100/Ask 102, выход Bid 103/Ask 105. Точное исполнение по выбранным сторонам; без комиссии, финансирования и проскальзывания. Это не текущие валютные котировки.
Результат выбранных исполнений: 103−102=+1. Середины котировок равны 101 и 104; их изменение+3. Вход на 1 выше середины, выход на 1 ниже: 3−1−1=+1. Полные спреды на входе и выходе равны 2. Вычитание обоих из изменения середин дает 3−2−2=−1 и противоречит заданным исполнениям. Вычитать еще 2 из 103−102 — другой вариант повторного учета. Стороны Bid и Ask (на английском) отличаются от цены построения графика; это разъясняет документация MetaQuotes. Сначала установите происхождение каждой цены.
| Этап | Расчет | Граница вывода |
|---|---|---|
| Вход | Bid 100 / Ask 102 | Середина 101 |
| Выход | Bid 103 / Ask 105 | Середина 104 |
| Фактические выбранные стороны | 103 − 102 = +1 | Спред уже учтен |
| От середин к тем же исполнениям | 104 − 101 − 1 − 1 = +1 | Два полуспреда по 1 |
| Ошибочный повторный учет | 3 − 2 − 2 = −1 | Не другой допустимый результат |
Расходы: учет без повторного вычитания
В результате между Ask входа и Bid выхода спред уже учтен. Отдельно добавляются комиссии (на английском), финансирование и явно заданные отличия исполнения. Условный спред 0.8 пипса составляет 0.4% цели 200 пипсов и 16% цели 5 пипсов. Это доли расстояния до цели, не доли преимущества стратегии и не оценка реальной доходности.
В отдельной вымышленной выборке 50 закрытых сделок дают 30 прибылей по 40 PLN и 20 убытков по 50 PLN до расходов: 1 200−1 000=200 PLN. Полный расход каждой закрытой сделки, включая убыточную, одинаков. В таблице меняется только этот расход. Коэффициент прибыльности (profit factor) здесь — сумма положительных чистых результатов, деленная на модуль суммы отрицательных.
| Расход на сделку | Чистый итог | Среднее на сделку | Коэффициент прибыльности |
|---|---|---|---|
| 0 PLN | 30 × 40 − 20 × 50 = 200 PLN | 4 PLN | 1.20 |
| 2 PLN | 30 × 38 − 20 × 52 = 100 PLN | 2 PLN | 1 140 ÷ 1 040 ≈ 1.10 |
| 4 PLN | 30 × 36 − 20 × 54 = 0 PLN | 0 PLN | 1.00 |
При расходе 2 PLN каждая прибыль становится 38, каждый убыток 52 PLN. Отношение суммы положительных результатов к модулю отрицательных равно 1 140/1 040≈1.10. При расходе 4 PLN обе суммы равны 1 080 PLN. Это арифметика выбранных условий, не подтверждение наблюдаемой стратегии. Проверяйте правдоподобные изменения расходов и исполнений. Правило «прибыль должна превышать двойной расход» — выбранный фильтр, не универсальный запас безопасности; потеря 20% валовой прибыли на расходах тоже не является общим критерием отказа.
Отбор вариантов и данные, недоступные при обучении
Выбор лучшего из множества параметров, инструментов и разбиений может подстроить модель под особенности истории. Записывайте все попытки, включая отклоненные идеи вне оптимизатора. Исследование Bailey и соавторов разбирает множественный отбор и вероятность подгонки; обычное выделение отдельной части истории само по себе не устраняет все ошибки отбора. Ограничение двумя параметрами не контролирует выбор, сделанный в других местах.
Зафиксируйте правила и расходы до проверки. Разбиение 70/30 — один возможный проект, не обязательная пропорция. Отдельный период нельзя использовать для настройки после просмотра результата и продолжать считать независимой проверкой. Слабый результат может отражать смену условий или случайный разброс, а не только подгонку. Проверка со скользящими окнами (на английском) также требует учета всех повторных решений.
В условной модели итог решения в момент t становится известен в t + 3. Первый тест начинается в момент 10; обучение должно завершиться раньше. Из решений в моменты 1–9 допустимы только 1–6: итог решения 6 известен в момент 9, а итоги решений 7–9 — в моменты 10–12. Эти поздние исходы нельзя использовать для данного обучения. Ранние цены для расчета индикатора теста могут оставаться необходимыми. Такое исключение устраняет указанное пересечение меток, но не все возможные утечки.
| Решение | Когда известен исход | Можно ли использовать |
|---|---|---|
| Решение t6 | Метка известна в t9 | Доступна до начала t10 |
| Решение t7 | Метка известна в t10 | Недоступна для обучения, законченного до t10 |
| Решения t8–t9 | Метки известны в t11–t12 | Исключены из указанного обучения |
| Решения t1–t6 | Всего 6 доступных исходов | Ранние цены для индикатора — отдельный вопрос |
Не выводите один показатель из несвязанных допущений
Условная вероятность выигрыша 0.54, средняя прибыль 2.3R и средний убыток 1R дают валовое ожидание 0.54×2.3−0.46=0.782R. Коэффициент прибыльности при этих явно заданных средних равен (0.54×2.3)/(0.46×1)≈2.70. Из этих трех предпосылок нельзя получить максимальную просадку или общую доходность.
Отдельно назначенная доходность 87% ровно за пять лет соответствует (1.87^(1/5)−1)×100≈13.34% в год. Это другой условный расчет, не следствие частоты выигрышей и не реальный отчет 2019–2024 годов. Воспроизведение отдельных сделок важнее красивого заголовка. Практические настройки разбираются в руководстве по тестированию в MT4 и MT5; моделирование последовательностей (на английском) требует собственных предпосылок и не дает гарантии будущей кривой капитала.
Одинаковая свеча, разные первые исполнения
Новый вымышленный пример: одна свеча имеет цену открытия 100, максимум 110, минимум 90 и цену закрытия 105 (OHLC). Покупка одной единицы уже исполнена по 100; стоп 95 и цель 108 активны после входа. Для этой модели предполагаем непрерывный путь без разрывов и точное исполнение первого достигнутого уровня, без спреда и проскальзывания. Путь 100→110→90→105 сначала достигает 108: позиция закрывается с +8 единицами результата. Путь 100→90→110→105 сначала достигает 95: результат −5. Обе траектории имеют один и тот же OHLC. При отдельном полном расходе 1 на закрытую сделку чистые результаты составляют +7 и −6. Позднейшее касание другого уровня не открывает уже закрытую позицию заново. Сам OHLC не выбирает одну из траекторий и не назначает им вероятности 50/50. Нужна заранее описанная политика неоднозначных свечей либо подходящая последовательность котировок; удобный прибыльный порядок нельзя подставлять после просмотра результата.
| Траектория | Первое закрытие | Результат одной единицы |
|---|---|---|
| 100→110→90→105 | Сначала цель 108 | +8 до расходов; +7 после расхода 1 |
| 100→90→110→105 | Сначала стоп 95 | −5 до расходов; −6 после расхода 1 |
| Обе последовательности | O100/H110/L90/C105 | Одинаковые агрегированные данные |
| Среднее двух исходов | Не присваиваем вероятности | OHLC не подтверждает равные шансы |
Что записать перед следующим тестом
- Сохраните текстовую версию правил, момент доступности входных данных, порядок заявок, расчет объема и действия при неопределенных входах.
- Независимо воспроизведите сигналы и разберите различия: прибыль, убыток, пропущенный сигнал и неоднозначную свечу.
- До настройки задайте период и хронологическую проверку. Продолжительность выбирайте под задачу и данные; универсальных пяти или двух лет нет.
- Укажите стороны котировки, комиссии, финансирование и допущения проскальзывания. Проверьте чувствительность, не вычитая спред повторно.
- Сообщите число сделок, зависимость, разброс и неопределенность, а также все опробованные варианты. Сравните работу на демо с зафиксированной моделью и расследуйте расхождения. Даже три месяца наблюдения не подтверждают готовность к реальным деньгам.
Положительный тест не обязывает переходить на реальный счет и не дает права на будущую прибыль.
Календарь реальных исходных публикаций
Связанный набор за 2016–2025 годы содержит 2 560 публикаций EUR/USD и 49 будних дат без публикации по календарю TARGET. Счетчики относятся к указанному снимку справочной статистики, а не к тикам для исполнения. Отсутствие запланированной публикации не равно повреждению данных: календарь курсов ЕЦБ, данные, график и код.
Проверьте понимание
Покупка исполнена точно по Ask 102, выход — по Bid 103. Других расходов нет. Каков результат одной единицы объема?
Ответ и объяснения без JavaScript
Правильный ответ: +1 единица результата; спред уже учтен в ценах исполнения.
+1 единица результата; спред уже учтен в ценах исполнения.
103 − 102 = 1. Не вычитайте повторно спред, уже содержащийся в выбранных сторонах котировки.
−1: из разности нужно еще вычесть спред 2.
103 − 102 уже использует Ask и Bid. Еще одно вычитание 2 учитывает ту же составляющую повторно.
+3: середины котировок выросли со 101 до 104.
+3 — изменение середины. Для выбранных исполнений Ask/Bid нужно вычесть полуспреды 1 и 1 и получить +1.
Вопросы и ответы
Что такое подгонка стратегии под историю?
Адаптация к особенностям использованной выборки, которые не сохраняются на новых наблюдениях. Одна частота выигрышей не устанавливает подгонку: нужны распределение прибылей и убытков, расходы, история отбора и действительно отдельная проверка. Изменения после просмотра теста превращают его в данные разработки.
Как выбрать программу тестирования?
По способности представить нужные правила, продукт, данные и исполнение. MT5 поддерживает советники, несколько символов и разные режимы тиков. Сохраните настройки и проверьте историю. Ручное воспроизведение и программный тест решают разные задачи; ни один инструмент сам не исключает будущую информацию и нереалистичные исполнения.
Сколько данных достаточно?
Универсального числа лет или сделок нет. Важны зависимость, разброс, охват условий и количество опробованных идей. Больше инструментов может изменить гипотезу. Укажите ограничения и используйте проверку, исходы которой не были известны при разработке.
Какие показатели можно назвать реалистичными?
Единых диапазонов доли выигрышей, коэффициента прибыльности или просадки для всех стратегий нет. Согласуйте чистые результаты, расходы, экспозицию, капитал открытых позиций и все варианты отбора. В условных 50 сделках рост полного расхода с 0 до 4 PLN снижает итог с 200 до 0; это чувствительность, не проверка реальной системы.
Можно ли определить исход по одной свече OHLC?
Не всегда. В дополнительном примере обе траектории имеют O100/H110/L90/C105, но дают +7 или −6 после выбранного расхода. Сам агрегат не задает порядок касаний и вероятности этих траекторий.
Источники и пределы применения
- MetaTrader 5: тестирование советников
Прочитаны выбранные вводные разделы о тесте с фиксированными параметрами, оптимизации и нескольких инструментах. Поддержка функции не доказывает качество любой истории или прибыльность стратегии.
- MQL5: спред и реальные тики в тестере
Прочитаны разделы об историческом спреде, проверке реальных тиков по минутным барам и замене отсутствующих либо несогласованных тиков. Конкретный набор и журнал требуют отдельной проверки.
- MetaTrader 5: реальные и сгенерированные тики
Прочитан раздел о сторонах Bid/Ask, отличии от Last, спреде и минуте с отсутствующей тиковой историей. Режим не устанавливает точное происхождение каждого тика для любого инструмента.
- Bailey и соавторы: вероятность подгонки исторического теста
Прочитаны аннотация и вводные части страниц 0–3 версии февраля 2015 года о множественном отборе. Полная процедура CSCV здесь не реализована и не представлена как универсальная гарантия.
- BIS: внебиржевой валютный рынок, апрель 2022 года
Прочитаны выбранные разделы о сфере обзора и видах внебиржевых инструментов. Это исторический контекст 2022 года, не текущая статистика, розничная история тиков или одобрение замены CFD фьючерсами.
Учебная методология без инвестиционной рекомендации или универсальных правил доступа к счету. Все торговые цены, вероятности, расходы, настройки и траектории вымышлены. Примеры PLN, R и условных единиц не смешиваются в один отчет. MT5 — описание функций платформы, а не подтверждение доходности; исследовательская статистика относится к указанному снимку и календарю.