Как тестировать внутридневные торговые стратегии
Бэктестирование внутридневной торговой стратегии отличается от тестирования свинговой стратегии.
Данное руководство поможет вам понять разницу и представит проверенный процесс тестирования внутридневной торговой стратегии.
Чтобы правильно протестировать внутридневную стратегию, трейдеру нужно разработать торговый план, выбрать программное обеспечение, отслеживать торговые расходы, проверять исторические периоды и делать подробный анализ результатов.
Я также поделюсь с вами тем, как начать торговать по данной стратегии в режиме реального времени и как подобрать лучшие инструменты и ресурсы для бэктестирования.
Теперь углубимся в детали каждого аспекта процесса.
Оглавление
-
Разработка торгового плана
-
Выбор программного обеспечения для тестирования
-
Ручное или автоматическое бэктестирование
-
Выбор рынка для торговли
-
Стоимость программного обеспечения и данных
-
Загрузите как можно больше исторических данных
-
Мониторинг торговых расходов
-
Выбор подходящего времени для бэктестирования
-
Честное бэктестирование
-
Анализ результатов
-
Чего следует избегать при тестировании внутридневных торговых стратегий
-
Как определить время для начала торговли по данной стратегии
-
Чем бэктестирование внутридневной торговой стратегии отличается от тестирования свинговой стратегии
-
Заключительные мысли
Разработка торгового плана
Первым шагом в этом процессе будет разработка подробного торгового плана.
Торговый план должен включать следующее:
-
Критерии входа в рынок
-
Размер риска или количество лотов в сделке
-
Где следует размещать стоп-лосс
-
Когда выходить из рынка
-
Как перемещать стоп-лосс (если нужно)
Запишите свой план на листе бумаги или в цифровом файле, например, в формате документа Word.
Сверяйтесь с этим торговым планом каждый раз, когда собираетесь открыть сделку в процессе бэктестирования вашей стратегии.
Это поможет вам запомнить правила торговой стратегии, и у вас будет меньше шансов совершить ошибку.
Выбор программного обеспечения для тестирования
Следующим шагом будет выбор программного обеспечения для бэктестирования.
Есть много вариантов, но лучший вариант будет зависеть от 3 основных факторов.
Ручное или автоматическое бэктестирование
Многие трейдеры-новички хотят начать с автоматического бэктестирования, чтобы очень быстро протестировать огромное количество данных.
Теоретически это выглядит идеально...
Но на самом деле большинство торговых стратегий не могут быть автоматизированы на 100%, потому что есть определенные критерии, основанные на мнении трейдера, а не на полностью роботизированном подходе.
Кроме того, у большинства людей нет навыков программирования торговых систем.
Поэтому, как правило, лучше начинать с ручного бэктестирования.
Если вы хотите провести автоматическое бэктестирование, найдите платформу с возможностью частично
автоматизированного бэктестирования без кодирования.
Это позволит вам быстро приступить к работе, а затем перейти к обучению программированию.
Что делать, если вы уже являетесь программистом?
Тогда это огромный плюс. Для автоматизации бэктестирования изучите язык программирования Python.
Выбор рынка для торговли
Некоторые программы созданы специально для определенных рынков. Если вы попробуете применить их для бэктестирования других рынков, они могут не сработать.
Например, ПО Amibroker отлично подходит для тестирования стратегий автоматической торговли на фондовом рынке, но не подходит для бэктестирования на валютном рынке.
ПО Forex Tester очень хорошо работает для стратегий на валютном рынке, но не подходит для бэктестирования стратегий на фьючерсном рынке.
Таким образом, подберите программное обеспечение для рынка, который вы собираетесь протестировать.
Стоимость программного обеспечения и данных
Самое замечательное в трейдинге то, что существует множество инструментов, доступных для больших и малых бюджетов.
Если вы хотите сохранить свои расходы на низком уровне, вы можете воспользоваться бесплатной платформой MetaTrader 5. Она предоставляет приличный объем исторических данных, а программное обеспечение является простым в использовании.
С другой стороны, бесплатные программы очень примитивны, и в них отсутствуют некоторые функции, например, подробные отчеты, которые могут сэкономить вам массу времени.
Чтобы получить больше функций, вы можете использовать платформы NakedMarkets или MultiCharts.
На мой взгляд, лучше заплатить за профессиональный качественный пакет программного обеспечения. Это сэкономит вам массу времени, а время – это единственный ресурс, который вы не можете вернуть.
Теперь поговорим о данных...
Иногда платформы для бэктестирования не имеют достаточного количества исторических данных. К счастью, можно скачать эти данные отдельно и загрузить их в платформу для бэктестирования.
ПО Amibroker позволяет загружать данные с бесплатных сайтов, например, Yahoo Finance.
Поставщики вроде TickData предлагают платные файлы с полными данными для большинства основных рынков.
Загрузите как можно больше исторических данных
После выбора программного обеспечения следует загрузить исторические данные для бэктестирования.
Многие пакеты программного обеспечения для бэктестирования могут загружать данные из собственного источника или файлы сторонних компаний.
Независимо от источника, вы должны иметь как можно больше чистых данных.
Это связано с тем, что проводить бэктестирование следует в разных рыночных условиях, таких как:
-
Высокая волатильность
-
Низкая волатильность
-
Сильный рыночный тренд
-
Слабый рыночный тренд
-
Диапазонные рынки
-
Необычные новостные события
Две выделенные области на этом графике валютной пары AUD/CAD иллюстрируют разные рыночные условия.
В области 1 на рынке присутствует сильный тренд, и ваша стратегия может работать на этом рынке совсем иначе, чем в области 2, где рынок торгуется в диапазоне.
Поэтому важно иметь как можно больше исторических сценариев.
В Интернете существует распространенный миф о том, что если торговая стратегия приносит прибыль после 100 сделок, то она будет успешно работать в режиме реального времени.
Это неправда, и 100 сделок недостаточно для тестирования внутридневной торговой стратегии.
Если вы протестируете только 100 сделок, это, как правило, будет охватывать период не более нескольких недель.
Вы должны протестировать как можно больше сделок.
Но невозможно протестировать ВСЕ сделки на ваших исторических данных, потому что в рамках внутридневной торговой стратегии можно открыть огромное количество сделок.
Решение заключается в выборе периодов времени, которые представляют различные виды упомянутых выше рыночных условий.
Если вы впервые тестируете внутридневную торговую стратегию, то для начала я предлагаю выбрать несколько 2-недельных периодов.
Начните с одного 2-недельного периода на волатильном рынке, одного 2-недельного периода на диапазонном рынке и третьего 2-недельного периода на случайном рынке.
Это даст вам хорошее представление о том, имеет ли данная торговая стратегия преимущество или нет.
Очевидно, что позже вам следует провести больше тестов, тем не менее, результаты тестирования внутридневной торговли могут быть ошеломляющими.
Начните с нескольких коротких периодов, это поможет вам войти в поток и понять процесс.
Тестирование нескольких коротких исторических периодов также сэкономит ваше время.
Вы можете потратить много времени на бэктестирование в течение нескольких месяцев в одинаковых рыночных условиях, например, на трендовом рынке.
Но это вам мало поможет, потому что вы не будете знать, как данная система работает в диапазонном рынке.
Когда вы протестируете свою стратегию за короткие периоды в разных рыночных условиях, это даст вам лучшее представление о том, как ваша стратегия будет работать в целом.
Мониторинг торговых расходов
Существует 3 вида торговых расходов, которые следует учитывать при тестировании внутридневной торговой стратегии:
-
Спред
-
Проскальзывание
-
Комиссия
Когда вы тестируете какую-либо внутридневную стратегию, очень важно учитывать эти факторы, потому что они могут оказывать большое влияние на прибыль в каждой сделке.
Например, если вы скальпируете на рынке Форекс, ваша самая большая прибыль может составлять всего лишь 10 пунктов. Предположим, что средний спред по валютной паре, которую вы тестируете, составляет 2 пункта. Если при выполнении бэктестирования не учитывать спред, то ваша стратегия будет как минимум на 20% менее прибыльной, чем показывает бэктестирование.
Есть разные способы учёта расходов в сделке.
Если для записи своих сделок при бэктестировании вы используете электронную таблицу, вы можете добавить в нее столбец для учета расходов. Если вы используете этот метод, обязательно записывайте точные значения.
Значения спредов и комиссий вы можете найти у вашего брокера.
Чтобы получить приблизительные цифры проскальзывания, откройте несколько сделок на демо-счете у вашего брокера, если это возможно.
Проще всего оценить торговые расходы с помощью программного обеспечения для бэктестирования.
Многие профессиональные программы для бэктестирования учитывают спред автоматически и позволяют вручную устанавливать проскальзывание и комиссию в настройках программного обеспечения.
Например, ПО NakedMarkets показывает текущий спред в нижней части экрана.
Значение спреда меняется для каждой свечи, согласно данным спреда в файле.
В настройках для каждой валютной пары вы также можете вручную установить спред и комиссию.
Это всего лишь один пример, но другие пакеты программного обеспечения имеют аналогичные функции.
Независимо от того, какой метод вы используете для тестов, учет торговых расходов имеет жизненно важное значение при бэктестировании внутридневных стратегий.
Выбор подходящего времени для бэктестирования
Еще один важный фактор, который следует учитывать – это время открытия сделок в рамках бэктестирования.
Отслеживайте время торговли. Если при бэктестировании сделки проводятся за рамками ваших обычных торговых часов, то результаты тестирования будут неточными.
Например, если в ходе тестов сделки открываются в то время, когда вы обычно спите, то вы не сможете совершать эти сделки в реальной жизни.
Самый простой способ отслеживать рыночное время – это отмечать торговые часы на графике во время бэктестирования.
Многие платформы для бэктестирования предоставляют такую возможность.
Например, в ПО NakedMarkets вы можете добавить индикатор, который отмечает время открытия и закрытия торговых сессий.
Я написал простой пользовательский индикатор для платформы MetaTrader 5 для ручного бэктестирования, который отмечает определенные временны́е периоды на графике.
Этот индикатор отмечает одно и то же время каждый день на 1-часовом или более низком таймфрейме. Он также может отправлять уведомления на телефон о начале заданного периода времени.
В данном примере маркер показывает открытие лондонской сессии.
Честное бэктестирование
Теперь, когда у вас есть торговый план, программное обеспечение, рыночные данные и вы знаете время открытия сделок, можно начинать тестирование.
Если вы проводите бэктестирование вручную, не прокручивайте быстро график, чтобы не пропустить точки входа, и не забегайте вперед в поисках информации о том, что ждет вашу сделку в будущем.
Некоторые люди прокручивают график вперед на несколько свечей, чтобы увидеть, как отработает их сделка, прежде чем открыть ее.
Когда вы проводите ручное бэктестирование, сделайте всё возможное, чтобы смоделировать реальные торговые условия, и не перегружайте свой вход.
Автоматизированное бэктестирование тоже имеет подводные камни.
Когда вы оптимизируете автоматическую торговую стратегию, выполняйте оптимизацию на одном наборе данных, а затем многократно протестируйте ее на других наборах данных, чтобы убедиться в отсутствии чрезмерной оптимизации.
Например, если вы оптимизировали свою стратегию в 1999, 2004 и 2019 году, то вы также должны протестировать её и в другие годы, например, в 2003, 2008 и 2013 году.
Не оптимизируйте данные на протяжении всех лет.
Очевидно, что следует тестировать свою стратегию в течение бо́льшего количества лет, но не нужно оптимизировать стратегию на всем наборе данных.
Анализ результатов
Когда завершится первый раунд бэктестирования, вы можете ознакомиться с его результатами.
Если вы используете электронную таблицу, выполните в ней расчет основных статистических параметров:
-
% прибыльных позиций
-
Максимальная просадка
-
Максимальное количество убыточных сделок подряд
-
% прибыльных коротких позиций
-
% прибыльных длинных позиций
-
Соотношение средней прибыли к среднему убытку
-
График производительности
Сбор данной информации может занять некоторое время, но она того стоит.
Если вы используете программное обеспечение для бэктестирования со встроенной отчетностью, вы сэкономите массу времени, потому что вам не придется вручную рассчитывать статистику.
Вот пример статистики из ПО NakedMarkets.
Чего следует избегать при тестировании внутридневных торговых стратегий
Есть 2 основные вещи, которых следует избегать при тестировании внутридневных торговых стратегий.
Во-первых, избегайте программного обеспечения, которое не содержит многолетних исторических данных.
В качестве торговой и графической платформы мне нравится использовать TradingView.
Но поскольку она еще находится в процессе разработки, в ней недостаточно исторических данных, чтобы протестировать надлежащим образом какую-либо внутридневную стратегию.
В будущем ее база исторических данных будет пополняться, но в настоящее время она содержит данные всего за несколько лет.
Во-вторых, избегайте очень сложных торговых стратегий. Их трудно протестировать, и при совершении сделок можно легко пропустить критерии входа.
Сложные стратегии также имеют множество условий и с течением времени могут перестать работать.
Как правило, лучше всего работают простейшие торговые стратегии, потому что они используют основные принципы динамики рынка.
Избегая этих 2 распространенных ошибок, у вас будет гораздо больше шансов найти стратегию, работающую в долгосрочной перспективе.
Как определить время для начала торговли по данной стратегии
После тестирования вам, вероятно, будет интересно узнать, хорошо ли торгует стратегия в режиме реального времени.
Это решение будет лично вашим, и только вы сможете определить, соответствует ли данная стратегия вашим целям и достаточно ли у вас уверенности в ней, чтобы рисковать реальными деньгами.
Если у вас в настоящее время нет полностью протестированной торговой стратегии, то, возможно, хорошей идеей будет выбор стратегии, имеющей преимущество, пока вы не найдете стратегию с лучшей производительностью.
Даже если стратегия не приносит огромной прибыли, вы можете использовать силу капитализации для увеличения своего счета, параллельно тестируя другие стратегии.
Но, опять же, окончательное решение зависит только от вас.
Чем бэктестирование внутридневной торговой стратегии отличается от тестирования свинговой стратегии
Бэктестирование стратегии внутридневной торговли требует гораздо большего внимания и усердия.
На прибыльность внутридневной торговой стратегии гораздо бо́льшее влияние будут оказывать расходы.
В свинговой торговле вам не нужно сильно беспокоиться о расходах, и есть большая вероятность совершения ошибки.
Однако у стратегии внутридневной торговли потенциал для быстрого роста вашего счета гораздо выше.
Вы могли бы делать и то, и другое.
Но вы должны торговать на таком таймфрейме, который полностью соответствует вашей индивидуальности. Некоторые люди не могут торговать внутри дня – другие считают, что торговля на колебаниях является слишком медленной.
Итак, учитывайте свою индивидуальность и не пытайтесь быстро заработать деньги с помощью внутридневной торговли.
Заключительные мысли
Бэктестирование является лучшим способом проверить преимущество торговой стратегии.
Если стратегия работала в прошлом, то она, скорее всего, будет работать и в будущем.
Конечно же, нет никакой гарантии, что та или иная стратегия будет работать в будущем. Но если она не работала в прошлом, то нет никакого шанса, что она каким-то волшебным образом вдруг начнет работать в будущем.
Трейдеры-новички находят в Интернете случайные стратегии и начинают торговать по ним на реальные деньги.
Тот факт, что кто-то на YouTube с уверенностью говорит вам о том, что торговая стратегия работает, не означает, что она действительно будет работать.
Кроме того, эта стратегия может работать у них, но она может не подходить для вашей торговой личности.
Так что протестируйте всё самостоятельно. Если результаты будут положительными, откройте демо-счет или небольшой реальный счет и выполните форвардное тестирование своей торговой стратегии.
Если всё сложится хорошо и вы будете уверены в своей стратегии, то можете начать торговать по ней на полноразмерном счете.
Именно так следует тестировать внутридневную торговую стратегию.
Переведено для сайта TLAP,
Хью Кимура
