Flag & Pole Pattern Tp-sl
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «flag & pole pattern tp-sl.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Индикатор Flag & Pole Pattern Tp-sl предназначен для обнаружения паттернов «флаг и полюс» на графиках TradingView. Он определяет мощные импульсы (полюса) по изменению цены закрытия за заданный период относительно среднего истинного диапазона (ATR), а затем выявляет структуру флага на основе трёх пивотов высоких и низких цен.
При обнаружении полюса и подтверждённой структуры флага индикатор строит проекционные трендовые линии сопротивления и поддержки, расширяющиеся вправо по графику. Если цена закрытия выходит за границу флага, формируется сигнал покупки или продажи с соответствующими графическими отметками.
Индикатор предоставляет настраиваемые параметры отображения: метки полюса, трендовые линии, сигналы BUY/SELL и метки пробоя. Также поддерживаются четыре условия оповещений TradingView для отслеживания ключевых событий паттерна. На графике отображается информационная панель с ссылкой на Telegram-канал.
Настройки программы
| Настройка | Описание |
|---|---|
| poleLookback | Количество баров назад, на которое смотрится цена закрытия для оценки величины движения полюса. |
| poleATRMult | Минимальный множитель ATR, определяющий пороговое значение движения цены для распознавания полюса. |
| atrLength | Период расчёта среднего истинного диапазона (ATR), используемого для определения минимального размера полюса. |
| pivotLen | Период определения пивотов (локальных максимумов и минимумов), используемых для построения структуры флага. |
| touchTolerance | Допуск в процентах, определяющий допустимое отклонение при касании границ флага. |
| maxFlagBars | Максимальное количество баров, в течение которых флаг может оставаться активным до автоматического истечения. |
| minSlopePercent | Минимальный процент наклона границ флага, необходимый для подтверждения корректной структуры паттерна. |
| showPole | Отображение меток полюса (Bullish Flag / Bearish Flag) на графике при обнаружении нового паттерна. |
| showTrendlines | Отображение проекционных трендовых линий сопротивления и поддержки флага на графике. |
| showSignals | Отображение графических сигналов BUY и SELL на графике при пробое границ флага. |
| showBreakoutLabels | Отображение меток пробоя флага (BUY/SELL) на графике при срабатывании сигнала. |
Поиск по коду файла
indicator("Flag & Pole Pattern Tp-sl", shorttitle="F & P JPT", overlay=true, max_lines_count=100, max_labels_count=100)
groupPole = "Pole Detection"
poleLookback = input.int(20, "Pole Lookback", minval=5, maxval=100, group=groupPole)
poleATRMult = input.float(3.0, "Minimum Pole Size (ATR)", minval=1.0, step=0.5, group=groupPole)
atrLength = input.int(14, "ATR Length", minval=1, group=groupPole)
groupFlag = "Flag Detection"
pivotLen = input.int(6, "Pivot Length", minval=2, maxval=20, group=groupFlag)
touchTolerance = input.float(0.30, "Touch Tolerance (%)", minval=0.05, maxval=2.0, step=0.05, group=groupFlag)
maxFlagBars = input.int(40, "Maximum Flag Length (Bars)", minval=10, maxval=150, group=groupFlag)
minSlopePercent = input.float(0.02, "Minimum Trendline Slope (%)", minval=0.0, step=0.01, group=groupFlag)
groupDisplay = "Display Settings"
showPole = input.bool(true, "Show Pole Labels", group=groupDisplay)
showTrendlines = input.bool(true, "Show Flag Trendlines", group=groupDisplay)
showSignals = input.bool(true, "Show BUY / SELL Signals", group=groupDisplay)
showBreakoutLabels = input.bool(true, "Show Breakout Labels", group=groupDisplay)
atrValue = ta.atr(atrLength)
pivotHigh = ta.pivothigh(high, pivotLen, pivotLen)
pivotLow = ta.pivotlow(low, pivotLen, pivotLen)
var float high1 = na
var float high2 = na
var float high3 = na
var int highBar1 = na
var int highBar2 = na
var int highBar3 = na
if not na(pivotHigh)
high1 := high2
high2 := high3
high3 := pivotHigh
highBar1 := highBar2
highBar2 := highBar3
highBar3 := bar_index - pivotLen
var float low1 = na
var float low2 = na
var float low3 = na
var int lowBar1 = na
var int lowBar2 = na
var int lowBar3 = na
if not na(pivotLow)
low1 := low2
low2 := low3
low3 := pivotLow
lowBar1 := lowBar2
lowBar2 := lowBar3
lowBar3 := bar_index - pivotLen
poleStart = close[poleLookback]
poleMove = not na(poleStart) ? close - poleStart : 0.0
bullPole = not na(poleStart) and poleMove >= atrValue * poleATRMult
bearPole = not na(poleStart) and poleMove <= -atrValue * poleATRMult
descendingHighs = not na(high1) and not na(high2) and not na(high3) and high1 > high2 and high2 > high3
descendingLows = not na(low1) and not na(low2) and not na(low3) and low1 > low2 and low2 > low3
ascendingHighs = not na(high1) and not na(high2) and not na(high3) and high1 < high2 and high2 < high3
ascendingLows = not na(low1) and not na(low2) and not na(low3) and low1 < low2 and low2 < low3
highSlopeDown = not na(highBar1) and not na(highBar3) and highBar3 > highBar1 and high1 > high3
lowSlopeDown = not na(lowBar1) and not na(lowBar3) and lowBar3 > lowBar1 and low1 > low3
highSlopeUp = not na(highBar1) and not na(highBar3) and highBar3 > highBar1 and high1 < high3
lowSlopeUp = not na(lowBar1) and not na(lowBar3) and lowBar3 > lowBar1 and low1 < low3
bullFlagSlope = highSlopeDown and lowSlopeDown
bearFlagSlope = highSlopeUp and lowSlopeUp
bullSlopePercent = bullFlagSlope ? math.abs((high3 - high2) / high2) * 100 : 0.0
bearSlopePercent = bearFlagSlope ? math.abs((high3 - high2) / high2) * 100 : 0.0
bullStructure = descendingHighs and descendingLows and bullFlagSlope and bullSlopePercent >= minSlopePercent
bearStructure = ascendingHighs and ascendingLows and bearFlagSlope and bearSlopePercent >= minSlopePercent
var table wm = table.new(position.bottom_right, 1, 1)
if barstate.isfirst
table.cell(wm, 0, 0, "Telegram @free_fx_pro", text_color = color.new(color.gray, 70), text_size = size.large)
var bool bullishFlagActive = false
var bool bearishFlagActive = false
var int bullishFlagStart = na
var int bearishFlagStart = na
var line bullResistance = na
var line bullSupport = na
var line bearResistance = na
var line bearSupport = na
newBullFlag = barstate.isconfirmed and bullPole and bullStructure and not bullishFlagActive
newBearFlag = barstate.isconfirmed and bearPole and bearStructure and not bearishFlagActive
if newBullFlag
bullishFlagActive := true
bearishFlagActive := false
bullishFlagStart := bar_index
if not na(bullResistance)
line.delete(bullResistance)
if not na(bullSupport)
line.delete(bullSupport)
bullResistance := line.new(highBar1, high1, highBar3, high3, xloc=xloc.bar_index, extend=extend.right, color=color.lime, width=2, style=line.style_dashed)
bullSupport := line.new(lowBar1, low1, lowBar3, low3, xloc=xloc.bar_index, extend=extend.right, coloПоказано первые 50% кода (символов: 7601)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.