Untitled
unknown
plain_text
10 months ago
12 kB
13
Indexable
//@version=5
indicator("RSI Fibonacci",
shorttitle='RSI FİBO',
overlay = false,
timeframe="",
timeframe_gaps = true)
import loxx/loxxexpandedsourcetypes/3
import loxx/loxxvarietyrsi/1
greencolor = #2DD204
redcolor = #D2042D
bluecolor = #042dd2
SM02 = 'Signal'
SM03 = 'Middle Crossover'
SM04 = 'Fib Level 1 Crossover'
SM05 = 'Fib Level 2 Crossover'
SM06 = 'Fib Level 3 Crossover'
SM07 = 'Fib Level 4 Crossover'
variant(type, src, len) =>
sig = 0.0
if type == "SMA"
sig := ta.sma(src, len)
else if type == "EMA"
sig := ta.ema(src, len)
else if type == "WMA"
sig := ta.wma(src, len)
else if type == "RMA"
sig := ta.rma(src, len)
else if type == "VWMA"
sig := ta.rma(src, len)
sig
smthtype = input.string("Kaufman", "Heikin-Ashi Better Caculation Type", options = ["AMA", "T3", "Kaufman"], group = "Basic Settings")
srcin = input.string("Close", "Source", group= "Basic Settings",
options =
["Close", "Open", "High", "Low", "Median", "Typical", "Weighted", "Average", "Average Median Body", "Trend Biased", "Trend Biased (Extreme)",
"HA Close", "HA Open", "HA High", "HA Low", "HA Median", "HA Typical", "HA Weighted", "HA Average", "HA Average Median Body", "HA Trend Biased", "HA Trend Biased (Extreme)",
"HAB Close", "HAB Open", "HAB High", "HAB Low", "HAB Median", "HAB Typical", "HAB Weighted", "HAB Average", "HAB Average Median Body", "HAB Trend Biased", "HAB Trend Biased (Extreme)"])
rsiper = input.int(15, "Period", group = "Basic Settings")
rsitype = input.string("Regular", "RSI type", options = ["RSX", "Regular", "Slow", "Rapid", "Harris", "Cuttler", "Ehlers Smoothed"], group = "Basic Settings")
smthper = input.int(15, "Smooth Period", group = "Basic Settings")
hlper = input.int(25, "Hilo Period", group = "Basic Settings")
type = input.string("SMA", "RSI Smoothing Type", options = ["EMA", "WMA", "RMA", "SMA", "VWMA"], group = "Basic Settings")
lev1in = input.float(0.236, "Fib Level 1", group = "Fibonacci Levels Settings")
lev2in = input.float(0.382, "Fib Level 2", group = "Fibonacci Levels Settings")
lev3in = input.float(0.618, "Fib Level 3", group = "Fibonacci Levels Settings")
lev4in = input.float(0.764, "Fib Level 4", group = "Fibonacci Levels Settings")
sigtype = input.string(SM03, "Signal type", options = [SM02, SM03, SM04, SM05, SM06, SM07], group = "Signal Settings")
//colorbars = input.bool(false, "Color bars?", group = "UI Options")
showsignals = input.bool(false, "Show signals?", group = "UI Options")
fillgradient = input.bool(false, "Show gradient fill?", group = "UI Options")
kfl=input.float(0.666, title="* Kaufman's Adaptive MA (KAMA) Only - Fast End", group = "Moving Average Inputs")
ksl=input.float(0.0645, title="* Kaufman's Adaptive MA (KAMA) Only - Slow End", group = "Moving Average Inputs")
amafl = input.int(2, title="* Adaptive Moving Average (AMA) Only - Fast", group = "Moving Average Inputs")
amasl = input.int(30, title="* Adaptive Moving Average (AMA) Only - Slow", group = "Moving Average Inputs")
haclose = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)
haopen = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, open)
hahigh = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, high)
halow = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, low)
hamedian = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, hl2)
hatypical = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, hlc3)
haweighted = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, hlcc4)
haaverage = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, ohlc4)
src = switch srcin
"Close" => loxxexpandedsourcetypes.rclose()
"Open" => loxxexpandedsourcetypes.ropen()
"High" => loxxexpandedsourcetypes.rhigh()
"Low" => loxxexpandedsourcetypes.rlow()
"Median" => loxxexpandedsourcetypes.rmedian()
"Typical" => loxxexpandedsourcetypes.rtypical()
"Weighted" => loxxexpandedsourcetypes.rweighted()
"Average" => loxxexpandedsourcetypes.raverage()
"Average Median Body" => loxxexpandedsourcetypes.ravemedbody()
"Trend Biased" => loxxexpandedsourcetypes.rtrendb()
"Trend Biased (Extreme)" => loxxexpandedsourcetypes.rtrendbext()
"HA Close" => loxxexpandedsourcetypes.haclose(haclose)
"HA Open" => loxxexpandedsourcetypes.haopen(haopen)
"HA High" => loxxexpandedsourcetypes.hahigh(hahigh)
"HA Low" => loxxexpandedsourcetypes.halow(halow)
"HA Median" => loxxexpandedsourcetypes.hamedian(hamedian)
"HA Typical" => loxxexpandedsourcetypes.hatypical(hatypical)
"HA Weighted" => loxxexpandedsourcetypes.haweighted(haweighted)
"HA Average" => loxxexpandedsourcetypes.haaverage(haaverage)
"HA Average Median Body" => loxxexpandedsourcetypes.haavemedbody(haclose, haopen)
"HA Trend Biased" => loxxexpandedsourcetypes.hatrendb(haclose, haopen, hahigh, halow)
"HA Trend Biased (Extreme)" => loxxexpandedsourcetypes.hatrendbext(haclose, haopen, hahigh, halow)
"HAB Close" => loxxexpandedsourcetypes.habclose(smthtype, amafl, amasl, kfl, ksl)
"HAB Open" => loxxexpandedsourcetypes.habopen(smthtype, amafl, amasl, kfl, ksl)
"HAB High" => loxxexpandedsourcetypes.habhigh(smthtype, amafl, amasl, kfl, ksl)
"HAB Low" => loxxexpandedsourcetypes.hablow(smthtype, amafl, amasl, kfl, ksl)
"HAB Median" => loxxexpandedsourcetypes.habmedian(smthtype, amafl, amasl, kfl, ksl)
"HAB Typical" => loxxexpandedsourcetypes.habtypical(smthtype, amafl, amasl, kfl, ksl)
"HAB Weighted" => loxxexpandedsourcetypes.habweighted(smthtype, amafl, amasl, kfl, ksl)
"HAB Average" => loxxexpandedsourcetypes.habaverage(smthtype, amafl, amasl, kfl, ksl)
"HAB Average Median Body" => loxxexpandedsourcetypes.habavemedbody(smthtype, amafl, amasl, kfl, ksl)
"HAB Trend Biased" => loxxexpandedsourcetypes.habtrendb(smthtype, amafl, amasl, kfl, ksl)
"HAB Trend Biased (Extreme)" => loxxexpandedsourcetypes.habtrendbext(smthtype, amafl, amasl, kfl, ksl)
=> haclose
rsimode = switch rsitype
"RSX" => "rsi_rsx"
"Regular" => "rsi_rsi"
"Slow" => "rsi_slo"
"Rapid" => "rsi_rap"
"Harris" => "rsi_har"
"Cuttler" => "rsi_cut"
"Ehlers Smoothed" => "rsi_ehl"
=> "rsi_rsi"
srcout = variant(type, src, smthper)
rsi = loxxvarietyrsi.rsiVariety(rsimode, srcout, rsiper)
sig = nz(rsi[1])
ll = ta.lowest(rsi, hlper)
hh = ta.highest(rsi, hlper)
rng = hh-ll
trdUp = hh
trdDn = ll
mid = (hh+ll)/2
fupd = mid
fupu = trdUp
fdnu = mid
fdnd = trdDn
lev1 = ll + lev1in * rng
lev2 = ll + lev2in * rng
lev3 = ll + lev3in * rng
lev4 = ll + lev4in * rng
rsic = 0.
trdUpc = 0.
trdDnc = 0.
rsic := (rsi == hh and hh != ll) ? 1 : (rsi == ll and hh != ll) ? 2 : nz(rsic[1])
trdUpc := (trdUp > nz(trdUp[1])) ? 1 : (trdUp< nz(trdUp[1])) ? 2 : nz(trdUpc[1])
trdDnc := (trdDn > nz(trdDn[1])) ? 1 : (trdDn< nz(trdDn[1])) ? 2 : nz(trdDnc[1])
state = 0.
if sigtype == SM02
if (rsi < sig)
state :=-1
if (rsi > sig)
state := 1
else if sigtype == SM03
if (rsi < mid)
state :=-1
if (rsi > mid)
state := 1
else if sigtype == SM04
if (rsi < lev1)
state :=-1
if (rsi > lev1)
state := 1
else if sigtype == SM05
if (rsi < lev2)
state :=-1
if (rsi > lev2)
state := 1
else if sigtype == SM06
if (rsi < lev3)
state :=-1
if (rsi > lev3)
state := 1
else if sigtype == SM07
if (rsi < lev4)
state :=-1
if (rsi > lev4)
state := 1
colorout =
state == -1 ? redcolor :
state == 1 ? greencolor :
color.gray
lvllo = plot(lev1, color = bar_index % 2 ? greencolor : na)
plot(lev2, color = bar_index % 2 ? color.yellow : na)
plot(lev3, color = bar_index % 2 ? color.orange : na)
lvlhi =plot(lev4, color = bar_index % 2 ? redcolor : na)
plot(rsi, linewidth = 3, color = colorout)
goLong =
sigtype == SM02 ? ta.crossover(rsi, sig) :
sigtype == SM03 ? ta.crossover(rsi, mid) :
sigtype == SM04 ? ta.crossover(rsi, lev1) :
sigtype == SM05 ? ta.crossover(rsi, lev2) :
sigtype == SM06 ? ta.crossover(rsi, lev3) :
ta.crossover(rsi, lev4)
goShort =
sigtype == SM02 ? ta.crossunder(rsi, sig) :
sigtype == SM03 ? ta.crossunder(rsi, mid) :
sigtype == SM04 ? ta.crossunder(rsi, lev1) :
sigtype == SM05 ? ta.crossunder(rsi, lev2) :
sigtype == SM06 ? ta.crossunder(rsi, lev3) :
ta.crossunder(rsi, lev4)
plotshape(goLong and showsignals, title = "Long", color = color.yellow, textcolor = color.yellow, text = "L", style = shape.triangleup, location = location.bottom, size = size.tiny)
plotshape(goShort and showsignals, title = "Short", color = color.fuchsia, textcolor = color.fuchsia, text = "S", style = shape.triangledown, location = location.top, size = size.tiny)
alertcondition(goLong, title="Long", message="Variety RSI w/ Fibonacci Auto Channel [Loxx]: Long\nSymbol: {{ticker}}\nsrc: {{close}}")
alertcondition(goShort, title="Short", message="Variety RSI w/ Fibonacci Auto Channel [Loxx]: Short\nSymbol: {{ticker}}\nsrc: {{close}}")
lo = math.min(lev1, lev4)
hi = math.max(lev1, lev4)
color2 = color.from_gradient(rsi,lo, hi, redcolor, greencolor)
fill(lvllo, lvlhi, color = fillgradient ? hi != lo ? color.new(color2, 90) : color.new(colorout, 90) : na )
//barcolor(colorbars ? hi != lo ? color2 : colorout: na)
//plot(rsi, linewidth = 3, color = colorout)
//plotcandle(rsi[1], ta.highest(rsi, 2), ta.lowest(rsi, 2), rsi,
// title="RSI Mumları",
// color=rsi > rsi[1] ? color.green : color.red)
plotcandle(rsi[1], ta.highest(rsi, 2), ta.lowest(rsi, 2), rsi, title="RSI Mumları", color=colorout)
upLine = input.int(70, minval=50, maxval=90, title="Upper Line Value?")
lowLine = input.int(30, minval=10, maxval=50, title="Lower Line Value?")
midLine = 50
//resCustom2 = input.timeframe(title="Use 2nd RSI? Check Box Above", defval="D")
//useCurrentRes2 = input.bool(false, title="Use 2nd RSI Plot On Same Timeframe?")
useCurrentRes = input.bool(true, title="Use Current Chart Resolution?")
resCustom = input.timeframe(title="Use Different Timeframe? UncheckBox Above", defval="60")
res = useCurrentRes ? timeframe.period : resCustom
outRSI = request.security(syminfo.tickerid, res, rsi)
crossUp = outRSI[1] < lowLine and outRSI > lowLine ? 1 : 0
crossDn = outRSI[1] > upLine and outRSI < upLine ? 1 : 0
sbh = input.bool(true, title="Show Back Ground Highlights When RSI is Above/Below High/Low Lines?")
sch = input.bool(true, title="Show Back Ground Highlights When RSI Cross?")
//bgcolor(sbh and aboveLine ? color.new(color.red, 70) : na, transp=70) // RSI üst sınırın üzerindeyse kırmızı arka plan
//bgcolor(sbh and belowLine ? color.new(color.green, 70) : na, transp=70) // RSI alt sınırın altındaysa yeşil arka plan
bgcolor(sch and crossUp ? color.new(color.lime, 40) : na, transp=40) // RSI alt sınırdan yukarı keserse lime rengi
bgcolor(sch and crossDn ? color.new(color.red, 40) : na, transp=40) // RSI üst sınırdan aşağı keserse kırmızı rengi
// Draw RSI Levels
hline(upLine, "Upper Level", color=color.new(color.red, 0), linewidth=1, linestyle=hline.style_dotted)
hline(lowLine, "Lower Level", color=color.new(color.green, 0), linewidth=1, linestyle=hline.style_dotted)
hline(midLine, "Mid Level", color=color.new(color.gray, 0), linewidth=1, linestyle=hline.style_dotted)Editor is loading...
Leave a Comment