07.07.2024 palmax

Три солдата и Три вороны, адаптирующиеся к усреднённой внутридневной волатильности. Робот с открытым кодом. Свечи #23

Продолжаем усложнять пример ThreeSoldier, о котором говорили некоторое время назад. Теперь добавим в него механизм адаптации под усреднённую внутридневную волатильность. Получим ThreeSoldiersVolatilityAdaptive. Делаем силу сигнала одинаковой на всю глубину теста, чтобы и 5ть, и 10ть лет назад сигнал был одной силы.

 

Напомню, базовая идея паттерна «Три солдата» заключается в том, что мы должны найти на графике три растущих свечи подряд:

 

Собственно, данный робот всё ещё именно это и делает, ищет три подряд растущих (и падающих тоже, тогда это «Три вороны») на определённый процент свечи и входит после них в тренд. Между тем, адаптация под актуальную волатильность очень важна, ибо от этого может очень многое зависеть. И без адаптации под волатильность лучше вообще ничего не торговать. 

 

1. Пример в проекте.

Робот ThreeSoldiersVolatilityAdaptive находится внутри проекта OsEngine. Открываем его и идём вот сюда:

 

 

2. Параметры робота.

 

  1. Regime – режим работы.
    1. Off – Выключен.
    2. On – Включен и будет входить и в лонг и в шорт.
    3. OnlyLong – Включен и будет входить только в лонг.
    4. OnlyShort – Включен и будет входить только в шорт.
    5. OnlyClosePosition – сможет только закрыть позицию, а входить не будет.
  2. Volume type – режим выбора объёма.
    1. Contracts – кол-во контрактов инструмента.
    2. Contract currency – валюта контракта.
    3. Deposit percent – процент от депозита.
  3. Volume – значение объёма. Что именно, зависит от предыдущего пункта. В случае Contracts тут указывается объём инструмента. В случае Contract currency здесь указывается кол-во рублей или долларов, которыми нужно войти. В случае с Deposit percent здесь указывается % от общего депозита, которым нужно войти в контракт.
  4. Asset in portfolio – тут нужно указывать название валюты, которое будет использовано для расчёта объёма, если Вы выбрали тип объёма “Deposit percent”. В тестере оставляем «Prime». На крипте это обычно “USDT”. В АЛОР это «RUB».
  5. Slippage % — проскальзывание для цен ордера.
  6. Height soldiers % — Общая высота трёх свечек, после которой считаем паттерн сформированным.
  7. Min height one soldier % — Минимальная высота тела каждой свечи в отдельности, после которой считаем паттерн сформированным.
  8. Profit % from height of pattern – % от общей высоты паттерна, который будет взят за величину профита.
  9. Stop % from height of pattern – % от общей высоты паттерна, который будет взят за величину стопа.
  10. Days volatility adaptive – кол-во дней, за которое мы берём усреднённую волатильность.
  11. Height soldiers volatility percent – какая часть в % от усреднённой внутридневной волатильности у нас будет новой высотой всех трёх свечей.
  12. Min height one soldier volatility – какая часть в % от усреднённой внутридневной волатильности у нас будет новой минимальной высотой каждой отдельной свечи в паттерне.

 

3. Логика входа и выхода из позиции.

ЛОНГ

Вход, если за три свечи мы набрали общую величину движения вверх, «Height soldiers %». При этом каждая отдельная свеча была размером не меньше «Min height one soldier %».

Выход привязан к общему размеру величины движения за 3 свечи. Профит равен настройке «Profit % from height of pattern», при этом берётся общая величина движения за 3 свечи и определённый процент от этого движения, который откладывается в виде профита. Стоп равен настройке «Stop % from height of pattern».

ШОРТ

Вход, если за три свечи мы набрали общую величину движения вниз, «Height soldiers %». При этом каждая отдельная свеча была размером не меньше «Min height one soldier %».

Выход привязан к общему размеру величины движения за 3 свечи. Профит равен настройке «Profit % from height of pattern», при этом берётся общая величина движения за 3 свечи и определённый процент от этого движения, который откладывается в виде профита. Стоп равен настройке «Stop % from height of pattern».

 

4. Логика адаптации размерностей сигнальных свечей под волатильность.

Сама логика адаптации вызывается утром каждого дня. В роботе этот метод AdaptSoldiersHeight:

Всего там три этапа:

  1. Считаем внутридневную волатильность в процентах за указанное кол-во дней.
  2. Усредняем это значение.
  3. Рассчитываем новые значения высоты паттерна и отдельных свечек в нём.

 

5. Что с профитом?

На сбербанке всё по-прежнему прекрасно. Те настройки, которые указаны выше, выдают вот такое:

ВАЖНО!!! Сделок мало — поэтому не забывайте про кросс-тесты. Я их уже провёл на MOEX TOP 30, и там всё более чем хорошо. Напишу про это чуть позже. Но Вы должны сами за этим следить и понимать важность тестов редких паттернов (как этот) на множестве инструментов. За робастностью надо следить…

Удачных алгоритмов!

Комментарии открыты для друзей!

Пост из серии «Свечи и преобразование ленты сделок».

OsEngine: https://github.com/AlexWan/OsEngine
FAQ: https://o-s-a.net/os-engine-faq
Поддержка OsEngine: https://t.me/osengine_official_support

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php