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

DTC - v1.36

dtc 1.36.pine
Вы автор или правообладатель?

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

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

О программе

DTC — индикатор анализа тренда для TradingView, работающий на основе скользящих средних EMA нескольких периодов. Он определяет направление тренда по их расположению и отображает сигналы на графике в виде линий, ценовых меток и заливок. Поддерживается мультитаймфреймовый анализ с данными других интервалов и инструментов через request.security(). Индикатор предоставляет настраиваемые параметры отображения, фильтрации по волатильности и условия для оповещений TradingView.

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

НастройкаОписание
len1 EMA 1 — Период первой скользящей средней EMA
len2 EMA 2 — Период второй скользящей средней EMA
len3 EMA 3 — Период третьей скользящей средней EMA
len4 EMA 4 — Период четвёртой скользящей средней EMA
len5 EMA 5 — Период пятой скользящей средней EMA
len6 EMA 6 — Период шестой скользящей средней EMA
tf1 15M — Таймфрейм для первого уровня мультитаймфреймового анализа
tf2 30M — Таймфрейм для второго уровня мультитаймфреймового анализа
tf3 1H — Таймфрейм для третьего уровня мультитаймфреймового анализа
tf4 4H — Таймфрейм для четвёртого уровня мультитаймфреймового анализа
tf5 Daily — Таймфрейм для пятого уровня мультитаймфреймового анализа
sl_lookback Stop-Loss Lookback — Размер окна для определения уровня стоп-лосса (Tiny, Small, Mid, Large)
stopLossVal Stop Loss % — Процентное значение стоп-лосса от цены входа
tp1Multiplier TP1 Multiplier — Множитель для расчёта первого уровня фиксации прибыли
tp2Multiplier TP2 Multiplier — Множитель для расчёта второго уровня фиксации прибыли
tp3Multiplier TP3 Multiplier — Множитель для расчёта третьего уровня фиксации прибыли
tp4Multiplier TP4 Multiplier — Множитель для расчёта четвёртого уровня фиксации прибыли
lineLength Line Length (bars) — Длина горизонтальных линий уровней в барах
showNumbers Show Price Numbers — Включает отображение ценовых меток рядом с уровнями
showLabels Show Signal Labels — Включает отображение меток BUY и SELL на графике
useATR Enable ATR Filter? — Включает фильтрацию сигналов по волатильности ATR
atrPeriod ATR Period — Период расчёта индикатора ATR для фильтра
atrMin Min ATR Value — Минимальное значение ATR для пропуска сигнала
show_dashboard Show Multi-Timeframe Dashboard — Включает отображение панели с информацией по таймфреймам
dashboard_size Dashboard Size — Размер шрифта в панели мультитаймфреймового анализа (small, normal, large)
Получить полный код

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

indicator(title='DTC - v1.36', shorttitle='DTC v1.36', overlay=true, max_labels_count=500, max_lines_count=500)

var string inp_note_1 = "DTC"
var string inp_note_1_position_v = "center" 
var string inp_note_1_position_h = "center" 
var color inp_note_1_color = color.rgb(107, 107, 107, 75)
var string inp_note_1_size = size.huge
f_convert_position(position_v, position_h) =>
    var string p = "middle_center"
    if position_v == "Сверху"
        p := position_h == "Слева" ? "top_left" : position_h == "По центру" ? "top_center" : "top_right"
    else if position_v == "По центру"
        p := position_h == "Слева" ? "middle_left" : position_h == "По центру" ? "middle_center" : "middle_right"
    else if position_v == "Снизу"
        p := position_h == "Слева" ? "bottom_left" : position_h == "По центру" ? "bottom_center" : "bottom_right"
    p
var table tbl_note_1 = table.new(f_convert_position(inp_note_1_position_v, inp_note_1_position_h), 1, 1, border_width = 0)
if barstate.islast
    table.cell(tbl_note_1, 0, 0, inp_note_1, text_color = inp_note_1_color, text_size = inp_note_1_size)
var table infoTable = table.new(position.top_center, 2, 6, bgcolor = color.new(#000000, 41), border_width = 1)
if barstate.islast
    table.cell(infoTable, 1, 0, "DTC INDICATOR", text_color = color.rgb(255, 251, 0), text_size = size.large)

group_ema = "EMA Settings"
len1 = input.int(30, minval=1, title='EMA 1', group=group_ema)
len2 = input.int(35, minval=1, title='EMA 2', group=group_ema)
len3 = input.int(40, minval=1, title='EMA 3', group=group_ema)
len4 = input.int(45, minval=1, title='EMA 4', group=group_ema)
len5 = input.int(50, minval=1, title='EMA 5', group=group_ema)
len6 = input.int(60, minval=1, title='EMA 6', group=group_ema)

group_mtf = "Multi-Timeframe Settings"
tf1 = input.timeframe("15", title="15M", group=group_mtf)
tf2 = input.timeframe("30", title="30M", group=group_mtf)
tf3 = input.timeframe("60", title="1H", group=group_mtf)
tf4 = input.timeframe("240", title="4H", group=group_mtf)
tf5 = input.timeframe("1D", title="Daily", group=group_mtf)

group_trade = "Risk Management"
sl_lookback = input.string("Mid", title="Stop-Loss Lookback", options=["Tiny", "Small", "Mid", "Large"], group=group_trade)
stopLossVal = input.float(0.25, title="Stop Loss %", minval=0, group=group_trade)
tp1Multiplier = input.float(1.0, "TP1 Multiplier", minval=0, step=0.1, group=group_trade)
tp2Multiplier = input.float(2.0, "TP2 Multiplier", minval=0, step=0.1, group=group_trade)
tp3Multiplier = input.float(3.0, "TP3 Multiplier", minval=0, step=0.1, group=group_trade)
tp4Multiplier = input.float(4.0, "TP4 Multiplier", minval=0, step=0.1, group=group_trade)

group_display = "Display"
lineLength = input.int(1, "Line Length (bars)", minval=1, maxval=50, group=group_display)
showNumbers = input.bool(true, "Show Price Numbers", group=group_display)
showLabels = input.bool(true, "Show Signal Labels", group=group_display)

group_filter = "ATR Filter"
useATR = input.bool(true, "Enable ATR Filter?", group=group_filter)
atrPeriod = input.int(14, "ATR Period", minval=1, group=group_filter)
atrMin = input.float(0.5, "Min ATR Value", minval=0, step=0.1, group=group_filter)

group_dashboard = "Dashboard"
show_dashboard = input.bool(true, title="Show Multi-Timeframe Dashboard", group=group_dashboard)
dashboard_size = input.string("normal", title="Dashboard Size", options=["small", "normal", "large"], group=group_dashboard)

get_table_size() =>
    switch dashboard_size
        "small" => size.tiny
        "normal" => size.small
        "large"  => size.normal
        => size.small

sl_length = switch sl_lookback
    "Tiny"  => 3
    "Small" => 5
    "Mid"   => 8
    "Large" => 12
    => 8

src = close
ema1 = ta.ema(src, len1)
ema2 = ta.ema(src, len2)
ema3 = ta.ema(src, len3)
ema4 = ta.ema(src, len4)
ema5 = ta.ema(src, len5)
ema6 = ta.ema(src, len6)

bullish_trend = ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6
bearish_trend = ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6

ema_color = bullish_trend ? color.lime : bearish_trend ? color.red : color.gray

plot(ema1, title='EMA 30', linewidth=3, color=ema_color)
plot(ema2, title='EMA 35', linewidth=2, color=ema_color)
plot(ema3, title='EMA 40', linewidth=2, color=ema_color)
plot(ema4, title='EMA 45', linewidth=1, color=ema_color)
plot(ema5, title='EMA 50', linewidth=1, color=ema_color)
plot(ema6, title='EMA 60', linewidth=1, color=ema_color)

htf1_ema_fast = request.security(syminfo.tickerid, tf1, ta.ema(close, 20), lookahead=barmerge.lookahead_off)
htf1_ema_slow = request.security(syminfo.tickerid, tf1, ta.ema(close, 50), lookahead=barmerge.lookahead_off)
htf2_ema_fast = request.security(syminfo.tickerid, tf2, ta.ema(close, 20), lookahead=barmerge.lookahead_off)
htf2_ema_slow = request.security(syminfo.tickerid, tf2, ta.ema(close, 50), lookahead=barmerge.lookahead_off)
htf3_ema_fast = request.security(syminfo.tickerid, tf3, ta.ema(close, 20), lookahead=barmerge.lookahead_off)
htf3_ema_slow = request.security(syminfo.tickerid, tf3, ta.ema(close, 50), lookahead=barmerge.lookahead_off)
htf4_ema_fast = request.security(syminfo.tickerid, tf4, ta.ema(close, 20), lookahead=barmerge.lookahead_off)
htf4_ema_slow = request.security(syminfo.tickerid, tf4, ta.ema(close, 50), lookahead=barmerge.lookahead_off)
htf5_ema_fast = request.security(syminfo.tickerid, tf5, ta.ema(close, 20), lookahead=barmerge.lookahead_off)
htf5_ema_slow = request.security(syminfo.tickerid, tf5, ta.ema(close, 50), lookahead=barmerge.lookahead_off)

htf1_trend = htf1_ema_fast > htf1_ema_slow
htf2_trend = htf2_ema_fast > htf2_ema_slow
htf3_trend = htf3_ema_fast > htf3_ema_slow
htf4_trend = htf4_ema_fast > htf4_ema_slow
htf5_trend = htf5_ema_fast > htf5_ema_slow

var int signal_state = 0  // 1=long, -1=short, 0=none

long_signal_raw  = not bullish_trend[1] and bullish_trend and barstate.isconfirmed
short_signal_raw = not bearish_trend[1] and bearish_trend and barstate.isconfirmed

atr_value = ta.atr(atrPeriod)
atr_ok    = not useATR or (atr_value > atrMin)

long_signal  = long_signal_raw  and signal_state != 1  and atr_ok
short_signal = short_signal_raw and signal_state != -1 and atr_ok

lowest_low  = ta.lowest(low,  sl_length)
highest_high = ta.highest(high, sl_length)

var float entry = na
var float sl = na
var float tp1 = na
var float tp2 = na
var float tp3 = na
var float tp4 = na

var line entryLine = na
var line slLine = na
var line tp1Line = na
var line tp2Line = na
var line tp3Line = na
var line tp4Line = na

var label entryLabel = na
var label slLabel = na
var label tp1Label = na
var label tp2Label = na
var label tp3Label = na
var label tp4Label = na

var linefill slFill = na
var linefill tpFill = na

if long_signal
    signal_state := 1
    entry := close
    sl := entry * (1 - stopLossVal/100)
    tp1 := entry * (1 + stopLossVal * tp1Multiplier/100)
    tp2 := entry * (1 + stopLossVal * tp2Multiplier/100)
    tp3 := entry * (1 + stopLossVal * tp3Multiplier/100)
    tp4 := entry * (1 + stopLossVal * tp4Multiplier/100)
else if short_signal
    signal_state := -1
    entry := close
    sl := entry * (

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

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

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

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

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

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

Стоимость полного кода
1 189,40₽ ≈ $14.54