//@version=4
study(title="Hacim Tabanlı Trend Göstergesi", shorttitle="HTG")
// Hacim Verisi
vol = volume
// Ortalama fiyat hesaplama fonksiyonu
avg(src, len) => sma(src, len)
// Basit Hareketli Ortalama Hesaplama
smaSlow = input(20, title="Yavaş Hareketli Ortalama")
smaFast = input(5, title="Hızlı Hareketli Ortalama")
smaSlowValue = avg(close, smaSlow)
smaFastValue = avg(close, smaFast)
// Hacim Tabanlı Trend Göstergesi Hesaplama
htgValue = smaSlowValue > smaFastValue ? 1 : -1
// Renk Değiştirme
htgColor = htgValue == 1 ? color.green : color.red
// Gösterge Çizimi
plot(htgValue, title="HTG", color=htgColor, linewidth=2)
//@version=4
study(title="Hacim Tabanlı Trend Göstergesi", shorttitle="HTG")
// Hacim Verisi
vol = volume //zaten bir değişken olan değeri yeni bir değere atadı tamamen anlamsız
// Ortalama fiyat hesaplama fonksiyonu
avg(src, len) => sma(src, len) //sma yerleşik bir fonksiyondur len(uzunluk) ile belirtilen değer kadar serideki elemanların aritmetik ortalamasını alır yerleşik fonksiyonu kullanarak yine aynı işi yapan kendi fonksiyonunu yazdı gereksiz ikinci adım
// Basit Hareketli Ortalama Hesaplama
smaSlow = input(20, title="Yavaş Hareketli Ortalama") //Kullanıcıdan bilgi almak için input oluşturdu ayarlardan buralara değer yazabiliyoruz ve yazılım bu değerleri kullanıyor
smaFast = input(5, title="Hızlı Hareketli Ortalama") //Kullanıcıdan bilgi almak için input oluşturdu ayarlardan buralara değer yazabiliyoruz ve yazılım bu değerleri kullanıyor
// Şimdi gelelim en cafcaflı yere hacim verisini kullanarak bir trend indikatörü yazmasını istemiştim yukarıda hacmi bir değişkene atadı vs. ama sonuç? ortalama hesaplama fonksiyonunda close değeri olan fiyat verisini kullandı hani hacim nerede :)
smaSlowValue = avg(close, smaSlow)
smaFastValue = avg(close, smaFast)
// Hacim Tabanlı Trend Göstergesi Hesaplama
htgValue = smaSlowValue > smaFastValue ? 1 : -1 // hızlı ortalamanın yavaş ortalamayı kestiği yerlerde trend değişimi olarak yorumladı tamamda bu ortalamalar hacme göre değil fiyata göre çalışıyor
// Renk Değiştirme
htgColor = htgValue == 1 ? color.green : color.red // Daha sonra trendi renklendirdi ancak onuda ters yaptı yükselen trendi kırmızı düşeni yeşil gösterdi
// Gösterge Çizimi
plot(htgValue, title="HTG", color=htgColor, linewidth=2) // Trendi belirten çizgiyi çizdirdi ve pine script biter :)
//Hee birde unutmadan bunu gitti birde versiyon 4 te yazdı artık o versiyonu kullanmıyoruz versiyon 5 çıkalı çok oldu
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alperzengin22
//@version=5
indicator("Komut dosyam", overlay = true)
// Günlük Seviyeler, Yeni Dip ve Tepeler {
[openPrice,highPrice,lowPrice] = request.security(syminfo.ticker, "D", [open, high, low])
ATL=lowPrice
NEWATL=low<ATL
ATH=highPrice
NEWATH=high>ATH
//}
// Bar Renklendirmeler {
var color BarRengi = na
switch
ta.cross(close, openPrice) => BarRengi := color.new(color.black, 10) // Open price ile kesişim olursa mavi olacak
ta.cross(close, highPrice) => BarRengi := color.new(color.blue, 10) // Open price ile kesişim olursa mavi olacak
ta.cross(close, lowPrice) => BarRengi := color.new(color.orange, 10) // Open price ile kesişim olursa mavi olacak
open>close => BarRengi := color.new(color.red, 10) // Kırmızı renkli barın rengi yine kırmızı olsun
close>open => BarRengi := color.new(color.green, 10)
=> BarRengi := color.new(color.yellow, 10)
barcolor(color = BarRengi, title = "Açılış Fiyatı ile Kesişme")
//}
// Çizimler {
plot(openPrice ? openPrice : na, title="Daily Open", style = plot.style_circles, linewidth = 1, color = color.purple)
plot(highPrice ? highPrice : na, title="Daily High", style = plot.style_circles, linewidth = 1, color = color.green)
plot(lowPrice ? lowPrice : na, title="Daily Low", style = plot.style_circles, linewidth = 1, color = color.red)
//}
// Alarmlar {
alertcondition(NEWATL,"Daily Low", message="AL")
alertcondition(NEWATH,"Daily high",message="SAT")
//}