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

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

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

Удачных алгоритмов!
P.S.
Os Engine поддержка терминала: https://t.me/osengine_official_support
Обсуждаем в телеграмме: https://t.me/o_s_a_chat
Канал проекта: https://t.me/bad_quant
Комментарии