Confirmed Fib (BOS + Pullback)
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «confirmed fib (bos + pullback).pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Confirmed Fib (BOS + Pullback) — это индикатор для TradingView, который строит подтверждённые уровни Фибоначчи на основе структурного анализа. Индикатор определяет импульсные движения и структурные пивоты, а затем рисует уровни Фибоначчи между якорными точками — верхним и нижним экстремумами.
Индикатор поддерживает режим Fast Draw, при котором уровни строятся сразу после подтверждения импульса и структурного пробоя без ожидания пивота отката. Также доступен классический режим, ожидающий пивота отката перед построением.
Для фильтрации используется смещение по старшему таймфрейму (HTF Bias), а также буфер невалидации на основе ATR. Индикатор отображает зону золотого сечения (0.618–0.786), линию импульса, метки якорей и информационную панель с текущим состоянием структуры.
Настроены уровни Фибоначчи от 0.000 до 1.000, параметры отображения, цветовые темы и условия оповещений для новых построенных уровней и касания зоны золотого сечения.
Настройки программы
| Настройка | Описание |
|---|---|
| fastDraw | Включает режим быстрого построения: уровни Фибоначчи рисуются сразу после подтверждения импульса и структурного пробоя, без ожидания пивота отката. |
| pivotLen | Количество баров слева и справа для определения структурных пивотов (предыдущие свинги и опорные точки для BOS). |
| impulseR | Количество баров справа для подтверждения импульсного экстремума в режиме Fast Draw. Влияет на скорость построения уровня. |
| pullbackPivotL | Количество баров слева и справа для определения пивота отката. Используется только при выключенном режиме Fast Draw. |
| displacementATR | Минимальный размер импульса в единицах ATR(14). Определяет, насколько значительным должен быть импульс для подтверждения структуры. |
| invalidBufATR | Допуск по свече при невалидации структуры (закрытие ниже/выше якорного пивота), в единицах ATR(14). |
| maxLegAgeBars | Максимальный возраст ноги в барах. Если якоря не обновлялись дольше указанного количества баров, структура автоматически сбрасывается. |
| historyDepth | Количество недавних пивотов, сохраняемых в памяти для поиска последовательностей. |
| useBias | Включает или отключает фильтр смещения по старшему таймфрейму для подтверждения направления структуры. |
| biasPivotL | Количество баров слева и справа для определения структурных пивотов на старшем таймфрейме (смещение). |
| lvl0 | Включает или отключает отображение уровня Фибоначчи 0.000. |
| lvl236 | Включает или отключает отображение уровня Фибоначчи 0.236. |
| lvl382 | Включает или отключает отображение уровня Фибоначчи 0.382. |
| lvl5 | Включает или отключает отображение уровня Фибоначчи 0.500. |
| lvl618 | Включает или отключает отображение уровня Фибоначчи 0.618. |
| lvl786 | Включает или отключает отображение уровня Фибоначчи 0.786. |
| lvl1 | Включает или отключает отображение уровня Фибоначчи 1.000. |
| themeStr | Выбор цветовой темы для индикатора (влияет на фон, панели, линии Фибоначчи и другие элементы). |
| midColor | Цвет линии уровня Фибоначчи 0.500. |
| goldFill | Цвет заливки зоны золотого сечения (0.618–0.786). |
| goldEdge | Цвет границы зоны золотого сечения (0.618–0.786). |
| impulseCol | Цвет линии импульса, соединяющей якорные точки. |
| showImpulse | Включает или отключает отображение линии импульса между якорными точками. |
| extendRight | Продлевает линии и зоны Фибоначчи вправо за текущий бар. |
| showLabels | Включает или отключает ценные метки рядом с уровнями Фибоначчи. |
| showAnchors | Включает или отключает отображение маркеров якорных точек (HH, HL, LH, LL). |
| showInfo | Включает или отключает информационную панель с текущим состоянием структуры, смещением и якорными точками. |
| alertOnNewFib | Включает или отключает оповещение при построении нового уровня Фибоначчи. |
| alertOnZone | Включает или отключает оповещение при касании зоны золотого сечения. |
Поиск по коду файла
indicator("Confirmed Fib (BOS + Pullback)", overlay = true, max_lines_count = 100, max_labels_count = 100, max_boxes_count = 20)
grpS = "Structure"
fastDraw = input.bool(true, "Fast Draw (skip pullback pivot)", group = grpS, tooltip = "ON: Fib draws as soon as impulse + BOS + displacement confirm. Earliest possible draw, anchors lock once drawn.\nOFF: original behaviour — waits for the pullback pivot before drawing.")
pivotLen = input.int(8, "Pivot length (L/R)", minval = 1, maxval = 30, group = grpS, tooltip = "Bars left & right for STRUCTURAL pivots (prior swing + BOS reference).\n• 15M → 18\n• 1H → 8\n• 4H → 4\n• Daily → 3")
impulseR = input.int(3, "Impulse pivot R (Fast Draw)", minval = 1, maxval = 15, group = grpS, tooltip = "Right-side bars before the impulse extreme confirms (Fast Draw only).\nLower = Fib draws sooner relative to the impulse peak.\nWith anchor lock, the first detected impulse is locked even if a higher high prints later.\nSuggested: 3 standard, 2 fast, 5 conservative.")
pullbackPivotL = input.int(2, "Pullback pivot length (L/R)", minval = 1, maxval = 15, group = grpS, tooltip = "Only used when Fast Draw is OFF. Bars left & right for the PULLBACK pivot.\nLower = faster draw, weaker pullbacks. Suggested: 2 standard, 1 fast, 5 strict.")
displacementATR = input.float(1.5, "Min displacement (ATR)", minval = 0.0, maxval = 10.0, step = 0.1, group = grpS, tooltip = "Minimum impulse size in ATR(14) units.\n• 0 → any impulse\n• 1.0 → modest\n• 1.5 → meaningful (default)\n• 2.5+ → major moves only")
invalidBufATR = input.float(0.25, "Invalidation buffer (ATR)", minval = 0.0, maxval = 2.0, step = 0.05, group = grpS, tooltip = "Wick tolerance on close-below-priorLow (above-priorHigh) invalidation, in ATR(14) units.")
maxLegAgeBars = input.int(150, "Max leg age (bars)", minval = 20, maxval = 2000, group = grpS, tooltip = "Auto-refresh: leg cleared if anchors haven't updated in this many bars.")
historyDepth = input.int(15, "Pivots retained", minval = 6, maxval = 30, group = grpS, tooltip = "Recent pivots kept in memory for sequence lookback.")
grpB = "HTF Bias"
useBias = input.bool(true, "Use HTF bias filter", group = grpB, tooltip = "Bias auto-resolves to NEXT standard TF up.")
biasPivotL = input.int(3, "HTF pivot length (L/R)", minval = 1, maxval = 15, group = grpB)
grpF = "Fib Levels"
lvl0 = input.bool(true, "0.000", group = grpF, inline = "a")
lvl236 = input.bool(true, "0.236", group = grpF, inline = "a")
lvl382 = input.bool(true, "0.382", group = grpF, inline = "b")
lvl5 = input.bool(true, "0.500", group = grpF, inline = "b")
lvl618 = input.bool(true, "0.618", group = grpF, inline = "c")
lvl786 = input.bool(true, "0.786", group = grpF, inline = "c")
lvl1 = input.bool(true, "1.000", group = grpF, inline = "d")
grpV = "Visual"
themeStr = input.string("SHEPHERDFX Algorithms", "Colour Theme", options = ["SHEPHERDFX Algorithms", "Midnight", "Stealth", "Blood Red", "Matrix", "Arctic", "Neon Orange", "Royal Blue", "Forest", "Monochrome"], group = grpV, tooltip = "Drives dashboard colours and fib line colour.")
midColor = input.color(color.rgb(160, 160, 170), "0.500 line color", group = grpV)
goldFill = input.color(color.new(#FFD700, 80), "Golden zone fill", group = grpV)
goldEdge = input.color(color.new(#B8860B, 40), "Golden zone edge", group = grpV)
impulseCol = input.color(color.rgb(140, 140, 160), "Impulse line color", group = grpV)
showImpulse = input.bool(true, "Show impulse line", group = grpV)
extendRight = input.bool(true, "Extend right", group = grpV)
showLabels = input.bool(true, "Price labels", group = grpV)
showAnchors = input.bool(true, "Anchor markers", group = grpV)
showInfo = input.bool(true, "Info panel", group = grpV)
grpA = "Alerts"
alertOnNewFib = input.bool(true, "Alert on new fib drawn", group = grpA)
alertOnZone = input.bool(true, "Alert on Golden Zone touch", group = grpA)
color cBg_P = color.rgb(8, 0, 15)
color cPanel_P = color.rgb(15, 0, 32)
color cHeader_P = color.rgb(22, 0, 48)
color cBrand_P = color.rgb(28, 0, 58)
color cFrame_P = color.rgb(204, 0, 255)
color cGrid_P = color.rgb(28, 0, 58)
color cFib_P = color.rgb(156, 39, 176)
color cBull_P = color.rgb(0, 255, 160)
color cBear_P = color.rgb(255, 70, 70)
color cBg_M = color.rgb(5, 5, 8)
color cPanel_M = color.rgb(10, 10, 14)
color cHeader_M = color.rgb(15, 15, 22)
color cBrand_M = color.rgb(18, 18, 28)
color cFrame_M = color.rgb(0, 210, 255)
color cGrid_M = color.rgb(18, 18, 28)
color cFib_M = color.rgb(0, 210, 255)
color cBull_M = color.rgb(0, 255, 160)
color cBear_M = color.rgb(255, 70, 70)
color cBg_S = color.rgb(18, 18, 18)
color cPanel_S = color.rgb(26, 26, 26)
color cHeader_S = color.rgb(34, 34, 34)
color cBrand_S = color.rgb(40, 40, 40)
color cFrame_S = color.rgb(200, 160, 40)
color cGrid_S = color.rgb(40, 40, 40)
color cFib_S = color.rgb(200, 160, 40)
color cBull_S = color.rgb(80, 200, 80)
color cBear_S = color.rgb(220, 60, 60)
color cBg_R = color.rgb(10, 0, 0)
color cPanel_R = color.rgb(20, 0, 0)
color cHeader_R = color.rgb(32, 0, 0)
color cBrand_R = color.rgb(42, 0, 0)
color cFrame_R = color.rgb(220, 0, 0)
color cGrid_R = color.rgb(42, 0, 0)
color cFib_R = color.rgb(220, 0, 0)
color cBull_R = color.rgb(255, 80, 80)
color cBear_R = color.rgb(180, 0, 0)
color cBg_X = color.rgb(0, 5, 0)
color cPanel_X = color.rgb(0, 10, 0)
color cHeader_X = color.rgb(0, 18, 0)
color cBrand_X = color.rgb(0, 24, 0)
color cFrame_X = color.rgb(0, 255, 70)
color cGrid_X = color.rgb(0, 24, 0)
color cFib_X = color.rgb(0, 255, 70)
color cBull_X = color.rgb(0, 255, 70)
color cBear_X = color.rgb(0, 180, 50)
color cBg_A = color.rgb(5, 10, 18)
color cPanel_A = color.rgb(8, 16, 28)
color cHeader_A = color.rgb(12, 22, 40)
color cBrand_A = color.rgb(15, 28, 50)
color cFrame_A = color.rgb(140, 210, 255)
color cGrid_A = color.rgb(15, 28, 50)
color cFib_A = color.rgb(140, 210, 255)
color cBull_A = color.rgb(140, 220, 255)
color cBear_A = color.rgb(80, 160, 220)
color cBg_O = color.rgb(12, 6, 0)
color cPanel_O = color.rgb(22, 10, 0)
color cHeader_O = color.rgb(32, 14, 0)
color cBrand_O = color.rgb(40, 18, 0)
color cFib_O = color.rgb(255, 120, 0)
color cFrame_O = color.rgb(255, 120, 0)
color cGrid_O = color.rgb(40, 18, 0)
color cBull_O = color.rgb(255, 160, 40)
color cBear_O = color.rgb(200, 80, 0)
color cBg_B = color.rgb(4, 6, 18)
color cPanel_B = color.rgb(6, 10, 30)
color cHeader_B = color.rgb(8, 14, 44)
color cBrand_B = color.rgb(10, 18, 56)
color cFrame_B = color.rgb(40, 120, 255)
color cGrid_B = color.rgb(10, 18, 56)
color cFib_B = color.rgb(40, 120, 255)
color cBull_B = color.rgb(100, 180, 255)
color cBear_B = color.rgb(40, 80, 200)
color cBg_F = color.rgb(4, 12, 4)
color cPanel_F = color.rgb(6, 20, 6)
color cHeader_F = color.rgb(8, 28, 8)
color cBrand_F = color.rgb(10, 36, 10)
color cFrame_F = color.rgb(100, 255, 50)
color cGrid_F = color.rgb(10, 36, 10)
color cFib_F = color.rgb(100, 255, 50)
color cBull_F = color.rgb(100, 255, 50)
color cBear_F = color.rgb(50, 180, 20)
color cBg_Mo = color.rgb(8, 8, 8)
color cPanel_Mo = color.rgb(16, 16, 16)
color cHeader_Mo = color.rgb(26, 26, 26)
color cBrand_Mo = color.rgb(34, 34, 34)
color cFrame_Mo = color.rgb(220, 220, 220)
color cGrid_Mo = color.rgb(34, 34, 34)
color cFib_Mo = color.rgb(220, 220, 220)
color cBull_Mo = color.rgb(200, 200, 200)
color cBear_Mo = color.rgb(120, 120, 120)
color cBg = themeStr == "Midnight" ? cBg_M : themeStr == "Stealth" ? cBg_S : themeStr == "Blood Red" ? cBg_R : themeStr == "Matrix" ? cBg_X : themeStr == "Arctic" ? cBg_A : themeStr == "Neon Orange" ? cBg_O : themeStr == "Royal Blue" ? cBg_B : themeStr == "Forest" ? cBg_F : themeStr == "Monochrome" ? cBg_Mo : cBg_P
color cPanel = themeStr == "Midnight" ? cPanel_M : themeStr == "Stealth" ? cPanel_S : themeStr == "Blood Red" ? cPanel_R : themeStr == "Matrix" ? cPanel_X : themeStr == "Arctic" ? cPanel_A : themeStr == "Neon Orange" ? cPanel_O : themeStr == "Royal Blue" ? cPanel_B : themeStr == "Forest" ? cPanel_F : themeStr == "Monochrome" ? cPanel_Mo : cPanel_P
color cHeader = themeStr == "Midnight" ? cHeader_M : themeStr == "Stealth" ? cHeader_S : themeStr == "Blood Red" ? cHeader_R : themeStr == "Matrix" ? cHeader_X : themeStr == "Arctic" ? cHeader_A : themeStr == "Neon Orange" ? cHeader_O : themeStr == "Royal Blue" ? cHeader_B : themeStr == "Forest" ? cHeader_F : themeStr == "Monochrome" ? cHeader_Mo : cHeader_P
color cBrand = themeStr == "Midnight" ? cBrand_M : themeStr == "Stealth" ? cBrand_S : themeStr == "Blood Red" ? cBrand_R : themeStr == "Matrix" ? cBrand_X : themeStr == "Arctic" ? cBrand_A : themeStr == "Neon Orange" ? cBrand_O : themeStr == "Royal Blue" ? cBrand_B : themeStr == "Forest" ? cBrand_F : themeStr == "Monochrome" ? cBrand_Mo : cBrand_P
color cFrame = themeStr == "Midnight" ? cFrame_M : themeStr == "Stealth" ? cFrame_S : themeStr == "Blood Red" ? cFrame_R : themeStr == "Matrix" ? cFrame_X : themeStr == "Arctic" ? cFrame_A : themeStr == "Neon Orange" ? cFrame_O : themeStr == "Royal Blue" ? cFrame_B : themeStr == "Forest" ? cFrame_F : themeStr == "Monochrome" ? cFrame_Mo : cFrame_P
color cGrid = themeStr == "Midnight" ? cGrid_M : themeStr == "Stealth" ? cGrid_S : themeStr == "Blood Red" ? cGrid_R : themeStr == "Matrix" ? cGrid_X : themeStr == "Arctic" ? cGrid_A : themeStr == "Neon Orange" ? cGrid_O : themeStr == "Royal Blue" ? cGrid_B : themeStr == "Forest" ? cGrid_F : themeStr == "Monochrome" ? cGrid_Mo : cGrid_P
color cFib = themeStr == "Midnight" ? cFib_M : themeStr == "Stealth" ? cFib_S : themeStr == "Blood Red" ? cFib_R : themeStr == "Matrix" ? cFib_X : themeStr == "Arctic" ? cFib_A : themeStr == "Neon Orange" ? cFib_O : themeStr == "Royal Blue" ? cFib_B : themeStr == "Forest" ? cFib_F : themeStr == "Monochrome" ? cFib_Mo : cFib_P
color cBull = themeStr == "Midnight" ? cBull_M : themeStr == "Stealth" ? cBull_S : themeStr == "Blood Red" ? cBull_R : themeStr == "Matrix" ? cBull_X : themeStr == "Arctic" ? cBull_A : themeStr == "Neon Orange" ? cBull_O : themeStr == "Royal Blue" ? cBull_B : themeStr == "Forest" ? cBull_F : themeStr == "Monochrome" ? cBull_Mo : cBull_P
color cBear = themeStr == "Midnight" ? cBear_M : themeStr == "Stealth" ? cBear_S : themeStr == "Blood Red" ? cBear_R : themeStr == "Matrix" ? cBear_X : themeStr == "Arctic" ? cBear_A : themeStr == "Neon Orange" ? cBear_O : themeStr == "Royal Blue" ? cBear_B : themeStr == "Forest" ? cBear_F : themeStr == "Monochrome" ? cBear_Mo : cBear_P
color cText = color.rgb(235, 235, 235)
color cSub = color.rgb(150, 150, 160)
color cDim = color.rgb(110, 110, 125)
color brandBG = color.new(cBrand, 0)
color headerBG = color.new(cHeader, 0)
color panelBG = color.new(cPanel, 0)
color frameCl = color.new(cFrame, 0)
color gridCl = color.new(cGrid, 0)
int chartSec = timeframe.in_seconds(timeframe.period)
int sec1H = timeframe.in_seconds("60")
int sec4H = timeframe.in_seconds("240")
int secD = timeframe.in_seconds("D")
int secW = timeframe.in_seconds("W")
int secM = timeframe.in_seconds("M")
string biasTF = chartSec < sec1H ? "60" : chartSec < sec4H ? "240" : chartSec < secD ? "D" : chartSec < secW ? "W" : chartSec < secM ? "M" : ""
bool biasAvailable = biasTF != ""
bool effBias = useBias and biasAvailable
string biasTFname = ""
if biasTF == "60"
biasTFname := "1H"
else if biasTF == "240"
biasTFname := "4H"
else if biasTF == "D"
biasTFname := "Daily"
else if biasTF == "W"
biasTFname := "Weekly"
else if biasTF == "M"
biasTFname := "Monthly"
ph = ta.pivothigh(high, pivotLen, pivotLen)
pl = ta.pivotlow(low, pivotLen, pivotLen)
phFast = ta.pivothigh(high, pivotLen, impulseR)
plFast = ta.pivotlow(low, pivotLen, impulseR)
phPull = ta.pivothigh(high, pullbackPivotL, pullbackPivotL)
plPull = ta.pivotlow(low, pullbackPivotL, pullbackPivotL)
var float[] phPrices = array.new_float()
var int[] phBars = array.new_int()
var float[] plPrices = array.new_float()
var int[] plBars = array.new_int()
var float[] phFastPrices = array.new_float()
var int[] phFastBars = array.new_int()
var float[] plFastPrices = array.new_float()
var int[] plFastBars = array.new_int()
var float[] phPullPrices = array.new_float()
var int[] phPullBars = array.new_int()
var float[] plPullPrices = array.new_float()
var int[] plPullBars = array.new_int()
if not na(ph)
array.push(phPrices, ph)
array.push(phBars, bar_index - pivotLen)
if array.size(phPrices) > historyDepth
array.shift(phPrices)
array.shift(phBars)
if not na(pl)
array.push(plPrices, pl)
array.push(plBars, bar_index - pivotLen)
if array.size(plPrices) > historyDepth
array.shift(plPrices)
array.shift(plBars)
if not na(phFast)
array.push(phFastPrices, phFast)
array.push(phFastBars, bar_index - impulseR)
if array.size(phFastPrices) > historyDepth
array.shift(phFastPrices)
array.shift(phFastBars)
if not na(plFast)
array.push(plFastPrices, plFast)
array.push(plFastBars, bar_index - impulseR)
if array.size(plFastPrices) > historyDepth
array.shift(plFastPrices)
array.shift(plFastBars)
if not na(phPull)
array.push(phPullPrices, phPull)
array.push(phPullBars, bar_index - pullbackPivotL)
if array.size(phPullPrices) > historyDepth
array.shift(phPullPrices)
array.shift(phPullBars)
if not na(plPull)
array.push(plPullPrices, plPull)
array.push(plPullBars, bar_index - pullbackPivotL)
if array.size(plPullPrices) > historyDepth
array.shift(plPullPrices)
array.shift(plPullBars)
f_structBias() =>
pHi = ta.pivothigh(high, biasPivotL, biasPivotL)
pLo = ta.pivotlow(low, biasPivotL, biasPivotL)
lastPH = ta.valuewhen(not na(pHi), pHi, 0)
priorPH = ta.valuewhen(not na(pHi), pHi, 1)
lastPL = ta.valuewhen(not na(pLo), pLo, 0)
priorPL = ta.valuewhen(not na(pLo), pLo, 1)
bull = not na(lastPH) and not na(priorPH) and not na(lastPL) and not na(priorPL) and lastPH > priorPH and lastPL > priorPL
bear = not na(lastPH) and not na(priorPH) and not na(lastPL) and not na(priorPL) and lastPH < priorPH and lastPL < priorPL
bull ? 1 : bear ? -1 : 0
string biasTFsafe = biasAvailable ? biasTF : "D"
structB = request.security(syminfo.tickerid, biasTFsafe, f_structBias(), barmerge.gaps_off, barmerge.lookahead_off)
int htfBias = not effBias ? 0 : structB
atr14 = ta.atr(14)
var table myTable = table.new(position.bottom_right, 1, 1, border_width=1, frame_color=color.black, bgcolor=color.white)
table.cell(myTable, 0, 0, "Join Telegram @shepherdfxtradingtools", bgcolor=color.blue, text_color=color.white, text_size=size.normal)
var int trend = 0
var float anchorHi = na
var int anchorHiBar = na
var float anchorLo = na
var int anchorLoBar = na
var string stateStr = "No Active Structure"
var int stickyAge = 0
var float zoneTop = na
var float zoneBot = na
var bool zoneAlertFired = false
Показано первые 50% кода (символов: 23071)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.