Backtesting Стратегии

From FxCodeBaseWiki
(Redirected from Backtesting Strategy/ru)
Jump to: navigation, search

Что Такое Backtesting?

Backtesting - это выполнение стратегии или сигнала на исторических данных. Вы «делаете вид» что исторические цены происходят «прямо сейчас» и смотрите, как бы работала стратегия при таком рынке. Чтобы провести backtest, необходимо выбрать стратегию и исторический диапазон, на котором вы хотите проверить эту стратегию. Обычно интересно протестировать стратегию на длительном периоде времени (месяцы, а иногда и годы).

Например, ниже приводится кривые баланса и плавающего баланса (equity) стандартной стратегии MA_ADVISOR (Пересечение Скользящих Средних), выполненной на истории за 2010 год EUR/CHF (3,5 миллиона тиков, 8 тиков в минуту), примененной на 15-минутном интервале, с количеством периодов для быстрого скользящего среднего 15 интервалов, для медленного 55, без стопов и лимитов, на 1-часовой диаграмме. Вы можете увидеть все «классические» проблемы стратегий на основе пересечения скользящих средних: она теряет на вялом рынке и хорошо работает только на выраженном тренде.

Backtest1.png

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

Конфигурация для Backtest

Чтобы провести backtest, используйте команду Tools->Check Performance/Backtest в отладчике стратегий. Будет показан список стратегий. Пожалуйста, обратите внимание на то, что можно сделать backtest как пользовательских, так и стандартных стратегий. После выбора стратегии будут показаны ее параметры.

Настройка backtesting такая же, как и настройка параметров сессии отладки, поэтому, пожалуйста, прочтите всю статью Отладка Стратегии для уточнения деталей.

Несколько примечаний:

  • Во время проведения backtesting настоятельно рекомендуется использовать 1-минутные данные для имитации рынка.
  • SDK не содержит файлы ценовых данных за целый год. Marketscope также не может быть использован для сохранения 1-минутных данных более чем за 1 неделю. Чтобы получить ценовые данные за 1 год, вы можете обратитеся в Архив Цен CodeBase или сгрузить данные с помощью SDK, используя менеджер квот.
  • Не забудьте разрешить торговлю в вашей стратегии. Большинство стратегий не торгуют, если это явно разрешено.

Работающий Backtester

После того, как вы нажмете кнопку OK в параметрах стратегии, начнется backtesting. Вы можете увидеть прогресс в количестве имитированных тиков и прошедшем времени. 1-минутная история за год производит от 3,5 М (5-дневная торговая неделя) до 5 М (7-дневная торговая неделя) тиков. Хорошо написанная стратегия должна исполниться за 1 минуту или меньше на процессоре 3 ГГц. Число ядер процессора не имеет значения, backtester (в отличие от оптимизатора стратегии) всегда использует только одно ядро. Если backtesting занимает слишком много времени, всегда можно прервать процесс и выбрать более короткий период времени.

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

Результаты Backtest

Когда backtesting закончен, показываются следующие данные:

  • Время, потраченное на backtesting, количество имитированных тиков, производительность стратегии (тиков в секунду) (показано на вкладке Output).
  • Полный лог тиков для backtesting (показан на вкладке Streams).
  • Общая торговая производительность (показана на вкладке Statistics).
  • Результаты стратегии, отображенные на диаграмме (показано на вкладке Chart).

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

Вкладки, относящиеся к таблицам и оптимизатору, пустые.

Особое Предупреждение о Результатах Backtesting

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

Смотрите Также

Оптимизация параметров стратегии с помощью SDK 2.0 (пошаговые инструкции)

Эта статья на других языках

Language: English  • español • français • русский • 中文 • 中文(繁體)‎