Данная стратегия построена на паттерне известном как «Три белых солдата» (может быть любое число). Давайте посмотрим как она реализована в Pine Script.
Стратегия применима для входа на зарождающемся тренде и может быть использована на любом таймфрейме. Смысл простой: если на нескольких барах подряд (в примере берем 3) значения закрытия повышаются, то осуществляется вход в длинную позицию. Если понижаются — вход в короткую позицию. Можно модифицировать стратегию, изменяя количество баров в формуле или учитывать максимумы, вместо закрытий.
Код стратегии «Consecutive Up/Down»
//@version=5
strategy("Consecutive Up/Down Strategy", overlay=true)
consecutiveBarsUp = input(3)
consecutiveBarsDown = input(3)
price = close
ups = 0.01
ups := price > price[1] ? nz(ups[1]) + 1 : 02
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
if (ups >= consecutiveBarsUp)
strategy.entry("ConsUpLE", strategy.long, comment="ConsUpLE")3
if (dns >= consecutiveBarsDown)
strategy.entry("ConsDnSE", strategy.short, comment="ConsUpLE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
- Определяем оператор ups и присваиваем ему нулевое значение, чтобы посчитать количество закрытий. ↩︎
- Теперь присваиваем ups новое значение через тернарную условную операцию (если А, то B, иначе C): если значение price текущего бара (закрытие) больше значения price предыдущего бара, то к текущему значению ups добавляется единица (nz используется, чтобы заменить отсутствующие значения нулем). В противном случае ups присваивается ноль. ↩︎
- Стратегия выполняет вход в лонг, если на последних нескольких барах (в примере их 3, значение consecutiveBarsUp) текущее закрытие выше, чем на предыдущем. Аналогично для шорта, только учитывая закрытия. ↩︎