ALFA TREND Kıvanç Özbilgiç hocanın, kripto paralar için yazdığı al-sat sinyalleri üreten ALFA TREND isimli indikatörünü, BIST 30 endeksinde yer alan hisse senetlerini gösterecek şekilde düzenledim ve Türkçeye çevirdim. Grafikte sağ tarafta, bu hisse senetlerine ait al-sat durumları da gösterilmektedir. TradingView’de Pine Editörü’ne ekleyerek kullanmak isteyenler için uygun hale getirilmiştir.

Trading View Alfa Trend Tarayıcı Pine Script Kodu
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// Kıvanç Özbilgiç hocanın alpha trend indikatörü üzerinde türkçeleştirme ve BIST20 hisselerini gösterecek şekilde editlenmiştir.
//@version=6
indicator('Alfa Trend Tarayıcı', overlay = true, format = format.price, precision = 2)
// --- ALPHATREND Ayarları ---
src = input.source(title = 'Kaynak', defval = close, group = 'ALPHATREND')
AP = input.int(title = 'Uzunluk', defval = 14, group = 'ALPHATREND')
coeff = input.float(title = 'Çarpan', defval = 1.0, step = 0.1, group = 'ALPHATREND')
novolumedata = input.bool(title = 'Değişim Hesaplaması (Hacim Verisi Yok)', defval = false, group = 'ALPHATREND')
showsignalsk = input.bool(title = 'Sinyalleri göster', defval = true, group = 'ALPHATREND')
// ATR ve alt/üst çizgiler
ATR = ta.sma(ta.tr, AP)
upT = low - ATR * coeff
downT = high + ATR * coeff
// AlphaTrend hesaplama (düzgün karşılaştırmalarla)
var float AlphaTrend = na
use_up = novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50
AlphaTrend := use_up ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT
// Renk, tetikleyici ve sinyaller
color1 = AlphaTrend > AlphaTrend[2] ? #00E60F : AlphaTrend < AlphaTrend[2] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])
K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])
// Yön değişkeni (1 = al, -1 = sat, 0 = nötr)
var int direction = 0
direction := buySignalk and O1 > K2 ? 1 : sellSignalk and O2 > K1 ? -1 : direction[1]
// Plotlar
k1 = plot(AlphaTrend, title = 'AlfaTrend', color = color.green, linewidth = 3)
k2 = plot(AlphaTrend[2], title = 'Tetikleyici', color = color.red, linewidth = 3)
fill(k1, k2, title = 'Doldurma Rengi', color = color1)
// Sinyal şekilleri
plotshape(showsignalsk and buySignalk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title = 'AL', text = 'AL', location = location.absolute, style = shape.labelup, size = size.tiny, color = color.green, textcolor = color.white)
plotshape(showsignalsk and sellSignalk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title = 'SAT', text = 'SAT', location = location.absolute, style = shape.labeldown, size = size.tiny, color = color.red, textcolor = color.white)
// --- Tarayıcı ve Etiket Ayarları ---
string gr_sc = 'Tarayıcı'
string gr_sy = 'Sembol'
string t00 = 'Alfa Trend Tarayıcı'
color c00 = #686868
lb_sh = input.bool(title = 'Etiketleri Göster', defval = true, group = gr_sc)
lb_xa = input.int(title = 'Yatay Eksen', defval = 20, group = gr_sc, tooltip = 'Etiket Pozisyonu X Ekseninde')
lb_ya = input.int(title = 'Dikey Eksen', defval = 1, group = gr_sc, tooltip = 'Etiket Pozisyonu Y Ekseninde')
lb_sz = input.string(title = 'Etiketlerin Boyutu', options = ['Otomatik', 'Small', 'Normal', 'Large'], defval = 'Normal', group = gr_sc)
lb_cl = input.color(title = 'Renkler', defval = #00bb00, group = gr_sc, inline = '0')
lb_cs = input.color(title = '', defval = #ff0000, group = gr_sc, inline = '0')
// Hisseler (20 adet, varsayılan BIST örnekleri)
sh01 = input.bool(title = '01', defval = true, group = gr_sy, inline = '01')
sh02 = input.bool(title = '02', defval = true, group = gr_sy, inline = '02')
sh03 = input.bool(title = '03', defval = true, group = gr_sy, inline = '03')
sh04 = input.bool(title = '04', defval = true, group = gr_sy, inline = '04')
sh05 = input.bool(title = '05', defval = true, group = gr_sy, inline = '05')
sh06 = input.bool(title = '06', defval = true, group = gr_sy, inline = '06')
sh07 = input.bool(title = '07', defval = true, group = gr_sy, inline = '07')
sh08 = input.bool(title = '08', defval = true, group = gr_sy, inline = '08')
sh09 = input.bool(title = '09', defval = true, group = gr_sy, inline = '09')
sh10 = input.bool(title = '10', defval = true, group = gr_sy, inline = '10')
sh11 = input.bool(title = '11', defval = false, group = gr_sy, inline = '11')
sh12 = input.bool(title = '12', defval = false, group = gr_sy, inline = '12')
sh13 = input.bool(title = '13', defval = false, group = gr_sy, inline = '13')
sh14 = input.bool(title = '14', defval = false, group = gr_sy, inline = '14')
sh15 = input.bool(title = '15', defval = false, group = gr_sy, inline = '15')
sh16 = input.bool(title = '16', defval = false, group = gr_sy, inline = '16')
sh17 = input.bool(title = '17', defval = false, group = gr_sy, inline = '17')
sh18 = input.bool(title = '18', defval = false, group = gr_sy, inline = '18')
sh19 = input.bool(title = '19', defval = false, group = gr_sy, inline = '19')
sh20 = input.bool(title = '20', defval = false, group = gr_sy, inline = '20')
tf01 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '01')
tf02 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '02')
tf03 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '03')
tf04 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '04')
tf05 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '05')
tf06 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '06')
tf07 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '07')
tf08 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '08')
tf09 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '09')
tf10 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '10')
tf11 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '11')
tf12 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '12')
tf13 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '13')
tf14 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '14')
tf15 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '15')
tf16 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '16')
tf17 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '17')
tf18 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '18')
tf19 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '19')
tf20 = input.timeframe(title = '', defval = '', group = gr_sy, inline = '20')
s01 = input.symbol(title = '', group = gr_sy, inline = '01', defval = 'BIST:THYAO')
s02 = input.symbol(title = '', group = gr_sy, inline = '02', defval = 'BIST:ISCTR')
s03 = input.symbol(title = '', group = gr_sy, inline = '03', defval = 'BIST:EREGL')
s04 = input.symbol(title = '', group = gr_sy, inline = '04', defval = 'BIST:YKBNK')
s05 = input.symbol(title = '', group = gr_sy, inline = '05', defval = 'BIST:AKBNK')
s06 = input.symbol(title = '', group = gr_sy, inline = '06', defval = 'BIST:TUPRS')
s07 = input.symbol(title = '', group = gr_sy, inline = '07', defval = 'BIST:KCHOL')
s08 = input.symbol(title = '', group = gr_sy, inline = '08', defval = 'BIST:GARAN')
s09 = input.symbol(title = '', group = gr_sy, inline = '09', defval = 'BIST:EKGYO')
s10 = input.symbol(title = '', group = gr_sy, inline = '10', defval = 'BIST:ASELS')
s11 = input.symbol(title = '', group = gr_sy, inline = '11', defval = 'BIST:SASA')
s12 = input.symbol(title = '', group = gr_sy, inline = '12', defval = 'BIST:TCELL')
s13 = input.symbol(title = '', group = gr_sy, inline = '13', defval = 'BIST:PGSUS')
s14 = input.symbol(title = '', group = gr_sy, inline = '14', defval = 'BIST:BIMAS')
s15 = input.symbol(title = '', group = gr_sy, inline = '15', defval = 'BIST:SISE')
s16 = input.symbol(title = '', group = gr_sy, inline = '16', defval = 'BIST:PETKM')
s17 = input.symbol(title = '', group = gr_sy, inline = '17', defval = 'BIST:ASTOR')
s18 = input.symbol(title = '', group = gr_sy, inline = '18', defval = 'BIST:GUBRF')
s19 = input.symbol(title = '', group = gr_sy, inline = '19', defval = 'BIST:KRDMD')
s20 = input.symbol(title = '', group = gr_sy, inline = '20', defval = 'BIST:TOASO')
// --- Fonksiyonlar ---
f_screener(s) =>
int x = na
int y = na
color z = na
if s
x := direction
y := ta.barssince(x != x[1])
z := x == 1 ? lb_cl : x == -1 ? lb_cs : c00
z
[x, y, z]
f_bars(x) =>
' [' + str.tostring(x) + '] '
f_size(x) =>
x == 'Otomatik' ? size.auto : x == 'Small' ? size.small : x == 'Normal' ? size.normal : x == 'Large' ? size.large : size.auto
// Label yönetimi için array kullanarak
var label_array = array.new<label>(21, na)
f_label(index, t, c) =>
var bool result = false
if lb_sh
// Eski label'ı sil
current_label = array.get(label_array, index)
if not na(current_label)
label.delete(current_label)
// Y pozisyonu hesaplama
fix_allign = ta.highest(high, 200)
y_pos = bar_index > 200 ? fix_allign * (1 + lb_ya / 1000) : hl2 * (1 + lb_ya / 1000)
// Yeni label oluştur
new_label = label.new(x = bar_index + lb_xa, y = y_pos + index * y_pos * 0.03, text = t, textcolor = c, textalign = text.align_right, style = label.style_label_left, size = f_size(lb_sz), color = color.new(color.white, 100)) // Her label için farklı Y pozisyonu text=t, textcolor=c, textalign=text.align_right, style=label.style_label_left, size=f_size(lb_sz), color=color.new(color.white, 100))
// Yeni label'ı array'e kaydet
array.set(label_array, index, new_label)
result := true
result
else
result := false
result
result
// --- Security ile tarama (her sembol için) ---
[a01, b01, c01] = request.security(s01, tf01 == '' ? timeframe.period : tf01, f_screener(sh01))
[a02, b02, c02] = request.security(s02, tf02 == '' ? timeframe.period : tf02, f_screener(sh02))
[a03, b03, c03] = request.security(s03, tf03 == '' ? timeframe.period : tf03, f_screener(sh03))
[a04, b04, c04] = request.security(s04, tf04 == '' ? timeframe.period : tf04, f_screener(sh04))
[a05, b05, c05] = request.security(s05, tf05 == '' ? timeframe.period : tf05, f_screener(sh05))
[a06, b06, c06] = request.security(s06, tf06 == '' ? timeframe.period : tf06, f_screener(sh06))
[a07, b07, c07] = request.security(s07, tf07 == '' ? timeframe.period : tf07, f_screener(sh07))
[a08, b08, c08] = request.security(s08, tf08 == '' ? timeframe.period : tf08, f_screener(sh08))
[a09, b09, c09] = request.security(s09, tf09 == '' ? timeframe.period : tf09, f_screener(sh09))
[a10, b10, c10] = request.security(s10, tf10 == '' ? timeframe.period : tf10, f_screener(sh10))
[a11, b11, c11] = request.security(s11, tf11 == '' ? timeframe.period : tf11, f_screener(sh11))
[a12, b12, c12] = request.security(s12, tf12 == '' ? timeframe.period : tf12, f_screener(sh12))
[a13, b13, c13] = request.security(s13, tf13 == '' ? timeframe.period : tf13, f_screener(sh13))
[a14, b14, c14] = request.security(s14, tf14 == '' ? timeframe.period : tf14, f_screener(sh14))
[a15, b15, c15] = request.security(s15, tf15 == '' ? timeframe.period : tf15, f_screener(sh15))
[a16, b16, c16] = request.security(s16, tf16 == '' ? timeframe.period : tf16, f_screener(sh16))
[a17, b17, c17] = request.security(s17, tf17 == '' ? timeframe.period : tf17, f_screener(sh17))
[a18, b18, c18] = request.security(s18, tf18 == '' ? timeframe.period : tf18, f_screener(sh18))
[a19, b19, c19] = request.security(s19, tf19 == '' ? timeframe.period : tf19, f_screener(sh19))
[a20, b20, c20] = request.security(s20, tf20 == '' ? timeframe.period : tf20, f_screener(sh20))
// Metin oluşturmalar (sadece aktif hisseler için)
t01 = sh01 ? a01 == 1 ? '▲' + f_bars(b01) + s01 : a01 == -1 ? '▼' + f_bars(b01) + s01 : '■' + f_bars(b01) + s01 : ''
t02 = sh02 ? a02 == 1 ? '▲' + f_bars(b02) + s02 : a02 == -1 ? '▼' + f_bars(b02) + s02 : '■' + f_bars(b02) + s02 : ''
t03 = sh03 ? a03 == 1 ? '▲' + f_bars(b03) + s03 : a03 == -1 ? '▼' + f_bars(b03) + s03 : '■' + f_bars(b03) + s03 : ''
t04 = sh04 ? a04 == 1 ? '▲' + f_bars(b04) + s04 : a04 == -1 ? '▼' + f_bars(b04) + s04 : '■' + f_bars(b04) + s04 : ''
t05 = sh05 ? a05 == 1 ? '▲' + f_bars(b05) + s05 : a05 == -1 ? '▼' + f_bars(b05) + s05 : '■' + f_bars(b05) + s05 : ''
t06 = sh06 ? a06 == 1 ? '▲' + f_bars(b06) + s06 : a06 == -1 ? '▼' + f_bars(b06) + s06 : '■' + f_bars(b06) + s06 : ''
t07 = sh07 ? a07 == 1 ? '▲' + f_bars(b07) + s07 : a07 == -1 ? '▼' + f_bars(b07) + s07 : '■' + f_bars(b07) + s07 : ''
t08 = sh08 ? a08 == 1 ? '▲' + f_bars(b08) + s08 : a08 == -1 ? '▼' + f_bars(b08) + s08 : '■' + f_bars(b08) + s08 : ''
t09 = sh09 ? a09 == 1 ? '▲' + f_bars(b09) + s09 : a09 == -1 ? '▼' + f_bars(b09) + s09 : '■' + f_bars(b09) + s09 : ''
t10 = sh10 ? a10 == 1 ? '▲' + f_bars(b10) + s10 : a10 == -1 ? '▼' + f_bars(b10) + s10 : '■' + f_bars(b10) + s10 : ''
t11 = sh11 ? a11 == 1 ? '▲' + f_bars(b11) + s11 : a11 == -1 ? '▼' + f_bars(b11) + s11 : '■' + f_bars(b11) + s11 : ''
t12 = sh12 ? a12 == 1 ? '▲' + f_bars(b12) + s12 : a12 == -1 ? '▼' + f_bars(b12) + s12 : '■' + f_bars(b12) + s12 : ''
t13 = sh13 ? a13 == 1 ? '▲' + f_bars(b13) + s13 : a13 == -1 ? '▼' + f_bars(b13) + s13 : '■' + f_bars(b13) + s13 : ''
t14 = sh14 ? a14 == 1 ? '▲' + f_bars(b14) + s14 : a14 == -1 ? '▼' + f_bars(b14) + s14 : '■' + f_bars(b14) + s14 : ''
t15 = sh15 ? a15 == 1 ? '▲' + f_bars(b15) + s15 : a15 == -1 ? '▼' + f_bars(b15) + s15 : '■' + f_bars(b15) + s15 : ''
t16 = sh16 ? a16 == 1 ? '▲' + f_bars(b16) + s16 : a16 == -1 ? '▼' + f_bars(b16) + s16 : '■' + f_bars(b16) + s16 : ''
t17 = sh17 ? a17 == 1 ? '▲' + f_bars(b17) + s17 : a17 == -1 ? '▼' + f_bars(b17) + s17 : '■' + f_bars(b17) + s17 : ''
t18 = sh18 ? a18 == 1 ? '▲' + f_bars(b18) + s18 : a18 == -1 ? '▼' + f_bars(b18) + s18 : '■' + f_bars(b18) + s18 : ''
t19 = sh19 ? a19 == 1 ? '▲' + f_bars(b19) + s19 : a19 == -1 ? '▼' + f_bars(b19) + s19 : '■' + f_bars(b19) + s19 : ''
t20 = sh20 ? a20 == 1 ? '▲' + f_bars(b20) + s20 : a20 == -1 ? '▼' + f_bars(b20) + s20 : '■' + f_bars(b20) + s20 : ''
// Etiketleri ekle
if lb_sh
f_label(0, t00, c00)
if t01 != ''
f_label(1, t01, c01)
if t02 != ''
f_label(2, t02, c02)
if t03 != ''
f_label(3, t03, c03)
if t04 != ''
f_label(4, t04, c04)
if t05 != ''
f_label(5, t05, c05)
if t06 != ''
f_label(6, t06, c06)
if t07 != ''
f_label(7, t07, c07)
if t08 != ''
f_label(8, t08, c08)
if t09 != ''
f_label(9, t09, c09)
if t10 != ''
f_label(10, t10, c10)
if t11 != ''
f_label(11, t11, c11)
if t12 != ''
f_label(12, t12, c12)
if t13 != ''
f_label(13, t13, c13)
if t14 != ''
f_label(14, t14, c14)
if t15 != ''
f_label(15, t15, c15)
if t16 != ''
f_label(16, t16, c16)
if t17 != ''
f_label(17, t17, c17)
if t18 != ''
f_label(18, t18, c18)
if t19 != ''
f_label(19, t19, c19)
if t20 != ''
f_label(20, t20, c20)
Bir yanıt yazın