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

RSI Linear Regression

rsi linear regression.pine

Похожие материалы по тегам

+joget+_nrw.mq5MQL5 / MetaTrader 5 · 1 общих тегов+joget+.mq5MQL5 / MetaTrader 5 · 1 общих теговfibochannel s&r.pineTradingView · 1 общих теговmarketstructure_rsi_validator.mq5MQL5 / MetaTrader 5 · 1 общих теговxmc ea 1.02 d_grid_v1.mq5MQL5 / MetaTrader 5 · 1 общих теговxmc ea 1.02 d_grid_v1.mq4MQL4 / MetaTrader 4 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Индикатор «RSI Linear Regression» рассчитывает значение RSI заданного периода по выбранному источочнику данных и отображает его в виде линии на графике с уровнями 30, 50 и 70. К результатам RSI применяется линейная регрессия с настраиваемым периодом тренда и коэффициентом отклонения, после чего на графике строятся линия регрессии и граничные полосы. В углу графика отображается значение корреляции и R². Дополнительно индикатор отмечает точки разворота зигзага на RSI с помощью меток, фиксирующих относительные максимумы и минимумы.

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

НастройкаОписание
len Период расчёта RSI, определяющий количество баров для усреднения приростов и падений цены.
src Источник данных, из которого берётся значение для расчёта RSI.
periodTrend Период тренда для линейной регрессии, задаёт количество баров, используемых при построении линии регрессии RSI.
deviationsAmnt Множитель отклонения для построения граничных полос линейной регрессии. Увеличение значения расширяет диапазон отклонения вокруг линии регрессии.
estimatorType Тип оценки коэффициентов линейной регрессии. Доступны варианты Biased и Unbiased, определяющие знаменатель при расчёте наклона.
extendType Режим продления линий регрессии вправо или отрезок без продолжения.
length Длина зигзага, используемая для определения точек разворота (пивотов) на линии RSI.
Получить полный код

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

indicator('<[Osc]RSI Линейная Регрессия]>','<[RSI Линейная Регрессия]>', false)

len = input.int(14, minval = 1, title = 'Длина')
src = input(close, 'Источник')

up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)

plot(rsi, 'RSI', color = #00ffee)
band1 = hline(70, 'Верхний уровень', color = #787B86)
bandm = hline(50, 'Средний уровень', color = #787b8680)
band0 = hline(30, 'Нижний уровень', color = #787B86)
fill(band1, band0, color = #7e57c21a, title = 'Фон')

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(rsi[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(rsi[i]) - (intercept - bar_index[i] * slope), 2.0)
        deviation
    deviation := Deviations * math.sqrt(deviation / devDenominator)
    correlate = ta.correlation(rsi, bar_index, period)
    r2 = math.pow(correlate, 2.0)
    [linearRegression, slope, deviation, correlate, r2]

periodTrend = input.int(89, 'Период тренда', minval = 4)
deviationsAmnt = input.float(1.5, ' Отклонение', minval = 0.1, step = 0.1)
estimatorType = input.string('Unbiased', ' Оценка', options = ['Biased', 'Unbiased'])
var extendType = input.string('Right', 'Продление', options = ['Right', 'Segment']) == 'Right' ? extend.right : extend.none

periodMinusOne = periodTrend - 1
[linReg, slope, deviation, correlate, r2] = rsdcr2(periodMinusOne, deviationsAmnt, estima

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

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

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

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

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

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

Стоимость полного кода
362₽ ≈ $5