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

The RealGains Algo

the real-gains algo 2.5 final.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 общих тегов
Вы автор или правообладатель?

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

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

О программе

The RealGains Algo — это многокомпонентный индикатор-оверлей для TradingView, написанный на Pine Script v6. Он объединяет несколько подсистем анализа тренда и отображения сигналов на одном графике. Индикатор предназначен для визуальной оценки направления цены, определения потенциальных точек входа и выхода, а также для мониторинга состояния рынка на множестве таймфреймов одновременно.

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

НастройкаОписание
src Источник данных — Исходный источник данных для расчётов (по умолчанию — цена закрытия).
per Период сэмплирования — Период, используемый для расчёта сглаженного диапазона фильтра.
mult Множитель диапазона — Множитель, определяющий ширину верхней и нижней границ канала.
showSMA20 Показать SMA 20 — Включает отображение скользящей средней с периодом 20 на графике.
showSMA50 Показать SMA 50 — Включает отображение скользящей средней с периодом 50 на графике.
showSMA200 Показать SMA 200 — Включает отображение скользящей средней с периодом 200 на графике.
useSMA20Filter Фильтр по SMA 20 — Включает фильтрацию сигналов по условию цены относительно SMA 20.
useSMA50Filter Фильтр по SMA 50 — Включает фильтрацию сигналов по условию цены относительно SMA 50.
useSMA200Filter Дополнительный фильтр по SMA 200 — Включает дополнительную фильтрацию сигналов по условию цены относительно SMA 200.
paint_bars Окрашивать свечи — Включает окрашивание свечей в соответствии с направлением тренда.
catch_flat Перехватывать плоскость — Включает попытку определения плоского (нестрендового) состояния рынка.
uptrend_colour Цвет восходящего тренда — Цвет, используемый для обозначения восходящего тренда.
downtrend_colour Цвет нисходящего тренда — Цвет, используемый для обозначения нисходящего тренда.
neutraltrend_colour Цвет нейтрального тренда — Цвет, используемый для обозначения нейтрального (плоского) состояния.
show_header Показать заголовок — Включает отображение заголовка таблицы на графике.
show_ema_value Показать значение EMA — Включает отображение значений EMA в таблице таймфреймов.
dashboard_position Позиция панели — Позиция таблицы с информацией о трендах на графике.
text_size Размер текста — Размер шрифта текста в таблице.
text_color Цвет текста — Цвет текста в таблице и водяных знаках.
table_color Цвет границ таблицы — Цвет границ таблицы с данными.
uptrend_indicator Индикатор восходящего тренда — Символ, отображаемый в таблице для восходящего тренда.
downtrend_indicator Индикатор нисходящего тренда — Символ, отображаемый в таблице для нисходящего тренда.
neutraltrend_indicator Индикатор нейтрального тренда — Символ, отображаемый в таблице для нейтрального состояния.
trend_identification_approach Подход определения тренда — Метод определения направления тренда: по одному EMA или сравнению двух EMAs.
ema1_length Длина EMA — Период первой экспоненциальной скользящей средней для определения тренда.
ema2_length Дополнительная длина EMA — Период второй экспоненциальной скользящей средней для сравнения направлений.
show_1m Показать 1m — Включает отображение таймфрейма 1 минута в таблице трендов.
show_2m Показать 2m — Включает отображение таймфрейма 2 минуты в таблице трендов.
show_3m Показать 3m — Включает отображение таймфрейма 3 минуты в таблице трендов.
show_5m Показать 5m — Включает отображение таймфрейма 5 минут в таблице трендов.
show_10m Показать 10m — Включает отображение таймфрейма 10 минут в таблице трендов.
show_15m Показать 15m — Включает отображение таймфрейма 15 минут в таблице трендов.
show_30m Показать 30m — Включает отображение таймфрейма 30 минут в таблице трендов.
show_45m Показать 45m — Включает отображение таймфрейма 45 минут в таблице трендов.
show_1h Показать 1h — Включает отображение таймфрейма 1 час в таблице трендов.
show_2h Показать 2h — Включает отображение таймфрейма 2 часа в таблице трендов.
show_3h Показать 3h — Включает отображение таймфрейма 3 часа в таблице трендов.
show_4h Показать 4h — Включает отображение таймфрейма 4 часа в таблице трендов.
show_12h Показать 12h — Включает отображение таймфрейма 12 часов в таблице трендов.
show_D Показать D — Включает отображение дневного таймфрейма в таблице трендов.
show_3D Показать 3D — Включает отображение таймфрейма 3 дня в таблице трендов.
show_W Показать W — Включает отображение недельного таймфрейма в таблице трендов.
show_M Показать M — Включает отображение месячного таймфрейма в таблице трендов.
title Заголовок — Текст заголовка водяного знака на графике.
subtitle Подзаголовок — Текст подзаголовка водяного знака на графике.
symInfoCheck Показать информацию о символе — Включает отображение информации о символе и таймфрейме на графике.
textVPosition Вертикальная позиция текста — Вертикальное положение водяного знака с заголовком.
textHPosition Горизонтальная позиция текста — Горизонтальное положение водяного знака с заголовком.
symVPosition Вертикальная позиция символа — Вертикальное положение водяного знака с информацией о символе.
symHPosition Горизонтальная позиция символа — Горизонтальное положение водяного знака с информацией о символе.
width Ширина — Ширина ячеек водяного знака в процентах от визуального пространства индикатора.
height Высота — Высота ячеек водяного знака в процентах от визуального пространства индикатора.
c_title Цвет заголовка — Цвет текста заголовка водяного знака.
s_title Размер заголовка — Размер шрифта заголовка водяного знака.
a_title Выравнивание заголовка — Выравнивание текста заголовка водяного знака.
c_subtitle Цвет подзаголовка — Цвет текста подзаголовка водяного знака.
s_subtitle Размер подзаголовка — Размер шрифта подзаголовка водяного знака.
a_subtitle Выравнивание подзаголовка — Выравнивание текста подзаголовка водяного знака.
c_symInfo Цвет информации о символе — Цвет текста информации о символе.
s_symInfo Размер информации о символе — Размер шрифта информации о символе.
a_symInfo Выравнивание информации о символе — Выравнивание текста информации о символе.
c_bg Цвет фона — Цвет фона водяных знаков.
TrendMode Режим тренда — Режим агрессивности тренд-системы, влияющий на чувствительность линий.
HTFMode Режим старшего таймфрейма — Режим выбора старшего таймфрейма: автоматический или ручной.
TimeFrameM Агрегация старшего таймфрейма — Выбор таймфрейма для старшей временной системы при ручном режиме.
ShowTrendBars Показать бары тренда — Включает окрашивание свечей на основе направления тренда по DMI/ADX.
TrendBarBullish Бычий цвет баров — Цвет свечей при бычьем тренде.
TrendBarBearish Медвежий цвет баров — Цвет свечей при медвежьем тренде.
TrendBarNeutral Нейтральный цвет баров — Цвет свечей при отсутствии выраженного тренда.
ShowTrend Показать линию тренда — Включает отображение линии тренда на основе экспоненциальной скользящей средней.
TrendBullish Бычий цвет линии тренда — Цвет линии тренда при бычьем направлении.
TrendBearish Медвежий цвет линии тренда — Цвет линии тренда при медвежьем направлении.
TrendNeutral Нейтральный цвет линии тренда — Цвет линии тренда при нейтральном состоянии.
ShowStop Показать стоп-линию — Включает отображение стоп-линии на основе ATR.
StopBullish Бычий цвет стоп-линии — Цвет стоп-линии при бычьем направлении.
StopBearish Медвежий цвет стоп-линии — Цвет стоп-линии при медвежьем направлении.
ShowTrend2 Показать линию тренда старшего ТФ — Включает отображение линии тренда старшего таймфрейма.
TrendBullish2 Бычий цвет линии тренда старшего ТФ — Цвет линии тренда старшего таймфрейма при бычьем направлении.
TrendBearish2 Медвежий цвет линии тренда старшего ТФ — Цвет линии тренда старшего таймфрейма при медвежьем направлении.
TrendNeutral2 Нейтральный цвет линии тренда старшего ТФ — Цвет линии тренда старшего таймфрейма при нейтральном состоянии.
ShowStop2 Показать стоп-линию старшего ТФ — Включает отображение стоп-линии старшего таймфрейма.
StopBullish2 Бычий цвет стоп-линии старшего ТФ — Цвет стоп-линии старшего таймфрейма при бычьем направлении.
StopBearish2 Медвежий цвет стоп-линии старшего ТФ — Цвет стоп-линии старшего таймфрейма при медвежьем направлении.
ShowCloud Показать облачную заливку — Включает заливку области между линиями тренда и стопа цветом направления.
CloudBullish Бычий цвет облачной заливки — Цвет облачной заливки при бычьем направлении.
CloudBearish Медвежий цвет облачной заливки — Цвет облачной заливки при медвежьем направлении.
ShowHTFCloud Показать облачную заливку старшего ТФ — Включает облачную заливку для старшего таймфрейма.
CloudBullish2 Бычий цвет облачной заливки старшего ТФ — Цвет облачной заливки старшего таймфрейма при бычьем направлении.
CloudBearish2 Медвежий цвет облачной заливки старшего ТФ — Цвет облачной заливки старшего таймфрейма при медвежьем направлении.
showEntryBuy Показать вход в покупку — Отображает метку входа в длинную позицию.
showTpBuy Показать TP покупки — Отображает метку достижения цели прибыли для длинной позиции.
showReBuy Показать повторный вход покупки — Отображает метку повторного входа в длинную позицию.
showExitBuy Показать выход покупки — Отображает метку выхода из длинной позиции.
showEntrySell Показать вход в продажу — Отображает метку входа в короткую позицию.
showTpSell Показать TP продажи — Отображает метку достижения цели прибыли для короткой позиции.
showReSell Показать повторный вход продажи — Отображает метку повторного входа в короткую позицию.
showExitSell Показать выход продажи — Отображает метку выхода из короткой позиции.
useSmaFilter Включить фильтр SMA — Включает фильтр по SMA 200 для сигналов PSAR.
psarStart Начальное значение PSAR — Начальное значение ускорения PSAR.
psarIncrement Приращение PSAR — Шаг увеличения ускорения PSAR.
Получить полный код

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

indicator(title = 'The RealGains Algo', shorttitle = 'The RealGains Algo 2.5', overlay = true)

upColor = color.white
midColor = #90bff9
downColor = color.blue

src = input(defval = close, title = 'Source')

per = input.int(defval = 100, minval = 1, title = 'Sampling Period')

mult = input.float(defval = 3.0, minval = 0.1, title = 'Range Multiplier')

g_sma = "Choose SMAs"
showSMA20 = input.bool(true, title = 'Show 20 SMA', group=g_sma)
showSMA50 = input.bool(true, title = 'Show 50 SMA', group=g_sma)
showSMA200 = input.bool(true, title = 'Show 200 SMA', group=g_sma)

g_filter = "Apply SMAs Filter"
useSMA20Filter = input.bool(true, title="Filter Signals using SMA 20", group=g_filter)
useSMA50Filter = input.bool(true, title="Filter Signals using SMA 50", group=g_filter)
useSMA200Filter = input.bool(true, title="Additional Filter using SMA 200", group=g_filter)

sma20 = ta.sma(src, 20)
sma50 = ta.sma(src, 50)
sma200 = ta.sma(src, 200)

sma20Color = src > sma20 ? color.new(color.green, 0) : color.new(color.red, 0)
sma50Color = src > sma50 ? color.new(color.green, 0) : color.new(color.red, 0)
sma200Color = src > sma200 ? color.new(color.green, 0) : color.new(color.red, 0)

plot(showSMA20 ? sma20 : na, color = sma20Color, linewidth = 1, title = 'SMA 20')
plot(showSMA50 ? sma50 : na, color = sma50Color, linewidth = 1, title = 'SMA 50')
plot(showSMA200 ? sma200 : na, color = sma200Color, linewidth = 2, title = 'SMA 200')

smoothrng(x, t, m) =>
    wper = t * 2 - 1
    avrng = ta.ema(math.abs(x - x[1]), t)
    smoothrng = ta.ema(avrng, wper) * m
    smoothrng
smrng = smoothrng(src, per, mult)

rngfilt(x, r) =>
    rngfilt = x
    rngfilt := x > nz(rngfilt[1]) ? x - r < nz(rngfilt[1]) ? nz(rngfilt[1]) : x - r : x + r > nz(rngfilt[1]) ? nz(rngfilt[1]) : x + r
    rngfilt
filt = rngfilt(src, smrng)

upward = 0.0
upward := filt > filt[1] ? nz(upward[1]) + 1 : filt < filt[1] ? 0 : nz(upward[1])
downward = 0.0
downward := filt < filt[1] ? nz(downward[1]) + 1 : filt > filt[1] ? 0 : nz(downward[1])

hband = filt + smrng
lband = filt - smrng

filtcolor = upward > 0 ? upColor : downward > 0 ? downColor : midColor
barcolor = src > filt and src > src[1] and upward > 0 ? upColor : src > filt and src < src[1] and upward > 0 ? upColor : src < filt and src < src[1] and downward > 0 ? downColor : src < filt and src > src[1] and downward > 0 ? downColor : midColor

filtplot = plot(filt, color = filtcolor, linewidth = 2, title = 'Range Filter')

hbandplot = plot(hband, color = color.new(upColor, 70), title = 'High Target')
lbandplot = plot(lband, color = color.new(downColor, 70), title = 'Low Target')

fill(hbandplot, filtplot, color = color.new(upColor, 90), title = 'High Target Range')
fill(lbandplot, filtplot, color = color.new(downColor, 90), title = 'Low Target Range')

barcolor(barcolor)

longCond = bool(na)
shortCond = bool(na)
longCond := src > filt and src > src[1] and upward > 0 or src > filt and src < src[1] and upward > 0
shortCond := src < filt and src < src[1] and downward > 0 or src < filt and src > src[1] and downward > 0

CondIni = 0
CondIni := longCond ? 1 : shortCond ? -1 : CondIni[1]

validLongSignal = longCond and CondIni[1] == -1 and
                  (not useSMA20Filter or src > sma20) and     // SMA 20 filter
                  (not useSMA50Filter or src > sma50) and     // SMA 50 filter
                  (not useSMA200Filter or src > sma200)       // SMA 200 filter

validShortSignal = shortCond and CondIni[1] == 1 and 
                   (not useSMA20Filter or src < sma20) and    // SMA 20 filter
                   (not useSMA50Filter or src < sma50) and    // SMA 50 filter
                   (not useSMA200Filter or src < sma200)      // SMA 200 filter

plotshape(validLongSignal, title = 'Buy Signal', text = 'Buy', textcolor = color.white, style = shape.labelup, size = size.small, location = location.belowbar, color = color.new(#aaaaaa, 20))
plotshape(validShortSignal, title = 'Sell Signal', text = 'Sell', textcolor = color.white, style = shape.labeldown, size = size.small, location = location.abovebar, color = color.new(downColor, 20))

alertcondition(validLongSignal, title = 'Buy alert on Range Filter', message = 'Buy alert on Range Filter')
alertcondition(validShortSignal, title = 'Sell alert on Range Filter', message = 'Sell alert on Range Filter')
alertcondition(validLongSignal or validShortSignal, title = 'Buy and Sell alert on Range Filter', message = 'Buy and Sell alert on Range Filter')

paint_bars = input(false, title = 'Paint bars?', group = 'Bars Settings')
catch_flat = input(false, title = 'Try to catch flat?', group = 'Bars Settings')
uptrend_colour = input.color(defval = color.green, title = 'Uptrend colour', group = 'Bars Settings')
downtrend_colour = input.color(defval = color.red, title = 'Downtrend colour', group = 'Bars Settings')
neutraltrend_colour = input.color(defval = color.gray, title = 'Downtrend colour', tooltip = 'Note that this value is ignored if the setting to catch flat is switched off.', group = 'Bars Settings')

show_header = input(false, title = 'Show header?', group = 'Table Settings')
show_ema_value = input(false, title = 'Show EMA value?', group = 'Table Settings')
dashboard_position = input.session('Middle right', 'Position', ['Top right', 'Bottom right', 'Top left', 'Bottom left', 'Top center', 'Bottom center', 'Middle right'], group = 'Table Settings')
text_size = input.session('Normal', 'Size', options = ['Tiny', 'Small', 'Normal', 'Large'], group = 'Table Settings')
text_color = input(#d1d4dc, title = 'Text colour', group = 'Table Settings')
table_color = input(color.gray, title = 'Border colour', group = 'Table Settings')
uptrend_indicator = input('🟢', title = 'Uptrend indicator', group = 'Table Settings')
downtrend_indicator = input('🔴', title = 'Downtrend indicator', group = 'Table Settings')
neutraltrend_indicator = input('⚫️', title = 'Neutraltrend indicator', tooltip = 'Note that this value is ignored if the setting to catch flat is switched off.', group = 'Table Settings')

trend_identification_approach = input.session('Direction of a single EMA', 'Trend identification approach', ['Direction of a single EMA', 'Comparison of the two EMAs'], group = 'EMA Settings')
ema1_length = input.int(title = 'EMA length', defval = 50, minval = 1, maxval = 800, group = 'EMA Settings')
ema2_length = input.int(title = 'Additional EMA length', defval = 200, minval = 20, maxval = 800, tooltip = 'Note that the single EMA trend identification approach ignores this value.', group = 'EMA Settings')

show_1m = input(true, title = 'Show 1m', group = 'Timeframe Settings')
show_2m = input(false, title = 'Show 2m ', group = 'Timeframe Settings')
show_3m = input(true, title = 'Show 3m ', group = 'Timeframe Settings')
show_5m = input(true, title = 'Show 5m', group = 'Timeframe Settings')
show_10m = input(false, title = 'Show 10m', group = 'Timeframe Settings')
show_15m = input(true, title = 'Show 15m', group = 'Timeframe Settings')
show_30m = input(false, title = 'Show 30m', group = 'Timeframe Settings')
show_45m = input(false, title = 'Show 45m', group = 'Timeframe Settings')
show_1h = input(true, title = 'Show 1h', group = 'Timeframe Settings')
show_2h = input(false, title = 'Show 2h', group = 'Timeframe Settings')
show_3h = input(false, title = 'Show 3h', group = 'Timeframe Settings')
show_4h = input(true, title = 'Show 4h', group = 'Timeframe Settings')
show_12h = input(false, title = 'Show 12h', group = 'Timeframe Settings')
show_D = input(true, title = 'Show D', group = 'Timeframe Settings')
show_3D = input(false, title = 'Show 3D', group = 'Timeframe Settings')
show_W = input(false, title = 'Show W', group = 'Timeframe Settings')
show_M = input(false, title = 'Show M', group = 'Timeframe Settings')

var table_position = dashboard_position == 'Top right' ? position.top_right : dashboard_position == 'Top left' ? position.top_left : dashboard_position == 'Top center' ? position.top_center : dashboard_position == 'Bottom right' ? position.bottom_right : dashboard_position == 'Bottom left' ? position.bottom_left : dashboard_position == 'Bottom center' ? position.bottom_center : dashboard_position == 'Middle right' ? position.middle_right : dashboard_position == 'Middle left' ? position.middle_left : position.middle_right

var table_text_size = text_size == 'Normal' ? size.normal : text_size == 'Large' ? size.large : text_size == 'Tiny' ? size.tiny : text_size == 'Small' ? size.small : size.normal

var t = table.new(position = table_position, columns = 3, rows = 20, frame_color = table_color, frame_width = 2, border_color = table_color, border_width = 2)

calc_smma(src, len) =>
    var float smma = na
    smma := na(smma) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len
    smma

calc_zlema(src, len) =>
    ema1 = ta.ema(src, len)
    ema2 = ta.ema(ema1, len)
    d = ema1 - ema2
    ema1 + d

check_impulse() =>
    impulse_length = 34
    impulse_strength = 9

    hi = calc_smma(high, impulse_length)
    lo = calc_smma(low, impulse_length)
    mi = calc_zlema(hlc3, impulse_length)

    md = mi > hi ? mi - hi : mi < lo ? mi - lo : 0
    md_prev = mi[1] > hi[1] ? mi[1] - hi[1] : mi[1] < lo[1] ? mi[1] - lo[1] : 0

    sb = ta.sma(md, impulse_strength)
    sb_prev = ta.sma(md_prev, impulse_strength)

    sh = md - sb
    sh_prev = md_prev - sb_prev

    is_impulse = sh != 0 and sh_prev != 0
    is_impulse

get_trend_status() =>
    impulse = catch_flat ? check_impulse() : true
    ema1_current_candle = ta.ema(close, ema1_length)
    ema1_previous_candle = ema1_current_candle[1]
    round = ema1_current_candle > 1000 ? 0 : ema1_current_candle > 10 ? 1 : ema1_current_candle > 0 ? 2 : ema1_current_candle > 0.1 ? 3 : 10
    ema1_str = str.tostring(math.round(ema1_current_candle, round))
    if trend_identification_approach == 'Direction of a single EMA'
        ema1_previous_previous_candle = ema1_current_candle[2]
        trend_current_candle = not impulse ? neutraltrend_indicator : ema1_current_candle > ema1_previous_candle ? uptrend_indicator : ema1_current_candle < ema1_previous_candle ? downtrend_indicator : neutraltrend_indicator
        trend_previous_candle = not impulse ? neutraltrend_indicator : ema1_previous_candle > ema1_previous_previous_candle ? uptrend_indicator : ema1_previous_candle < ema1_previous_previous_candle ? downtrend_indicator : neutraltrend_indicator
        [ema1_str, trend_current_candle, trend_previous_candle]
    else
        ema2_current_candle = ta.ema(close, ema2_length)
        ema2_previous_candle = ema2_current_candle[1]
        trend_current_candle = not impulse ? neutraltrend_indicator : ema1_current_candle > ema2_current_candle ? uptrend_indicator : ema1_current_candle < ema2_current_candle ? downtrend_indicator : neutraltrend_indicator
        trend_previous_candle = not impulse ? neutraltrend_indicator : ema1_previous_candle > ema2_previous_candle ? uptrend_indicator : ema1_previous_candle < ema2_previous_candle ? downtrend_indicator : neutraltrend_indicator
        [ema1_str, trend_current_candle, trend_previous_candle]

[ema_1m, trend_indicator_1m, _] = request.security(syminfo.tickerid, '1', get_trend_status())
[ema_2m, trend_indicator_2m, _] = request.security(syminfo.tickerid, '2', get_trend_status())
[ema_3m, trend_indicator_3m, _] = request.security(syminfo.tickerid, '3', get_trend_status())
[ema_5m, trend_indicator_5m, _] = request.security(syminfo.tickerid, '5', get_trend_status())
[ema_10m, trend_indicator_10m, _] = request.security(syminfo.tickerid, '10', get_trend_status())
[ema_15m, trend_indicator_15m, _] = request.security(syminfo.tickerid, '15', get_trend_status())
[ema_30m, trend_indicator_30m, _] = request.security(syminfo.tickerid, '30', get_trend_status())
[ema_45m, trend_indicator_45m, _] = request.security(syminfo.tickerid, '45', get_trend_status())
[ema_1h, trend_indicator_1h, _] = request.security(syminfo.tickerid, '60', get_trend_status())
[ema_2h, trend_indicator_2h, _] = request.security(syminfo.tickerid, '120', get_trend_status())
[ema_3h, trend_indicator_3h, _] = request.security(syminfo.tickerid, '180', get_trend_status())
[ema_4h, trend_indicator_4h, _] = request.security(syminfo.tickerid, '240', get_trend_status())
[ema_12h, trend_indicator_12h, _] = request.security(syminfo.tickerid, '720', get_trend_status())
[ema_D, trend_indicator_D, _] = request.security(syminfo.tickerid, 'D', get_trend_status())
[ema_3D, trend_indicator_3D, _] = request.security(syminfo.tickerid, '3D', get_trend_status())
[ema_W, trend_indicator_W, _] = request.security(syminfo.tickerid, 'W', get_trend_status())
[ema_M, trend_indicator_M, _] = request.security(syminfo.tickerid, 'M', get_trend_status())

if barstate.islast
    if show_header
        table.cell(t, 0, 0, 'Timeframe', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 0, 'Trend', text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 0, str.tostring(ema1_length) + ' EMA', text_color = text_color, text_size = table_text_size)

    if show_1m
        table.cell(t, 0, 1, '1m', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 1, trend_indicator_1m, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 1, ema_1m, text_color = text_color, text_size = table_text_size)

    if show_2m
        table.cell(t, 0, 2, '2m', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 2, trend_indicator_2m, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 2, ema_2m, text_color = text_color, text_size = table_text_size)

    if show_3m
        table.cell(t, 0, 3, '3m', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 3, trend_indicator_3m, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 3, ema_3m, text_color = text_color, text_size = table_text_size)

    if show_5m
        table.cell(t, 0, 4, '5m', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 4, trend_indicator_5m, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 4, ema_5m, text_color = text_color, text_size = table_text_size)

    if show_10m
        table.cell(t, 0, 5, '10m', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 5, trend_indicator_10m, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 5, ema_10m, text_color = text_color, text_size = table_text_size)

    if show_15m
        table.cell(t, 0, 6, '15m', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 6, trend_indicator_15m, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 6, ema_15m, text_color = text_color, text_size = table_text_size)

    if show_30m
        table.cell(t, 0, 7, '30m', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 7, trend_indicator_30m, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 7, ema_30m, text_color = text_color, text_size = table_text_size)

    if show_45m
        table.cell(t, 0, 8, '45m', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 8, trend_indicator_45m, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 8, ema_45m, text_color = text_color, text_size = table_text_size)

    if show_1h
        table.cell(t, 0, 9, '1h', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 9, trend_indicator_1h, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 9, ema_1h, text_color = text_color, text_size = table_text_size)

    if show_2h
        table.cell(t, 0, 10, '2h', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 10, trend_indicator_2h, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 10, ema_2h, text_color = text_color, text_size = table_text_size)

    if show_3h
        table.cell(t, 0, 11, '3h', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 11, trend_indicator_3h, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 11, ema_3h, text_color = text_color, text_size = table_text_size)

    if show_4h
        table.cell(t, 0, 12, '4h', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 12, trend_indicator_4h, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 12, ema_4h, text_color = text_color, text_size = table_text_size)

    if show_12h
        table.cell(t, 0, 13, '12h', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 13, trend_indicator_12h, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 13, ema_12h, text_color = text_color, text_size = table_text_size)

    if show_D
        table.cell(t, 0, 14, 'D', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 14, trend_indicator_D, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 14, ema_D, text_color = text_color, text_size = table_text_size)

    if show_3D
        table.cell(t, 0, 15, '3D', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 15, trend_indicator_3D, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 15, ema_3D, text_color = text_color, text_size = table_text_size)

    if show_W
        table.cell(t, 0, 16, 'W', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 16, trend_indicator_W, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 16, ema_W, text_color = text_color, text_size = table_text_size)

    if show_M
        table.cell(t, 0, 17, 'M', text_color = text_color, text_size = table_text_size)
        table.cell(t, 1, 17, trend_indicator_M, text_color = text_color, text_size = table_text_size)
        if show_ema_value
            table.cell(t, 2, 17, ema_M, text_color = text_color, text_size = table_text_size)

title = input.string('AG FX TRADING', 'Tittle', group = 'text')
subtitle = input.string('PATIENCE  |  DISCIPLINE  |  FEARLESS', 'Subtitle', group = 'text')

symInfoCheck = input.bool(title = 'Show Symbol Info', defval = true, group = 'watermark position')
symInfo = syminfo.ticker + ' | ' + timeframe.period + (timeframe.isminutes ? 'M' : na)
date = str.tostring(dayofmonth(time_close)) + '/' + str.tostring(month(time_close)) + '/' + str.tostring(year(time_close))

textVPosition = input.string('top', 'Vertical Position', options = ['top', 'middle', 'bottom'], group = 'watermark position')
textHPosition = input.string('center', 'Horizontal Position', options = ['left', 'center', 'right'], group = 'watermark position')

symVPosition = input.string('bottom', 'Vertical Position', options = ['top', 'middle', 'bottom'], group = 'symbol position')
symHPosition = input.string('center', 'Horizontal Position', options = ['left', 'center', 'right'], group = 'symbol position')

width = input.int(0, 'Width', minval = 0, maxval = 100, tooltip = 'The width of the cell as a % of the indicator\'s visual space. Optional. By default, auto-adjusts the width based on the text inside the cell. Value 0 has the same effect.', group = 'cell size')
height = input.int(0, 'Height', minval = 0, maxval = 100, tooltip = 'The height of the cell as a % of the indicator\'s visual space. Optional. By default, auto-adjusts the height based on the text inside of the cell. Value 0 has the same effect.', group = 'cell size')

c_title = input.color(color.new(color.black, 0), 'Title Color', group = 'title settings')
s_title = input.string('large', 'Title Size', options = ['tiny', 'small', 'normal', 'large', 'huge', 'auto'], group = 'title settings')
a_title = input.string('center', 'Title Alignment', options = ['center', 'left', 'right'], group = 'title settings')

c_subtitle = input.color(color.new(color.black, 30), 'Subitle Color', group = 'subtitle settings')
s_subtitle = input.string('normal', 'Subtitle Size', options = ['tiny', 'small', 'normal', 'large', 'huge', 'auto'], group = 'subtitle settings')
a_subtitle = input.string('center', 'Subtitle Alignment', options = ['center', 'left', 'right'], group = 'subtitle settings')

c_symInfo = input.color(color.new(color.black, 30), 'Subitle Color', group = 'symbol settings')
s_symInfo = input.string('normal', 'Subtitle Size', options = ['tiny', 'small', 'normal', 'large', 'huge', 'auto'], group = 'symbol settings')
a_symInfo = input.string('center', 'Subtitle Alignment', options = ['center', 'left', 'right'], group = 'symbol settings')
c_bg = input.color(color.new(color.blue, 100), 'Background', group = 'background')

textWatermark = table.new(textVPosition + '_' + textHPosition, 1, 3)
table.cell(textWatermark, 0, 0, title, width, height, c_title, a_title, text_size = s_title, bgcolor = c_bg)
table.cell(textWatermark, 0, 1, subtitle, width, height, c_subtitle, a_subtitle, text_size = s_subtitle, bgcolor 

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

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

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

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

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

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

Стоимость полного кода
3 596,80₽ ≈ $43.96