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? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.