MACD Линейная Регрессия
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «macd linear regression.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный индикатор для TradingView объединяет расчёт MACD с анализом линейной регрессии. Он строит классические линии MACD на основе экспоненциальных скользящих средних и сигнальную линию на основе простой скользящей средней, а также отображает гистограмму разницы между ними.
Ключевая особенность — применение линейной регрессии к значениям MACD. Индикатор рисует линию регрессии, её наклон и полосы отклонения вокруг неё. На графике также отображается метка с коэффициентом корреляции и значением R² для текущего периода регрессии.
Дополнительно индикатор отмечает пересечения MACD и сигнальной линии графическими маркерами, отображает зигзаг на основе поворотных точек MACD с метками типов переключений (HH, LH, LL, HL) и предоставляет настраиваемые параметры цветов линий и гистограммы.
Настройки программы
| Настройка | Описание |
|---|---|
| fastLength | Период для быстрого экспоненциального скользящего среднего в расчёте MACD. |
| slowLength | Период для медленного экспоненциального скользящего среднего в расчёте MACD. |
| signalLength | Период для сглаживания сигнальной линии MACD простой скользящей средней. |
| macd_colorChange | Переключает смену цвета линий MACD и сигнальной линии при их пересечении. |
| showhist | Управляет отображением гистограммы MACD на графике. |
| hist_colorChange | Переключает использование четырёх цветов для гистограммы MACD в зависимости от направления её изменения. |
| periodTrend | Период для расчёта линейной регрессии значений MACD. |
| deviationsAmnt | Коэффициент отклонения для построения полос вокруг линии линейной регрессии MACD. |
| estimatorType | Метод оценки для расчёта линейной регрессии: смещённый или несмещённый. |
| extendType | Способ продведения линий регрессии на графике: вправо или только сегмент. |
| length | Период для определения поворотных точек зигзага на основе MACD. |
Поиск по коду файла
indicator('<[Osc]MACD Линейная Регрессия]>','<[MACD Линейная Регрессия]>', false, max_bars_back = 10)
fastLength = input.int(12, title = 'Быстрый период', minval = 1)
slowLength = input.int(26, title = 'Медленный период', minval = 1)
signalLength = input.int(9, title = 'Сигнальный период', minval = 1)
hline(0, 'Нулевая линия', linewidth = 1, color = color.gray)
fastMA = ta.ema(close, fastLength)
slowMA = ta.ema(close, slowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
plot(ta.crossover(macd, signal) ? signal : na, title = 'Пересечение вверх', style = plot.style_circles, color = color.new(#15c300, 0), linewidth = 5, show_last = 200)
plot(ta.crossunder(macd, signal) ? signal : na, title = 'Пересечение вниз', style = plot.style_circles, color = color.new(#ed0000, 0), linewidth = 5, show_last = 200)
macd_colorChange = input(true, title = 'Изменять цвет линии MACD при пересечении?')
showhist = input(true, title = 'Показывать гистограмму?')
hist_colorChange = input(true, title = '4 цвета для гистограммы MACD?')
macd_IsAbove = macd >= signal
macd_IsBelow = macd < signal
macd_color = macd_colorChange ? macd_IsAbove ? color.yellow : color.red : color.red
signal_color = macd_colorChange ? macd_IsAbove ? color.blue : color.blue : color.lime
hist = macd - signal
histAIsUp = hist > hist[1] and hist > 0
histAIsDown = hist < hist[1] and hist > 0
histBIsDown = hist < hist[1] and hist <= 0
histBIsUp = hist > hist[1] and hist <= 0
plot_color = hist_colorChange ? histAIsUp ? color.aqua : histAIsDown ? color.blue : histBIsDown ? color.red : histBIsUp ? color.maroon : color.yellow : color.gray
plot(showhist and bool(hist) ? hist : na, title = 'Гистограмма', color = plot_color, style = plot.style_columns, linewidth = 4)
plot(signal, color = signal_color, title = 'Сигнальная линия')
plot(macd, color = macd_color, title = 'Линия MACD', linewidth = 2)
drawLine(X1, Y1, X2, Y2, ExtendType, Color, LineStyle) =>
var line Line = na
Line := line.new(X1, Y1, X2, Y2, xloc.bar_index, ExtendType, Color, LineStyle, 1)
line.delete(Line[1])
rsdcr2(PeriodMinusOne, Deviations, Estimate) =>
var period = PeriodMinusOne + 1
var devDenominator = Estimate == 'Unbiased' ? PeriodMinusOne : period
Ex = 0.0
Ex2 = 0.0
Exy = 0.0
Ey = 0.0
for i = 0 to PeriodMinusOne by 1
closeI = nz(macd[i])
Ex := Ex + i
Ex2 := Ex2 + i * i
Exy := Exy + closeI * i
Ey := Ey + closeI
Ey
ExEx = Ex * Ex
slope = Ex2 == ExEx ? 0.0 : (period * Exy - Ex * Ey) / (period * Ex2 - ExEx)
linearRegression = (Ey - slope * Ex) / period
intercept = linearRegression + bar_index * slope
deviation = 0.0
for i = 0 to PeriodMinusOne by 1
deviation := deviation + math.pow(nz(macd[i]) - (intercept - bar_index[i] * slope), 2.0)
deviation
deviation := Deviations * math.sqrt(Показано первые 50% кода (символов: 4779)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.