Тестер стратегий

Это руководство объясняет, как провести бэктестинг стратегии с помощью Тестера стратегий JForex4, охватывая настройку, методы тестирования, логику исполнения ордеров и способы чтения результатов.


1. Открытие Тестера стратегий

  1. Перейдите в меню View в верхней панели меню и выберите Strategy Tester.
  2. Тестер откроется в новой вкладке рядом с Orders, Positions и Messages.
  3. Выберите свою стратегию из выпадающего меню. Если она ещё не была добавлена в рабочую область, нажмите Open, чтобы сначала добавить её.
  4. (Необязательно) Нажмите Edit, чтобы открыть исходный код стратегии в редакторе кода — доступно только если присутствует исходный файл .java.

2. Настройка теста

Настройки счёта

Нажмите Account, чтобы задать параметры симулируемого торгового счёта:

  • Начальный депозит и валюта счёта
  • Плечо (leverage)
  • Уровень маржин-колла (в % от использованного плеча)
  • Стоп-лосс по эквити (MC Equity) — автоматически останавливает тест, если эквити падает ниже этого уровня

Инструменты

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

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

Тестовый период и таймфрейм

Выберите исторический диапазон дат (Sample Period) и таймфрейм (Time Frame):

  • Ticks (Тики) — использует реальные исторические тиковые данные (наиболее точный вариант, самый медленный).
  • Candles (Свечи) (1 минута / 1 час / 1 день) — быстрее, использует интерполяцию для генерации тиков из данных OHLC-свечей. Также позволяет выбрать Bid или Ask в качестве базы.

Визуальный режим

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

Оптимизация

Если у вашей стратегии есть настраиваемые параметры, включите Optimization, чтобы протестировать несколько комбинаций параметров за один запуск. Для каждого параметра (кроме инструмента и периода) можно задать минимальное значение, шаг и максимальное значение — стратегия будет протестирована один раз для каждой комбинации шагов.

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

Profit Factor (Фактор прибыли) = Общая прибыль ÷ Общий убыток (оба значения берутся как положительные числа). Например, при общей прибыли 1000 и общем убытке 250 → Profit Factor = 4.0. Это значение всегда положительное, и чем выше оно, тем, как правило, более благоприятно соотношение выигрышных и убыточных сделок.


3. Фильтры тиков (только для таймфрейма Ticks)

Когда в качестве таймфрейма выбраны Ticks, выберите способ фильтрации тиков:

Фильтр Поведение
Process all ticks (Обрабатывать все тики) Наиболее точный, но самый медленный вариант — воспроизводит каждый когда-либо записанный тик.
Process all ticks with a different non-recurrent price (Обрабатывать все тики с отличающейся неповторяющейся ценой) Пропускает тики, повторяющие ту же цену.
Process ticks on a market direction (Обрабатывать тики по направлению рынка) Пропускает тики, если они не представляют собой реальную точку разворота направления цены.
Process ticks on a predefined price range change (Обрабатывать тики по заданному изменению диапазона цены) Пропускает тики до тех пор, пока цена не изменится на заданный диапазон.
Process ticks with the specified time interval (Обрабатывать тики с заданным временным интервалом) Пропускает тики на основе заданного временного интервала.

4. Методы интерполяции (только для таймфреймов на основе свечей)

Доступны, когда в качестве таймфрейма выбран период на основе свечей (1 мин, 1 час, 1 день). Вместо загрузки реальных тиковых данных тестер генерирует синтетические тики из данных OHLC-свечей, что значительно ускоряет тестирование.

Метод Описание
Cubic Spline (Кубический сплайн) Наиболее точный метод на основе свечей. Строит тики, используя цены OHLC как опорные точки, методом кубической сплайн-интерполяции. Может иногда генерировать больше тиков, чем реальный поток данных дал бы для очень коротких периодов (например, 10 секунд).
4 ticks at OHLC (4 тика по OHLC) Наиболее надёжный метод интерполяции среди доступных. Интерполирует каждую свечу ровно в 4 ценовых тика — Open, High, Low и Close. Порядок тиков High и Low зависит от того, какой из них ближе к цене Open: тот, что ближе к Open, обрабатывается как второй тик, перед другим.
Tick on Open (Тик по Open) Генерирует один тик по цене Open свечи.
Tick on Close (Тик по Close) Генерирует один тик по цене Close свечи.

Пример: если ваша стратегия торгует на 1-минутных свечах и не требует более точной детализации, выберите 1 Min в качестве таймфрейма и 4 ticks at OHLC в качестве метода интерполяции — тогда стратегия будет получать ровно 4 тика в минуту (open, затем high/low в порядке близости, затем close).

5. Дополнительные настройки

  • Save interpolated price data (Сохранять интерполированные данные цены) — сохранить или отбросить сгенерированные тиковые данные после интерполяции.
  • Visual Mode (Визуальный режим): показать/скрыть Equity, Balance и P/L; выбрать сохранённый Template графика; задать период (Period) по умолчанию, отображаемый во время визуального режима.
  • Messages (Сообщения): включить Save Messages to для сохранения в файл; включить Save Reports to для сохранения отчётов в файл; включить Show Reports, чтобы отчёт автоматически открывался после завершения теста.

6. Логика обработки ордеров

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

Общее правило: ордера исполняются по собственной цене ордера — за исключением случаев рыночного гэпа (например, когда рынок открывается заново с разрывом после перерыва). В ситуациях с гэпом:

  • LIMIT-ордера исполняются по более выгодной цене, чем цена ордера.
  • STOP-ордера без настройки MAX.SLIPPAGE исполняются по первой доступной цене после гэпа.
  • STOP-ордера с настройкой MAX.SLIPPAGE, если цена исполнения выходит за пределы этого лимита проскальзывания, автоматически переоформляются в LIMIT-ордера.

Подробная логика исполнения:

  • Ордера, срабатывающие по стороне BID, сравниваются с интерполированными ценами свечей BID; ордера, срабатывающие по стороне ASK, сравниваются с интерполированными ценами свечей ASK.
  • Если ордер (независимо от типа) срабатывает по тику цены CLOSE, HIGH или LOW, он исполняется по собственной цене ордера, скорректированной на последний известный спред, если это необходимо (эта корректировка применяется, когда триггер приходит с противоположной стороны).
  • Если ордер срабатывает по тику цены OPEN, он исполняется по этой цене OPEN на соответствующей стороне — за исключением STOP-ордера с установленным MAX.SLIPPAGE: если тик OPEN выходит за пределы лимита проскальзывания STOP-ордера, ордер вместо этого преобразуется в LIMIT-ордер.

Совет: поскольку метод "4 ticks at OHLC" всегда включает тик Open для каждой свечи, эта логика срабатывания по OPEN (и её исключение для STOP/MAX.SLIPPAGE) применяется непосредственно при тестировании с использованием этого метода интерполяции.

7. Запуск теста

  1. Нажмите кнопку Start.
  2. Откроется окно Define Parameters — задайте здесь настраиваемые значения стратегии (инструмент, объём, проскальзывание, стоп-лосс/тейк-профит и т.д.). Конкретные поля, которые отображаются, зависят от кода вашей стратегии.
  3. Нажмите Run, чтобы начать симуляцию.
  4. Если включён визуальный режим, используйте элементы управления воспроизведением, чтобы приостановить или замедлить тест по мере его выполнения.
  5. После завершения (крупные тесты на тиковых данных могут занять много времени) отчёт о тестировании автоматически открывается в вашем браузере (если включена опция Show Reports).

8. Просмотр результатов

Отчёт включает результаты по каждой сделке, кривые эквити/баланса и сводную статистику, такую как описанный выше Profit Factor. Если вы запускали серию Optimization, сравните отчёты по каждой комбинации параметров из списка результатов в нижней части окна тестера, прежде чем выбрать конфигурацию для дальнейшей работы.


Рекомендации

  • Начните с Ticks / "Process all ticks" для финального этапа валидации — это наиболее близкая симуляция к реальным рыночным условиям, хотя и самая медленная.
  • Используйте интерполяцию свечей для быстрой итерации. Во время разработки или настройки стратегии метод "4 ticks at OHLC" даёт быструю и надёжную обратную связь без необходимости загрузки полной истории тиков.
  • Соотносите выбор метода интерполяции/фильтра тиков с логикой вашей стратегии. Стратегия, реагирующая на цены OPEN, ведёт себя по-разному при использовании "4 ticks at OHLC" и "Tick on Close" — убедитесь, что выбранный метод тестирования соответствует тому, что запускает логику вашей стратегии в реальных услови