Borsada yatırım yaparken karşılaştığımız en temel ikilemlerden biri şudur:
Yükseliş trendinde olan bir hisseye mi yatırım yapılmalı, yoksa düşüş trendinde olup potansiyel taşıyan bir fırsat mı kovalanmalı?
Bu soru, yatırımcının zaman ufkuna, risk algısına ve analiz yeteneğine göre farklı yanıtlar doğurabilir. Ancak ideal yaklaşım, her iki stratejiyi birleştirerek, güvenli trend takibini fırsatçı dip alımlarla harmanlamak olabilir.
Yükseliş trendi, hisse senedinin yükselen dipler ve zirveler oluşturduğu, piyasa katılımcılarının güven duyduğu bir evredir. Bu durumda fiyat yukarı giderken hisseye olan talep canlıdır.
Yabancı satıyor, küçük yatırımcı alıyorsa → bu genellikle dikkatli olunması gereken bir sinyaldir.
Sebepler ve olası anlamlar:
1. Akıllı para çıkıyor, tecrübesiz para giriyor
Yabancı yatırımcılar genellikle kurumsal, analiz odaklı ve daha sabırlı yatırımcılardır. Bu yüzden onların yaptığı işlemler, genellikle daha sağlıklı bilgiye dayanır.
Küçük yatırımcılar ise çoğu zaman haber, dedikodu, sosyal medya veya fiyat hareketlerine göre işlem yaparlar. Bu yüzden, yabancı çıkarken küçük yatırımcının alım yapması çoğu zaman zararla sonuçlanabilir.
2. Hissenin bir süre sonra düşüşe geçme ihtimali artar
Yabancı satışları genellikle yüksek hacimlidir. Eğer bu satışlara karşılık güçlü bir kurumsal alım yoksa, hissenin arzı artar ve fiyat baskılanır.
Küçük yatırımcılar bu baskıyı uzun süre karşılayamaz → panik satış gelir → fiyat düşer.
3. Manipülatif hareketler olabilir
Bazı zamanlarda küçük yatırımcıların alım yapması, birilerinin onları “tuzakla” içeri çektiği anlamına gelir. Fiyat kısa süreli şişirilip sonra bir anda aşağı çekilir.
GirişTeknik analiz, yatırımcıların geçmiş fiyat hareketlerinden yola çıkarak gelecekteki fiyatları tahmin etmelerine yardımcı olan güçlü bir araçtır. Bu analiz türünde sıkça kullanılan araçlardan biri de Üssel Hareketli Ortalama (EMA – Exponential Moving Average) göstergesidir.
EMA, son fiyat verilerine daha fazla ağırlık vererek trendi daha hassas şekilde yansıtır. Ancak tek başına bir EMA değeri yeterli olmayabilir. Bu nedenle, yatırımcılar farklı periyotlardaki EMA’ları kullanarak “EMA Up”, “EMA Nötr” ve “EMA Down” gibi trend yönlerini belirlemeye çalışır. Bu yazıda bu üç kavramı derinlemesine inceleyeceğiz.
EMA Nedir?
EMA, belirli bir dönem boyunca fiyatların ağırlıklı ortalamasını alır. Ağırlık, son verilere daha fazla verildiği için EMA, trend değişimlerine daha hızlı tepki verir.
EMA’nın Özellikleri:
EMA Periyotları
Genelde kullanılan EMA periyotları:
Kısa Vadeli EMA’lar: 5, 8, 13
Orta Vadeli EMA’lar: 21, 34
Uzun Vadeli EMA’lar: 55, 100, 200
Genişletmek gerekirse 5, 8 ,9, 13, 21, 34, 55, 89, 100, 144, 200, 233, 370, 610, 987 diye uzatılabilir
Kısa vade fiyat momentumunu gösterirken, uzun vadeli EMA’lar trendin yönünü anlamaya yardımcı olur.
1. EMA Up (Yükseliş Formasyonu)
Tanım: EMA Up durumu, kısa vadeli EMA’ların uzun vadeli EMA’ların üzerinde sıralandığı, tüm EMA’ların yukarı doğru eğimli olduğu bir trend yapısıdır.
Teknik Şartlar:
Kapanış Fiyatı > EMA(5) > EMA(8) > EMA(13) > EMA(21) > EMA(34) > EMA(55) > EMA(100) > EMA(200)
Hepsinin eğimi pozitiftir (yukarı yönlü).
Fiyat genellikle en kısa EMA’nın (örneğin EMA5) üstünde kalır.
Anlamı:
Güçlü ve sağlıklı bir yükseliş trendi vardır.
Alım sinyali olarak değerlendirilir. (daha&helliip;)
Finansal piyasalarda fiyat oluşumu, yalnızca arz-talep dengesi ve teknik göstergelerden ibaret değildir. Beklentiler, duyarlılık ve ani bilgi akışı fiyat davranışında kritik rol oynar.
Birçok yatırımcı, trendin gücünü ve momentumunu ölçmek için osilatörler kullanır. Örneğin, aşırı alım bölgesi, teoride güçlü yükseliş ivmesi anlamına gelir. Ancak piyasa davranışı farklı olabilir; ani gelişmeler teknik modelleri geçersiz kılar.
Özellikle haber bazlı müdahaleler.
Örnek: İmamoğlunun gözaltına alınması, Ani bir soruşturma duyurusu, Kritik bir sözleşmenin feshi, Trump’un manipülatif açıklamaları.
Bu tür haber akışları, yatırımcı risk algısını bir anda değiştirir.
Sonuç olarak: Likidite azalır, Satış emirleri derinleşir, Volatilite yükselir, Teknik destek seviyeleri hızla kırılır.
Haber bazlı müdahaleyle teknik modellemeleri bir anda boşa çıkarırlar. Profesyonel yaklaşım, fiyat verileriyle birlikte bilgi akışını da sürekli izlemeyi gerektirir.
BIST 100 endeksinde yer alan şirketlerin sektörel dağılımına baktığımızda, sanayi, enerji ve holding sektörlerinin önemli bir ağırlığa sahip olduğunu görüyoruz. Bu sektörler, endeksin genel yönü üzerinde belirleyici bir etkiye sahiptir.
Son dönemde endeksin yukarı yönlü hareketinde beklenen ivmenin yakalanamaması, özellikle enerji ve sanayi şirketlerinin zayıf performansından kaynaklanmaktadır. Bu duruma az da olsa holding şirketlerinin durgunluğu da eklenebilir.
Eğer BIST 100 endeksinin 14.000 seviyesine ulaşması bekleniyorsa, öncelikle enerji ve sanayi sektörlerinde toparlanma şart. Bu sektörlerdeki güçlü bir hareket, endekste anlamlı bir yukarı yönlü kırılımın önünü açabilir.
Sideways market ya da Türkçesiyle yatay piyasa, bir varlığın fiyatının belirli bir zaman aralığında yukarı ya da aşağı yönlü anlamlı bir trend göstermeksizin belirli bir bant içinde hareket ettiği piyasa durumudur.
| Özellik | Açıklama |
|---|---|
| Trend Yokluğu | Uzun süreli yukarı ya da aşağı trend gözlemlenmez. |
| Destek-Direnç Aralığı | Fiyat çoğunlukla aynı aralıkta gidip gelir. |
| Hacim Azlığı | İşlem hacmi genellikle düşer. |
| Sinyal Kararsızlığı | Trend takip göstergeleri sık sık yön değiştirir. |
| Gösterge | Yorum |
|---|---|
| ADX (Average Directional Index) | ADX < 20 ise zayıf veya yönsüz piyasa |
| MACD | Sinyal çizgisi ve MACD çizgisi birbirine yakın ve histogram zayıf |
| Bollinger Bands | Bantlar sıkışmışsa, volatilite düşüktür → Sideways olabilir |
| Moving Average Crossover | Kısa vadeli ve uzun vadeli ortalamalar birbirine sarılmışsa yönsüzlük vardır |
| Price Action | Fiyat, belirli destek/dirençler arasında sıkışmışsa yatay seyir olabilir |
| Strateji | Açıklama |
|---|---|
| Destek-Dirençten Al/Sat | Destekten al, dirençten sat mantığıyla çalışılır. |
| Bollinger Bounce | Fiyat bantlara değince ters işlem açılır. |
| Stokastik + RSI | Aşırı alım/satım bölgeleri kullanılarak scalping yapılabilir. |
| Range Trading Botları | Belirli aralıkta otomatik işlem açan algoritmalar. |
Sideways dönemleri genellikle büyük bir harekete hazırlık sürecidir. Bu nedenle, sıkışma sonrası oluşan kırılmalar önemlidir:
| Gösterge | Sideways Yorumu |
|---|---|
| ADX | 20’nin altında → trend yok |
| Bollinger Band | Daralma varsa → sıkışma var |
| RSI | 45-55 arasında gidip geliyorsa → yönsüz |
| OBV | Yatay gidiyorsa → hacim tarafsız |
| MACD | Histogram sıfıra yakın, çizgiler düz |

İşte tam bu noktada polinomsal regresyon (Polynomial Regression) devreye girer. Bu yöntem, fiyat serisini eğri formunda modelleyerek daha esnek ve gerçekçi trend yorumları sunar.
Bu yazıda polinomsal regresyonun ne olduğu, nasıl hesaplandığı, finansal grafikte nasıl kullanıldığı ve hangi durumlarda işe yaradığı detaylı şekilde anlatılacaktır.
Polinomsal regresyon, bağımlı bir değişkeni (örneğin kapanış fiyatı) zamana karşı bir polinom fonksiyonu ile modellemeye çalışan istatistiksel bir tekniktir.
y: Tahmin edilen fiyatx: Zaman (örneğin bar numarası)n: Polinomun derecesi (2: parabol, 3+: eğri)| Amaç | Açıklama |
|---|---|
| Trend eğrisini çizmek | Fiyat serisinin eğilim yönünü eğrisel şekilde modellemek |
| Dönüş noktalarını saptamak | Eğrinin lokal maksimum/minimum noktaları potansiyel dönüş alanlarını verir |
| Trendin hızını ve yönünü analiz etmek | Eğrinin eğimi ve derecesi bu konuda ipuçları verir |
| Fiyat sapmalarını analiz etmek | Gerçek fiyat ile regresyon eğrisi arasındaki farklar aşırılık göstergesi olabilir |
| Polinom Derecesi | Teknik Anlamı | Kullanım Senaryosu |
|---|---|---|
| 1 (Lineer) | Basit yükselen/düşen trend | Doğrusal regresyon kanalı |
| 2 (Parabolik) | Dip/tepe oluşumları, dönüş eğilimleri | Orta vadeli dönüşler |
| 3–4 (Kübik / 4. derece) | Trend içinde minör dalgalar, Elliott analizi | Dalga yapısı çıkarımı |
| 5+ | Çok kısa vadeli dönüşler ve gürültü filtreleme | Algoritmik stratejiler (dikkatli kullanılmalı) |
Uyarı: Polinom derecesi yükseldikçe overfitting riski artar. Dengeli seçim yapılmalıdır.
Dipten dönen bir hisse senedinde, fiyatlar ikinci derece eğriyle modellenirse yukarı kıvrılan bir parabol çizilir → trend dönüşü teyit edilmiş olabilir.
Fiyatın düşük-dalga-yüksek-dalga yapısı, 3. veya 4. derece bir eğriyle oldukça yakın şekilde yakalanabilir.
Eğri ile gerçek kapanış fiyatı arasındaki farkın standardize edilmiş hali (Z-score gibi) aşırılık göstergesi olabilir.
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
# --- Veriyi Yükle ---
df = pd.read_excel("your_stock_data.xlsx")
# "DATE" sütunu tarih formatına çevrilsin
df["DATE"] = pd.to_datetime(df["DATE"])
# --- Bağımlı ve bağımsız değişkenler ---
y = df["CLOSING_TL"].values # Kapanış fiyatları
x = np.arange(len(y)).reshape(-1, 1) # 0,1,2,... şeklinde indeks
# --- Polinom regresyon (3. dereceden) ---
poly = PolynomialFeatures(degree=3)
X_poly = poly.fit_transform(x)
model = LinearRegression().fit(X_poly, y)
# --- Tahmin ---
y_pred = model.predict(X_poly)
# --- Grafik ---
plt.figure(figsize=(10, 5))
plt.plot(df["DATE"], y, label="Gerçek Fiyat", color="blue")
plt.plot(df["DATE"], y_pred, label="Polinomsal Regresyon (d=3)", linestyle="--", color="red")
plt.legend()
plt.title("Polinomsal Regresyon ile Trend Analizi")
plt.xlabel("Tarih")
plt.ylabel("Fiyat (TL)")
plt.grid(True)
plt.show()
| Durum | Kullanım |
|---|---|
| Belirsiz trend yönü | 2. veya 3. derece regresyon eğrisi |
| Dalgalı piyasa | 3–4 derece trend eğrisi analizi |
| Tepe/dip analizi | 2. derece regresyon yeterlidir |
| Otomatik trade | 3+ dereceler + filtrelerle |
Polinomsal regresyon, klasik teknik analiz araçlarının ötesine geçerek piyasa davranışını eğrisel ve daha doğal biçimde modellemek için etkili bir araçtır. Özellikle trendin yönü ve dönüş ihtimali hakkında daha rafine bir bakış sunar.
Ancak her güçlü araç gibi, dikkatli kullanılmalıdır. Gereksiz derecede yüksek polinomlar, yanıltıcı olabilir. Bu nedenle regresyon eğrisi, diğer teknik sinyallerle (RSI, MACD, Bollinger, hacim) birlikte kullanılmalıdır.

Teknik analizde trendin yönünü ve gücünü ölçmenin yollarından biri de doğrusal regresyon (Linear Regression) kanallarıdır. Bu kanallar, fiyatların belirli bir zaman periyodundaki ortalama doğrusal eğilimini ve bu eğilim etrafındaki sapmaları göstererek yatırımcıya net bir fiyat yönü, destek/direnç ve trend devamlılığı hakkında bilgi sunar.
Bu makalede, özellikle Fibonacci ve Lucas serilerinden türetilmiş özel periyotlar olan:
55, 89, 144, 233, 370, 610, 987
Üzerinden oluşturulmuş Linear Regression kanallarının kullanım amaçları, avantajları, dezavantajları ve pratik yorumları detaylı şekilde ele alacağız.
Linear Regression Channel (LRC), fiyatların zaman içindeki doğrusal eğilimlerini analiz etmek için kullanılan bir tekniktir. Bir LRC genellikle 3 parçadan oluşur:
Bu değerler, Fibonacci dizisinin uzantıları ve piyasa psikolojisinde sık kullanılan doğal ritimleri temsil eder.
| Periyot | Açıklama |
|---|---|
| 55 | Fibonacci dizisi içinde yer alır, orta vadeli analiz |
| 89 | Büyük oyuncuların sık takip ettiği dönem |
| 144 | Genişletilmiş Fibonacci süresi – trendin olgunlaştığı alan |
| 233 | Trendin güçlendiği, çok yıllı yapılar için uygun |
| 370 | Lucas serisine yakın – piyasa yapısına farklı bakış |
| 610 | Büyük dönemli dip/tepe projeksiyonları |
| 987 | Çok uzun vadeli trend analizi, döngüsel dönüş alanları |
| Amaç | Açıklama |
|---|---|
| Trend yönü tespiti | Ortalama doğrusal çizgi sayesinde yukarı / aşağı yön kolay tespit edilir. |
| Destek/direnç alanları | Üst-alt kanal sınırları çoğunlukla fiyatın dönme alanlarını gösterir. |
| Aşırı fiyat hareketlerini ölçme | Fiyat kanal dışına çıkarsa, düzeltme ihtimali artar. |
| Trendin gücünü değerlendirme | Kanal eğimi ve genişliği trendin momentumunu gösterir. |
| Periyot | Kullanım Senaryosu |
|---|---|
| 55 | Günlük / 4 saatlik grafiklerde kısa-orta vadeli trend tespiti |
| 89 | Günlük/haftalık grafiklerde sağlıklı kırılım kontrolü |
| 144 | Haftalık grafiklerde majör trend değerlendirmesi |
| 233 | Aylık grafiklerde büyük yatırımcı davranışları gözlenebilir |
| 370 | Çok uzun vadeli yön tespiti; yıllık projeksiyonlar |
| 610 / 987 | Ekstrem dip/tepe ve döngüsel analizler için kullanılır |

Örnek Teknik Yorumlama
Linear Regression kanalları, fiyat davranışını anlamak için güçlü bir araçtır. 55 89 144 233 370 610 987 gibi periyotlar, özellikle uzun vadeli analizde kullanılabilecek Fibonacci temelli seviyelerdir. Bu kanallar:
Ancak, her teknik göstergede olduğu gibi, bu kanallar da diğer indikatörlerle birlikte kullanıldığında çok daha etkili olur. Özellikle RSI, MACD veya Bollinger Band gibi göstergelerle birlikte yorumlandığında yatırımcılara oldukça sağlıklı sinyaller sunabilir.

Pivot noktaları (pivot points), teknik analizde fiyatın olası destek ve direnç seviyelerini tahmin etmek için kullanılan, matematiksel olarak hesaplanan referans noktalarıdır. Fiyatın bu seviyelere olan tepkisi, yatırımcılara trendin devamı, dönüşü veya güç kaybı hakkında ipuçları sunar. Ancak pivot seviyeleri yalnızca formülle değil, zaman dilimi ile de büyük anlam kazanır.
Bu makalede pivot noktalarının günlük, haftalık, aylık ve yıllık seviyelerde nasıl çalıştığı, ne tür sinyaller verdiği ve hangi yatırımcı profiline uygun olduğu incelenecektir.
| Zaman Dilimi | Kullanıcı Profili | Güçlü Yönü | Zayıf Yönü |
|---|---|---|---|
| Günlük | Scalper, intraday | Hızlı tepki, sık sinyal | Gürültü, sık sapma |
| Haftalık | Swing trader | Trend belirleyici | Kısa vadede gecikmeli |
| Aylık | Orta vadeli yatırımcı | Kararlı destek/direnç | Günlükçüler için yavaş |
| Yıllık | Uzun vadeli yatırımcı | Stratejik yön tayini | Kısa vadede yetersiz |
Pivot noktaları, fiyatın belirli zaman dilimlerine göre nasıl hareket edebileceğini anlamada büyük rol oynar. Zaman dilimi arttıkça güvenilirlik artar, ancak esneklik azalır. Günlük pivotlar kısa vadeli kararlar için hızlı sinyaller sunarken, yıllık pivotlar daha çok yön belirleyici ve stratejik planlama aracı olarak işlev görür.
Başarılı bir yatırımcı, işlem süresine göre doğru pivot türünü seçmeli ve zaman dilimi ile uyumlu stratejiler geliştirmelidir. Unutulmamalıdır ki, pivotlar tek başına yeterli değildir; hacim, trend göstergeleri ve fiyat davranışı ile birlikte yorumlanmalıdır.
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)
Son Yorumlar