Selcoin/ docs
SelScriptVeri istekleri

Finansal dönemler ve snapshot

FQ/FY, offset, eksik veri, raporlama tarihleri ve tarihsel kullanım sınırları.

Desteklenen kullanım

Finansal veri desteklenen hisse kimlikleri içindir: NASDAQ, NYSE, AMEX, BATS ve çözülebilen eski SEL hisse kimlikleri. Kripto, FX ve endeks grafikleri şirket bilançosu değildir; bu grafiklerde finansal istek veri hatası verir. Grafikteki hisse market.symbol ile otomatik kullanılır; başka bir hisse için sabit kimlik yazılabilir ("NASDAQ:AAPL").

Eksik veri ve derleme hataları

DurumSonuç
Katalog dışı veya yanlış yazılmış metrik adıDerleme hatası FINANCIAL_METRIC
FQ/FY dışında dönem (ör. TTM)Derleme hatası FINANCIAL_PERIOD
0–39 dışında veya sabit olmayan offsetDerleme hatası FINANCIAL_OFFSET
Hissenin hiç finansal raporu yokScript çalışır, bütün istekler na
İstenen dönem veya metrik raporlanmamışO istek na

Yani geçerli bir script, verisi olmayan bir hissede de derlenir; hesaplarda is_na ile eksik veriyi ayırın. Her hisse için her metrik bulunmayabilir; örneğin bankalarda faiz gideri ayrı raporlanmaz.

Dönem ve offset

İstekAnlam
"FQ", offset=0Son raporlanmış mali çeyrek
"FQ", offset=1Önceki mali çeyrek
"FQ", offset=4Bir yıl önceki karşılaştırılabilir mali çeyrek
"FQ", offset=8İki yıl önceki karşılaştırılabilir mali çeyrek
"FY", offset=0Son raporlanmış mali yıl
"FY", offset=1Önceki mali yıl

offset 0–39 sabit tam sayıdır. Mali yıl takvim yılıyla aynı bitmek zorunda değildir. Eksik dönem atlanıp başka dönemle karşılaştırılmaz; na döner. Günlük grafikte revenue[4] dört mali çeyrek öncesi değildir.

Yıllık gelir büyümesi

Desteklenen bir hisse grafiğinde çalıştırın:

//@selscript=1
indicator("Revenue YoY", overlay=true)
current = request.financial(market.symbol, "TOTAL_REVENUE", "FQ", offset=0)
prior = request.financial(market.symbol, "TOTAL_REVENUE", "FQ", offset=4)
ready = not is_na(current) and not is_na(prior) and prior != 0
growth = ready ? (current - prior) / math.abs(prior) * 100 : na
text = ready ? str.tostring(growth, 1) + "%" : "Insufficient data"
panel = table.new("top_left", 2, 1)
if barstate.islast:
    table.cell(panel, 0, 0, "Revenue YoY")
    table.cell(panel, 1, 0, text)

Paydanın mutlak değeri, negatif karşılaştırma değerlerinde işaret yorumunu açık tutar. Sıfır payda ve eksik veri için puan üretmeyin. EPS veya nakit akışında eksi değerden artıya geçişi yalnız yüzde rakamıyla yorumlamak yanıltıcı olabilir.

Blue Chip filtresi

EPS, faiz karşılama, net borç/FAVÖK ve ROE'yu son mali yıldan hesaplar. Eşikler örnektir; kendi kriterlerinize göre değiştirin. Verisi olmayan hissede tablo "Insufficient data" gösterir.

//@selscript=1
indicator("Blue Chip Filter", overlay=true)
eps = request.financial(market.symbol, "EARNINGS_PER_SHARE_DILUTED", "FY")
ebit = request.financial(market.symbol, "EBIT", "FY")
interest = request.financial(market.symbol, "INTEREST_EXPENSE", "FY")
netDebt = request.financial(market.symbol, "NET_DEBT", "FY")
ebitda = request.financial(market.symbol, "EBITDA", "FY")
netIncome = request.financial(market.symbol, "NET_INCOME", "FY")
equity = request.financial(market.symbol, "TOTAL_EQUITY", "FY")
coverage = not is_na(interest) and interest > 0 ? ebit / interest : na
leverage = not is_na(ebitda) and ebitda > 0 ? netDebt / ebitda : na
roe = not is_na(equity) and equity > 0 ? netIncome / equity * 100 : na
complete = not is_na(eps) and not is_na(coverage) and not is_na(leverage) and not is_na(roe)
passed = complete and eps > 0 and coverage >= 5 and leverage <= 3 and roe >= 15
verdict = not complete ? "Insufficient data" : passed ? "Pass" : "Fail"
panel = table.new("top_left", 2, 5)
if barstate.islast:
    table.cell(panel, 0, 0, "EPS")
    table.cell(panel, 1, 0, is_na(eps) ? "—" : str.tostring(eps, 2))
    table.cell(panel, 0, 1, "Interest coverage")
    table.cell(panel, 1, 1, is_na(coverage) ? "—" : str.tostring(coverage, 1) + "x")
    table.cell(panel, 0, 2, "Net debt / EBITDA")
    table.cell(panel, 1, 2, is_na(leverage) ? "—" : str.tostring(leverage, 2) + "x")
    table.cell(panel, 0, 3, "ROE")
    table.cell(panel, 1, 3, is_na(roe) ? "—" : str.tostring(roe, 1) + "%")
    table.cell(panel, 0, 4, "Blue Chip")
    table.cell(panel, 1, 4, verdict)

Faiz karşılama ve net borç/FAVÖK için yıllık (FY) değerler kullanılır; çeyreklik EBITDA ile yıllık borcu oranlamayın. ROE burada dönem sonu özkaynağıyla hesaplanır; ortalama özkaynak için offset=1 değerini de isteyin.

Birimler ve oranlar

Tutarlar raporlanan para biriminde sayısal değerlerdir; EPS hisse başınadır. Para birimi bu fonksiyondan ayrı alan olarak dönmez. Farklı şirketlerin mutlak tutarlarını ortak para birimine dönüştürüldüğünü varsayarak karşılaştırmayın. Marj için aynı şirket ve dönemden grossProfit / revenue * 100 gibi bir oran kullanın. Değerleri otomatik milyon ölçeğinde sanmayın.

Raporlama tarihleri ve geçmiş

  • Dönem kimliği: Her rapor mali yıl, mali çeyrek ve dönem sonu tarihiyle tanımlanır. offset takvim günlerini değil, mali dönemleri sayar.
  • Açıklanma tarihi: Script'e raporun yayımlanma tarihi dönmez. Bir dönemin rakamları, o döneme ait en güncel rapordan gelir; şirket sonraki bir raporda eski dönemi düzeltirse eski dönem düzeltilmiş rakamla döner.
  • Yeni raporlar: Şirket yeni çeyreği açıkladıktan sonra veri işlendiğinde offset=0 yeni döneme geçer. Açıklama günü ile verinin görünmesi arasında gecikme olabilir.
  • Geçmiş derinliği: Her dönem türünde en fazla 40 rapor kullanılır: FQ ile yaklaşık 10 yıl, FY ile 40 yıla kadar. Kapsam şirkete göre değişir; ABD şirketlerinde genellikle 2009 sonrası raporlar bulunur.
  • Tablolar arası: Gelir tablosu, bilanço ve nakit akışı aynı dönem sonu tarihinde birleştirilir. Bir dönemde tablolardan biri yoksa o tablonun metrikleri na döner.

Son raporlanmış veri, tarihsel veri değildir

Sonuç yalnız son grafik mumunda görünür. Grafik tarihini geriye taşımak o tarihte bilinen bilanço setini üretmez. Daha sonra raporlanmış veya düzeltilmiş veri geçmişte biliniyormuş gibi test edilemez. Finansal veri kullanan scriptler kesinleşmiş sinyal kaynağı değildir.

TTM, raporlama tarihi serisi, ekonomik takvim ve katalog dışı finansal alanlar bu fonksiyonun mevcut kapsamı değildir. Dönem tutarlarında son on iki ayı, offset=0–3 arasındaki dört FQ değerini toplayarak hesaplayabilirsiniz; bakiye kalemlerini (TOTAL_EQUITY, NET_DEBT) toplamayın.

Metrik kataloğu · Finansal Sağlık

Bu sayfada