Untitled

 avatar
unknown
plain_text
4 months ago
3.7 kB
8
Indexable
//@version=6
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Kaufman Adaptive Moving Average script is distributed under the terms of the GPL-3.0 license.
indicator("RSI with TA & KAMA", shorttitle="RSI with TA", overlay=false)

// =================== INPUT PARAMETRELERİ ===================
var string g_rsi = "RSI Ayarları"
var string g_channels = "Kanal Ayarları"
var string g_signals = "Sinyal Ayarları"
var string g_visuals = "Görsel Ayarlar"
var string g_kama = "KAMA Ayarları"

// RSI temel ayarları
rsiLength = input.int(14, "RSI Periyodu", minval=1, group=g_rsi)
rsiSource = input.source(close, "RSI Kaynak", group=g_rsi)
overBought = input.int(70, "Aşırı Alım Seviyesi", minval=50, maxval=100, group=g_rsi)
overSold = input.int(30, "Aşırı Satım Seviyesi", minval=0, maxval=50, group=g_rsi)

// KAMA Ayarları
enableKAMA = input.bool(true, "KAMA Göstergesini Etkinleştir", group=g_kama)
kamaLength = input.int(146, "KAMA Periyot", group=g_kama)
fastLength = input.int(3, "Hızlı EMA Periyodu", group=g_kama)
slowLength = input.int(14, "Yavaş EMA Periyodu", group=g_kama)
useKamaColoring = input.bool(true, "KAMA Renklendirme", group=g_kama)
waitForConfirmation = input.bool(true, "Mum Onayı Beklensin", group=g_kama)

// Gösterge ayarları
showMA = input.bool(false, "Hareketli Ortalama Göster", group=g_channels)
showDonchian = input.bool(false, "Donchian Kanalı Göster", group=g_channels)
maLength = input.int(50, "MA Periyodu", minval=1, group=g_channels)
donchianLength = input.int(20, "Donchian Kanal Periyodu", minval=1, group=g_channels)

// =================== HESAPLAMALAR ===================
// RSI hesaplaması
rsi = ta.rsi(rsiSource, rsiLength)
float openRsi = rsi[1]
float closeRsi = rsi
float highRsi = math.max(openRsi, closeRsi)
float lowRsi = math.min(openRsi, closeRsi)

// KAMA Hesaplaması
volatility = math.sum(math.abs(ta.change(rsiSource)), kamaLength)
change = math.abs(ta.change(rsiSource, kamaLength))
er = volatility != 0 ? change / volatility : 0
fastAlpha = 2 / (fastLength + 1)
slowAlpha = 2 / (slowLength + 1)
alpha = math.pow(er * (fastAlpha - slowAlpha) + slowAlpha, 2)
var float kama = na
kama := na(kama[1]) ? rsi : alpha * rsi + (1 - alpha) * nz(kama[1])

// MA ve Donchian Hesaplamaları
ma = ta.sma(rsi, maLength)
donchianHigh = ta.highest(rsi, donchianLength)
donchianLow = ta.lowest(rsi, donchianLength)
donchianMiddle = (donchianHigh + donchianLow) / 2

// =================== ÇİZİMLER ===================
// RSI mum çubukları
var color bullColor = color.green
var color bearColor = color.red
plotcandle(openRsi, highRsi, lowRsi, closeRsi, "RSI Candlestick", 
  color=(closeRsi >= openRsi ? bullColor : bearColor), 
  wickcolor=(closeRsi >= openRsi ? bullColor : bearColor), 
  bordercolor=(closeRsi >= openRsi ? bullColor : bearColor))

// KAMA çizimi
confirmation = waitForConfirmation ? barstate.isconfirmed : true
kamaColor = useKamaColoring ? (kama > kama[1] and confirmation ? color.rgb(11, 255, 19) : color.rgb(255, 25, 25)) : color.rgb(1, 247, 255)
plot(enableKAMA ? kama : na, "KAMA", color=kamaColor, linewidth=2)

// MA ve Donchian çizimleri
maPlot = plot(showMA ? ma : na, "MA", color=color.yellow, linewidth=1)
dhighPlot = plot(showDonchian ? donchianHigh : na, "Donchian High", color=color.rgb(255, 255, 255), linewidth=1)
dlowPlot = plot(showDonchian ? donchianLow : na, "Donchian Low", color=color.rgb(255, 255, 255), linewidth=1)
dmidPlot = plot(showDonchian ? donchianMiddle : na, "Donchian Middle", color=color.rgb(255, 255, 255), style=plot.style_circles, linewidth=1)

// =================== UYARILAR ===================
alertcondition(kamaColor != kamaColor[1], "KAMA Renk Değişimi", "KAMA göstergesinin rengi değişti!")
Editor is loading...
Leave a Comment