Untitled

 avatar
unknown
plain_text
2 months ago
13 kB
11
Indexable
// Created & Developed by : Kıvanç Özbilgiç (@KivancOzbilgic)
// Screener Panel & Adjustments: @dg_factor
// Screener Panel & Adjustments: @smtHAN
// Screener Yardım Talebi - Systematic TRADER - @ smtHaN

//@version=6
indicator('AlphaTrend - Screener rö', overlay = true, format = format.price, precision = 2)
grupSec = input.string(defval = '1', options = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', 'ÖZEL LİSTE'], title = 'Grup seç')
per = input.timeframe(defval = '240', title = 'PERİYOT', group = 'Tarama yapmak istediğiniz periyotu seçin')
src = input.source(title = 'Source', defval = close, group = 'ALPHATREND')
AP = input.int(title = 'Length', defval = 14, group = 'ALPHATREND')
coeff = input.float(title = 'Multiplier', defval = 1.0, step = 0.1, group = 'ALPHATREND')
novolumedata = input.bool(title = 'Change Calculation (No Volume Data)', defval = false, group = 'ALPHATREND')
showsignalsk = input(title = 'Show Signals ', defval = true, group = 'ALPHATREND')
ATR = ta.sma(ta.tr, AP)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT
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])
direction = 0
direction := buySignalk and O1 > K2 ? 1 : sellSignalk and O2 > K1 ? -1 : nz(direction[1])
k1 = plot(AlphaTrend, title = 'AlphaTrend', color = #0022fc, linewidth = 3)
k2 = plot(AlphaTrend[2], title = 'Trigger', color = #fc0400, linewidth = 3)
fill(k1, k2, title = 'Fill Color', color = color1)
plotshape(showsignalsk and buySignalk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title = 'BUY', text = 'BUY', location = location.absolute, style = shape.labelup, size = size.tiny, color = #0022FC, textcolor = color.white)
plotshape(showsignalsk and sellSignalk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title = 'SELL', text = 'SELL', location = location.absolute, style = shape.labeldown, size = size.tiny, color = color.maroon, textcolor = color.white)
string gr_sc = 'SCREENER'
string gr_sy = 'SYMBOL'
string t00 = 'Alpha Trend Screener'
color c00 = #686868
lb_sh = input.bool(title = 'Show Label', defval = true, group = gr_sc)
lb_xa = input.int(title = 'Horizontal Axis', defval = 10, group = gr_sc, tooltip = 'Label Position x Axis')
lb_ya = input.int(title = 'Vertical Axis', defval = 1, group = gr_sc, tooltip = 'Label Position y Axis')
lb_sz = input.string(title = 'Label Size', options = ['Auto', 'Tiny', 'Small', 'Normal', 'Large', 'Huge'], defval = 'Normal', group = gr_sc)
lb_cl = input.color(title = 'Colours', defval = #00bb00, group = gr_sc, inline = '0')
lb_cs = input.color(title = '', defval = #ff0000, group = gr_sc, inline = '0')
lb_bc = input.color(title = '', defval = #0044ff, group = gr_sc, inline = '0')
lb_sc = input.color(title = '', defval = #000000, group = gr_sc, inline = '0')

// Tüm grupların sembollerini tek bir düz array'de tanımlama
var array<string> tumSemboller = array.from('A1CAP', 'ACSEL', 'ADEL', 'ADESE', 'ADGYO', 'AEFES', 'AFYON', 'AGESA', 'AGHOL', 'AGROT', 'AGYO', 'AHGAZ', 'AHSGY', 'AKBNK', 'AKCNS', 'AKENR', 'AKFGY', 'AKFYE', 'AKGRT', 'AKMGY', 'AKSA', 'AKSEN', 'AKSGY', 'AKSUE', 'AKYHO', 'ALARK', 'ALBRK', 'ALCAR', 'ALCTL', 'ALFAS', 'ALGYO', 'ALKA', 'ALKIM', 'ALKLC', 'ALMAD', 'ALTIN', 'ALTNY', 'ALVES', 'ANELE', 'ANGEN', 'ANHYT', 'ANSGR', 'ARASE', 'ARCLK', 'ARDYZ', 'ARENA', 'ARSAN', 'ARTMS', 'ARZUM', 'ASELS', 'ASGYO', 'ASTOR', 'ASUZU', 'ATAGY', 'ATAKP', 'ATATP', 'ATEKS', 'ATLAS', 'ATSYH', 'AVGYO', 'AVHOL', 'AVOD', 'AVPGY', 'AVTUR', 'AYCES', 'AYDEM', 'AYEN', 'AYES', 'AYGAZ', 'AZTEK', 'BAGFS', 'BAHKM', 'BAKAB', 'BALAT', 'BANVT', 'BARMA', 'BASCM', 'BASGZ', 'BAYRK', 'BEGYO', 'BERA', 'BEYAZ', 'BFREN', 'BIENY', 'BIGCH', 'BIMAS', 'BINBN', 'BINHO', 'BIOEN', 'BIZIM', 'BJKAS', 'BLCYT', 'BMSCH', 'BMSTL', 'BNTAS', 'BOBET', 'BORLS', 'BORSK', 'BOSSA', 'BRISA', 'BRKO', 'BRKSN', 'BRKVY', 'BRLSM', 'BRMEN', 'BRSAN', 'BRYAT', 'BSOKE', 'BTCIM', 'BUCIM', 'BURCE', 'BURVA', 'BVSAN', 'BYDNR', 'CANTE', 'CASA', 'CATES', 'CCOLA', 'CELHA', 'CEMAS', 'CEMTS', 'CEMZY', 'CEOEM', 'CIMSA', 'CLEBI', 'CMBTN', 'CMENT', 'CONSE', 'COSMO', 'CRDFA', 'CRFSA', 'CUSAN', 'CVKMD', 'CWENE', 'DAGHL', 'DAGI', 'DAPGM', 'DARDL', 'DCTTR', 'DENGE', 'DERHL', 'DERIM', 'DESA', 'DESPC', 'DEVA', 'DGATE', 'DGGYO', 'DGNMO', 'DIRIT', 'DITAS', 'DMRGD', 'DMSAS', 'DNISI', 'DOAS', 'DOBUR', 'DOCO', 'DOFER', 'DOGUB', 'DOHOL', 'DOKTA', 'DURDO', 'DURKN', 'DYOBY', 'DZGYO', 'EBEBK', 'ECILC', 'ECZYT', 'EDATA', 'EDIP', 'EFORC', 'EGEEN', 'EGEPO', 'EGGUB', 'EGPRO', 'EGSER', 'EKGYO', 'EKIZ', 'EKOS', 'EKSUN', 'ELITE', 'EMKEL', 'EMNIS', 'ENERY', 'ENJSA', 'ENKAI', 'ENSRI', 'ENTRA', 'EPLAS', 'ERBOS', 'ERCB', 'EREGL', 'ERSU', 'ESCAR', 'ESCOM', 'ESEN', 'ETILR', 'ETYAT', 'EUHOL', 'EUKYO', 'EUPWR', 'EUREN', 'EUYO', 'EYGYO', 'FADE', 'FENER', 'FLAP', 'FMIZP', 'FONET', 'FORMT', 'FORTE', 'FRIGO', 'FROTO', 'FZLGY', 'GARAN', 'GARFA', 'GEDIK', 'GEDZA', 'GENIL', 'GENTS', 'GEREL', 'GESAN', 'GIPTA', 'GLBMD', 'GLCVY', 'GLRYH', 'GLYHO', 'GMTAS', 'GOKNR', 'GOLTS', 'GOODY', 'GOZDE', 'GRNYO', 'GRSEL', 'GRTHO', 'GSDDE', 'GSDHO', 'GSRAY', 'GUBRF', 'GUNDG', 'GWIND', 'GZNMI', 'HALKB', 'HATEK', 'HATSN', 'HDFGS', 'HEDEF', 'HEKTS', 'HKTM', 'HLGYO', 'HOROZ', 'HRKET', 'HTTBT', 'HUBVC', 'HUNER', 'HURGZ', 'ICBCT', 'ICUGS', 'IDGYO', 'IEYHO', 'IHAAS', 'IHEVA', 'IHGZT', 'IHLAS', 'IHLGM', 'IHYAY', 'IMASM', 'INDES', 'INFO', 'INGRM', 'INTEK', 'INTEM', 'INVEO', 'INVES', 'IPEKE', 'ISATR', 'ISBIR', 'ISBTR', 'ISCTR', 'ISDMR', 'ISFIN', 'ISGSY', 'ISGYO', 'ISKPL', 'ISKUR', 'ISMEN', 'ISSEN', 'ISYAT', 'IZENR', 'IZFAS', 'IZINV', 'IZMDC', 'JANTS', 'KAPLM', 'KAREL', 'KARSN', 'KARTN', 'KARYE', 'KATMR', 'KAYSE', 'KBORU', 'KCAER', 'KCHOL', 'KENT', 'KERVN', 'KERVT', 'KFEIN', 'KGYO', 'KIMMR', 'KLGYO', 'KLKIM', 'KLMSN', 'KLNMA', 'KLRHO', 'KLSER', 'KLSYN', 'KMPUR', 'KNFRT', 'KOCMT', 'KONKA', 'KONTR', 'KONYA', 'KOPOL', 'KORDS', 'KOTON', 'KOZAA', 'KOZAL', 'KRDMA', 'KRDMB', 'KRDMD', 'KRGYO', 'KRONT', 'KRPLS', 'KRSTL', 'KRTEK', 'KRVGD', 'KSTUR', 'KTLEV', 'KTSKR', 'KUTPO', 'KUVVA', 'KUYAS', 'KZBGY', 'KZGYO', 'LIDER', 'LIDFA', 'LILAK', 'LINK', 'LKMNH', 'LMKDC', 'LOGO', 'LRSHO', 'LUKSK', 'LYDHO', 'LYDYE', 'MAALT', 'MACKO', 'MAGEN', 'MAKIM', 'MAKTK', 'MANAS', 'MARBL', 'MARKA', 'MARTI', 'MAVI', 'MEDTR', 'MEGAP', 'MEGMT', 'MEKAG', 'MEPET', 'MERCN', 'MERIT', 'MERKO', 'METRO', 'METUR', 'MGROS', 'MHRGY', 'MIATK', 'MMCAS', 'MNDRS', 'MNDTR', 'MOBTL', 'MOGAN', 'MPARK', 'MRGYO', 'MRSHL', 'MSGYO', 'MTRKS', 'MTRYO', 'MZHLD', 'NATEN', 'NETAS', 'NIBAS', 'NTGAZ', 'NTHOL', 'NUGYO', 'NUHCM', 'OBAMS', 'OBASE', 'ODAS', 'ODINE', 'OFSYM', 'ONCSM', 'ONRYT', 'ORCAY', 'ORGE', 'ORMA', 'OSMEN', 'OSTIM', 'OTKAR', 'OTTO', 'OYAKC', 'OYAYO', 'OYLUM', 'OYYAT', 'OZATD', 'OZGYO', 'OZKGY', 'OZRDN', 'OZSUB', 'OZYSR', 'PAGYO', 'PAMEL', 'PAPIL', 'PARSN', 'PASEU', 'PATEK', 'PCILT', 'PEHOL', 'PEKGY', 'PENGD', 'PENTA', 'PETKM', 'PETUN', 'PGSUS', 'PINSU', 'PKART', 'PKENT', 'PLTUR', 'PNLSN', 'PNSUT', 'POLHO', 'POLTK', 'PRDGS', 'PRKAB', 'PRKME', 'PRZMA', 'PSDTC', 'PSGYO', 'QNBFL', 'QNBTR', 'QUAGR', 'RALYH', 'RAYSG', 'REEDR', 'RGYAS', 'RNPOL', 'RODRG', 'ROYAL', 'RTALB', 'RUBNS', 'RYGYO', 'RYSAS', 'SAFKR', 'SAHOL', 'SAMAT', 'SANEL', 'SANFM', 'SANKO', 'SARKY', 'SASA', 'SAYAS', 'SDTTR', 'SEGMN', 'SEGYO', 'SEKFK', 'SEKUR', 'SELEC', 'SELGD', 'SELVA', 'SEYKM', 'SILVR', 'SISE', 'SKBNK', 'SKTAS', 'SKYLP', 'SKYMD', 'SMART', 'SMRTG', 'SNGYO', 'SNICA', 'SNKRN', 'SNPAM', 'SODSN', 'SOKE', 'SOKM', 'SONME', 'SRVGY', 'SUMAS', 'SUNTK', 'SURGY', 'SUWEN', 'TABGD', 'TARKM', 'TATEN', 'TATGD', 'TAVHL', 'TBORG', 'TCELL', 'TCKRC', 'TDGYO', 'TEKTU', 'TERA', 'TEZOL', 'TGSAS', 'THYAO', 'TKFEN', 'TKNSA', 'TLMAN', 'TMPOL', 'TMSN', 'TNZTP', 'TOASO', 'TRCAS', 'TRGYO', 'TRILC', 'TSGYO', 'TSKB', 'TSPOR', 'TTKOM', 'TTRAK', 'TUCLK', 'TUKAS', 'TUPRS', 'TUREX', 'TURGG', 'TURSG', 'UFUK', 'ULAS', 'ULKER', 'ULUFA', 'ULUSE', 'ULUUN', 'UMPAS', 'UNLU', 'USAK', 'VAKBN', 'VAKFN', 'VAKKO', 'VANGD', 'VBTYZ', 'VERTU', 'VERUS', 'VESBE', 'VESTL', 'VKFYO', 'VKGYO', 'VKING', 'VRGYO', 'YAPRK', 'YATAS', 'YAYLA', 'YBTAS', 'YEOTK', 'YESIL', 'YGGYO', 'YGYO', 'YIGIT', 'YKBNK', 'YKSLN', 'YONGA', 'YUNSA', 'YYAPI', 'YYLGD', 'ZEDUR', 'ZOREN', 'ZRGYO')

sb01 = input.symbol(title = '1' , defval = '')
sb02 = input.symbol(title = '2' , defval = '')
sb03 = input.symbol(title = '3' , defval = '')
sb04 = input.symbol(title = '4' , defval = '')
sb05 = input.symbol(title = '5' , defval = '')
sb06 = input.symbol(title = '6' , defval = '')
sb07 = input.symbol(title = '7' , defval = '')
sb08 = input.symbol(title = '8' , defval = '')
sb09 = input.symbol(title = '9' , defval = '')
sb10 = input.symbol(title = '10', defval = '')
sb11 = input.symbol(title = '11', defval = '')
sb12 = input.symbol(title = '12', defval = '')
sb13 = input.symbol(title = '13', defval = '')
sb14 = input.symbol(title = '14', defval = '')
sb15 = input.symbol(title = '15', defval = '')
sb16 = input.symbol(title = '16', defval = '')
sb17 = input.symbol(title = '17', defval = '')
sb18 = input.symbol(title = '18', defval = '')
sb19 = input.symbol(title = '19', defval = '')
sb20 = input.symbol(title = '20', defval = '')
sb21 = input.symbol(title = '21', defval = '')
sb22 = input.symbol(title = '22', defval = '')
sb23 = input.symbol(title = '23', defval = '')
sb24 = input.symbol(title = '24', defval = '')
sb25 = input.symbol(title = '25', defval = '')
sb26 = input.symbol(title = '26', defval = '')
sb27 = input.symbol(title = '27', defval = '')
sb28 = input.symbol(title = '28', defval = '')
sb29 = input.symbol(title = '29', defval = '')
sb30 = input.symbol(title = '30', defval = '')
sb31 = input.symbol(title = '31', defval = '')
sb32 = input.symbol(title = '32', defval = '')
sb33 = input.symbol(title = '33', defval = '')
sb34 = input.symbol(title = '34', defval = '')
sb35 = input.symbol(title = '35', defval = '')
sb36 = input.symbol(title = '36', defval = '')
sb37 = input.symbol(title = '37', defval = '')
sb38 = input.symbol(title = '38', defval = '')
sb39 = input.symbol(title = '39', defval = '')
sb40 = input.symbol(title = '40', defval = '')

// Seçilen grubun sembollerini al
array<string> seciliSemboller = array.new<string>()
array<string> groupSymbols = array.new<string>()

// Eğer "ÖZEL LİSTE" seçildiyse, kullanıcı tarafından girilen sembollerle işlem yap
seciliSemboller := array.from(sb01, sb02, sb03, sb04, sb05, sb06, sb07, sb08, sb09, sb10, sb11, sb12, sb13, sb14, sb15, sb16, sb17, sb18, sb19, sb20, sb21, sb22, sb23, sb24, sb25, sb26, sb27, sb28, sb29, sb30, sb31, sb32, sb33, sb34, sb35, sb36, sb37, sb38, sb39, sb40)

grupNumarasi = math.round(str.tonumber(grupSec)) 

// Sembolleri 40'lı gruplara bölüyoruz
baslangic = (grupNumarasi - 1) * 40
bitis = math.min(baslangic + 39, array.size(tumSemboller) - 1)
if grupSec == 'ÖZEL LİSTE'
    groupSymbols := seciliSemboller
else
    groupSymbols := array.slice(tumSemboller, baslangic, bitis + 1)
//    
f_screener() =>
    int x = na
    int y = na
    var float previousPrice = na
    var int previousSignalBar = na
    var float priceChange = na
    z = color(na)
    x := direction
    y := ta.barssince(x != x[1])
    z := x == 1 ? y == 0 ? lb_bc : lb_cl : x == -1 ? y == 0 ? lb_sc : lb_cs : c00
    w = close
    priceChange := (close - close[y]) / close[y] * 100
    v = priceChange
    [v, w, x, y, z]
//
f_bars(x) =>
    r = ' [' + str.tostring(x) + '] '
    r
//
f_close(x) =>
    c = ' ' + str.tostring(x) + ' '
    c
//
f_degi(x) =>
    d = ' ' + str.tostring(x, '#.##') + '%' + ' '
    d
//
f_size(x) =>
    x == 'Tiny' ? size.tiny : x == 'Small' ? size.small : x == 'Normal' ? size.normal : x == 'Large' ? size.large : x == 'Huge' ? size.huge : size.auto
//

var string[] ar = array.new_string()
fix_allign = ta.highest(200)
if barstate.islast
    for i = 0 to groupSymbols.size() - 1
        sembol = groupSymbols.get(i)
        [degi, fiyat, yon, gecenBar, renk] = request.security(sembol, per, f_screener())
        yonSimge = yon == 1 ? '▲' : yon == -1 ? '▼' : '■'
        ar.push(sembol != '' ? yonSimge + f_bars(gecenBar) + sembol + f_close(fiyat) + f_degi(degi) : na)
var label lb = na
out = ""
if ar.size() > 0
    for i = 0 to ar.size() - 1
        out := out + ar.get(i) + "\n"
if na(lb) and barstate.islast
    lb := lb_sh ? label.new(
         x=bar_index + lb_xa, y=bar_index > 200 ? fix_allign * (1 + lb_ya / 1000) : hl2 * (1 + lb_ya / 1000), 
         text=out, textalign=text.align_left, 
         style=label.style_label_left, size=f_size(lb_sz), color=#00000000) : na
else if not na(lb)
    label.set_text(lb, out)
//
Leave a Comment