Untitled

 avatar
unknown
plain_text
a month ago
3.4 kB
9
Indexable
//@version=5
strategy("Variety RSI w/ Fibonacci Auto Channel [Loxx] - Strategy", 
         shorttitle="VRSIFAC Strategy", 
         overlay=false)

// Girişler ve ayarlar
rsitype = input.string("Regular", "RSI Type", options=["RSX", "Regular", "Slow", "Rapid", "Harris", "Cuttler", "Ehlers Smoothed"], group="RSI Settings")
rsiper = input.int(15, "RSI Period", group="RSI Settings")
smthper = input.int(15, "Smoothing Period", group="RSI Settings")
hlper = input.int(25, "Hilo Period", group="RSI Settings")
type = input.string("SMA", "RSI Smoothing Type", options=["EMA", "WMA", "RMA", "SMA", "VWMA"], group="RSI Settings")

sigtype = input.string("Middle Crossover", "Signal Type",  options=["Signal", "Middle Crossover", "Fib Level 1 Crossover", "Fib Level 2 Crossover", "Fib Level 3 Crossover", "Fib Level 4 Crossover"], group="Signal Settings")

lev1in = input.float(0.236, "Fib Level 1", group="Fibonacci Levels")
lev2in = input.float(0.382, "Fib Level 2", group="Fibonacci Levels")
lev3in = input.float(0.618, "Fib Level 3", group="Fibonacci Levels")
lev4in = input.float(0.764, "Fib Level 4", group="Fibonacci Levels")

src = close  // Varsayılan kaynak kapanış fiyatı

// RSI Hesaplama
variant(type, src, len) =>
    type == "SMA" ? ta.sma(src, len) :    type == "EMA" ? ta.ema(src, len) :     type == "WMA" ? ta.wma(src, len) :     type == "RMA" ? ta.rma(src, len) :     type == "VWMA" ? ta.vwma(src, len) : na
srcout = variant(type, src, smthper)

rsi = switch rsitype
    "RSX" => ta.rsi(srcout, rsiper)  // Örnek olarak
    "Regular" => ta.rsi(srcout, rsiper)
    "Slow" => ta.rma(srcout, rsiper)
    "Rapid" => ta.wma(srcout, rsiper)
    "Harris" => ta.ema(srcout, rsiper)
    "Cuttler" => ta.sma(srcout, rsiper)
    "Ehlers Smoothed" => ta.ema(ta.rsi(srcout, rsiper), smthper)

// Fibonacci seviyeleri
ll = ta.lowest(rsi, hlper)
hh = ta.highest(rsi, hlper)
rng = hh - ll

lev1 = ll + lev1in * rng
lev2 = ll + lev2in * rng
lev3 = ll + lev3in * rng
lev4 = ll + lev4in * rng
mid = (hh + ll) / 2

// Giriş ve çıkış koşulları
goLong = sigtype == "Signal" ? ta.crossover(rsi, ta.sma(rsi, rsiper)) :
         sigtype == "Middle Crossover" ? ta.crossover(rsi, mid) :
         sigtype == "Fib Level 1 Crossover" ? ta.crossover(rsi, lev1) :
         sigtype == "Fib Level 2 Crossover" ? ta.crossover(rsi, lev2) :
         sigtype == "Fib Level 3 Crossover" ? ta.crossover(rsi, lev3) :
         ta.crossover(rsi, lev4)

goShort = sigtype == "Signal" ? ta.crossunder(rsi, ta.sma(rsi, rsiper)) :
          sigtype == "Middle Crossover" ? ta.crossunder(rsi, mid) :
          sigtype == "Fib Level 1 Crossover" ? ta.crossunder(rsi, lev1) :
          sigtype == "Fib Level 2 Crossover" ? ta.crossunder(rsi, lev2) :
          sigtype == "Fib Level 3 Crossover" ? ta.crossunder(rsi, lev3) :
          ta.crossunder(rsi, lev4)

// Strateji işlemleri
if (goLong)
    strategy.entry("Long", strategy.long)

if (goShort)
    strategy.close("Long")

// Grafik öğeleri
plot(lev1, color=color.new(color.green, 50), title="Level 1")
plot(lev2, color=color.new(color.yellow, 50), title="Level 2")
plot(lev3, color=color.new(color.orange, 50), title="Level 3")
plot(lev4, color=color.new(color.red, 50), title="Level 4")
plot(mid, color=color.blue, title="Midline")
plot(rsi, color=color.white, linewidth=2, title="RSI")
Leave a Comment