Изменения в системе Bollindger

Итак впервые за более чем 3 года я внес существенные дополнения в алгоритм работы торговой системы bollindger . Ранее робот работал в составе торгового портфеля с целевой доходностью 10%-15% в год с просадкой до 10%. При таких рисках на счетах с плечами до 1:100 деятельность такого робота особо не заметна, и в случае выхода из своих лимитов по марже и просадке у счета имеется обычно десятикратный запас. По этой причине особыми доработками данного робота я не занимался, сейчас же когда доля робота существенно возросла, а от других систем я отказался тема доработки стала актуально.

Проблемы низкой и высокой волатильности

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

Для определения волатильности курсов валют я использую стандартный на рынке технически индикатор ATR (14) на дневном графике приведенный к процентным значениям (далее ATR%). Он показывает средний дневной размах хождения рынка. Ниже график ATR для основных пар советника Боллинджер и для потенциальных пар.

Что мы видим на этом графике? Видим, что в целом общей динамике волатильности на рынке следуют все валютные пары. При этом 90% волатильность всех пар находится в диапазоне от 0,52% до 1,46% (от 50 пунктов до 150 пунктов). В целом это соответствует нашим представлениям о том, что в среднем колебания на рынке форекс составляют примерно 1% в день (но по факту чуть ниже = 0,8%).

Интересно посмотреть график распределения наблюдений индикатора волатильности ATR.

Хорошо видно, что дальше за волатильностью 1.5 наблюдается длинное распределение отдельных  наблюдений, которые нужно фильтровать. Периоды с низкой волатильностью находятся в довольно узком интервале от 0,3% до 0,5%.

Очевидно, что автоматизированные торговые системы настраиваются и оптимизируются в на работу именно в диапазоне волатильности рынка от 0,5% до 1,5%, так как рынок в этой фазе наиболее типичен (предсказуем). Периоды выхода волатильности из основного диапазона рабочей волатильности говорят о том, что на рынке не стандартная ситуация и в соответствии с этим торговые системы должны принимать решения либо о прекращении торговали либо об определенной корректировке своих алгоритмов. При этом методы оценки волатильности рынка могут отличаться, но по факту показывать они в итоге должны примерно одну и ту же динамику.

Решение проблемы высокой волатильности в системе Bollindger

Для решения проблемы работы советника в периоды высокой волатильности я пошёл простым, но довольно действенным методом. Я посчитал 95й персентиль для всех наблюдейний  ATR% который оказался равен 1,43% и запретил роботам открывать ордера (и новые и ордера усреднения) если ATR% текущее превышает данное значение. Какие либо оптимизации проводить особого смысла не вижу, так как по факту это будет простой подгонкой которая улучшит бектесты, но особого влияния на будущие результаты не покажет.

В роботе на MQL5 данные настройки отражаются в добавленных параметрах:

Period ATR daily = 14;
maxATR=0.0143;

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

Решение проблемы низкой волатильности на рынках

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

Собственно именно такой случай был в начале декабря. Роботы за один день набрали очень высокое плечо по паре NZDCAD. Связано это с тем, что в конце декабря волатильность рынка на рабочих диапазонах (период 170 — 1000 свечей на таймфреме М15 от двух до 10 рабочих дней) советника оказалась крайне низкой.

на дневном графике
на графике периодом М15

То есть цена 6 дней колебалась в узком диапазоне около 40 пунктов после чего безоткатно ушла вверх на 150 пунктов.

В свою очередь показатель стандартного отклонения от средней цены для периода 400 на графике М15 опустился до уровня 7 пунктов.

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

Для решения этой проблемы я так же обратился к статистическому методу. Я оценил значение девиации в зависимости от периода и во всех расчётах использую показатель отклонения больший или равный значению равного 10му персентилю от наблюдаемых значений.

То есть теперь в случае низкой волатильности работа советника не отключается, но значения низкой волатильности не используются в расчётах а используется расчетный базовый минимум.

Явной оптимизации (то есть по факту подгонки) я не проводил. Использование 10го персентиля объясняется исключительно логическими соображениями. Но в целом это очень хорошо повлияло на итоговые показатели работы советника — пиковое использование кредитного плеча советника на истории снизилась, а именно это было основной задачей при работе с низкой волатильностью рынка.

Интересные результаты

После добавления в советник алгоритмов обработки высокой и низкой волатильности приемлемые результаты торговли на всей истории стали показываться по паре EURGBP. Стоит отметить, что эта пара как раз по моим представлениям должна была хорошо подходить для отбойных торговых систем помимо AUDNZD, NZDCAD и AUDCAD, так как EURGBP это пара состоящая из коррелирующих валют. Ранее результаты бектестов по этой паре были не удовлетворительными. Сейчас они стали лучше чем по паре GBPCAD, которую я использовал в торговле системы bollindger c коэффициентом 0,5.

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

Конечно еще есть над чем работать, но последние нововведения сделали советник существенно стабильнее.

Ссылка на основную публикацию
Изменения в системе Bollindger
Хиб.ру