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

Luxkek Matrix Oscillator

_matrix_oscillator_cloned@shepherdfxtradingtools_5974216246500006214.pine

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

ares_indicator.pineTradingView · 1 общих теговgold_trend_revers.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!!-mt4 x-xardg-rsi.mq5MQL5 / MetaTrader 5 · 1 общих тегов! cycle-identifier.mq5MQL5 / MetaTrader 5 · 1 общих тегов!!! rsi ma simple+arrows 1.2 (mtf).mq5MQL5 / MetaTrader 5 · 1 общих теговprecisionflowea.mq5MQL5 / MetaTrader 5 · 1 общих тегов
Вы автор или правообладатель?

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

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

О программе

Luxkek Matrix Oscillator — это мультикомпонентный индикатор для TradingView, построенный на Pine Script v5. Он отображает на графике осциллятор «Гипер Волна» с сигнальной линией и заливкой между ними, а также линии и графические отметки для визуализации состояния рынка.

Индикатор включает модуль «Smart Money Flow», основанный на индексе денежного потока (MFI), с настраиваемой длиной периода и сглаживанием, отображаемый в виде залитой области с пороговыми линиями. Также реализована функция обнаружения расхождений между осциллятором и ценой.

Дополнительно индикатор предоставляет модуль «Confluence» — шкалу совпадения факторов в виде цветных меток и зон, а также модуль «Reversal» — маркеры потенциальных разворотов, основанные на анализе объёма и совпадении показателей. Все основные компоненты включаются и настраиваются через параметры.

Получить полный код

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

indicator("Luxkek Matrix Oscillator", shorttitle = "Luxkek Matrix Oscillator", max_lines_count = 500)

dwTL = "Length of the hyper wave"
smTL = "[SMA] Smooth signal with a simple moving average\n[EMA] Smooth signal with an exponential moving average\n[Input] Length of the smooth"
dvTL = "Sensibility of the real time divergence : less sensibility = more short term divs; more sensibility = more long term divs"

cmTL = "Show confluence meter at the side of the oscillator"
caTL = "Show confluence area at the bottom/top of the oscillator"

rfTL = "More factor will return in less signals but in a stronger way, less factor will return more signal with less strength"

simple bool   dW    = input.bool  (true                    , "Main Length               ", inline = "1   ", group = "HYPER WAVE"                          , tooltip  = dwTL)
simple int    mL    = input.int   (7                       , "                          ", inline = "1   ", group = "HYPER WAVE", minval = 5, maxval = 4999)
simple string sT    = input.string("SMA"                   , "Signal                    ", inline = "s   ", group = "HYPER WAVE", options = ["SMA", "EMA"], tooltip  = smTL)
simple int    sL    = input.int   (3                       , "                          ", inline = "s   ", group = "HYPER WAVE", minval = 2, maxval = 4999)
simple color  fCSS  = input.color (#51B155               , "Colors                    ", inline = "css ", group = "HYPER WAVE")
simple color  sCSS  = input.color (#80828D               , "                          ", inline = "css ", group = "HYPER WAVE")
simple int    tCSS  = input.int   (80                      , "                          ", inline = "css ", group = "HYPER WAVE", minval =  0, maxval = 100)
simple int    dvT   = input.int   (20                      , "Divergence Sensibility    ", inline = "x   ", group = "HYPER WAVE", minval = 20, maxval = 40 , tooltip = dvTL)
simple bool   sDiv  = input.bool  (true                    , "Show Divergences          ", inline = "div ", group = "HYPER WAVE")
simple color  blDv  = input.color (color.new(#2962ff, 20), "                          ", inline = "div ", group = "HYPER WAVE")
simple color  brDv  = input.color (color.new(#f23645, 20), "                          ", inline = "div ", group = "HYPER WAVE")

simple bool   Smf   = input.bool  (true                     , "Money Flow Length        ", inline = "mfi ", group = "SMART MONEY FLOW")
simple int    mfL   = input.int   (35                       , "                         ", inline = "mfi ", group = "SMART MONEY FLOW", minval = 10, maxval = 55)
simple int    mfS   = input.int   (6                        , "Smooth                   ", inline = "mfx ", group = "SMART MONEY FLOW", minval = 2 , maxval = 10)
simple color  mfBL  = input.color (#089981                , "Money Flow Colors        ", inline = "mfiC", group = "SMART MONEY FLOW")
simple color  mfBR  = input.color (#f23645                , "                         ", inline = "mfiC", group = "SMART MONEY FLOW")

simple color  cnBL  = input.color (#089981                , "Confluence Colors        ", inline = "cf  ", group = "CONFLUENCE")
simple color  cnBR  = input.color (#f23645                , "                         ", inline = "cf  ", group = "CONFLUENCE")
simple bool   sCNF  = input.bool  (true                     , "Show Confluence Meter    ", inline = "zf  ", group = "CONFLUENCE", tooltip = cmTL)
simple bool   sCNB  = input.bool  (true                     , "Show Confluence Areas    ", inline = "zx  ", group = "CONFLUENCE", tooltip = caTL)

simple bool   rsS   = input.bool  (true                     , "Reversal Factor          ", inline = "rv  ", group = "REVERSAL")
simple int    rsF   = input.int   (4                        , "                         ", inline = "rv  ", group = "REVERSAL", options = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], tooltip = rfTL)
simple color  rsBL  = input.color (#089981                , "Reversal Colors          ", inline = "rc  ", group = "REVERSAL")
simple color  rsBR  = input.color (#f23645                , "                         ", inline = "rc  ", group = "REVERSAL")

type oL
    float sig
    float sgD
    color cO

type dP
    int   n
    float src
    float p

type smf
    float mfi
    color mfc
    float blMFI
    float brMFI

type cnf
    color   up
    color   dn
    float[] blT
    float[] brT

var oL  osc = oL.new (na, na, na    )
var dP  div = dP.new (na, na, na    )
var smf mf  = smf.new(na, na, na, na)

var cnf cf  = cnf.new(
       color.rgb(54, 58, 69, 60)
     , color.rgb(54, 58, 69, 60)
     , array.new<float>(1, na)
     , array.new<float>(1, na)
     )

mfT() =>
    switch
        mf.mfi > 0 =>
            if cf.brT.size() > 1
                cf.brT.pop()
            if cf.blT.size() > mfL
                cf.blT.pop()
            if mf.mfi > cf.blT.avg()
                cf.blT.unshift(mf.mfi)
            else
                cf.blT.unshift(mf.mfi[mfL] > 0 
                     ? mf.mfi[mfL] 
                     : mf.mfi
                     )

        mf.mfi < 0 =>
            if cf.blT.size() > 1
                cf.blT.pop()
            if cf.brT.size() > mfL
                cf.brT.pop()
            if mf.mfi < cf.blT.avg()
                cf.brT.unshift(mf.mfi)
            else
                cf.brT.unshift(mf.mfi[mfL] < 0 
                     ? mf.mfi[mfL] 
                     : mf.mfi
                     )

method st(simple string src, float osc, simple int len) =>
    float o = switch src
        "SMA" => ta.sma(osc, len)
        "EMA" => ta.ema(osc, len)

method css(color x, int inv) =>
    color out = inv == 1 
         ? color.new(x, tCSS) 
         : color.new(x, 0   )

method transp(color x, int t) =>
    color.new(x, t)

rv() =>
    vMA  = ta.sma(volume, 7)
    rsi  = ta.rsi(vMA,    7) - 50

    tMj  = volume > vMA * ( rsF != 10 ? 1 + (rsF / 10) : 2)             ? true : false
    tMn  = volume > vMA * ( rsF != 10 ? 0 + (rsF / 10) : 2) and not tMj ? true : false

    mjBR = tMj and osc.sig >  rsF and mf.mfi > cf.blT.avg()             ? true : false
    mjBL = tMj and osc.sig < -rsF and mf.mfi < cf.brT.avg()             ? true : false

    mnBR = tMn and osc.sig >  20 and osc.sig > osc.sgD and rsi >  20    ? true : false
    mnBL = tMn and osc.sig < -20 and osc.sig < osc.sgD and rsi < -20    ? true : false

    [mjBL, mjBR, mnBR, mnBL]

osc(simple int len, simple int smt) =>
    float hi = ta.highest(     len)
    float lo = ta.lowest (     len)
    float av = ta.sma    (hl2, len)

    osc.sig := ta.ema(ta.linreg((close - math.avg(hi, lo, av)) / (hi - lo) * 100, len, 0), sL)
    osc.sgD := sT.st(osc.sig, 2)
    osc.cO  := osc.sig > osc.sgD ? fCSS.css(1) : sCSS.css(1)

mfi() =>
    mf.mfi := ta.sma(ta.mfi(hl2, mfL) - 50, mfS)

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

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

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

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

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

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

Стоимость полного кода
814,60₽ ≈ $9.96