← К каталогу
Исходный код · ID 3823

Combined Trendlines Breakouts

mr mt4 indicator trendlines breakouts for tradingview 2.pine

Похожие материалы по тегам

#__slope direction line.mq5MQL5 / MetaTrader 5 · 1 общих теговrange breakout @meowforex1.pineTradingView · 1 общих тегов#1.mtf_collider_h4_close_13_v18bar.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit3.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit2.mq4MQL4 / MetaTrader 4 · 1 общих тегов!mth_fasttmaline_edit.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Индикатор TradingView, написанный на Pine Script v6, отображает на графике трендовые линии, построенные по точкам разворота (pivot high / pivot low). Линии продлеваются вправо, и при пересечении ценой автоматически помечаются как пробитые. Встроены сигнальные маркеры и условия оповещений для отслеживания формирования и пробития трендовых линий.

Дополнительно индикатор рассчитывает каналы поддержки и сопротивления на основе пивотов и отображает их в виде прямоугольников с цветовой индикацией расположения цены. При выходе цены за границы каналов фиксируются события пробития. Опционально доступны overlay-средние скользящие (SMA/EMA) и отображение пивотных точек.

Предусмотрена настраиваемая водяная метка и информационная таблица. Индикатор работает поверх графика (overlay), поддерживает пользовательские параметры цвета, стиля, толщины линий и количества отображаемых элементов. Условия оповещений TradingView заданы для трендовых линий, их пробития, а также уровней поддержки и сопротивления.

Настройки программы

НастройкаОписание
show_trendlines Показывать трендовые линии — Включает или отключает отображение трендовых линий на графике.
upper_trendline_color Цвет линии вверх — Цвет восходящей трендовой линии.
lower_trendline_color Цвет линии вниз — Цвет нисходящей трендовой линии.
extendLine Продление линий — Включает или отключает продление активных трендовых линий вправо.
linestyle_curr_inp Стиль линий — Стиль активных трендовых линий: сплошная, пунктирная или точечная.
line_width_curr Толщина линий — Толщина активных трендовых линий.
pivLen_L Длина lookback — Длина левого lookback для определения точек разворота (pivot).
broken_color_up Цвет пробитой линии вверх — Цвет восходящей пробитой трендовой линии.
broken_color_down Цвет пробитой линии вниз — Цвет нисходящей пробитой трендовой линии.
extendLine_B Продление пробитых линий — Включает или отключает продление пробитых трендовых линий вправо.
show_signals Показывать сигналы — Включает или отключает отображение маркеров сигналов при пробитии трендовых линий.
broken_color_up_signal Цвет сигнала вверх — Цвет маркера сигнала при пробитии восходящей трендовой линии.
broken_color_down_signal Цвет сигнала вниз — Цвет маркера сигнала при пробитии нисходящей трендовой линии.
maxLines Максимум пробитых линий — Максимальное количество отображаемых пробитых трендовых линий.
Source_tl Источник цены — Источник цены для определения пробития трендовой линии: по закрытию (Close) или по диапазону High/Low.
linestyle_broken_inp Стиль пробитых линий — Стиль линий пробитых трендовых линий: сплошная, пунктирная или точечная.
line_width_broken Толщина пробитых линий — Толщина линий пробитых трендовых линий.
watermarki_supp Показать водяную метку — Включает или отключает отображение водяной метки на графике.
i_tableYpos_oto_supp Позиция по вертикали — Вертикальное положение информационной таблицы: сверху, по центру или снизу.
i_tableXpos_oto_supp Позиция по горизонтали — Горизонтальное положение информационной таблицы: слева, по центру или справа.
i_height_oto_supp Высота метки — Высота информационной таблицы водяной метки.
i_width_oto_supp Ширина метки — Ширина информационной таблицы водяной метки.
i_c_text_oto_supp Цвет текста метки — Цвет текста в информационной таблице водяной метки.
_bg_oto_supp Цвет фона метки — Цвет фона информационной таблицы водяной метки.
i_textSize Размер текста — Размер текста в информационной таблице: от tiny до auto.
Period Период пивотов — Период для определения точек разворота (pivot) при построении трендовых линий с целями.
Trendtype Тип разворота — Тип анализа разворотов: по теням (Wicks) или по телам свечей (Body).
Extensions Продление — Задаёт длину продления трендовой линии: 25%, 50% или 75% от текущего барового интервала.
LineCol1 Цвет заливки — Цвет заливки области внутри трендовой линии с целями.
ShowTargets Показывать цели — Включает или скрывает отображение целевых уровней (TP) на графике.
prd Период пивотов каналов — Период пивотов для расчёта каналов поддержки и сопротивления.
ppsrc Источник пивотов — Источник данных для расчёта пивотов: High/Low или Close/Open.
ChannelW Максимальная ширина канала % — Максимальная ширина канала в процентах, используемая при формировании каналов поддержки и сопротивления.
minstrength Минимальная сила — Минимальная сила канала поддержки/сопротивления (количество касаний).
maxnumsr Максимум каналов S/R — Максимальное количество отображаемых каналов поддержки и сопротивления.
loopback Период обратного просмотра — Период обратного просмотра при расчёте уровней поддержки и сопротивления.
res_col Цвет сопротивления — Цвет канала сопротивления.
sup_col Цвет поддержки — Цвет канала поддержки.
inch_col Целевой цвет канала — Цвет канала поддержки/сопротивления, когда цена находится внутри канала.
showpp Показывать пивотные точки — Отображает или скрывает метки пивотных точек (H/L) на графике.
showsrbroken Показывать пробитые каналы — Отображает или скрывает маркеры при пробитии каналов поддержки/сопротивления.
showthema1en Показать MA 1 — Включает или отключает отображение первой скользящей средней.
showthema1len Период MA 1 — Период первой скользящей средней.
showthema1type Тип MA 1 — Тип первой скользящей средней: SMA или EMA.
showthema2en Показать MA 2 — Включает или отключает отображение второй скользящей средней.
showthema2len Период MA 2 — Период второй скользящей средней.
showthema2type Тип MA 2 — Тип второй скользящей средней: SMA или EMA.
Получить полный код

Поиск по коду файла

indicator('Combined Trendlines Breakouts', overlay = true, max_bars_back = 501, max_lines_count = 500)

show_trendlines = input.bool(true, 'Show Trendlines', inline = 'tl_1', group = 'Trendlines')
upper_trendline_color = input.color(#9598a1, '', inline = 'tl_1', group = 'Trendlines')
lower_trendline_color = input.color(#9598a1, '', inline = 'tl_1', group = 'Trendlines')
extendLine = input.bool(true, 'Extend', inline = 'tl_1', group = 'Trendlines')
linestyle_curr_inp = input.string(defval = 'Solid', title = 'Style', options = ['Solid', 'Dotted', 'Dashed'], inline = 'tl_3', group = 'Trendlines')
line_width_curr = input.int(1, 'Width', step = 1, minval = 1, maxval = 4, inline = 'tl_3', group = 'Trendlines')
pivLen_L = input.int(20, 'Lookback', step = 1, minval = 1, inline = 'tl_5', group = 'Trendlines')
pivLen_R = pivLen_L
hideCrossed = not input.bool(true, 'Show Broken', inline = 'tl_2', group = 'Trendlines')
broken_color_up = input.color(#9598a1, '', inline = 'tl_2', group = 'Trendlines')
broken_color_down = input.color(#9598a1, '', inline = 'tl_2', group = 'Trendlines')
extendLine_B = input.bool(true, 'Extend', inline = 'tl_2', group = 'Trendlines')
show_signals = input.bool(false, 'Show Signals', inline = 'tl_s', group = 'Trendlines')
broken_color_up_signal = input.color(color.yellow, '', inline = 'tl_s', group = 'Trendlines')
broken_color_down_signal = input.color(color.yellow, '', inline = 'tl_s', group = 'Trendlines')
maxLines = input.int(3, 'Max Broken', step = 1, minval = 1, maxval = 50, inline = 'tl_2_B', group = 'Trendlines')
Source_tl = input.string('Close', 'Mitigation', options = ['Close', 'High/Low'], inline = 'tl_2_B', group = 'Trendlines')
linestyle_broken_inp = input.string(defval = 'Dashed', title = 'Style (Broken)', options = ['Solid', 'Dotted', 'Dashed'], inline = 'tl_2-1', group = 'Trendlines')
line_width_broken = input.int(1, 'Width', step = 1, minval = 1, maxval = 4, inline = 'tl_2-1', group = 'Trendlines')
lineStyle_curr = linestyle_curr_inp == 'Solid' ? line.style_solid : linestyle_curr_inp == 'Dotted' ? line.style_dotted : line.style_dashed
lineStyle_broken = linestyle_broken_inp == 'Solid' ? line.style_solid : linestyle_broken_inp == 'Dotted' ? line.style_dotted : line.style_dashed
s_close = request.security(ticker.standard(syminfo.tickerid), timeframe.period, close)
s_open = request.security(ticker.standard(syminfo.tickerid), timeframe.period, open)
s_high = request.security(ticker.standard(syminfo.tickerid), timeframe.period, high)
s_low = request.security(ticker.standard(syminfo.tickerid), timeframe.period, low)
var array<line> pivot_high_array = array.new_line()
var array<line> pivot_low_array = array.new_line()
ph_M = ta.pivothigh(s_high, pivLen_L, pivLen_R)
pl_M = ta.pivotlow(s_low, pivLen_L, pivLen_R)
ph = ta.pivothigh(s_high, pivLen_L, pivLen_R)
pl = ta.pivotlow(s_low, pivLen_L, pivLen_R)
var float prev_close_H = na
var float curr_close_H = na
var float prev_close_L = na
var float curr_close_L = na
var int X_prev_low = na
var float Y_prev_low = na
var int X_curr_low = na
var float Y_curr_low = na
var int X_curr_high = na
var float Y_curr_high = na
var int X_prev_high = na
var float Y_prev_high = na
maxLines := hideCrossed ? 0 : maxLines
tl_array_size_up = maxLines / 2
tl_array_size_dn = maxLines % 2 == 0 ? maxLines / 2 : maxLines / 2 + 1

newTrendLine(ptype, x1, y1, x2, y2) =>
    new_trendline = line.new(x1, y1, x2, y2, extend = extendLine ? extend.right : extend.none, color = ptype == 'ph' ? upper_trendline_color : lower_trendline_color, width = line_width_curr, style = lineStyle_curr, xloc = xloc.bar_index)
    if ptype == 'ph'
        pivot_high_array.unshift(new_trendline)
    else
        pivot_low_array.unshift(new_trendline)
SlopeOfLine(line) =>
    slopePh = (line.get_y2(line) - line.get_y1(line)) / (line.get_x2(line) - line.get_x1(line))
    extendedPh = line.get_y2(line) - slopePh * (line.get_x2(line) - bar_index)
    extendedPh
up_trend_line_formed = false
down_trend_line_formed = false
if bool(pl)
    X_prev_low := X_curr_low
    Y_prev_low := Y_curr_low
    prev_close_L := curr_close_L
    X_curr_low := bar_index[pivLen_R]
    Y_curr_low := s_low[pivLen_R]
    curr_close_L := s_close[pivLen_R]
    if Y_prev_low < Y_curr_low and show_trendlines and Y_curr_low > prev_close_L
        newTrendLine('pl', X_prev_low, Y_prev_low, X_curr_low, Y_curr_low)
        down_trend_line_formed := true
        down_trend_line_formed
if bool(ph)
    X_prev_high := X_curr_high
    Y_prev_high := Y_curr_high
    prev_close_H := curr_close_H
    X_curr_high := bar_index[pivLen_R]
    Y_curr_high := s_high[pivLen_R]
    curr_close_H := s_close[pivLen_R]
    if Y_prev_high > Y_curr_high and show_trendlines and prev_close_H > Y_curr_high
        newTrendLine('ph', X_prev_high, Y_prev_high, X_curr_high, Y_curr_high)
        up_trend_line_formed := true
        up_trend_line_formed
if close > Y_prev_high
    Y_prev_high := 0.000000
    Y_prev_high
if close < Y_prev_low
    Y_prev_low := 9999999999.9999
    Y_prev_low
alertcondition(down_trend_line_formed or up_trend_line_formed, 'Trendline Formed', 'Trendline Formed')
up_trend_line_broken = false
down_trend_line_broken = false
for x in pivot_low_array
    var array<line> Down_Trend_Lines = array.new_line(tl_array_size_up)
    var array<label> Down_Trend_Labels = array.new_label(tl_array_size_up)
    src = Source_tl == 'Close' ? s_close : s_low
    x.set_xy2(bar_index, SlopeOfLine(x))
    if x.get_x2() - x.get_x1() > 300
        x.delete()
    if src < line.get_y2(x)
        tl_line = line.new(line.get_x1(x), line.get_y1(x), line.get_x2(x), line.get_y2(x), color = broken_color_down, style = lineStyle_broken, width = line_width_broken, xloc = xloc.bar_index, extend = extendLine_B ? extend.right : extend.none)
        down_trend_line_broken := true
        Down_Trend_Lines.unshift(tl_line)
        line.delete(x)
    if Down_Trend_Lines.size() > tl_array_size_up
        line.delete(Down_Trend_Lines.pop())
for x in pivot_high_array
    var array<line> Up_Trend_Lines = array.new_line(tl_array_size_dn)
    var array<label> Up_Trend_Labels = array.new_label(tl_array_size_dn)
    src = Source_tl == 'Close' ? s_close : s_high
    x.set_xy2(bar_index, SlopeOfLine(x))
    if x.get_x2() - x.get_x1() > 300
        x.delete()
    if src > line.get_y2(x)
        tl_line = line.new(line.get_x1(x), line.get_y1(x), line.get_x2(x), line.get_y2(x), color = broken_color_up, style = lineStyle_broken, width = line_width_broken, xloc = xloc.bar_index, extend = extendLine_B ? extend.right : extend.none)
        up_trend_line_broken := true
        Up_Trend_Lines.unshift(tl_line)
        line.delete(x)
    if Up_Trend_Lines.size() > tl_array_size_dn
        line.delete(Up_Trend_Lines.pop())
plotshape(show_signals and up_trend_line_broken ? low : na, title = 'Trendline Broken Up', style = shape.xcross, textcolor = color.new(color.white, 0), size = size.small, location = location.belowbar, color = broken_color_up_signal, display = display.all - display.status_line, editable = false)
plotshape(show_signals and down_trend_line_broken ? high : na, title = 'Trendline Broken Down', style = shape.xcross, textcolor = color.new(color.white, 0), size = size.small, location = location.abovebar, color = broken_color_down_signal, display = display.all - display.status_line, editable = false)
alertcondition(up_trend_line_broken or down_trend_line_broken, 'Trendline Broken', 'Trendline Broken')

watermarki_supp = input.bool(true, 'Watermark', group = 'Author Sign') //confirm=true)
string i_tableYpos_oto_supp = input.string('top', 'Position', inline = '12', options = ['top', 'middle', 'bottom'])
string i_tableXpos_oto_supp = input.string('right', '', inline = '12', options = ['left', 'center', 'right'])
int i_height_oto_supp = input.int(7, 'Height', minval = 1, maxval = 100, inline = '13')
int i_width_oto_supp = input.int(30, 'Width', minval = 1, maxval = 100, inline = '13a')
color i_c_text_oto_supp = input.color(color.new(color.white, 0), '', inline = '14')
color _bg_oto_supp = input.color(color.new(color.blue, 70), '', inline = '14')
string i_textSize = input.string('normal', 'Size', inline = '14', options = ['tiny', 'small', 'normal', 'large', 'huge', 'auto'])
i_text2_supp = 'EarnWithEnigma'
i_text1_supp = 'When using the indicator EarnWithEnigma thank you'
var table watermark_supp = table.new(i_tableYpos_oto_supp + '_' + i_tableXpos_oto_supp, 1, 1)
if barstate.islast and watermarki_supp
    varip bool _changeText_supp = true
    _changeText_supp := not _changeText_supp
    string _txt_supp = _changeText_supp ? i_text2_supp : i_text1_supp
    table.cell(watermark_supp, 0, 0, i_text2_supp, i_width_oto_supp, i_height_oto_supp, i_c_text_oto_supp, text_size = i_textSize, bgcolor = _bg_oto_supp)

bool ChartTime = time > chart.left_visible_bar_time and time < chart.right_visible_bar_time
string CORE = '➞ Core Settings ????'
var bool TradeisON = false
var bool LongTrade = false
var bool ShortTrade = false
var float TP = 0.0
var float SL = 0.0
int BarTIME = time - time[1]
var line tpLine = na
var label LAB = na
var int UpdatedX = 0
var float UpdatedY = 0.0
var float UpdatedSLP = 0.0
var int UpdatedXLow = 0
var float UpdatedYLow = 0.0
var float UpdatedSLPLow = 0.0
int Period = input.int(10, title = '    Period     ➞', group = CORE, inline = '001')
bool Trendtype = input.string(title = '     Type        ➞', defval = 'Wicks', options = ['Wicks', 'Body'], group = CORE, inline = '001') == 'Wicks'
string Extensions = input.string(title = '     Extend    ➞', defval = '  25', options = ['  25', '  50', '  75'], group = CORE, inline = '001')
color LineCol1 = input.color(color.rgb(109, 111, 111, 19), '', group = CORE, inline = '001')
bool ShowTargets = input.bool(true, 'Show Targets', group = CORE, inline = '002')
ExtenSwitcher(ex) =>
    switch ex
        '  25' => 1
        '  50' => 2
        => 3
WidthSwitcher(ex) =>
    switch ex
        '1' => 1
        '2' => 2
        => 3
StyleSwitcher(style) =>
    switch style
        'Dashed' => line.style_dashed
        'Dotted' => line.style_dotted
        => line.style_solid
method volAdj(int len) =>
    math.min(ta.atr(len) * 0.3, close * (0.3 / 100))[20] / 2
Zband = volAdj(30)
method Trendlines(float src, int timeIndex, bool dir) =>
    var int Start = 1
    var int End = 0
    var int TIME = 1
    var float YEnd = 0
    var float YStart = 0
    var float Slope = 0
    var line Line1 = line.new(na, na, na, na)
    var line Line2 = line.new(na, na, na, na)
    var line Line3 = line.new(na, na, na, na)
    SCR = fixnan(src)
    if ta.change(SCR) != 0
        TIME := time[timeIndex]
        YStart := SCR[1]
        Start := TIME[1]
        Slope := (SCR - YStart) / (TIME - Start)
        Slope
    EXTime = ExtenSwitcher(Extensions) * BarTIME * 25
    End := TIME + EXTime
    YEnd := SCR + EXTime * Slope
    if ta.change(SCR) != 0 and not TradeisON[1]
        LineCond = Slope * time < 0 ? dir ? na : color.rgb(11, 139, 7, 53) : dir ? color.rgb(212, 46, 0, 54) : na
        if not na(LineCond) //and ChartTime
            Line1 := line.new(Start, YStart, End, YEnd, xloc.bar_time, extend.none, color = color.new(color.white, 100))
            Line2 := line.new(Start, YStart - Zband * 2, End, YEnd - Zband * 2, xloc.bar_time, extend.none, color = color.new(color.black, 100))
            Line3 := line.new(Start, YStart - Zband * 1, End, YEnd - Zband * 1, xloc.bar_time, extend.none, color = color.new(color.black, 100))
            linefill.new(Line3, Line2, color = LineCol1)
            linefill.new(Line3, Line1, color = LineCond)
    [Start, YStart, Slope]
PH = ta.pivothigh(Trendtype ? high : close > open ? close : open, Period, Period / 2)
PL = ta.pivotlow(Trendtype ? low : close > open ? open : close, Period, Period / 2)
method GetlinePrice(int TIME, float Price, float SLOP, int LookB) =>

Показано первые 50% кода (символов: 18671)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
1 867,10₽ ≈ $22.82