В этой статье рассмотрим порядок оптимизации торговой системы для торговли на Форекс.
Оптимизация – это процесс выбора или создания торговой системы и настройка ее до такого состояния, когда она будет способна осуществлять конкретные торговые операции лучше, чем другие системы.
Например, нужно отыскать такую систему, которая на рынке евро/доллар позволит получать наибольшую прибыль в настоящее время. Для этого:
-
Следует выбрать систему из некоторого множества систем с фиксированными параметрами. Это может быть выбор между системами, основанными на различных трендовых индикаторах и осциляторах.
-
Следует найти такие параметры для выбранной торговой системы, которые позволят получить наилучшие результаты. Это может быть выбор периода для вычисления скользящей средней или период для вычисления стохастического осциллятора и тому подобное.
Таким образом, процесс оптимизации начинается уже во время выбора торговой системы из множества существующих и продолжается при выборе
конкретных значений параметров.
Оптимизация торговой системы проходит в несколько этапов.
-
Возникновение идеи о том, на чем будет основана торговая система.
-
Выбор типа критериев или решающих правил для системы. Например, критерием может быть пересечение графиков цены и индикатора или появление серии из нескольких последовательных черных/белых свечей.
-
Определение параметров системы. Параметры могут быть выбраны из предположений о цикличности движения цены, или взятые из других предположений, или исходя из определенных собственных соображений разработчика системы.
-
Тестирование системы.
-
Итерационное повторение предыдущих пунктов, если система не дает удовлетворительных результатов.
Процесс разработки, тестирования и отладки параметров системы проводится таким образом.
Вначале проводится формирование торговой системы путем определение торговых правил (условий), которые должны выполняться в процессе открытия и закрытия длинных или коротких позиций. Такие правила для автоматизированных торговых систем записываются специальным языком программирования. Например, для платформы MetaTrader – это язык MetaQuotes Language (МQL), с помощью которого записываются все переменные, значения которых необходимо изменять в процессе тестирования системы.
Для каждой из них необходимо задать минимальное значение, максимальное значение и шаг изменения.
Далее определяются, каким образом будут проводиться остановки внутри системы. Это может производиться вручную или автоматически путем закрытия
соответствующих позиций в зависимости от выигрыша или потери денег.
Затем проводят непосредственное тестирование торговой системы.
Во время тестирования система может находиться в длинной позиции, в короткой позиции, или вне рынка. Торговая платформа работает по созданным
торговыми правилами и периодически останавливается для определения прибыли системы. Если проводится сделка на куплю-продажу, то комиссионные
считаются по заданным критериям, которые устанавливает разработчик системы.
В автоматическом режиме программа проверяет все возможные комбинации параметров, которые определяются их минимальными и максимальными значениями, а также шагом их изменения. Для каждой комбинации вычисляется полученный прибыль и определяется множество других характеристик торговой системы. Полученные результаты обычно упорядочиваются в порядке уменьшения прибыли и записываются в отчет, который анализируется после проведения
тестирования.
По результатам анализа тестирования, согласно информации представленной в кратком или в подробном отчете, производится редактирование правил
открытия и (или) закрытия позиций, изменяются минимальные и (или) максимальные значения параметров, а также при необходимости устанавливается
новая величина шага изменения параметров.
Далее систему тестируют повторно на тех же статистических данных, которые использовались в предыдущем тестировании. Такую итерационную процедуру
проводят до тех пор, пока не получают удовлетворительные результаты работы торговой системы на исследуемой выборке данных.
Таким образом, для того, чтобы создать и наладить торговую систему, удовлетворяющую установленные правила, придется выполнить
большой объем работы.
Следует также привести предостережения относительно апробации и тестирования торговых систем путем торговли в реальном времени. Это, как правило,
выливается в значительные затраты времени и капитала. И хотя реальные результаты будут получены разработчиком мгновенно, вероятность того, что система
будет приносить прибыль очень мала.
В случае же проведения тестирования торговой системы на исторических данных удается с вероятностной точки зрения установить недостатки созданной
системы. При этом степень реалистичности ожиданий тоже можно с немалой точностью рассчитать статистическими методами. Кроме того, в результате
такого способа тестирования можно сравнить две системы или две разных вариации одной системы и выбрать ту, которая подходит игроку лучше всего.
Тестировать и оптимизировать стратегии можно:
- С помощью программ:
-
Forex Tester 4 и Forex Tester 3
-
бесплатного тестера стратегий Trade Simulator для Metatrader 4
Таким образом, в результате тестирования каждый раз надо давать ответ на вопрос соответствует ли создан вариант торговой системы тем самым положительным ожиданием, необходимость которых определялась на самому началу ее создания. Если даже теоретически торговая система таким ожиданиям не соответствует – это также является положительным результатом. Разработчик тратит в этом случае только ресурс времени и совсем не
теряет средства с торгового депозита.
С точки зрения психологического аспекта по созданию торговой системы перед началом тестирования разработчик должен обязательно убедиться, выполняется ли требование по полной однозначности и детерминированности созданной системы. Для этого все правила должны быть жестко формализованные.
Единственным элементом, требующим вмешательства игрока, будет вопрос – входить в торги или нет. Получение или неполучение сигнала для ответа на этот вопрос должен быть однозначным. А разработанная торговая система должна жестко диктовать: нужны такие-то данные, принимается такое-то решение, производятся такие-то действия.