«Три белых солдата» в Pine Script и тернарные условные операции

Данная стратегия построена на паттерне известном как «Три белых солдата» (может быть любое число). Давайте посмотрим как она реализована в 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)
  1. Определяем оператор ups и присваиваем ему нулевое значение, чтобы посчитать количество закрытий. ↩︎
  2. Теперь присваиваем ups новое значение через тернарную условную операцию (если А, то B, иначе C): если значение price текущего бара (закрытие) больше значения price предыдущего бара, то к текущему значению ups добавляется единица (nz используется, чтобы заменить отсутствующие значения нулем). В противном случае ups присваивается ноль. ↩︎
  3. Стратегия выполняет вход в лонг, если на последних нескольких барах (в примере их 3, значение consecutiveBarsUp) текущее закрытие выше, чем на предыдущем. Аналогично для шорта, только учитывая закрытия. ↩︎
Понравилась статья? Поделиться с друзьями: