Бэктестинг и проверка intermediate 13 мин чтения

Как читать отчёт бэктеста MT5: 23 отчёта и что скрывает каждая цифра

Отчёт бэктеста MT5 — это утверждение о конкретном наборе сделок на конкретной истории цен, и обе половины фразы двигают числа. Мы прочитали все 23 отчёта на этом сайте: в 14 из 20, публикующих оба среза, итоговый профит-фактор льстит периоду отбора, один отчёт покрывает лишь 303 из своих 315 сделок, а тот же советник на другом источнике данных ушёл с 1,35 и прохождения на 1,13 и провал.

Опубликовано · Проверено

Отчёт бэктеста MT5 — это утверждение об одном конкретном наборе сделок, полученном на одной конкретной истории цен. Почти любое неверное прочтение начинается с того, что половину этой фразы отбрасывают. Итоговый профит-фактор читают как свойство советника. А он — свойство двух других вещей: совокупности сделок, которую покрыл отчёт, и тиков, которыми кормили тестер.

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

Условия теста
Идентификатор экспериментаEXP-REPORT-READING-001
Родительский экспериментEXP-BACKTEST-RUNBOOK-001
Источникdata/run-manifests/*.jsonresults, ledger_recomputed, shadow_runs
Совокупностьall 23 runs published on mt5depot at the time of derivation
Сборка MT56090 and 6140
МодельEvery tick generated from M1 bars (Model 0) and Every tick based on real ticks (Model 4)
Счёт10,000 USD deposit on all 23 runs
Последняя проверка2026-08-26

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

Подготовка: что отчёт принял на веру раньше, чем напечатал цифру

Блок Settings в шапке отчёта MT5 — не предисловие. Это список допущений, который наследует каждое число под ним, и шесть из них решают, стоит ли вообще читать остальное. Имя брокера и сборка стоят в титульной строке самого отчёта — у нас она читалась как Exness-MT5Trial5 (Build 6090).

Поле блока SettingsЧто оно на самом деле фиксируетЧто записано у нас
Symbol: / Period:Рыночные режимы, выборкой из которых является результат22 прогона начинаются в январе 2019; cairn начинается в июне 2021
Model (генерация тиков)Как получены тики внутри каждого бараModel 0 (сгенерированы из баров M1) в 12 прогонах, Model 4 (реальные тики) в 11
Initial Deposit:Знаменатель для каждого процента на странице10 000 USD во всех 23
SpreadИздержка, снимаемая с каждой стороны сделкиИзмерен ровно в 1 из 23 — остальные унаследовали то, что нёс в себе ряд истории
CommissionИздержка, которую тестер применяет, только если вы её задали0 во всех 23
Inputs:Настройки, которые это произвели, целикомСверены с отчётом на каждом прогоне

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

Две из этих строк заслуживают паузы. Нулевая строка комиссии не означает, что комиссию проигнорировали. Она означает, что на тестируемом символе её не взимали. Это разные утверждения, и какое из них применимо, скажет только запись прогона. И неизмеренный спред — не нулевой спред: в 22 из наших 23 прогонов это поле пусто, потому что рядом с тестом не работал регистратор. Каждая сторона сделки просто взяла тот спред, который нёс в себе ряд M1. Назвать собственное среднее может только tidewell-slack — 19,14 пункта.

Здесь же уместна одна ловушка названий. Поле, которое старые руководства называют качеством моделирования, MT5 печатает как History Quality: — в блоке Results рядом с Bars:, Ticks: и Symbols:. Поиск по отчёту сборки 6090 на “modelling quality” не находит ничего. В наших собственных записях эта цифра присутствует лишь в 2 из 23 манифестов, потому что её сохраняют, когда её назвал исходный отчёт, — это свойство наших записей, а не измерение того, как часто MetaTrader её печатает. Практически это значит, что использовать её как фильтр для чужих отчётов нельзя. Вопрос, лежащий под ней, — источник тиковых данных, и на него ответ есть всегда: спросите, какую историю использовал прогон.

Читаем отчёт, метрика за метрикой

Читайте страницу в этом порядке. Он намеренно не совпадает с тем, в котором её печатает MetaTrader, потому что два самых дешёвых повода отбраковать отчёт стоят у него внизу.

  1. Сначала прочитайте Settings. Модель, Initial Deposit:, спред и комиссию. Каждый процент ниже их наследует, а прогон с неизмеренным спредом — не прогон без спреда.
  2. Прочитайте Total Trades: раньше любого отношения. Отношение и размер выборки под ним — один факт, а не два. Выпишите количество рядом с отношением.
  3. Спросите, какие сделки покрывает итог. Если рядом опубликован список сделок, проверьте, сходится ли его общее количество с Total Trades:. У одного из наших 23 отчётов не сходится.
  4. Читайте Equity Drawdown Maximal:, а не строку баланса, и отмечайте, взяли вы цифру Maximal или Relative, — это отдельные строки.
  5. Найдите историю цен. Какой брокер, какой источник, какой период. Именно это поле сдвинуло вердикт в наших записях; модель тиков — нет.

Вот всё чтение в одной таблице, с теми названиями полей, которые отчёт печатает на самом деле. Столбец «В нашем наборе» — это то, что каждая метрика делала на 23 опубликованных прогонах. Он полезнее учебникового диапазона, потому что измерен на том же типе отчёта, который вы держите перед собой.

Поле отчётаНа какой вопрос отвечаетВ нашем набореТревожный признак
Total Trades:Сколько всего свидетельствот 108 до 4 725 на прогонМеньше ~100; отношение на 20 сделках — это слух
Profit Factor:Валовая прибыль, делённая на валовой убыток (профит-фактор)от 1,22 до 1,59 по всем 23Выше ~2,0 на коротком окне; сначала проверьте Total Trades:
Profit Trades (% of total):Винрейт — форма распределения, а не его знакот 30,80 % до 82,27 %, все прибыльныеПриведён сам по себе, без профит-фактора рядом
Total Net Profit:Сколько выиграно в валюте, до всякого контекстаот 386,05 до 28 687,43 USD на одном и том же депозите 10 000 USDПриведён без Initial Deposit: и без числа лет
Balance Drawdown Maximal:Худший провал по закрытым сделкам (максимальная просадка)от 0,67 % до 18,24 %Приведён при том, что на той же странице стоит строка эквити
Equity Drawdown Maximal:Худший провал с учётом открытых позицийГлубже баланса в 23 случаях из 23Проигнорирован — а ведь на этой цифре живёт ваша маржа
Expected Payoff:Средний результат на сделку, в валютеВ наших манифестах не хранитсяПрочитан как прогноз, а не как среднее
Recovery Factor: / Sharpe Ratio:Доход на единицу боли, двумя способамиВ наших манифестах не хранитсяСравнивается между отчётами с разным числом сделок
History Quality:Способен ли поток тиков разрешить ваш стопУказано в 2 из 23Отсутствует и источник данных неизвестен

Две условности в этом блоке подводят людей раньше, чем начинается любая интерпретация.

Total Trades: и Total Deals: — разные счёта. В MetaTrader 5 полный оборот — это две сделки-deal, вход и выход, поэтому отчёт, показывающий Total Trades: 50, показывает рядом Total Deals: 100, а частичные закрытия добавляют deals, не добавляя trades. Читайте отношения против trades, никогда против deals.

Строк просадки шесть, а не одна. Отчёт печатает Absolute, Maximal и Relative и для баланса, и для эквити. Хуже того, у двух из них деньги и процент меняются местами: Balance Drawdown Maximal: 36.84 (0.37%) ставит валюту первой, а Balance Drawdown Relative: 0.37% (36.84) — процент. Два отчёта могут привести «0,37 %» и «36,84» из соседних строк и говорить об одном и том же событии — или о разных.

Остальная часть блока Results — Z-Score:, AHPR:, GHPR:, LR Correlation:, LR Standard Error:, Margin Level: и корреляции MFE/MAE — описывает форму кривой капитала, а не её размер. Ничто из этого не спасает отчёт со слишком малым числом сделок и ничто не переживает смену истории цен лучше, чем профит-фактор. Читайте это после пяти шагов выше — или не читайте вовсе.

Две строки из таблицы метрик наносят на практике больше всего вреда, поэтому читайте их вместе, а не по очереди.

Чистой прибыли нужны её знаменатель и её календарь. Все 23 наших прогона стартуют с одних и тех же 10 000 USD, что делает их необычно сопоставимыми. И всё же они охватывают от 0,51 % до 57,38 % годовых. Нижний край поучителен. orrery показывает профит-фактор 1,46 при максимальной просадке 0,67 % — самая красивая пара чисел в каталоге. Он заработал 386,05 USD за 7,58 года. В этом отчёте нет ничего нечестного. Он просто отвечает не на тот вопрос, который, как думает большинство читателей, они задают.

Винрейт и профит-фактор здесь почти независимы. По 23 опубликованным прогонам корреляция между ними равна 0,37. Значит, большая часть того, от чего зависит, зарабатывает ли советник, строке винрейта не видна вовсе. nautical выигрывает 30,80 % сделок и даёт профит-фактор 1,22; gyre выигрывает 82,27 % и даёт 1,59. Оба прибыльны, а винрейты расходятся на 51 пункт.

Профит-фактор, которого ваш отчёт вам не показывает

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

СоветникСрез отбораСрез после публикацииИтог в отчёте
orrery1,28 (195 сделок)6,43 (15 сделок)1,46 (210 сделок)
windrose1,31 (101 сделка)3,58 (7 сделок)1,38 (108 сделок)
cairn1,48 (4 583 сделки)1,64 (142 сделки)1,48 (4 725 сделок)
gyre1,55 (136 сделок)— (5 сделок, ни одного убытка)1,59 (141 сделка)
tessera1,28 (624 сделки)0,88 (21 сделка)1,27 (645 сделок)
zerqon1,53 (232 сделки)0,72 (21 сделка)1,43 (253 сделки)

Прочитайте первый и последний столбцы строки orrery вместе. Итог говорит 1,46; период, на котором советника действительно выбирали, говорит 1,28; разница — это 15 сделок, 7 % записи, идущих с профит-фактором 6,43. Прочитайте так же строку zerqon — и она идёт в другую сторону: 1,53 на срезе отбора, 0,72 на 21 сделке с тех пор и итог 1,43, который прячет и то и другое.

По 20 прогонам, публикующим оба среза, итог читается лучше среза отбора в 14 случаях и хуже — в 6. Остальные три оставлены за скобками намеренно: при единственном срезе их итог и их цифра отбора покрывают ровно одни и те же сделки, поэтому разница между ними вообще не эффект совокупности — это собственное округление отчёта до двух знаков против пересчитанного списка сделок. almanac печатает 1.52 там, где пересчёт по списку даёт 1,5153. Приложите тот же порог округления к этим 20 — и 13 из них всё равно показывают разрыв, который округлением не объяснить, причём 8 из них в ту сторону, которая отчёту льстит.

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

Ловушки: как эти числа вводят в заблуждение

Под всеми пятью лежит один и тот же способ ошибиться: отчёт — это измерение совокупности, и каждая метрика на странице молча наследует ту совокупность, на которую был направлен тестер.

Улучшаем: что каждое прочтение велит поменять

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

  1. Если число сделок мало, удлиняйте период, а не трогайте параметры. Профит-фактор, построенный меньше чем примерно на 100 сделках, сдвинется от более длинного окна сильнее, чем от любой настройки, которую вы могли бы подкрутить. В самом маленьком нашем опубликованном прогоне 108 сделок, и именно его отношения мы цитируем осторожнее всего.
  2. Если итог и срез отбора расходятся, перечитайте только срез отбора. Это та цифра, против которой выбирались настройки. Именно её и надо сравнивать с любым другим кандидатом.
  3. Если просадка по эквити заметно выше просадки по балансу, считайте объём по цифре эквити. Разрыв говорит вам, сколько позиций советник держит в одном и том же движении. Запись прогона chrysalis утверждает это прямо: до семи одновременно.
  4. Если отчёт пришёл с чужих данных, перепрогоните его на втором источнике раньше всего остального. У этой проверки самый крупный измеренный эффект во всём нашем наборе — и запускают её последней.

Что на самом деле двигало числа: источник данных, а не модель тиков

Одного из наших советников перепрогнали намеренно, чтобы разделить эти две переменные, и запись прогона помечает каждый теневой прогон тем, что он изолирует.

Прогон tidewell-slackЧто менялосьСделокПрофит-факторМакс. просадкаКачество историиВердикт
ОпубликованныйИстория M1 от Exness, Model 03031,359,92 %99 %PASS
Теневой — изолирует источник данныхИстория Dukascopy, Model 03511,1318,18 %99 %FAIL
Теневой — изолирует реальные тикиИстория Dukascopy, Model 43451,1118,20 %100 %FAIL

Читайте это как два отдельных эксперимента. Смена только истории цен — первая строка против второй, модель тиков та же — увела профит-фактор с 1,35 на 1,13, почти удвоила просадку и перевернула вердикт с прохождения на провал. Смена только модели тиков на этой новой истории — вторая строка против третьей — сдвинула профит-фактор на 0,02, а просадку на 0,02 пункта. При этом качество истории на двух провалившихся прогонах читается как 99 % и 100 %, то есть поле, по которому чаще всего и отсеивают, было отличным всё это время.

Второй советник указывает в ту же сторону под другим углом. kestrel-hover опубликован на реальных тиках Dukascopy с профит-фактором 1,33 и просадкой 7,11 %, а его теневой прогон на истории M1 от Exness с Model 0 показывает 1,30 и 6,76 % — источник и модель поменялись разом, а результат почти не сдвинулся. Устойчивость к смене источника данных возможна. Просто её нельзя показать одним отчётом.

Практическое правило: отчёт является переносимым свидетельством ровно настолько, насколько переносима его история цен. Перепрогон на втором источнике стоит одного вечера. В наших записях это единственная проверка из этой статьи, которая меняла решение.

Дальнейшие шаги: от отчёта к решению

Хорошо прочитать отчёт — второй шаг из четырёх. Последовательность такая: бэктест → чтение → анализ вперёд (walk-forward) → демо-счёт, и каждый шаг убирает свой способ ошибиться. Отчёт, переживший все четыре, заслужил небольшую позицию; переживший первые два — заслужил ещё одну проверку.

  • Тренируйтесь на записях, которые полны. Каждый из опубликованных советников несёт полный список закрытых сделок и манифест прогона, так что вы можете пересчитать итог сами и увидеть ровно те сделки, которые его произвели. Это то единственное упражнение, после которого навык чтения закрепляется.
  • Если цифра отправляет вас назад к стратегии, а не к тесту, менять само правило нужно в EA Builder. Перебор по настройкам — уже другая работа, её разбирает оптимизация параметров.
  • Прежде чем считать объём по только что прочитанной цифре просадки, загляните в управление рисками при торговле советниками: там она превращается в депозит и размер лота.
  • Как мы всё это производим, оцениваем и записываем, изложено в нашей методике тестирования.

Прошлые результаты в тестере — не прогноз, и ни один из прогонов выше не является обещанием на следующие 12 месяцев. Смысл правильного чтения отчёта меньше и полезнее предсказания. Оно говорит вам, что было продемонстрировано, а что было всего лишь напечатано.

Часто задаваемые вопросы

Какой профит-фактор в отчёте бэктеста MT5 считается хорошим?
Прежде чем судить о числе, спросите, какие сделки оно покрывает. Каждый из 23 опубликованных здесь отчётов лежит между 1,22 и 1,59, и разброс внутри одного отчёта шире, чем разброс по всему каталогу: orrery показывает 1,28 на тех 195 сделках, на которых его отбирали, и 1,46, как только добавляются 15 более поздних сделок. Профит-фактор становится осмысленным тогда, когда вы можете сказать, сколько сделок его произвело и участвовали ли эти сделки в выборе настроек. Ниже примерно 25 сделок он почти неинформативен — 16 из наших 20 срезов после публикации именно такого размера, и их профит-факторы идут от 0,72 до 6,43.
Почему в моём отчёте MT5 две разные цифры просадки?
Потому что MetaTrader меряет кривую баланса и кривую эквити по отдельности, а эквити несёт в себе открытые позиции. Просадка по эквити глубже во всех 23 наших отчётах; самый широкий разрыв у cairn — 14,52 % по балансу против 25,62 % по эквити, то есть 11 процентных пунктов боли, которые цитата по одному балансу прячет. Величина разрыва — свойство того, как советник держит позиции: запись прогона chrysalis прямо называет причину — советник может держать до семи позиций в одном и том же движении. Есть и вторая ось: MetaTrader печатает определения Maximal и Relative, и 16 наших прогонов записаны по паре Maximal, а 5 — по паре Relative. Приводите строку эквити и называйте определение, из которого она взята.
Значит ли высокий винрейт, что советник хороший?
Нет, и наш собственный набор — контрпример. Винрейт по 23 опубликованным отчётам коррелирует с профит-фактором на уровне 0,37, то есть большая часть разброса остаётся необъяснённой. nautical выигрывает 30,80 % сделок и всё равно даёт профит-фактор 1,22; zerqon выигрывает 78,26 % и показывает 1,43. Яснее всего то, что случилось с zerqon дальше: за 21 сделку с момента публикации он продолжал выигрывать в 76,19 % случаев и дал профит-фактор 0,72, потеряв 61,47 USD. Винрейт говорит о форме распределения сделок, а не о его знаке.
Можно ли доверять отчёту бэктеста, сделанному на чужих данных?
Считайте его утверждением об их истории цен, а не о советнике. У нас есть один советник, измеренный обоими способами при неизменной модели тиков: tidewell-slack публикует 303 сделки с профит-фактором 1,35 и просадкой 9,92 % на истории M1 от Exness, а тот же советник за тот же период на истории Dukascopy дал 351 сделку при 1,13 и просадке 18,18 % — провал по тому же самому гейту. Переключение того же прогона на Dukascopy с сгенерированных тиков на реальные сдвинуло результат на 0,02, до 1,11. Вердикт двинул источник данных, а не модель тиков. Спрашивайте, с какой истории цен пришёл отчёт, раньше всего остального.

Связанные термины

Ссылки на глоссарий