MATRIX 6.2 OACILLATOR
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «𝐌𝐀𝐓𝐑𝐈𝐗_𝟔_𝟐_𝐎𝐀𝐂𝐈𝐋𝐋𝐀𝐓𝐎𝐑.pine» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
MATRIX 6.2 OACILLATOR — индикатор для TradingView на Pine Script v5, отображаемый в отдельном окне ниже графика. Рассчитывает комплексный осциллятор на основе кластера фильтрованных скользящих средних и вспомогательных компонентов: потока денежных потоков, гипер-волны и сигнальной линии. Поддерживает два режима отображения — анализ направленности и оценку волатильности кластера.
Настройки программы
| Настройка | Описание |
|---|---|
| source | Источник данных — Выбирает ценовой ряд или другой источник для расчётов осциллятора. |
| mode | Режим кластера — Переключает между режимами отображения: направленность фильтра или волатильность кластера. |
| filter | Фильтр кластера — Выбирает тип фильтра для построения скользящих средних в кластере. |
| phase | Фаза PhiSmoother — Позволяет тонко настраивать фазовый сдвиг фильтра PhiSmoother. |
| spacing | Разброс кластера — Определяет расстояние между скользящими средними в кластере. |
| upper_trim | Обрезка кластера верх — Уменьшает количество краткосрочных периодов кластера, снижая чувствительность. |
| lower_trim | Обрезка кластера низ — Уменьшает количество долгосрочных периодов кластера, повышая чувствительность. |
| post_smooth_filt | Постфильтр сглаживания — Выбирает фильтр для дополнительного сглаживания итогового балла кластера. |
| post_smooth_len | Длина постсглаживания — Период постфильтра сглаживания итогового балла. |
| signal_filter | Фильтр сигнальной линии — Выбирает фильтр для построения сигнальной линии. |
| signal_length | Длина сигнала — Период расчёта сигнальной линии. |
| signal_color | Цвет сигнала — Задаёт цвет отображения сигнальной линии. |
| upperLevel | Верхний порог — Верхний пороговый уровень осциллятора. |
| lowerLevel | Нижний порог — Нижний пороговый уровень осциллятора. |
| transition_easing | Плавность перехода — Регулирует чувствительность цветовой градиентной заливки при переходах между зонами. |
| fill_bg | Заливка фона — Включает или отключает цветовую заливку фона осциллятора. |
| fill_alpha | Прозрачность заливки — Степень прозрачности цветовой заливки фона. |
| rising_bullish | Цвет бычьего роста — Цвет отображения при бычьем направлении осциллятора. |
| rising_transition | Цвет перехода вверх — Цвет переходной зоны при движении в бычью сторону. |
| falling_bearish | Цвет медвежьего падения — Цвет отображения при медвежьем направлении осциллятора. |
| price | Источник для SS_WMA — Выбирает источник данных для расчёта линии простого взвешенного среднего. |
| alpha | Общая сглаженность — Период сглаживания для линии SS_WMA. |
| ShowSig | Сигналы разворота — Включает отображение стрелок при смене направления линии SS_WMA. |
| SigMulti | Множитель сигнала — Множитель для определения уровня сигнала разворота линии SS_WMA. |
Поиск по коду файла
indicator(" ̶ ̶⫍̶𝐌𝐀𝐓𝐑𝐈𝐗 𝟔.𝟐 𝐎𝐀𝐂𝐈𝐋𝐋𝐀𝐓𝐎𝐑⫎̶̶̶̶ ̶ ̶", overlay = false, max_boxes_count=500,max_bars_back=5000, max_labels_count =500, 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 Smf = input.bool (true , "Money Flow Length ", inline = "mfi ", group = "SMART MONEY FLOW")
simple int mfL = input.int (10 , " ", inline = "mfi ", group = "SMART MONEY FLOW", minval = 1, maxval = 55)
simple int mfS = input.int (4 , "Smooth ", inline = "mfx ", group = "SMART MONEY FLOW", minval = 2 , maxval = 10)
simple color mfBL = input.color (#22ab94 , "Money Flow Colors ", inline = "mfiC", group = "SMART MONEY FLOW")
simple color mfBR = input.color (#f7525f , " ", inline = "mfiC", group = "SMART MONEY FLOW")
simple color cnBL = input.color (#22ab94 , "Confluence Colors ", inline = "cf ", group = "CONFLUENCE")
simple color cnBR = input.color (#f7525f , " ", inline = "cf ", group = "CONFLUENCE")
simple int tCSS = input.int (00 , " ", inline = "css ", group = "HYPER WAVE", minval = 00, maxval = 100)
simple bool sCNB = input.bool (true , "Show Confluence Areas ", inline = "zx ", group = "CONFLUENCE", tooltip = caTL)
simple bool dW = input.bool (false , "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 = 0, maxval = 4999)
simple color fCSS = input.color (#00000000 , "Colors ", inline = "css ", group = "HYPER WAVE")
simple color sCSS = input.color (#00000000 , " ", inline = "css ", group = "HYPER WAVE")
string common = "Common Controls"
float source = input.source( close, "Source", group=common)
string mode = input.string("Trend Strength", "Composite Cluster Mode", group=common, options=["Trend Strength", "Volatility"], tooltip="Trend Strength visualizes the directionality of the filter cluster. Volatility weights the score to the bandwidth of the cluster.")
string filter = input.string( "PhiSmoother", "Cluster Filter", group=common, options=["PhiSmoother", "EMA", "DEMA", "TEMA", "WMA", "SMA"], tooltip="Choose a filter to build the moving average cluster with.")
float phase = input.float ( 3.7, "PhiSmoother Phase", group=common, minval=0.0, step=0.1, tooltip="This allows for subtle adjustment (tweaking) of the phase/lag for PhiSmoother")
string cluster = "Cluster Options"
int spacing = input.int(4, "Cluster Dispersion", group=cluster, minval=1, maxval=10, tooltip="Choose the separation between the moving averages in the cluster.")
int upper_trim = input.int(0, "Cluster Trim - Upper:", group=cluster, inline="trim", minval=0, maxval=31)
int lower_trim = input.int(0, "Lower:", group=cluster, inline="trim", minval=0, maxval=31, tooltip="The 'Upper' parameter modifies the shortest period of the moving averages, whereas 'Lower' parameter adjusts the longest period. Increasing the upper value reduces sensitivity, while increasing the lower value heightens sensitivity.")
string output = "Composite Post Smoothing"
string post_smooth_filt = input.string("PhiSmoother", "PostSmooth - Filter:", group=output, inline="post", options=["PhiSmoother", "EMA", "DEMA", "TEMA", "WMA", "SMA"])
int post_smooth_len = input.int ( 1, "Length:", group=output, inline="post", minval=1, tooltip="Period of the cluster's post smoothing.")
string signal = "Composite Signal Settings"
string signal_filter = input.string("PhiSmoother", "Signal - Filter:", group=signal, inline="signal", options=["PhiSmoother", "EMA", "DEMA", "TEMA", "WMA", "SMA"])
int signal_length = input.int ( 20, "Length:", group=signal, inline="signal", minval=1, tooltip="Period of the momentum signal plot.")
color signal_color = input.color ( color.white, "Filter Color", group=signal)
string threshold = "Threshold Levels"
float upperLevel = input.float( 75.00, "Levels - Upper:", group=threshold, inline="level", minval= 1.0, maxval=99.0, step=2.0)
float lowerLevel = input.float(-75.00, "Lower:", group=threshold, inline="level", minval=-99.0, maxval=-1.0, step=2.0, tooltip="Fine-tune the thresholds to your liking")
string colors = "Coloring Preferences"
float transition_easing = input.float( 50.0, "Transition Easing", group=colors, maxval= 100.0, minval=0.0, step=5.0, tooltip="Adjust the sensitivity to ranging conditions.")
bool fill_bg = input.bool ( false, "Fill Background", group=colors, inline= "fill")
int fill_alpha = input.int ( 85, "", group=colors, inline= "fill", minval=0, maxval=100)
color rising_bullish = input.color(#1848cc, "Bullish Color", group=colors, inline= "bull")
color rising_transition = input.color(#00000000, "Transition Color", group=colors, inline="range")
color falling_bearish = input.color(#1848cc, "Bearish Color", group=colors, inline= "bear")
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)
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)
mf.mfc := mf.mfi > 0
? mfBL
: mfBR
bL = mf.mfi - 10
bR = mf.mfi + 10
mf.blMFI := mf.mfi > 0 and mf.mfi > cf.blT.avg()
? bL
: 0
mf.brMFI := mf.mfi < 0 and mf.mfi < cf.brT.avg()
? bR
: 0
cDiv() =>
mx = math.max(osc.sig, osc.sgD, osc.sig[1], osc.sgD[1])
mn = math.min(osc.sig, osc.sgD, osc.sig[1], osc.sgD[1])
mxid = mx == osc.sig[1] or mx == osc.sgD[1] ? 1 : 0
mnid = mn == osc.sig[1] or mn == osc.sgD[1] ? 1 : 0
osc(mL, sL)
mfi()
mfT()
pO = plot(dW ? osc.sig : na, color = osc.cO.css(0) , title = "Hyper Wave 1")
iO = plot(dW ? osc.sgD : na, color = osc.cO.css(0), display = display.none, title = "Hyper Wave 2")
bL = plot(0 , color = color.black )
fill(pO, iO, color = dW ? osc.cO : na)
pmf = plot(Smf ? mf.mfi : na, color = mf.mfc )
blT = plot(mf.blMFI > 0 and mf.mfi > 0 ? mf.blMFI : 0 , color = na, display = display.none)
brT = plot(mf.brMFI < 0 and mf.mfi < 0 ? mf.brMFI : 0 , color = na, display = display.none)
fill(bL, pmf, mf.mfc.transp(Smf ? 50 : 100))
fill(bL, blT, mf.mfc.transp(Smf ? 0 : 100))
fill(bL, brT, mf.mfc.transp(Smf ? 0 : 100))
cf.up := color.rgb(54, 58, 69, 60)
cf.dn := color.rgb(54, 58, 69, 60)
switch
osc.sig > 0 and mf.mfi > 0 => cf.up := cnBL
osc.sig < 0 and mf.mfi < 0 => cf.dn := cnBR
=>
cf.dn := cnBR.transp(60)
cf.up := cnBL.transp(60)
tLv = plot( 55, color = sCNB ? cf.up : na)
bLv = plot(-55, color = sCNB ? cf.dn : na)
tfL = plot( 50, display = display.none)
dfL = plot(-50, display = display.none)
fill(tLv, tfL, color = sCNB ? cf.up : na)
fill(bLv, dfL, color = sCNB ? cf.dn : na)
PhiSmoother(series float source, simple int length, simple float phase=3.7)=>
var array<float> coefs = na
var int length_1 = length - 1
var float W = 0.0
if na(coefs)
coefs := array.new<float>()
const float SQRT_PIx2 = math.sqrt(2.0 * math.pi)
const float MULTIPLIER = -0.5 / 0.93
var float length_2 = length * 0.52353
for int i=0 to length_1
float alpha = (i + phase - length_2) * MULTIPLIER
float beta = 1.0 / (0.2316419 * math.abs(alpha) + 1.0)
float phi = (math.exp(math.pow(alpha, 2) * -0.5)
*-0.398942280) * beta *
( 0.Показано первые 50% кода (символов: 15673)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.