Форум Бингуру 2.0

 Главная | Опросы | Регистрация | Поиск | Статистика | 1.0 | Сайт
Техническое Форум Бингуру 2.0 / Техническое /  
 

Кастомные индикаторы TradingView

 
Автор PerfectMay
 Лосенок
#1 | Дата:  
Всем привет, может кто помочь соединить в один индикатор стандартные Ленты Боллинджера и EMA 8-13-21-50 на TradingView? Чтобы это было в виде одно скрипта с настройками.

Автор ndr
Персимон
#2 | Дата:  
Навскидку

//@version=5
indicator(«BB + Multiple EMA», overlay=true)

// Настройки Bollinger Bands
length = input.int(20, «BB Length»)
mult = input.float(2.0, «BB StdDev»)

// Расчет Bollinger Bands
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis — dev

// Расчет EMA
ema8 = ta.ema(close, 8)
ema13 = ta.ema(close, 13)
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)

// Отрисовка Bollinger Bands
plot(basis, «BB Middle», color.blue)
plot(upper, «BB Upper», color.blue)
plot(lower, «BB Lower», color.blue)

// Отрисовка EMA с разными цветами
plot(ema8, «EMA 8», color.yellow)
plot(ema13, «EMA 13», color.orange)
plot(ema21, «EMA 21», color.red)
plot(ema50, «EMA 50», color.purple)

Автор IGMike08
 Голдман
#3 | Дата:  
Perfect May
Мне очень помогает чат гпт в таких делах. Сделал для себя так пару индексов.
По твоему запросу выдаёт так (не проверял, пока не у компа):

//@version=5
indicator(«Bollinger Bands with EMA», overlay=true)

// Параметры для Боллинджера
bb_length = input.int(20, title=«Bollinger Bands Length»)
bb_source = input.source(close, title=«Bollinger Bands Source»)
bb_mult = input.float(2.0, title=«Bollinger Bands Multiplier»)

// Параметры для EMA
ema_8_length = input.int(8, title=«EMA 8 Length»)
ema_13_length = input.int(13, title=«EMA 13 Length»)
ema_21_length = input.int(21, title=«EMA 21 Length»)
ema_50_length = input.int(50, title=«EMA 50 Length»)

// Расчет Боллинджера
basis = ta.sma(bb_source, bb_length)
dev = bb_mult * ta.stdev(bb_source, bb_length)
upper = basis + dev
lower = basis — dev

// Расчет EMA
ema_8 = ta.ema(close, ema_8_length)
ema_13 = ta.ema(close, ema_13_length)
ema_21 = ta.ema(close, ema_21_length)
ema_50 = ta.ema(close, ema_50_length)

// Построение на графике
plot(upper, color=color.blue, title=«Upper Bollinger Band»)
plot(lower, color=color.blue, title=«Lower Bollinger Band»)
plot(basis, color=color.orange, title=«Basis (SMA)»)

plot(ema_8, color=color.green, title=«EMA 8»)
plot(ema_13, color=color.red, title=«EMA 13»)
plot(ema_21, color=color.purple, title=«EMA 21»)
plot(ema_50, color=color.black, title=«EMA 50»)

// Заполнить область между верхней и нижней полосой Боллинджера
fill(upper, lower, color=color.blue, transp=90)

Автор Bordur
 Лосенок
#4 | Дата:  
Upd. перенес вопрос в свой дневник

Автор PerfectMay
 Лосенок
#5 | Дата:  
Всем большое спасибо!
Возьму на вооружение.

Автор LegendaryNoname
 Волнорез
#6 | Дата:  
Сделал для себя в дополнение к обычным лентам Болленджера индюк, который тоже основан на sma20 в качестве базисной линии, но, вместо диапазона в два стандартных отклонения, вычитает и прибавляет к sma20 скользящее экспоненциальное среднее значение ширины обычных лент Боллинджера за некий настраиваемый период и с настраиваемым множителем. На скриншоте ниже белым — обычные ленты Боллинджера и sma20, зеленым — ema-ленты с периодом 40 и множителем 1.15. Нахожу интересным диапазон для периода от 10 до 65, для множителя от 1 до 1.5. Период предполагаю целесообразным подобрать подходящий под себя и особо не трогать, а вот множитель можно настраивать в зависимости от волатильности. Возможных вариантов использования много, наиболее уместным кажется комбинирование с обычными лентами. Хорошо сглаживают слишком сильные сжатия обычных лент, не позволяя обманываться ложными зонами п/с. Может быть, пригодится кому-нибудь, или натолкнет на свежие мысли. Для себя решил сделать этот инструмент не основным, но одним из дополнительных, отказавшись от нескольких других.



Код:
>>>
//@version=6
indicator('BB + ema-ленты', overlay = true)

// Ленты Боллинджера:
length = input.int(20, minval = 1)
src = input(close, title = 'Source')
mult = input.float(2.0, minval = 0.001, maxval = 50, title = 'StdDev')
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis — dev

plot(basis, 'Basis', color = color.new(#ffffff, 0))
p1 = plot(upper, 'Upper', color = color.new(#ffffff, 0))
p2 = plot(lower, 'Lower', color = color.new(#ffffff, 0))

// Теперь индикатор со скользящими средними лентами:
lookback = input.int(40, title = 'Период ema-лент', minval = 10, maxval = 65)
multiplier = input.float(1.15, title = 'Множитель ema-лент', minval = 1, maxval = 2, step = 0.01)

width = ta.ema(dev, lookback)

upperAVG = basis + width * multiplier
lowerAVG = basis — width * multiplier

plot(upperAVG, title = 'Верхняя ema-лента', color = color.new(#009c15, 30),linewidth = 1)
plot(lowerAVG, title = 'Нижняя ema-лента', color = color.new(#009c15, 30),linewidth = 1)

Техническое Форум Бингуру 2.0 / Техническое /
 Кастомные индикаторы TradingView

Ваш ответ Нажмите эту иконку для возврата на цитируемое сообщение

 

  ?
Только зарегистрированные пользователи могут отправлять сообщения. Авторизуйтесь для отправки сообщений, или зарегистрируйтесь сейчас.

 

Онлайн: Гостей - 2
Пользователей - 0
Рекорд: 28 []
Гостей - 13 / Пользователей - 15
 


  ⇑