Поиск по сайту

Что хотите найти?

Введите название брокера, инструмента или темы.

Ордера и исполнение

Бэктестинг на Форекс: как проверить стратегию без заглядывания в будущее

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

Автор · Редактор

Проверено

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

Главное

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

  2. Спред, проскальзывание и комиссию нужно учитывать согласованно. Расходы, уже включенные в цены исполнения, нельзя вычитать повторно.

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

Что такое бэктестинг на Форекс?

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

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

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

Разделяйте три вопроса: что правило успело увидеть, какое исполнение допустила модель и какие записи в результате появились в журнале.

Определите правила до просмотра результата

Составьте короткое описание, которому другой человек сможет следовать без вопросов о том, какие сделки вам понравились. Формулировки «покупать при усилении импульса» недостаточно. Укажите цены, по которым оценивается импульс, момент их доступности и действия при противоречивых условиях. Сохраняйте версию и дату, чтобы измененное правило незаметно не подменило первоначально проверенное.

  • Инструмент и наблюдения: символ, таймфрейм, торговые часы, часовой пояс и допустимый способ обработки пропусков.
  • Вход и выход: точные условия, время формирования сигнала, допустимое событие исполнения и состояние позиции.
  • Объем: фиксированное количество единиц или полностью описанное правило расчета, включая возможность увеличивать открытую позицию.
  • Исполнение и расходы: сторона котировки, спред, комиссия, проскальзывание и финансирование переноса через ночь.
  • Границы: подготовка индикатора, учет открытой позиции и сигналов на последнем наблюдении.

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

Это условие «выше/ниже», а не обязательное пересечение средней и не рекомендация стратегии. Размер позиции всегда составляет 10 000 EUR. В собственном исследовании можно задать другие правила, но изменение нескольких условий после просмотра результата создает новый эксперимент. Шаблон торгового плана помогает отделить действующую спецификацию от предложенных изменений.

Выберите данные, достаточные для модели исполнения

Начните с вопроса, на который данные способны ответить. Свеча OHLC содержит открытие, максимум, минимум и закрытие; четыре значения не показывают все промежуточные цены и последовательность достижения максимума и минимума. Если внутри одной свечи расположены и стоп, и цель, по этой свече обычно нельзя установить, что сработало раньше. Здесь midpoint — цена (Bid + Ask) / 2 в конкретный момент. SMA3 — среднее значение цен midpoint на закрытии трёх последовательных баров.

Данные или настройка

Что выяснить до теста

Bid, Ask, средняя цена или Last

Определите основу котировки. Средняя цена между Bid и Ask сама по себе не является ценой покупки или продажи.

Свечи или тики

Согласуйте детализацию с логикой заявок. Не придумывайте точный путь цены внутри свечи по четырем значениям.

Время и сессии

Запишите часовой пояс, границы свечей, разрывы выходных и отсутствующие интервалы.

Спецификация символа

Проверьте шаг цены, размер контракта, валюту результата и единицы указанного спреда.

Прокрутите вбок, чтобы сравнить все столбцы ↔

Документация MetaTrader 5 о тиках объясняет, почему нужно различать цены графика и исполнения: покупки и продажи используют разные стороны котировки, а доступный график не обязательно показывает обе. Для чувствительного к цене правила это может изменить и возможность сделки, и ее результат.

Режим «реальные тики» тоже требует проверки данных. Документация MQL5 по тестированию описывает ситуации, когда тестер генерирует тики при отсутствии или несогласованности записей реальных тиков. Записывайте выбранный режим и выясняйте причины предупреждений о покрытии: название настройки само по себе не описывает каждое использованное наблюдение.

Наш интерактив содержит 36 вымышленных свечей EURUSD по средней цене, с интервалом пять минут, внутри одной условной дневной сессии. Это не загруженная рыночная история. В примере нет стоповых и лимитных заявок или целей, порядок исполнения которых пришлось бы восстанавливать внутри свечи. Он объясняет последовательность событий и учет расходов, но не показывает, работает ли правило SMA на EURUSD.

Проследите путь сигнала до следующего события исполнения

Попробуйте сами

Разберите бэктест по шагам

Проследите за фиксированным правилом на 36 вымышленных пятиминутных барах EUR/USD. Их цены mid находятся посередине между Bid и Ask. Измените предполагаемые издержки и проверьте сигнал, следующее открытие и учёт результата.

Только учебные данные. Эти бары придуманы: это не рыночная история и не доказательство работоспособности правила.

Правило остаётся неизменным

После закрытия бара сравните цену mid на его закрытии со средним значением цен mid на закрытии этого и двух предыдущих баров. Выше SMA3 — открыть лонг, если позиции нет. Ниже SMA3 — закрыть лонг. При равенстве ничего не менять. Размер позиции — 10 000 EUR, результат — в USD.

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

Задайте условия исполнения
От 0 до 20 пипсов. Половина прибавляется при покупке и вычитается при продаже. В этом примере EUR/USD 1 пипс = 0,0001 USD за EUR.
От 0 до 10 пипсов на каждое исполнение. В примере моделируется только ухудшение цены.
От 0 до 100 USD за каждое исполнение всей позиции 10 000 EUR. Это не тариф за лот.
Каждое окно начинается без позиции. Предыдущие закрытия нужны только для расчёта SMA3: они не создают сделок и комиссий.
Примеры издержек

Бар 36 выбранного окна (1–36) · 11:55

Сверьте результат

Закрытые сделки · чистый P/L
-3,70 USD
Открытая позиция · оценка P/L с учётом комиссии за вход
16,25 USD
Общий P/L модели
12,55 USD

Чистый результат закрытых -3,70 USD + оценка открытой 16,25 USD = общий результат 12,55 USD.

Закрыто позиций: 4. Исполнений к этому шагу: 9.

Открытый лонг оценивается по последней цене mid на закрытии за вычетом половины спреда. Уплаченная комиссия за вход вычитается один раз. Будущие комиссия и проскальзывание при выходе в эту оценку не включаются.

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

Где учтены издержки
P/L закрытых позиций по ценам исполнения
-0,90 USD
Комиссии закрытых позиций
2,80 USD
Оценка открытого P/L до комиссии за вход
16,60 USD
Уплаченная комиссия за вход в открытую позицию
0,35 USD
Все уплаченные комиссии
3,15 USD
Влияние спреда, уже включённое в исполнения
5,40 USD
Проскальзывание, уже включённое в исполнения
1,80 USD
Дополнительная половина спреда в оценке открытой позиции
0,60 USD

Спред и проскальзывание уже заложены в цены исполнения: не вычитайте показанные суммы повторно. Комиссия — отдельное списание. Оценка открытой позиции не означает исполненный выход.

Раннее и позднее окна — отдельные учебные отрезки. Это не проверка на данных вне выборки и не форвард-тест на будущих котировках. Позиция из раннего окна не закрывается скрытно и не переносится в позднее. Их P/L нельзя складывать как непрерывную историю счёта.

Цена mid на закрытии, SMA3 и исполнения

Показаны только пройденные бары. Сплошная линия соединяет цены mid на закрытии, пунктир — SMA3. Треугольники вверх и вниз отмечают условные покупки и продажи на открытии соответствующего бара. Вертикальная ось — USD за EUR.

USD за EUR

Пятиминутный бар

  • Цена mid на закрытии
  • SMA3
  • Покупка на открытии
  • Продажа на открытии

Сигнал → следующее открытие → позиция

Читайте строку по времени: сначала исполнение предыдущего решения на открытии, затем оценка текущего закрытия. Линия между барами не добавляет промежуточных цен или исполнений.

Сигнал → следующее открытие → позиция
Бар · время примераНа этом открытииЦена mid закрытия / SMA3На этом закрытииПосле закрытия бараОбщий P/L модели
109:00Исполнения нет1,10000—Меньше трёх закрытий: решения нетБез позиции0,00 USD
209:05Исполнения нет1,10020—Меньше трёх закрытий: решения нетБез позиции0,00 USD
309:10Исполнения нет1,100401,10020Выше SMA3: купить на следующем открытииБез позиции0,00 USD
409:15Покупка по 1,10058; сигнал бара 31,100801,1004667Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR1,25 USD
509:20Исполнения нет1,101201,10080Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR5,25 USD
609:25Исполнения нет1,101601,10120Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR9,25 USD
709:30Исполнения нет1,101801,1015333Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR11,25 USD
809:35Исполнения нет1,101601,1016667Ниже SMA3: продать на следующем открытииЛонг 10 000 EUR9,25 USD
909:40Продажа по 1,10142; сигнал бара 81,101301,1015667Ниже SMA3: остаться без позицииБез позиции7,70 USD
1009:45Исполнения нет1,101001,10130Ниже SMA3: остаться без позицииБез позиции7,70 USD
1109:50Исполнения нет1,100801,1010333Ниже SMA3: остаться без позицииБез позиции7,70 USD
1209:55Исполнения нет1,101001,1009333Выше SMA3: купить на следующем открытииБез позиции7,70 USD
1310:00Покупка по 1,10118; сигнал бара 121,101201,10100Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR6,95 USD
1410:05Исполнения нет1,101001,1010667Ниже SMA3: продать на следующем открытииЛонг 10 000 EUR4,95 USD
1510:10Продажа по 1,10072; сигнал бара 141,100701,1009667Ниже SMA3: остаться без позицииБез позиции2,40 USD
1610:15Исполнения нет1,100901,1008667Выше SMA3: купить на следующем открытииБез позиции2,40 USD
1710:20Покупка по 1,10108; сигнал бара 161,101301,1009667Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR3,65 USD
1810:25Исполнения нет1,101601,1012667Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR6,65 USD
1910:30Исполнения нет1,101801,1015667Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR8,65 USD
2010:35Исполнения нет1,101401,10160Ниже SMA3: продать на следующем открытииЛонг 10 000 EUR4,65 USD
2110:40Продажа по 1,10122; сигнал бара 201,101001,10140Ниже SMA3: остаться без позицииБез позиции3,10 USD
2210:45Исполнения нет1,101201,10120Равно SMA3: остаться без позицииБез позиции3,10 USD
2310:50Исполнения нет1,100801,10100Ниже SMA3: остаться без позицииБез позиции3,10 USD
2410:55Исполнения нет1,100401,10080Ниже SMA3: остаться без позицииБез позиции3,10 USD
2511:00Исполнения нет1,100601,10060Равно SMA3: остаться без позицииБез позиции3,10 USD
2611:05Исполнения нет1,100901,1006333Выше SMA3: купить на следующем открытииБез позиции3,10 USD
2711:10Покупка по 1,10103; сигнал бара 261,100601,10070Ниже SMA3: продать на следующем открытииЛонг 10 000 EUR-2,15 USD
2811:15Продажа по 1,10042; сигнал бара 271,100301,10060Ниже SMA3: остаться без позицииБез позиции-3,70 USD
2911:20Исполнения нет1,100601,10050Выше SMA3: купить на следующем открытииБез позиции-3,70 USD
3011:25Покупка по 1,10078; сигнал бара 291,101101,1006667Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR-1,45 USD
3111:30Исполнения нет1,101501,1010667Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR2,55 USD
3211:35Исполнения нет1,101901,10150Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR6,55 USD
3311:40Исполнения нет1,102301,10190Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR10,55 USD
3411:45Исполнения нет1,102701,10230Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR14,55 USD
3511:50Исполнения нет1,103101,10270Выше SMA3: сохранить лонг без новой заявкиЛонг 10 000 EUR18,55 USD
3611:55Исполнения нет1,102501,1027667Ниже SMA3: продать на следующем открытииЛонг 10 000 EUR12,55 USD

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

Журнал позиций

Закрытая позиция включает обе уплаченные комиссии. Открытая — только комиссию за вход и оценку по Bid, без вымышленной сделки закрытия.

Журнал позиций
ПозицияИсполнение входаИсполнение выхода / оценкаP/L по ценам mid без издержекP/L по исполнениям / оценкеУплаченная комиссияЧистый P/L закрытия / оценки
1ЗакрытаБар 4 · 1,10058Бар 9 · 1,1014210,00 USD8,40 USD0,70 USD7,70 USD
2ЗакрытаБар 13 · 1,10118Бар 15 · 1,10072-3,00 USD-4,60 USD0,70 USD-5,30 USD
3ЗакрытаБар 17 · 1,10108Бар 21 · 1,101223,00 USD1,40 USD0,70 USD0,70 USD
4ЗакрытаБар 27 · 1,10103Бар 28 · 1,10042-4,50 USD-6,10 USD0,70 USD-6,80 USD
5Открыта · только оценкаБар 30 · 1,10078Бар 36 · 1,1024418,00 USD16,60 USD0,35 USD16,25 USD
Скачать этот журнал позиций · CSV

CSV содержит только действующий расчёт до выбранного бара. Постоянные английские имена полей, десятичная точка и полная точность модели позволяют проверить арифметику. Округляется отображение, а не расчёт.

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

Посмотреть вымышленные данные OHLC

Все цены ниже — mid, середина между Bid и Ask. Максимумы и минимумы показаны для проверки данных; правило «закрытие → следующее открытие» не придумывает по ним исполнения. Строки подготовки SMA отмечены отдельно и не создают сделок.

Посмотреть вымышленные данные OHLC
Бар · время примераОткрытиеМаксимумМинимумЗакрытие
1 · 09:001,099801,100101,099701,10000
2 · 09:051,100001,100351,099801,10020
3 · 09:101,100201,100601,100051,10040
4 · 09:151,100501,100901,100401,10080
5 · 09:201,100801,101351,100601,10120
6 · 09:251,101201,101801,101051,10160
7 · 09:301,101601,101901,101501,10180
8 · 09:351,101801,101951,101401,10160
9 · 09:401,101501,101701,101151,10130
10 · 09:451,101301,101401,100901,10100
11 · 09:501,101001,101151,100601,10080
12 · 09:551,100801,101201,100651,10100
13 · 10:001,101101,101301,101001,10120
14 · 10:051,101201,101351,100801,10100
15 · 10:101,100801,101001,100551,10070
16 · 10:151,100701,101001,100601,10090
17 · 10:201,101001,101451,100801,10130
18 · 10:251,101301,101801,101151,10160
19 · 10:301,101651,101901,101551,10180
20 · 10:351,101751,101901,101201,10140
21 · 10:401,101301,101501,100851,10100
22 · 10:451,101001,101301,100901,10120
23 · 10:501,101201,101351,100601,10080
24 · 10:551,100801,101001,100251,10040
25 · 11:001,100401,100701,100301,10060
26 · 11:051,100601,101051,100401,10090
27 · 11:101,100951,101151,100451,10060
28 · 11:151,100501,100601,100201,10030
29 · 11:201,100301,100751,100101,10060
30 · 11:251,100701,101301,100551,10110
31 · 11:301,101101,101601,101001,10150
32 · 11:351,101501,102051,101301,10190
33 · 11:401,101901,102501,101751,10230
34 · 11:451,102301,102801,102201,10270
35 · 11:501,102701,103251,102501,10310
36 · 11:551,103101,103301,102351,10250

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

Скачайте протокол исследования

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

Скачать протокол · TXT
Границы модели

Фиксированный объём, полные исполнения, неизменные заданные спред, проскальзывание и комиссия; задержка — только до следующего открытия. Нет текущих котировок, частичных исполнений, плеча, ликвидации по марже, вводов, выводов и правил конкретного брокера. Это разбор последовательности и учёта, а не эмулятор брокера или оптимизатор стратегии.

Этот компонент считает в текущей вкладке: он не отправляет введённые значения и не сохраняет их в хранилище браузера. Файлы создаются только по вашему нажатию на скачивание. Это утверждение относится к лаборатории, а не ко всему сайту.

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

Например, сигнал покупки после закрытия свечи 3 может исполниться на открытии свечи 4. Получить цену открытия свечи 3 он не может. Поэтому разрыв между свечами имеет значение. Документация стратегий TradingView также разделяет создание заявки и более поздний тик, на котором эмулятор брокера может исполнить ее при стандартной последовательности расчета.

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

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

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

Учитывайте расходы один раз и на одной основе

В этой модели со средними ценами покупка исполняется по цене открытия плюс половина спреда плюс неблагоприятное проскальзывание. Продажа при выходе — по цене открытия минус половина спреда минус неблагоприятное проскальзывание. Комиссия отдельно начисляется в USD за каждое исполнение фиксированной позиции 10 000 EUR. В этом примере EURUSD один пипс равен 0,0001 USD за EUR.

Пример полного входа и выхода

Расчет

Средняя цена входа / выхода

1,10000 / 1,10200

Допущения

Спред 1,2 пипса; проскальзывание 0,2 пипса на исполнение; комиссия $0,35 на исполнение

Цены исполнения входа / выхода

1,10008 / 1,10192

Ценовой P/L после спреда и проскальзывания

10 000 × (1,10192 − 1,10008) = $18,40

Чистый P/L закрытой сделки

$18,40 − $0,35 − $0,35 = $17,70

Прокрутите вбок, чтобы сравнить все столбцы ↔

Само движение средней цены дало бы $20,00. Не вычитайте спред и проскальзывание из $18,40 еще раз: они уже заложены в исполнение. Если средняя цена входа и выхода одинакова, при этих допущениях результат составит −$2,30. Увеличение спреда на один пипс уменьшает результат полного входа и выхода на $1,00, поскольку на каждой стороне учитывается половина добавленного спреда.

Если позиция остается открытой, интерактив оценивает ее по последней модельной цене Bid и учитывает уже уплаченную комиссию за вход. Будущая комиссия за выход и проскальзывание на выходе не списываются до исполнения выхода. Показанный итог — модельный P/L, а не полный расчет средств на торговом счете.

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

Разделяйте разработку, отложенную историю и будущие наблюдения

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

Этап

Назначение

Чего он не подтверждает

Разработка

Создать правило и изучить допущения на разрешенных для разработки данных.

Что выбранная версия сохранит свойства на других данных.

Отложенная историческая выборка

Применить зафиксированную версию к более поздним, ранее не использованным наблюдениям.

Фактическое исполнение брокера или будущую прибыльность.

Наблюдение вперед во времени

Следить за новыми поступающими ценами после фиксации правил.

Что модельные исполнения совпадут с реальными.

Прокрутите вбок, чтобы сравнить все столбцы ↔

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

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

Если отложенная выборка выявила проблему, зафиксируйте ее. Измененная стратегия может заслуживать нового эксперимента, но прежняя выборка уже известна. Нельзя сохранить за ней статус «непросмотренного теста», просто переименовав файл или выбрав другую метрику результата.

Проверьте ошибки до интерпретации доходности

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

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

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

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

Сохраните воспроизводимый протокол теста

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

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

  • Укажите версию правила, вопрос исследования и изменения относительно предыдущего запуска.
  • Опишите набор данных, основу котировки, часовой пояс, период, пропуски и подготовку.
  • Запишите время сигнала, допущения об исполнении, размер позиции, расходы и обращение с конечной открытой позицией.
  • Отделите даты разработки от дат проверки и отметьте, влияли ли проверочные результаты на последующие решения.
  • Сохраните число сделок, журнал исполнений, открытое состояние и неудачные проверки вместе с итогом.

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

Читайте метрики вместе с контекстом

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

Затем сверьте чистый результат закрытых сделок с оценкой открытых и уже уплаченными расходами. Посмотрите, где возникают потери и насколько итог зависит от нескольких сделок. В интерактиве нет депозита, модели маржи и выводов средств, поэтому его траекторию P/L нельзя читать как баланс брокерского счета.

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

Полезный вывод описывает условия: какое правило проверили, на каких данных, при каких допущениях и что осталось неизвестным. «Эта версия дала убыток при повышении расходов» — более ясный результат исследования, чем ничем не подтвержденное обещание прибыльности следующей версии.

Частые вопросы

Можно ли проверить стратегию Форекс вручную?

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

Что выбрать для бэктеста: MetaTrader 5 или TradingView?

Выбор зависит от правила, данных и поведения исполнения, которое нужно исследовать. Изучите настройки тестера или эмулятора брокера и просмотрите отдельные исполнения. Разные стандартные настройки могут дать разные результаты; это само по себе не подтверждает прибыльность стратегии ни на одной платформе.

Всегда ли необходимы реальные тики?

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

Сколько сделок нужно для надежного бэктеста?

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

Почему реальные результаты могут отличаться от бэктеста?

Цены, время, спред, доступная ликвидность, расходы и обработка заявок могут отличаться от модели. Тест также не содержит рыночных условий, которых не было в его данных. Исторический результат остается условным свидетельством; новые наблюдения и фактическое исполнение нужно фиксировать отдельно.

Доказывает ли прибыльный бэктест наличие преимущества?

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

Источники и материалы

  1. MetaTrader 5 — Strategy TestingПроверено
  2. MetaTrader 5 — Real and Generated TicksПроверено
  3. MQL5 — Testing Trading StrategiesПроверено
  4. TradingView — StrategiesПроверено
Ордера и исполнение
Шаблон торгового планаЗафиксируйте правила и изменения версий до сравнения результатов.Шаблон торгового журналаСохраняйте отдельные сделки и наблюдения с исходным контекстом.Проскальзывание в трейдингеОтделите допущение модели от котировки и реального исполнения.Профит-факторЧитайте итоговый коэффициент вместе с исходной выборкой.Симулятор кривой капиталаПосмотрите, как порядок сделок и допущения меняют траекторию результата.Коэффициент КальмараРазберитесь в выборе периода и просадки для расчета показателя.
Все гиды