Wie Sie jedes Unternehmen mit KI wie ein Analyst bewerten

@gemchange_ltd
ENGLISCHvor 2 Monaten · 30. Mai 2026
383K
268
27
8
764

TL;DR

Ein umfassender Leitfaden zur Automatisierung der Finanzanalyse unter Verwendung von SEC EDGAR-Daten, forensischen Bilanzkennzahlen und KI-Agenten, um Risiken sowohl bei traditionellen Aktien als auch bei Krypto-Protokollen zu identifizieren.

Im Frühjahr 1998 führten sechs MBA-Studenten der Cornell University eine einzige Gleichung mit Enrons Finanzdaten durch und erhielten -1,89 als Ergebnis.

Der Grenzwert für "dieses Unternehmen fälscht wahrscheinlich seine Bücher" liegt bei -2,22. Enron lag darüber. Und wiederum waren das Studenten, keine forensische Buchhaltungsfirma.

gemchanger - inline image

Sie stellten den Bericht auf die Schulwebsite. Die gesamte Wall Street hatte Enron zu der Zeit noch mit "Kaufen" bewertet, und die meisten behielten diese Bewertung bis wenige Wochen vor dem Zusammenbruch bei.

Es war eine öffentliche Einreichung, die jeder hätte abrufen können, und eine Formel, die von Hand vielleicht 20 Minuten dauert. Das ist genau das, was ich Ihnen gleich zeigen werde, nur dass Sie es in Sekunden erledigen und auf jedes Unternehmen oder Token der Welt anwenden können.

Keine Anlageberatung, recherchieren Sie selbst. Forensische Scores sind Wahrscheinlichkeitsindikatoren, kein Beweis, und jeder hier genannte Preis ändert sich, also überprüfen Sie vor einer Entscheidung. Ich entwickle Tools für professionelle Prognosemarkt-Händler @coldvisionXYZ

L0: Datenhaus

Jedes börsennotierte Unternehmen in den USA reicht Unterlagen bei der SEC ein, und die SEC stellt alles über eine API namens EDGAR zur Verfügung. Sie rufen eine URL auf und erhalten jede Zahl, die ein Unternehmen je gemeldet hat, bereits strukturiert zurück.

2 Dinge machen EDGAR zu einer Waffe:

  1. Volltextsuche. Sie indexiert den tatsächlichen Text jeder jemals eingereichten Einreichung, sodass Sie einen Ausdruck wie "material weakness" über den gesamten Markt suchen können und jedes Unternehmen erhalten, das gerade stillschweigend zugegeben hat, dass seine Buchhaltungskontrollen kaputt sind. Das ist eine Short-Watchlist in etwa einer Sekunde.
  2. Strukturierte Finanzdaten. Jede Position, jedes Quartal, maschinenlesbar, über Jahre zurück.

edgartools ist das, was Sie brauchen.

gemchanger - inline image

Pip-Installation, kein Schlüssel, und es parst 10-Ks, 8-Ks, Insider-Formulare 4, 13F-Fondsbestände, alles in saubere Python-Objekte.

Es bringt auch einen MCP-Server mit, sodass Sie Claude direkt darauf ansetzen können und sagen: "Vergleiche das Umsatzwachstum von Apple und Microsoft über 3 Jahre", und es holt tatsächlich die echten Einreichungen, anstatt Zahlen zu erfinden, die richtig klingen.

sec-edgar-downloader* ist das, was jeder zuerst findet. Es lädt nur die rohe Einreichung herunter und wirft Sie in einen Haufen HTML, den Sie selbst parsen müssen. Das war vor ein paar Jahren der Weg, jetzt ist es nur noch mühsam. Verwenden Sie edgartools.

BamSEC, wenn Sie nur Einreichungen lesen möchten, ohne EDGARs Schnittstelle von 1998. Sauberer Leser, Seitenvergleich, kostenlos für das Meiste, was Sie brauchen. Gut zum Überfliegen.

gemchanger - inline image

Jetzt haben Sie kostenlosen strukturierten Zugriff auf die Bücher jedes börsennotierten Unternehmens.

L1 - Lügner fangen

Sie haben die Zahlen. Bevor Sie auch nur einen Satz des Managements über ihr "transformatives Jahr" lesen, führen Sie ein paar Formeln mit den Rohdaten durch.

Wissenschaftler haben diese auf der Grundlage jahrzehntelanger tatsächlicher Betrugsfälle entwickelt. Sie müssen nur wissen, wonach jede einzelne sucht.

Beneish M-Score ist der von Enron.

Acht Eingaben zu einer einzigen Zahl verarbeitet. Der mit Abstand wichtigste Eingabewert sind die gesamten Rückstellungen im Verhältnis zum Gesamtvermögen, denn der schnellste Weg, Gewinne zu fälschen, ist, Einnahmen zu verbuchen, die nie als Bargeld auftauchten. Das nächste Warnsignal ist ein Umsatzwachstum, das zu sauber ist, um ehrlich zu sein, und das war das, was bei Enron aufleuchtete. Über -2,22 gehen Sie der Sache nach. Enron hatte -1,89.

gemchanger - inline image

Altman Z-Score ist Ihr Konkursindikator.

Mischt Rentabilität, Verschuldung und wie stark die Vermögenswerte arbeiten, zu einem Notlagen-Score. Unter 1,81 ist die Gefahrenzone.

gemchanger - inline image

Sloan Accruals Ratio ist die Gewinnqualität.

Gewinne aus Bargeld sind real, Gewinne aus Rückstellungen kehren sich um. Überschreiten Sie etwa 25 % in eine Richtung, und die Gewinne sind im Grunde eine buchhalterische Fata Morgana, die sich bald auflöst.

gemchanger - inline image

Piotroski F-Score, 9 Ja/Nein-Punkte, ob ein Unternehmen tatsächlich finanziell stärker wird. 6 oder höher ist gesund.

gemchanger - inline image

Was dies von einer Hausaufgabe in einen Arbeitsablauf verwandelt, ist, alle 4 gleichzeitig über Ihre gesamte Watchlist laufen zu lassen und nur die Namen zu lesen, die auslösen. Genau das macht das Skript weiter unten.

Und bitte implementieren Sie diese nicht nach einem zufälligen Blog neu, die Hälfte des M-Score-Codes auf GitHub ist subtil falsch.

FinanceToolkit-Repository hat 150+ Kennzahlen - Beneish, Altman, Piotroski, Sloan, alle - mit den offen geschriebenen Formeln, sodass Sie eine Zahl überprüfen können, wenn Sie ihr nicht vertrauen.

Kombinieren Sie es mit einem FMP-Schlüssel für Daten, und Sie sind startbereit. Ehrlich gesagt eines der am meisten unterschätzten Finanz-Repos da draußen, transparent und tatsächlich gewartet.

https://github.com/JerBouma/FinanceToolkit

gemchanger - inline image

Beneish läuft auf Daten des letzten Jahres, sodass die Manipulation möglicherweise bereits rückgängig gemacht wird, wenn Sie sie sehen. Es übersieht einige echte Betrugsfälle und schlägt bei einigen sauberen Unternehmen falsch Alarm. Ein schlechter Score bedeutet, die Einreichung öffnen. Es ist für sich allein nie ein Grund für Leerverkäufe.

L2: KI liest die Wörter für Sie

Sie haben gescreent, etwas ist aufgefallen, jetzt öffnen Sie den 10-K, der 100+ Seiten juristisches Kauderwelsch ist, das speziell so aufgebaut ist, dass es unlesbar ist.

Überlassen Sie diese Arbeit der KI

Der falsche Weg ist:

die gesamte Einreichung in ein Chat-Fenster zu kopieren und zu fragen: "Ist das ein gutes Unternehmen?" Sie ertrinkt und sagt Ihnen, was Sie hören wollen.

Der gute Weg ist:

Bitten Sie sie, dieses Jahr mit dem letzten Jahr zu vergleichen.

Extrahieren Sie den Abschnitt "Risk Factors" aus dem diesjährigen und dem letztjährigen 10-K, geben Sie beide dem Modell und geben Sie ihm eine Aufgabe.

Sag mir nur, was dieses Jahr neu ist oder was gestrichen wurde, zitiere die neue Formulierung, ignoriere den Standardtext, der in beiden enthalten ist.

Ein Unternehmen, das stillschweigend einen Absatz über Kundenkonzentration einfügt, hat Ihnen gerade gesagt, dass ein großer Kunde wackelt. Eines, das eine Zeile über einen wichtigen Lieferanten löscht, hat Ihnen gerade gesagt, dass eine Beziehung beendet ist. Nichts davon landet jemals in der Pressemitteilung. Anwälte schreiben diese Sätze, weil sie Angst haben, verklagt zu werden, und Angst ist Informationen, die im Klartext dastehen und niemand zweimal liest.

Derselbe Vergleich funktioniert für den MD&A (Management's own story of the year) und die Fußnoten. Enrons gesamter Betrug lebte in Fußnoten über außerbilanziellen Zweckgesellschaften. Die Geschichte war eine Lüge, die Fußnoten nicht.

Das edgar-crawler-Repo existiert im Grunde nur, um diese Abschnitte, Risk Factors und MD&A, in sauberes JSON zu extrahieren, damit Sie nicht durch HTML regexen müssen, um sie zu erhalten. Das ist seine ganze Aufgabe und es macht sie gut, füttern Sie die Ausgabe in Ihren Vergleich.

Wenn Sie lieber bezahlen als selbst bauen, hier ist die ehrliche Übersicht, wer dies für Sie erledigt.

Hudson Labs (früher Bedrock AI)

Es ist der Under-the-Radar-Tipp und der, für den ich tatsächlich bezahlen würde. Es extrahiert automatisch die jahresübergreifenden Warnsignale, zeigt Going-Concern-Formulierungen, wesentliche Schwächen und Related-Party-Risiken an, ohne dass Sie fragen müssen. Beginnt bei etwa 100 $/Monat. Wenn Sie Einreichungen ernsthaft lesen, ist dies das beste Preis-Leistungs-Verhältnis auf der Liste.

gemchanger - inline image

AlphaSense

Institutioneller Standard, irgendwo um 15-20k pro Sitzplatz, also realistisch nur, wenn Ihre Firma zahlt. Es besitzt Tegus, eine Bibliothek mit Tausenden von bezahlten Interviews mit ehemaligen Führungskräften und Kunden. So nah an legalen Insiderwissen, wie Sie es bekommen können, und Sie können es nicht kostenlos nachbilden.

gemchanger - inline image

Daloopa

Zieht modellreife Finanzdaten, bei denen jede einzelne Zahl mit ihrer genauen Stelle in der Einreichung verlinkt ist. Diese Prüfspur ist der Grund, warum Leute, die ernsthafte DCFs bauen, es verwenden. Enterprise-Preise, übertrieben, es sei denn, Modellierung ist Ihr eigentlicher Job.

gemchanger - inline image

Fintool ist KI-first, für US-Aktien gebaut, Zitate zu allem, plus dauerhafte Benachrichtigungen wie "benachrichtige mich, wenn ein Unternehmen neu Lieferkettenprobleme erwähnt." Anständiger Mittelweg, wenn Hudson zu forensisch und AlphaSense zu teuer erscheint.

gemchanger - inline image

L3: Krypto

Wechseln Sie zu Token. Genau die gleiche Idee

Bei Aktien versteckt sich der Betrug in Rückstellungen und Fußnoten.

Bei Krypto versteckt er sich in Angebotsplänen und Halterkonzentration, und beide liegen auf einer öffentlichen Blockchain, die Sie kostenlos lesen können.

Ihr EDGAR-Äquivalent hier ist DefiLlama.

gemchanger - inline image

Kostenlose API, kein Schlüssel, deckt im Grunde die TVL, Gebühren, Einnahmen und den Unlock-Zeitplan jedes Protokolls ab.

Ein Protokoll hat 3 Zahlen, die direkt auf ein normales Unternehmen abgebildet werden.

  • Gebühren = alles, was Benutzer zahlen. Das ist der Bruttoumsatz.
  • Einnahmen = der Anteil, den das Protokoll tatsächlich behält. Das ist der Nettoertrag.
  • Gewinne = Einnahmen abzüglich der Token, die es gedruckt hat, um Benutzer überhaupt anzulocken.

Token Terminal standardisiert genau diese, Gebühren, Einnahmen, Gewinne, die Krypto-P/E-Äquivalente, über alle wichtigen Blockchains hinweg.

Ehrlich gesagt das Bloomberg-der-Krypto, und die Standardisierung ist echte Arbeit, die Sie hassen würden, von Hand zu erledigen. Aber es kostet ~350/Monat, was für eine Person viel ist, und die kostenlose Stufe plus DefiLlama bringt Sie den größten Teil des Weges.

gemchanger - inline image

Dann die 2 Killer, die Krypto-Version des forensischen Screenings.

Zuerst die Unlock-Zeitpläne.

Token existieren nicht alle zum Start, Team- und VC-Zuteilungen werden über Jahre hinweg unverfallbar, und wenn sie freigeschaltet werden, können die Leute, die nahe Null eingestiegen sind, endlich auf Sie abladen. Faustregel: Jede einzelne Freischaltung von mehr als 5% des zirkulierenden Angebots ist eine rote Flagge. Um es konkret zu machen: Arbitrums erster großer Cliff schaltete an einem Tag eine Menge ARB frei, die ungefähr dem gesamten zirkulierenden Angebot zu dieser Zeit entsprach. Wale, die von Anfang an hielten, konnten in den Einzelhandel aussteigen, und das Datum stand Monate im Voraus im Kalender.

Kennen Sie die 3 Formen.

  1. Cliff entlädt an einem Tag eine große Menge (gewaltsam).
  2. Lineare Vested-Auszahlung tropft täglich (langsames Ausbluten, das Sie manchmal durchhalten können).
  3. Emissionsfreigabe basierend auf Aktivität. Ein Cliff in eine VC-Wallet ist der, der Portfolios beendet.

Halterkonzentration als zweites. Wer besitzt das Ding tatsächlich. Wenn eine Handvoll Wallets den Großteil des Angebots halten und sie als Team oder ein früher VC-Fonds gekennzeichnet sind, herzlichen Glückwunsch, Sie sind die Exit-Liquidität wie geplant.

Hier verdienen Wallet-Kennzeichnungstools ihren Wert, denn rohe Blockchain-Daten sind nur 0xxxxxxx.... bis Ihnen jemand sagt, dass es Jump Trading oder ein Team-Vesting-Vertrag ist.

Arkham

Starten Sie hier, weil es für Einzelpersonen kostenlos ist, was keine andere ernsthafte Plattform ist. Die De-Anon-Engine ist der wahre Hammer, es ist die Firma, die öffentlich Milliarden gestohlener Bitcoins auf einen Hack zurückverfolgt hat. Sie können dieselbe Entity-Trace für jedes Token durchführen, das Sie betrachten. Kostenlos ist die Killerfunktion, nutzen Sie es einfach.

Nansen

Verfolgt "Smart Money", Wallets mit einer Erfolgsbilanz, früh und richtig zu liegen, über eine Vielzahl von Chains. Hat seinen Pro-Preis kürzlich stark auf rund 49/Monat gesenkt. Die Labels sind das gesamte Produkt und sie sind gut, aber die Spur wird kalt, sobald Gelder eine zentralisierte Börse erreichen. Es lohnt sich, wenn Sie ernsthaft onchain handeln.

Dune

100k+ Community-SQL-Dashboards, die Sie forken können, ohne selbst eine Zeile SQL zu schreiben. Die kostenlose Stufe ist für fast jeden ausreichend, und jemand hat bereits das Dashboard gebaut, das Sie wollen, also suchen Sie es, bevor Sie Ihr eigenes bauen.

Messari hat starke qualitative Forschung und Bewertungen. Die Preisgestaltung ist undurchsichtig und unternehmensorientiert, die kostenlose Forschung ist lesenswert, aber erwarten Sie nicht die guten Sachen ohne einen Verkaufsanruf.

Tokenomist (früher Token Unlocks) ist der spezielle Unlock-Kalender. DefiLlama deckt auch Unlocks ab, aber wenn Unlock-Trading Ihre ganze Leidenschaft ist, ist dies der Spezialist.

L4: Ein System

Sie haben jetzt die Puzzleteile, kostenlose Daten auf beiden Seiten, forensische Mathematik, den Dokumentenvergleich, Onchain-Screening. Die letzte Schicht ist, es als eine Maschine laufen zu lassen, anstatt dass Sie über 15 Tabs hinweg kopieren und einfügen.

virattt/ai-hedge-fund ist ein Team von KI-Agenten, jeder nach der Philosophie eines berühmten Investors modelliert, die über eine Aktie diskutieren und eine Einschätzung abgeben. Die Investor-Persona-Sache ist ehrlich gesagt eine Art Gimmick, und Sie sollten damit absolut nicht mit echtem Geld live handeln.

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

Aber als kostenlose Lektion darin, wie man Analyse-Agenten orchestriert, wie man einen Datenabrufer mit einem Screener und einem Reasoner verknüpft, ist es derzeit der beste Lehrer auf GitHub.

gemchanger - inline image

OpenBB ist das Open-Source-Bloomberg-Terminal. Verbinden Sie Ihre Datenanbieter einmal, nutzen Sie sie überall, mit einem MCP-Server, sodass ein Agent das Ganze steuern kann. Leistungsstark aber schwer, die Einrichtung ist echte Arbeit und die Datenqualität hängt vollständig davon ab, welchen kostenlosen Anbieter Sie anschließen. Es lohnt sich, wenn Sie ein Cockpit für alles wollen, übertrieben, wenn Sie nur ein paar Namen screenen wollen.

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

gemchanger - inline image

FinGPT / FinRobot sind offene Finanz-LLMs, die Sie günstig fine-tunen können. Akademisch beeindruckend und ja, Fine-Tuning ist billiger als die Leute denken.

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

Aber für so gut wie jeden müssen Sie nichts fine-tunen, ein Frontier-Modell mit den obigen Prompts erledigt die Arbeit.

gemchanger - inline image

In Reihenfolge

Zuerst die Tool-Ebene, Function Calling oder MCP-Server, die EDGAR, FMP, DefiLlama umhüllen, damit das Modell echte Zahlen abruft und nie erfindet. Nicht verhandelbar, eine KI, die eine nicht belegte Finanzzahl zitiert, ist eine Haftung, kein Analyst.

Screening-Ebene, die forensischen Scores und Onchain-Checks laufen automatisch für alles, was in Ihr Universum eintritt.

Lese-Ebene, der Jahr-über-Jahr-Vergleich für alles, was das Screening überlebt.

Synthese, das Modell schreibt das Memo mit einer Quellenangabe zu jeder Behauptung, und Sie lesen das Memo statt der 200 Seiten.

Zu den Modellen: Claude oder GPT funktionieren beide. Wenn Sie mit sensiblen Daten arbeiten und nicht möchten, dass Einreichungen Ihren Rechner verlassen, führen Sie ein offenes Modell lokal über Ollama aus. Das Modell war nie der Burggraben. Der Burggraben ist, es an saubere, verifizierte, quellenverlinkte Daten anzuschließen und disziplinierte Mathematik darauf anzuwenden.

L5: Bauen Sie L1

Geben Sie ihm ein Tickersymbol, es holt die echten Einreichungen von EDGAR, berechnet Beneish, Altman, Piotroski und die Accruals Ratio, und wenn Sie ihm einen Schlüssel geben, führt es den Jahr-über-Jahr-Vergleich der Risk Factors durch und schreibt Ihnen ein einstimmiges Urteil.

python
1#!/usr/bin/env python3
2"""
3forensic_screener.py - lesen Sie jedes Unternehmen wie ein Analyst, mit einem Befehl.
4
5Einrichtung:
6 pip install edgartools anthropic
7 export SEC_IDENTITY="Ihr Name [email protected]" # SEC benötigt diesen Header
8 export ANTHROPIC_API_KEY="sk-..." # optional, nur für den Diff
9
10Ausführung:
11 python forensic_screener.py AAPL
12 python forensic_screener.py TSLA NVDA SMCI # mehrere gleichzeitig screenen
13 python forensic_screener.py SMCI --diff # Risikofaktor-Diff hinzufügen
14"""
15
16import os, sys, argparse
17from dataclasses import dataclass
18
19# SCHWELLWERTE - die Linien, die Ihre Haltung ändern. Nach Geschmack anpassen.
20M_FLAG = -1.78 # Beneish darüber -> Manipulationsrisiko (klassischer Grenzwert -2.22)
21Z_DISTRESS = 1.81 # Altman darunter -> Notlage
22Z_SAFE = 2.99 # Altman darüber -> sicherer Bereich
23ACCRUAL_BAD = 0.25 # |Accruals/Assets| darüber -> Gewinnqualität rote Flagge
24F_STRONG = 6 # Piotroski bei oder darüber -> Stärkung
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 """gibt (this_year, last_year) zurück. Ruft SEC EDGAR über das Netzwerk auf."""
36 from edgar import Company, set_identity
37 identity = os.environ.get("SEC_IDENTITY")
38 if not identity:
39 sys.exit("setzen Sie SEC_IDENTITY='Ihr Name [email protected]' - die SEC benötigt es.")
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 # bestmögliche Zeilensuche; Unternehmen kennzeichnen dieselbe Idee unterschiedlich
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 # Spalte 0 = neuestes Jahr, Spalte 1 = Vorjahr (edgartools ordnet neueste zuerst)
79 return build(0), build(1)
80
81def d(a, b): return a / b if b else 0.0 # sichere Division
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 # Bargeld schlägt Rückstellungen
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 # keine Verwässerung
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 """Vergleicht die Risk Factors dieses Jahres mit denen des Vorjahres. Die beste einzelne Lektüre im Stack."""
118 key = os.environ.get("ANTHROPIC_API_KEY")
119 if not key:
120 return "(übersprungen - setzen Sie ANTHROPIC_API_KEY, um den Diff zu aktivieren)"
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 "Vergleichen Sie diese beiden Abschnitte 'Risk Factors' aus aufeinanderfolgenden Jahresberichten. "
131 "Berichten Sie NUR, was dieses Jahr NEU ist oder was ENTFERNT wurde. Zitieren Sie die neue Formulierung. "
132 "Ignorieren Sie Standardtext in beiden. Beenden Sie mit einem Satz: Ändert hier etwas das Risiko?\n\n"
133 f"LETZTES JAHR:\n{last_rf[:40000]}\n\nDIESES JAHR:\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" Konnte Einreichungen nicht laden: {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} - Gewinnmanipulationsrisiko")
147 if z < Z_DISTRESS: flags.append(f"Z-Score {z:.2f} - finanzielle Notlage")
148 if abs(a) > ACCRUAL_BAD: flags.append(f"Accruals {a:+.1%} - rote Flagge Gewinnqualität")
149 if f < F_STRONG: flags.append(f"F-Score {f}/9 - nicht stärker werdend")
150
151 print(f" Beneish M : {m:+.2f} (> {M_FLAG} = untersuchen)")
152 print(f" Altman Z : {z:.2f} (< {Z_DISTRESS} Notlage, > {Z_SAFE} sicher)")
153 print(f" Piotroski F: {f}/9 (>= {F_STRONG} stark)")
154 print(f" Sloan Accr : {a:+.1%} (|x| > {ACCRUAL_BAD:.0%} rote Flagge)")
155 print(f"\n URTEIL: {'UNTERSUCHEN' if flags else 'SAUBER'}")
156 for fl in flags: print(f" - {fl}")
157 if do_diff:
158 print("\n RISIKOFAKTOR-DIFF (Jahr-über-Jahr):")
159 print(" " + risk_factor_diff(ticker).replace("\n", "\n "))
160
161def main():
162 ap = argparse.ArgumentParser(description="Forensischer Screener für jedes US-börsennotierte Unternehmen")
163 ap.add_argument("tickers", nargs="+")
164 ap.add_argument("--diff", action="store_true", help="auch den Risikofaktor-Diff ausführen")
165 args = ap.parse_args()
166 for tk in args.tickers:
167 screen(tk, do_diff=args.diff)
168 print("\nErinnerung: Wahrscheinlichkeitsindikatoren, keine Beweise. Beneish läuft auf Daten des letzten Jahres, "
169 "daher kann die Manipulation bereits rückgängig gemacht werden. Ein schlechter Score bedeutet, die Einreichung öffnen, "
170 "niemals nur aufgrund der Zahl short gehen.\n")
171
172if __name__ == "__main__":
173 main()

Ich habe die Mathematik vor dem Versand überprüft: Gib einen gesunden Satz Zahlen ein und es druckt ein sauberes M um -2,24, Z in der sicheren Zone, F bei 9/9, Accruals nahe Null, genau das, was man will.

Das Einzige, was Ihren Rechner benötigt, ist die Live-SEC-Verbindung und ein Schlüssel für den Diff. Die Tag-Aliase decken Standard-Einreicher ab, bei einem exotischen muss möglicherweise eine Zeile hinzugefügt werden, und ich habe markiert, wo.

Mit einem Klick speichern

Virale Artikel mit YouMind per KI tief lesen

Speichere die Quelle, stelle gezielte Fragen, fasse die Argumentation zusammen und verwandle einen viralen Artikel in wiederverwendbare Notizen in einem einzigen KI-Arbeitsbereich.

YouMind entdecken
Für Creator

Verwandle dein Markdown in einen sauberen 𝕏-Artikel

Wenn du eigene Langtexte veröffentlichst, wird die 𝕏-Formatierung von Bildern, Tabellen und Codeblöcken mühsam. YouMind macht aus einem ganzen Markdown-Entwurf einen sauberen, sofort postbaren 𝕏-Artikel.

Markdown zu 𝕏 testen

Mehr Muster zum Entschlüsseln

Aktuelle virale Artikel

Mehr virale Artikel entdecken