trading
February 27, 2020

Описание скрипта стратегии ZZ

⚠️ Информация в этом блоге может быть не актуальна. Актуальная информация только на сайте https://hamster-bot.com/ и telegram канале https://t.me/bothamster ⚠️

Стратегия по которой работает бот доступна для ознакомления и проведения тестов на исторических данных в тестере стратегий tradingview. Чтобы протестировать стратегию и подобрать оптимальные настройки - стратегию нужно добавить на график.

ZZ - пробойно-реверсивная стратегия. Высокая волатильность на рынке увеличивает доход. На флэте стратегия медленно проигрывает из-за ложных переворотов.  Для торговли используются рыночные стоп-ордера по уровням. Таким образом, бот всегда находится в позиции (переворачивается).

Тестирование стратегии рекомендуется делать с комиссией 0,1% (установлено по умолчанию в скрипте)

Добавление стратегии на график

Есть два варианта скрипта стратегии для бэктестов.

Параметры помеченные значком [*] - нужно применять с осторожностью и пониманием.

[!] - пометка означает, что такой опции нет в боте.

Делайте тест стратегии только на стандартных свечах. Не используйте свечи Heikin Ashi.

Рекомендуется начинать с упрощенного варианта скрипта. И добавлять опции постепенно. Наблюдая как они ведут себя в заимодействии друг с другом.

Depth и Detecrion - основные параметры стратегии. Остальные параметры являются дополнительными и необязательными.

пример настроек "чистой" стратегии. Все остальные опции отключены

Описание параметров

  • time-frame - минимальный таймфрейм для стратегии ZZ 1h. Рекомендуемый от 4h до 1d.
  • Long / Short - включение / отключение направления торгов.
  • [!][*] single entry - разрешает входить в лонг только после шорта и в шорт только после лонга.
  • 1 entry Long - разрешает не более одного входа в Long
  • 1 entry Short - разрешает не более одного входа в Short
  • Use tradingview money management - по умолчанию рекомендовано выключить. Используйте только если вы знаете как с этим работать. По умолчанию если опция выключена - бот сам рассчитывает размер лота с учетом сложного процента. Если опция включена - работают настройки тестера стратегии из вкладки "Properties".
Свойства tradingview money management
  • Fixed lot - Использовать фиксированный размер лота. Прибыль/убыток не будут влиять на размер лота. Размер лота будет равен значению введенному в поле Capital Long/Capital Short.
  • Capital Long, % - размер лота для Long в % от капитала. Значение 150% соответствует значению риска 1.5 в боте.
  • Capital Short, % - размер лота для Short в % от капитала.
  • Depth - основной параметр стратегии. Влияет на частоту место установки точек ZZ (на графике - синяя точка) от которых начинается новый уровень.
Пример значения Depth = 5. Уровни устанавливаются часто
Пример значения Depth = 30. Уровни устанавливаются редко
  • Detection - основной параметр стратегии. Влияет на цену уровня. Указывает на сколько свечей назад от начала уровня нужно искать минимальную/максимальную цену.
Пример значения Detection = 1
Пример значения Detection = 5
  • Open, Close, Low, High - настройка источника цены для индикатора ZZ. Пример настройки источника цены hl2: Open=0, Close=0, Low=0.5, High=0.5 (RSI=0)
  • Enable RSI - включение/выключение индикатора RSI.
  • RSI - вес индикатора RSI в расчете индикатора ZZ. Источник цены для RSI по умолчанию Close.
  • RSI Lenght - параметр длинны для индикатора RSI.

  • MA, % - трендовый фильтр на пересечении двух МА. Если значение = 100%, то фильтр отключен. Если растояние между MA Fast и MA Slow больше заданного MA%, то отключается Long (MA Fast ниже MA Slow) или Short (MA Fast выше MA Slow). Изначально создавался как фильтр от "вертолётов".
    Фильтр НЕ ДЕЙСТВУЕТ если нет открытой позиции.
    Фильтр убирает ордер не оставляя закрывающий ордер по цене отключенного уровня. Для защиты позиции нужно использовать SL и/или hamster trail.
Пример защиты от ложного переворота
Пример ситуации когда нет открытой позиции. Фильтр игнорируется и происходит вход в Long

* Так как MA фильтр удаляет переворотный ордер по противоположному уровню - это может привести к тому что позиция останется без защиты. Пример:

Отрыта шорт позиция. Под оранжевой стрелкой: MA фильтр удалил лонг уровень и был пропущен переворот в лонг.

Для защиты позиции в стратегию заложен алгоритм. Если нет защиты позиции в виде SL или Hamster трейла, то произойдет переворот когда МА фильтр разрешит (перестанет действовать).

Продолжение примера. Поза без защиты (нет SL или Hamster трейла) происходит вход в лонг на открытии свечи когда MA фильтр перестал действовать.

* В скрипте есть конфликт некоторых закрывающих опций со SL и Hamster трейлом. По этой причине в скрипте дополнительно есть опция MA filter fix. Этот костыль создан специально для проведения бэктеста без необходимости ставить SL или Hamster трейл, чтобы поведение фильтра было таким же как и с активным SL.

  • [*] MA filter fix - устанавливает виртуальный SL и тем самым меняет поведение MA фильтра.
  • MA Fast/Slow Lenght - параметр Lenght для быстрой/медленной МА (черный/синий цвет на графике).
  • MA Fast/Slow Type - тип МА. Доступны: SMA, EMA, TEMA, WMA, Hma, Ehma, Thma.
  • Source MA Fast/Slow - выбор источника цены МА. Доступны: open, high, low, close, hl2, hlc3, ohlc4.
  • MA Distance Filter, % - отключение уровней если растояние между MA Fast и MA Slow в % меньше или равно <= заданному числу. По уровням ставятся только закрывающие ордера. Входа по уровням в позицию не будет. Работает по аналогии с FF (flat filter) и DF (distance filter). [!] Конфликтует с Take Profit и Stop Loss

  • Long Offset - смещение Long уровня на константу. Если Long Offset > 0 - смещение вверх. Если Long Offset < 0 - смещение вниз. Не допускайте смещение Long уровня ниже Short уровня.
  • Short Offset - смещение Short уровня на константу.
  • Long Level Multiplier - смещение уровня на коэффициент. Значение 1,05 равно смещению вверх на 5%.
  • Short Level Multiplier - смещение уровня на коэффициент. Значение 0,98 равно смещению вниз на 2%. Не допускайте смещение Short уровня выше Long уровня.
  • Long Level Angle - Наклон Long уровня относительно начальной точки на коэффициент. Не допускайте пересечения уровней.
  • Short Level Angle - Наклон Short уровня относительно начальной точки на коэффициент.

  • TP between levels - закрывать позицию если цена находится между уровней и выполняется условие на профит. Условие на нахождение цены между уровней определяется по закрытой свече. Low свечи для позиции Short. High свечи для позиции Long. В боте для соответствия бэктесту - нужно выбрать опцию TV в настройках.
  • Between profit, % - условие на профит. Профит > указанного значения. Считается по закрытой (прошлой) свече. Если позиция Short расчет идет по Low свечи. Для Long позиции по High свечи. То есть проверяется выполнялось ли в закрытой свече условие на профит.
Пример. Показан нюанс при котором закрытие произошло в минус. Low обозначенной свечи доходил до 1,75%. Значит условие на профит выполнялось. 1,75% > 1%. Low обозначенной свечи между уровней.
TP between levels - Вылючен
TP between levels - Включен

  • Take Profit Long, % - тейк профит для лонга.
  • Take Profit Short, % - тейк профит для шорта.
  • Stop Loss Long, % - стоп лосс для лонга.
  • Stop Loss Short, % - стоп лосс для шорта.

* тестер стратегий TradingView имеет нюансы в работе TP/SL.
- Имеется некоторое отклонение которое нарастает с ростом установленного %.
- Конфликт с другими закрывающими опциями.

Hamster Trailing Stop - это закрывающая МА.

  • TS Hamster Long/Short MA Lenght - Хамстер Трейлинг Стоп. Если значение =1 то трейлинг не используется (отключен). Настройка длинны для MA Long/Short хамстер трейла.
  • TS Hamster Long/Short MA Type - тип закрывающей МА. Доступны: SMA, EMA, TEMA, WMA, Hma, Ehma, Thma.
  • Source TS Hamster Long/Short - выбор источника цены МА. Доступны: open, high, low, close, hl2, hlc3, ohlc4.
  • TS Long/Short Offset (Multiplier) - смещение хамстер трейла на коэффициент. Аналогично опции Long/Short Level Multiplier.
  • Disable levels if trail active - ...
Пример работы Хамстер трейла.

  • Distance Filter - фильтр отключающий уровни если расстояние между Long и Short уровнями больше > заданного значения. Фильтр отключен если значение = 1000%. По уровням ставятся только закрывающие ордера. Входа по уровням в позицию не будет. [!] Есть проблема взаимодействия при тесте с активным SL/TP - скрипт не делает закрытия позиции по DF
  • Flat Filter - фильтр отключающий уровни если расстояние между Long и Short уровнями меньше < заданного значения. Фильтр отключен если значение = 0%. По уровням ставятся только закрывающие ордера. Входа по уровням в позицию не будет. [!] Конфликтует с Take Profit и Stop Loss
Пример филтров растояния между уровней. В данном примере удалось избежать ложных входов в Long

  • Настройки периода проведения теста
  • Entry after level - рекомендуется включить при проведении бэктеста чистой стратегии на больших ТФ (1D) или когда свеча проходит через 2 уровня. В боте такого параметра нет. Эта опция появилась из-за ограничений тестера стратегий на количество сделок внутри свечи. Ниже пример:
Неверное поведение бэктеста. По стратегии позиция должны быть Long
Верное поведение. Но со смещением точки входа в Long

  • Deep/High indicator - использовать закрытие по индикатору Deep/High
  • Min Profit, % - минимальный профит для закрытия по Deep/High
  • Fast Up - настройка индикатора Deep/High
  • Fast Down - настройка индикатора Deep/High
Пример закрытия по High/Deep. Зеленая стрелка это сигнал индикатора.
  • Close by MA - использовать закрытие по пересечению двух MA
  • Crossing - выбор типа пересечения. Если эта опция не активна - Long закрывается если Fast MA ниже Slow MA (Short закрывается если Fast MA выше Slow MA). Если опция активна то закрытие происходит при любом пересечении.
  • MA Fast/Slow Lenght - настройка длинны МА
  • Fast/Slow MA Type - настройка типа МА
  • Source Fast/Slow MA - настройка источника цены для МА
  • Use SMA min profit - использовать условие на минимальный профит для закрытия по пересечению МА
  • MA Min Profit, % - условие на минимальный профит
  • MA Stop Loss, % - разрешать закрывать в убыток. Опция отключена если % = 0
Пример закрытия по пересечению МА. Зеленый цвет - быстрая МА выше медленной МА

Фильтр ATR:


Применяется для оценки наличия тренда с помощью стандартного индикатора ATR. Анализ происходит по трем заданным ТФ ATR_1_Tf, ATR_2_Tf, ATR_3_Tf. Для каждого ТФ задается длина ATR (параметры len). Считается среднее значение ATR с помощью скользящей средней MA, для которой на каждом ТФ указывается тип MA (параметр Сглаживание) и его длина (параметры MA_1 Len, MA_2 Len, MA_3 Len). Если значение ATR находится выше скользящей средней, то предполагается наличие тренда. Результатом работы фильтра является коэффициент, который корректирует риск. Если на всех 3-х ТФ ATR ниже MA, то считается, что рынок находится в состоянии флэта и риск умножается на 0 и в скрипте и в боте устанавливается минимально возможный лот. Если ATR на одном ТФ выше MA, то риск умножается на значение Risk Min, если на всех трех ТФ ATR выше MA, то риск умножается на Risk Max, а если ATR выше MA на двух ТФ, то риск умножается на среднее арифметическое между Risk Min и Risk Max. В результате можно добиться того, что если фильтр считает что рынок находится во флэте на всех 3-х ТФ, открывать минимальную позицию и увеличивать ее по мере того, как фильтр обнаружит тренды на каждом из заданных ТФ.


Сложные моменты

1 - нет шорта так как действует DF
2 - нет шорта так как скрипт не устанавливает стоп ордер до закрытия этой свечи. По закрытию свечи скрипт понимает что можно поставить стоп так как цена выше шорт уровня.

Видео


Статьи

Ссылки