Bir Analist Gibi Yapay Zeka ile Herhangi Bir Şirketi Nasıl Okursunuz

@gemchange_ltd
İNGILIZCE2 ay önce · 30 May 2026
383K
268
27
8
764

TL;DR

SEC EDGAR verilerini, adli muhasebe puanlarını ve hem geleneksel hisse senetlerindeki hem de kripto protokollerindeki riskleri belirlemek için yapay zeka ajanlarını kullanarak finansal analizi otomatikleştirmeye yönelik kapsamlı bir rehber.

1998 Baharı, Cornell'de altı MBA öğrencisi Enron'un finansallarına tek bir denklem uyguladı ve -1,89 sonucunu aldı.

"Bu şirket muhtemelen defterleri manipüle ediyor" eşiği -2,22. Enron bu eşiği geçmişti. Ve yine, bunlar adli muhasebe uzmanları değil, öğrencilerdi.

gemchanger - inline image

Raporu okul web sitesine koydular. O dönemde piyasanın tamamı hâlâ Enron'a "al" tavsiyesi veriyordu ve çoğu, hisse sıfıra gitmeden birkaç hafta öncesine kadar bu tavsiyeyi sürdürdü.

Bu, herkesin çekip alabileceği halka açık bir dosyaydı ve elle yaklaşık 20 dakika süren tek bir formüldü. Size anlatacağım şeyin tamamı bu, sadece siz bunu saniyeler içinde çalıştıracaksınız ve dünya üzerindeki herhangi bir şirkete veya tokena yöneltebilirsiniz.

Finansal tavsiye değildir, kendi araştırmanızı yapın. Adli puanlar, kanıt değil olasılık işaretleridir ve buradaki her fiyat değişir, bu yüzden taahhütte bulunmadan önce doğrulayın. Profesyonel tahmin piyasası yatırımcıları için araçlar geliştiriyorum @coldvisionXYZ

L0: Veri Evi

ABD'deki her halka açık şirket SEC'e dosya sunar ve SEC tüm bunları EDGAR adlı bir API aracılığıyla sunar. Bir URL'ye tıklarsınız ve bir şirketin bildirdiği, zaten yapılandırılmış her rakamı geri alırsınız.

EDGAR'ı bir silah yapan 2 şey:

  1. Tam metin araması. Şimdiye kadar sunulmuş her dosyanın gerçek metnini indeksler, böylece "maddi zafiyet" gibi bir ifadeyi tüm piyasada arayabilir ve muhasebe kontrollerinin bozuk olduğunu sessizce itiraf eden her şirketi geri çekebilirsiniz. Bu, yaklaşık bir saniyede bir açığa satış izleme listesidir.
  2. Yapılandırılmış finansallar. Her kalem, her çeyrek, makine tarafından okunabilir, yıllar öncesine kadar.

edgartools ihtiyacınız olan şey.

gemchanger - inline image

Pip kurulumu, anahtar gerekmez ve 10-K'ları, 8-K'ları, içeriden öğrenen Form 4'lerini, 13F fon portföylerini, hepsini temiz Python nesnelerine ayrıştırır.

Ayrıca bir MCP sunucusuyla birlikte gelir, böylece Claude'u doğrudan ona yönlendirip "Apple ve Microsoft'un 3 yıllık gelir büyümesini karşılaştır" diyebilirsiniz ve o da gerçek dosyaları alır, kulağa doğru gelen rakamlar uydurmaz.

sec-edgar-downloader herkesin ilk bulduğu şeydir. Sadece ham dosyayı indirir ve sizi kendi başınıza ayrıştırmanız için bir HTML yığınının içine atar. Birkaç yıl önce yapılacak şey buydu, şimdi sadece eziyet. edgartools kullanın.

BamSEC yalnızca EDGAR'ın 1998'den kalma arayüzü olmadan dosyaları okumak istiyorsanız. Temiz okuyucu, yan yana karşılaştırma, ihtiyacınız olan çoğu şey için ücretsiz. Göz atmak için iyi.

gemchanger - inline image

Artık her halka açık şirketin defterlerine ücretsiz, yapılandırılmış erişiminiz var.

L1 - Yalancıları Yakalamak

Rakamlar elinizde. Yönetimin "dönüşüm yılı" hakkında tek bir cümlesini okumadan önce, ham veriler üzerinde birkaç formül çalıştırıyorsunuz.

Akademisyenler bunları onlarca yıllık gerçek dolandırıcılık vakalarına dayanarak oluşturdu. Sadece her birinin neyi aradığını bilmeniz gerekiyor.

Beneish M-Score Enron'unkidir.

Sekiz girdi tek bir sayıya dönüştürülür. Açık ara en ağır girdi, toplam aktifler içindeki toplam tahakkuklardır, çünkü kazançları sahteleştirmenin en hızlı yolu, hiçbir zaman nakit olarak görünmeyen geliri kaydetmektir. Bir sonraki bayrak, dürüst olmak için fazla temiz olan satış büyümesidir ve Enron'da yanan da buydu. -2,22'nin üzerinde araştırmaya başlarsınız. Enron -1,89 yazdırdı.

gemchanger - inline image

Altman Z-Score iflas okumanızdır.

Kârlılığı, kaldıracı ve aktiflerin ne kadar sıkı çalıştığını tek bir sıkıntı puanında birleştirir. 1,81'in altı tehlike bölgesidir.

gemchanger - inline image

Sloan tahakkuk oranı kazanç kalitesidir.

Nakitten oluşan kazançlar gerçektir, tahakkuklardan oluşan kazançlar tersine döner. Her iki yönde de yaklaşık %25'i geçerseniz, kazançlar esasen üzerinizde çözülmek üzere olan muhasebesel bir seraptır.

gemchanger - inline image

Piotroski F-Score, bir şirketin gerçekten finansal olarak güçlenip güçlenmediğine dair 9 evet/hayır noktasıdır. 6 veya üzeri sağlıklıdır.

gemchanger - inline image

Bunu ödevden bir iş akışına dönüştüren şey, 4'ünü de aynı anda tüm izleme listenizde çalıştırmak ve yalnızca işaret veren isimleri okumaktır. Aşağıdaki betiğin yaptığı da tam olarak budur.

Ve lütfen bunları rastgele bir blogdan yeniden uygulamayın, GitHub'daki M-Score kodunun yarısı ince bir şekilde hatalıdır.

FinanceToolkit deposunda 150'den fazla oran vardır - Beneish, Altman, Piotroski, Sloan, hepsi - formüller açıkça yazılmıştır, böylece güvenmediğiniz bir sayıyı denetleyebilirsiniz.

Veri için bir FMP anahtarıyla eşleştirin, hazırsınız. Açıkçası, piyasada en çok göz ardı edilen finans repolarından biri, şeffaf ve gerçekten bakımlı.

https://github.com/JerBouma/FinanceToolkit

gemchanger - inline image

Beneish geçen yılın verileriyle çalışır, bu nedenle siz gördüğünüzde manipülasyon zaten çözülüyor olabilir. Bazı gerçek dolandırıcılıkları kaçırır ve bazı temiz olanları yanlış işaretler. Kötü bir puan, dosyayı açmak anlamına gelir. Tek başına asla açığa satış nedeni değildir.

L2: Yapay Zeka Sizin İçin Kelimeleri Okusun

Tarama yaptınız, bir şey işaret verdi, şimdi özellikle okunamaz olacak şekilde hazırlanmış 100+ sayfalık hukuk dili olan 10-K'yı açıyorsunuz.

Bu işi yapay zekaya bırakın

yanlış yol:

tüm dosyayı bir sohbet kutusuna yapıştırıp "bu iyi bir şirket mi" diye sormaktır. Boğulur ve size ne duymak isterseniz onu söyler.

doğru yol:

Bu yılın dosyasını geçen yılınkiyle karşılaştırmasını isteyin.

Bu yılki 10-K ve geçen yılki 10-K'dan Risk Faktörleri bölümünü çıkarın, her ikisini de modele verin ve ona tek bir iş verin.

Bana yalnızca bu yıl yeni olanı veya kaldırılanı söyle, yeni dili alıntıla, her ikisinde de bulunan standart metni görmezden gel.

Müşteri yoğunlaşması hakkında sessizce bir paragraf ekleyen bir şirket, size büyük bir müşterinin sallandığını söylemiştir. Önemli bir tedarikçiyle ilgili bir satırı silen bir şirket, size bir ilişkinin sona erdiğini söylemiştir. Bunların hiçbiri asla basın bültenine çıkmaz. Avukatlar bu cümleleri dava edilmekten korktukları için yazarlar ve korku, kimsenin iki kez okumadığı düz metinde yatan bilgidir.

Aynı fark, MD&A (yönetimin yıla ilişkin kendi hikayesi) ve dipnotlar için de geçerlidir. Enron'un tüm dolandırıcılığı, bilanço dışı varlıklar hakkındaki dipnotlarda yaşıyordu. Hikaye yalandı, dipnotlar değildi.

edgar-crawler deposu, temel olarak bu madde bölümlerini, Risk Faktörleri ve MD&A'yı, bunları HTML üzerinde regex yapmak zorunda kalmamanız için temiz JSON'a dönüştürmek için vardır. Tek işi budur ve bunu iyi yapar, çıktıyı farkınıza besleyin.

Ödemeyi inşa etmeye tercih ederseniz, işte bunu sizin için kimin yaptığına dair dürüst harita.

Hudson Labs (eski adıyla Bedrock AI)

Gözden kaçan seçimdir ve gerçekten para ödeyeceğim tek şey. Yıllar arası kırmızı bayrak çıkarmayı otomatik olarak yapar, siz sormadan işletmenin sürekliliği dili, maddi zayıflıklar, ilişkili taraf riskini yüzeye çıkarır. Aylık yaklaşık 100$'dan başlar. Dosyaları ciddiye okuyorsanız, listedeki dolar başına en iyi değer budur.

gemchanger - inline image

AlphaSense

Kurumsal varsayılan, koltuk başına yaklaşık 15-20 bin dolar, bu nedenle gerçekçi olmak gerekirse yalnızca firmanız ödüyorsa. Eski yöneticiler ve müşterilerle binlerce ücretli röportajdan oluşan bir kütüphane olan Tegus'a sahiptir. Yasal içeriden öğrenme bilgisine mümkün olduğunca yakındır ve ücretsiz olarak yeniden oluşturamazsınız.

gemchanger - inline image

Daloopa

Modele hazır finansalları, her bir numarası dosyadaki tam yerine köprülü olarak çeker. Bu denetim izi, ciddi DCF'ler oluşturan kişilerin onu kullanmasının nedenidir. Kurumsal fiyatlandırma, modelleme asıl işiniz değilse aşırıya kaçar.

gemchanger - inline image

Fintool yapay zeka önceliklidir, ABD hisse senetleri için oluşturulmuştur, her şeyde alıntılar vardır, ayrıca "bana herhangi bir şirket yeni tedarik zinciri sorunlarından bahsettiğinde beni uyar" gibi kalıcı uyarılar vardır.

Hudson size fazla adli ve AlphaSense fazla pahalı geliyorsa iyi bir orta yol.

gemchanger - inline image

L3: Kripto

Tokenlara geçelim. Tamamen aynı fikir

Hisse senetlerinde dolandırıcılık tahakkuklarda ve dipnotlarda saklanır.

Kriptoda ise arz takvimlerinde ve sahip yoğunlaşmasında saklanır ve bunların her ikisi de ücretsiz okuyabileceğiniz halka açık bir zincirde bulunur.

Buradaki EDGAR eşdeğeriniz DefiLlama.

gemchanger - inline image

Ücretsiz API, anahtar gerekmez, temel olarak her protokolün TVL'sini, ücretlerini, gelirini ve kilit açma takvimini kapsar.

Bir protokolün, normal bir şirketle doğrudan eşleşen 3 numarası vardır.

  • Ücretler = kullanıcıların ödediği her şey. Bu brüt gelirdir.
  • Gelir = protokolün gerçekten elinde tuttuğu dilim. Bu net gelirdir.
  • Kazanç = gelir eksi kullanıcıları ilk etapta gelmeleri için rüşvet vermek üzere bastığı tokenlar.

Token Terminal tam olarak bunları, ücretleri, geliri, kazançları, kripto F/K eşdeğerlerini, her büyük zincirde standartlaştırır.

Gerçekten kriptonun Bloomberg'idir ve standartlaştırma, elle yapmaktan nefret edeceğiniz gerçek bir iştir. Ancak aylık ~350$'dır, bu tek bir kişi için çok fazladır ve ücretsiz katman artı DefiLlama sizi çoğu yere götürür.

gemchanger - inline image

Ardından 2 öldürücü, adli taramanın kripto versiyonu.

Önce kilit açma takvimleri.

Tokenların tamamı lansmanda mevcut değildir, ekip ve VC tahsisatları yıllar içinde hak edilir ve kilitleri açıldığında, sıfıra yakın giren kişiler nihayet size boşaltma yapabilir. Temel kural, dolaşımdaki arzın %5'inin üzerindeki herhangi bir tek kilit açma kırmızı bayraktır. Gerçek kılmak gerekirse, Arbitrum'un ilk büyük uçurum kilidi bir günde, o sırada toplam dolaşımdaki arza kabaca eşit miktarda ARB'yi açtı. Başlangıçtan beri tutan balinalar perakendeye çıkış yapabildi ve tarih aylar öncesinden takvimdeydi.

3 şekli bilin.

  1. Uçurum, bir günde bir yığını boşaltır (şiddetli).
  2. Doğrusal hak ediş günlük damlar (bazen dayanabileceğiniz yavaş kanama).
  3. Emisyonlar, aktiviteye göre serbest bırakılır. Bir VC cüzdanına yapılan uçurum, portföyleri bitirendir.

İkinci olarak sahip yoğunlaşması. Şeyin gerçekte kime ait olduğu. Bir avuç cüzdan arzın çoğuna sahipse ve bunlar ekip veya bazı erken aşama VC fonu olarak etiketlenmişse, tebrikler, siz tasarım gereği çıkış likiditesisiniz.

Cüzdan etiketleme araçlarının değerini gösterdiği yer burasıdır, çünkü ham zincir verileri, size bunun Jump Trading veya bir ekip hak ediş sözleşmesi olduğunu söyleyen biri olana kadar sadece 0xxxxxxx....'dir.

Arkham

Buradan başlayın çünkü bireyler için ücretsizdir, başka hiçbir ciddi platformun yapmadığı gibi. Kimliği gizleme motoru gerçek anlaşmadır, çalınan milyarlarca bitcoin'i herkese açık bir bilgisayar korsanlığına kadar izleyen firmadır. Baktığınız herhangi bir token üzerinde aynı varlık izlemeyi çalıştırabilirsiniz. Ücretsiz olması öldürücü özelliktir, sadece kullanın.

Nansen

"akıllı parayı", yani erken ve doğru olma geçmişine sahip cüzdanları, birçok zincirde takip eder. Kısa süre önce Pro fiyatını aylık yaklaşık 49$'a kadar sert bir şekilde düşürdü. Etiketler tüm üründür ve iyidirler, ancak fonlar merkezi bir borsaya ulaştığı anda iz soğur. Zincir üzerinde ciddi bir şekilde işlem yapıyorsanız buna değer.

Dune

Kendiniz tek satır SQL yazmadan çatallayabileceğiniz 100 binin üzerinde topluluk SQL panosu. Ücretsiz katman neredeyse herkes için fazlasıyla yeterlidir ve istediğiniz pano zaten birileri tarafından oluşturulmuştur, bu yüzden kendi panoınızı oluşturmadan önce gidip onu bulun.

Messari güçlü niteliksel araştırma ve derecelendirmelere sahiptir. Fiyatlandırma opaktır ve kurumsal odaklıdır, ücretsiz araştırma okumaya değerdir ancak bir satış görüşmesi olmadan iyi şeyleri beklemeyin.

Tokenomist (eski adıyla Token Unlocks) özel kilit açma takvimidir. DefiLlama da kilit açmaları kapsar, ancak kilit açma ticareti tüm işinizse, bu uzman olanıdır.

L4: Tek Bir Sistem

Artık parçalara sahipsiniz, her iki tarafta da ücretsiz veri, adli matematik, belge farkı, zincir üstü tarama. Son katman, bunu 15 sekme arasında kopyala-yapıştır yapmak yerine tek bir makine olarak çalıştırmaktır.

virattt/ai-hedge-fund, her biri ünlü bir yatırımcının felsefesi üzerine modellenmiş, bir hisse senedi üzerinde tartışan ve bir karar çıkaran bir yapay zeka ajanları ekibidir. Yatırımcı-kişiliği olayı aslında bir tür gösteriştir ve kesinlikle gerçek parayla canlı olarak işlem yapmamalısınız.

https://github.com/virattt/ai-hedge-fund

Ancak analiz ajanlarını nasıl düzenleyeceğiniz, bir veri alıcıyı bir tarayıcıya, oradan bir muhakeme yapıcıya nasıl zincirleyeceğiniz konusunda ücretsiz bir ders olarak, şu anda GitHub'daki en iyi öğretmendir.

gemchanger - inline image

OpenBB açık kaynak Bloomberg terminalidir. Veri sağlayıcılarınızı bir kez bağlayın, her yerde kullanın, bir ajanın her şeyi yönlendirebilmesi için bir MCP sunucusuyla birlikte gelir. Güçlü ama ağırdır, kurulum gerçek bir iştir ve veri kalitesi tamamen hangi ücretsiz sağlayıcıyı bağladığınıza bağlıdır. Her şey için tek bir kokpit istiyorsanız buna değer, yalnızca birkaç ismi taramak istiyorsanız aşırıya kaçar.

https://github.com/OpenBB-finance/OpenBB

gemchanger - inline image

FinGPT / FinRobot, ucuza ince ayar yapabileceğiniz açık finansal LLM'lerdir. Akademik olarak etkileyici ve evet, ince ayar yapmak insanların düşündüğünden daha ucuzdur.

https://github.com/ai4finance-foundation/finrobot

Ancak temelde herkes için hiçbir şeye ince ayar yapmanıza gerek yoktur, yukarıdaki yönlendirmelerle birlikte bir sınır modeli işi görür.

gemchanger - inline image

Sırayla

Önce araç katmanı, EDGAR, FMP, DefiLlama'yı saran işlev çağrıları veya MCP sunucuları, böylece model gerçek rakamları alır ve asla onları icat etmez. Pazarlık konusu olmayan bir durum, kaynaksız bir finansal rakam alıntılayan bir yapay zeka bir analist değil, bir yükümlülüktür.

Tarama katmanı, evreninize giren her şeyde otomatik olarak çalışan adli puanlar ve zincir üstü kontroller.

Okuma katmanı, taramadan sağ çıkan her şeyde yıldan yıla fark.

Sentez, model her iddiada bir alıntıyla notu yazar ve siz 200 sayfa yerine notu okursunuz.

Modeller konusunda, Claude veya GPT'nin ikisi de çalışır. Hassas verilere dokunuyorsanız ve dosyaların makinenizden ayrılmasını istemiyorsanız, Ollama aracılığıyla yerel olarak açık bir model çalıştırın. Model hiçbir zaman hendek olmadı. Hendek, onu temiz, doğrulanmış, kaynağa bağlı verilere bağlamak ve ona disiplinli matematik uygulamaktır.

L5: L1'i Oluşturun

Ona bir borsa kodu verin, EDGAR'dan gerçek dosyaları çeker, Beneish, Altman, Piotroski ve tahakkuk oranını hesaplar ve bir anahtar verirseniz, yıldan yıla Risk Faktörleri farkını çalıştırır ve size tek paragraflık bir karar yazar.

python
1#!/usr/bin/env python3
2"""
3forensic_screener.py - herhangi bir şirketi bir analist gibi, tek komutla okuyun.
4
5kurulum:
6 pip install edgartools anthropic
7 export SEC_IDENTITY="Adınız Soyadınız [email protected]" # SEC bu başlığı gerektirir
8 export ANTHROPIC_API_KEY="sk-..." # isteğe bağlı, yalnızca fark için
9
10çalıştırma:
11 python forensic_screener.py AAPL
12 python forensic_screener.py TSLA NVDA SMCI # birkaçını aynı anda tara
13 python forensic_screener.py SMCI --diff # risk faktörü farkını ekle
14"""
15
16import os, sys, argparse
17from dataclasses import dataclass
18
19# EŞİKLER - duruşunuzu değiştiren çizgiler. zevkinize göre ayarlayın.
20M_FLAG = -1.78 # Beneish bunun üzerinde -> manipülasyon riski (klasik kesim -2.22)
21Z_DISTRESS = 1.81 # Altman bunun altında -> sıkıntı bölgesi
22Z_SAFE = 2.99 # Altman bunun üzerinde -> güvenli bölge
23ACCRUAL_BAD = 0.25 # |tahakkuklar/aktifler| bunun üzerinde -> kazanç kalitesi kırmızı bayrağı
24F_STRONG = 6 # Piotroski bunun üzerinde veya eşit -> güçleniyor
25
26@dataclass
27class YearData:
28 sales: float; cogs: float; sga: float; net_income: float; cfo: float
29 receivables: float; current_assets: float; current_liabilities: float
30 ppe_net: float; depreciation: float; total_assets: float
31 total_liabilities: float; long_term_debt: float; retained_earnings: float
32 ebit: float; market_cap: float; shares: float
33
34def load_two_years(ticker: str):
35 """(this_year, last_year) döndürür. ağ üzerinden SEC EDGAR'ı çağırır."""
36 from edgar import Company, set_identity
37 identity = os.environ.get("SEC_IDENTITY")
38 if not identity:
39 sys.exit("SEC_IDENTITY='Adınız Soyadınız [email protected]' olarak ayarlayın - SEC bunu gerektirir.")
40 set_identity(identity)
41
42 company = Company(ticker)
43 fin = company.get_financials()
44 inc, bal, cfs = fin.income_statement(periods=2), fin.balance_sheet(periods=2), fin.cash_flow(periods=2)
45
46 def g(stmt, col, *aliases):
47 # en iyi çaba satır araması; şirketler aynı fikri farklı şekilde etiketler
48 for a in aliases:
49 try:
50 row = stmt.loc[stmt.index.str.contains(a, case=False, na=False)]
51 if not row.empty:
52 return float(row.iloc[0, col])
53 except Exception:
54 continue
55 return 0.0
56
57 def build(col):
58 return YearData(
59 sales=g(inc, col, "RevenueFromContractWithCustomerExcludingAssessedTax", "Revenues", "SalesRevenueNet"),
60 cogs=g(inc, col, "CostOfGoodsAndServicesSold", "CostOfRevenue"),
61 sga=g(inc, col, "SellingGeneralAndAdministrativeExpense"),
62 net_income=g(inc, col, "NetIncomeLoss"),
63 cfo=g(cfs, col, "NetCashProvidedByUsedInOperatingActivities"),
64 receivables=g(bal, col, "AccountsReceivableNetCurrent", "ReceivablesNetCurrent"),
65 current_assets=g(bal, col, "AssetsCurrent"),
66 current_liabilities=g(bal, col, "LiabilitiesCurrent"),
67 ppe_net=g(bal, col, "PropertyPlantAndEquipmentNet"),
68 depreciation=g(cfs, col, "DepreciationDepletionAndAmortization", "DepreciationAmortizationAndAccretionNet"),
69 total_assets=g(bal, col, "Assets"),
70 total_liabilities=g(bal, col, "Liabilities"),
71 long_term_debt=g(bal, col, "LongTermDebtNoncurrent", "LongTermDebt"),
72 retained_earnings=g(bal, col, "RetainedEarningsAccumulatedDeficit"),
73 ebit=g(inc, col, "OperatingIncomeLoss"),
74 market_cap=getattr(company, "market_cap", 0.0) or 0.0,
75 shares=g(bal, col, "CommonStockSharesOutstanding"),
76 )
77
78 # col 0 = en yeni yıl, col 1 = önceki yıl (edgartools en yeni önce sıralar)
79 return build(0), build(1)
80
81def d(a, b): return a / b if b else 0.0 # güvenli bölme
82
83def beneish_m_score(t, p):
84 DSRI = d(d(t.receivables, t.sales), d(p.receivables, p.sales))
85 GMI = d((p.sales - p.cogs)/p.sales if p.sales else 0, (t.sales - t.cogs)/t.sales if t.sales else 0)
86 AQI = d(1 - d(t.current_assets + t.ppe_net, t.total_assets), 1 - d(p.current_assets + p.ppe_net, p.total_assets))
87 SGI = d(t.sales, p.sales)
88 DEPI = d(d(p.depreciation, p.depreciation + p.ppe_net), d(t.depreciation, t.depreciation + t.ppe_net))
89 SGAI = d(d(t.sga, t.sales), d(p.sga, p.sales))
90 TATA = d(t.net_income - t.cfo, t.total_assets)
91 LVGI = d(d(t.total_liabilities, t.total_assets), d(p.total_liabilities, p.total_assets))
92 return (-4.84 + 0.92*DSRI + 0.528*GMI + 0.404*AQI + 0.892*SGI
93 + 0.115*DEPI - 0.172*SGAI + 4.679*TATA - 0.327*LVGI)
94
95def altman_z_score(t):
96 wc = t.current_assets - t.current_liabilities
97 return (1.2*d(wc, t.total_assets) + 1.4*d(t.retained_earnings, t.total_assets)
98 + 3.3*d(t.ebit, t.total_assets) + 0.6*d(t.market_cap, t.total_liabilities)
99 + 1.0*d(t.sales, t.total_assets))
100
101def piotroski_f_score(t, p):
102 s = 0
103 s += t.net_income > 0
104 s += t.cfo > 0
105 s += d(t.net_income, t.total_assets) > d(p.net_income, p.total_assets)
106 s += t.cfo > t.net_income # nakit tahakkukları yener
107 s += t.long_term_debt < p.long_term_debt
108 s += d(t.current_assets, t.current_liabilities) > d(p.current_assets, p.current_liabilities)
109 s += t.shares <= p.shares # seyreltme yok
110 s += d(t.sales - t.cogs, t.sales) > d(p.sales - p.cogs, p.sales)
111 s += d(t.sales, t.total_assets) > d(p.sales, p.total_assets)
112 return int(s)
113
114def sloan_accruals(t): return d(t.net_income - t.cfo, t.total_assets)
115
116def risk_factor_diff(ticker):
117 """bu yılki Risk Faktörleri ile geçen yılınkini karşılaştırır. yığındaki en iyi tek okuma."""
118 key = os.environ.get("ANTHROPIC_API_KEY")
119 if not key:
120 return "(atlandı - farkı etkinleştirmek için ANTHROPIC_API_KEY ayarlayın)"
121 from edgar import Company
122 import anthropic
123 f = Company(ticker).get_filings(form="10-K").latest(2)
124 this_rf = getattr(f[0].obj(), "risk_factors", str(f[0]))
125 last_rf = getattr(f[1].obj(), "risk_factors", str(f[1]))
126 client = anthropic.Anthropic(api_key=key)
127 msg = client.messages.create(
128 model="claude-opus-4-8", max_tokens=1024,
129 messages=[{"role": "user", "content": (
130 "ardışık yıllık dosyalardan bu iki Risk Faktörleri bölümünü karşılaştır. "
131 "YALNIZCA bu yıl YENİ olanı veya KALDIRILMIŞ olanı rapor et. yeni dili alıntıla. "
132 "her ikisinde de bulunan standart metni görmezden gel. tek bir cümleyle bitir: burada riski değiştiren bir şey var mı?\n\n"
133 f"GEÇEN YIL:\n{last_rf[:40000]}\n\nBU YIL:\n{this_rf[:40000]}")}],
134 )
135 return msg.content[0].text
136
137def screen(ticker, do_diff=False):
138 print(f"\n{'='*60}\n {ticker.upper()}\n{'='*60}")
139 try:
140 t, p = load_two_years(ticker)
141 except Exception as e:
142 print(f" dosyalar yüklenemedi: {e}"); return
143
144 m, z, f, a = beneish_m_score(t, p), altman_z_score(t), piotroski_f_score(t, p), sloan_accruals(t)
145 flags = []
146 if m > M_FLAG: flags.append(f"M-Score {m:+.2f} - kazanç manipülasyonu riski")
147 if z < Z_DISTRESS: flags.append(f"Z-Score {z:.2f} - finansal sıkıntı bölgesi")
148 if abs(a) > ACCRUAL_BAD: flags.append(f"Tahakkuklar {a:+.1%} - kazanç kalitesi kırmızı bayrağı")
149 if f < F_STRONG: flags.append(f"F-Score {f}/9 - güçlenmiyor")
150
151 print(f" Beneish M : {m:+.2f} (> {M_FLAG} = araştır)")
152 print(f" Altman Z : {z:.2f} (< {Z_DISTRESS} sıkıntı, > {Z_SAFE} güvenli)")
153 print(f" Piotroski F: {f}/9 (>= {F_STRONG} güçlü)")
154 print(f" Sloan Accr : {a:+.1%} (|x| > {ACCRUAL_BAD:.0%} kırmızı bayrak)")
155 print(f"\n KARAR: {'ARAŞTIR' if flags else 'TEMİZ'}")
156 for fl in flags: print(f" - {fl}")
157 if do_diff:
158 print("\n RİSK FAKTÖRÜ FARKI (yıldan yıla):")
159 print(" " + risk_factor_diff(ticker).replace("\n", "\n "))
160
161def main():
162 ap = argparse.ArgumentParser(description="herhangi bir ABD halka açık şirketi için adli tarayıcı")
163 ap.add_argument("tickers", nargs="+")
164 ap.add_argument("--diff", action="store_true", help="risk faktörü farkını da çalıştır")
165 args = ap.parse_args()
166 for tk in args.tickers:
167 screen(tk, do_diff=args.diff)
168 print("\nhatırlatma: olasılık bayrakları, kanıt değil. Beneish geçen yılın verileriyle çalışır, bu nedenle "
169 "manipülasyon zaten çözülüyor olabilir. kötü bir puan dosyayı açmak anlamına gelir, asla "
170 "yalnızca sayıya dayanarak açığa satış yapmayın.\n")
171
172if __name__ == "__main__":
173 main()

Göndermeden önce matematiği kontrol ettim, sağlıklı bir dizi sayı besleyin ve temiz bir M yaklaşık -2,24, Z güvenli bölgede, F 9/9, tahakkuklar sıfıra yakın, tam olarak istediğiniz gibi yazdırır.

Makinenizin ihtiyaç duyduğu tek şey canlı SEC bağlantısı ve fark için bir anahtardır. Etiket takma adları standart dosyalayıcıları kapsar, egzotik bir tanesi bir satır eklenmesini gerektirebilir ve nerede olduğunu işaretledim.

Tek tıkla kaydet

YouMind ile viral makaleleri AI derin okumayla incele

Kaynağı kaydedin, odaklı sorular sorun, argümanı özetleyin ve viral bir makaleyi tek bir AI çalışma alanında yeniden kullanılabilir notlara dönüştürün.

YouMind'ı keşfet
Üreticiler için

Markdown'ınızı temiz bir 𝕏 makalesine dönüştürün

Kendi uzun yazılarınızı yayımlarken görselleri, tabloları ve kod bloklarını 𝕏 için biçimlendirmek zahmetlidir. YouMind, eksiksiz bir Markdown taslağını temiz ve hemen paylaşılabilir bir 𝕏 makalesine dönüştürür.

Markdown'dan 𝕏'e deneyin

Çözülecek daha fazla kalıp

Son viral makaleler

Daha fazla viral makale keşfet