# Matrix Mod

This is the Matrix oscillator made by glaz. So credit goes to him.

I made some minor modifications to it:
1. added a zeroline
2. added 3 options to color bars/candles depending on:
- if the oscillator is above/below 0
- if it's oversold/bought*
- if the matrix has a green bar or a red

That's all :)
オープンソーススクリプト

チャートでこのスクリプトを利用したいですか？
study("Matrix Mod",shorttitle="MS",precision=1)
Smoother=input(5)
nn = Smoother
//--Sup/Res Detail
SupResPeriod = input(50)
SupResPercentage =input(100)
PricePeriod = input(16)
ob = input(200,title="Overbought")
os = input(-200,title="Oversold")
OBOS= input(type=bool,defval=false,title="Show OB/OS")
dynamic=input(true,title="Dynamic zones")
ys1 = ( high + low + close * 2 ) / 4
rk3 = ema( ys1, nn )
rk4 = stdev(ys1, nn)
rk5 = (ys1 - rk3 ) * 200 / rk4
rk6 = ema( rk5, nn )
up = ema(rk6, nn )
down = ema( up, nn )
Oo = iff( up < down, up, down )
Hh = Oo
Ll = iff( up < down, down, up )
Cc = Ll
vcolor= Oo > Cc ? red : up > down? green:red

// Body Calculations
bodyHigh = up>down ? up : down
bodyLow = Oo<down ? up : down
body0 = (up>0 and down>0) or (up>0 and down<0) ? bodyHigh : (up<0 and down<0) or (up<0 and down>0) ? bodyLow : 0
body1 = up<0 and down>0 ? bodyHigh : up>0 and down<0 ? bodyLow : 0
bodyCover = up>0 and down>0 ? bodyLow : up<0 and down<0 ? bodyHigh : 0
// Wick Calculations
wick0 = Hh>0 ? Hh : Ll
wick1 = Hh>0 and Ll<0 ? Ll : Hh
wickCover = Hh>0 and Ll>0 ? Ll : Hh<0 and Ll<0 ? Hh : 0
plot(Oo, linewidth=3, color=vcolor, style=histogram, title="Oc")
plot(Cc, linewidth=3, color=vcolor, style=histogram, title="Cc")
plot(bodyCover, linewidth=3, color=white, style=histogram)

//-------S/R Zones------
Lookback = SupResPeriod
PerCent = SupResPercentage
Pds = PricePeriod

C3 = cci(close,Pds )

Osc = C3
Value1 = Osc
Value2 = highest( Value1, Lookback )
Value3 = lowest( Value1, Lookback )
Value4 = Value2 - Value3
Value5 = Value4 * ( PerCent / 100 )
ResistanceLine = Value3 + Value5
SupportLine = Value2 - Value5
plot(dynamic?ResistanceLine:na,color=green)
plot(dynamic?SupportLine:na,color=red)

//--Overbought/Oversold/Warning Detail
UPshape = up > 200 and up>down ? highest(up,1) + 20:up > 200 and up<down?highest(down,1) + 20:na
DOWNshape = down < -200 and up>down ? lowest(down,1) - 20:down < -200 and up<down?lowest(up,1) - 20 :na
plot(UPshape,style=linebr,color=red,linewidth=2)
plot(DOWNshape,style=linebr,color=green,linewidth=2)
x1=OBOS?ob:false
x2=OBOS?os:false
hline(x1)
hline(x2)
hline(0)