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.

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:
- 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.
- Strukturierte Finanzdaten. Jede Position, jedes Quartal, maschinenlesbar, über Jahre zurück.
edgartools ist das, was Sie brauchen.

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.
- Cliff entlädt an einem Tag eine große Menge (gewaltsam).
- Lineare Vested-Auszahlung tropft täglich (langsames Ausbluten, das Sie manchmal durchhalten können).
- 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.
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.

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.

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.
Aber für so gut wie jeden müssen Sie nichts fine-tunen, ein Frontier-Modell mit den obigen Prompts erledigt die Arbeit.

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.
1#!/usr/bin/env python32"""3forensic_screener.py - lesen Sie jedes Unternehmen wie ein Analyst, mit einem Befehl.45Einrichtung:6 pip install edgartools anthropic7 export SEC_IDENTITY="Ihr Name [email protected]" # SEC benötigt diesen Header8 export ANTHROPIC_API_KEY="sk-..." # optional, nur für den Diff910Ausführung:11 python forensic_screener.py AAPL12 python forensic_screener.py TSLA NVDA SMCI # mehrere gleichzeitig screenen13 python forensic_screener.py SMCI --diff # Risikofaktor-Diff hinzufügen14"""1516import os, sys, argparse17from dataclasses import dataclass1819# 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 -> Notlage22Z_SAFE = 2.99 # Altman darüber -> sicherer Bereich23ACCRUAL_BAD = 0.25 # |Accruals/Assets| darüber -> Gewinnqualität rote Flagge24F_STRONG = 6 # Piotroski bei oder darüber -> Stärkung2526@dataclass27class YearData:28 sales: float; cogs: float; sga: float; net_income: float; cfo: float29 receivables: float; current_assets: float; current_liabilities: float30 ppe_net: float; depreciation: float; total_assets: float31 total_liabilities: float; long_term_debt: float; retained_earnings: float32 ebit: float; market_cap: float; shares: float3334def 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_identity37 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)4142 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)4546 def g(stmt, col, *aliases):47 # bestmögliche Zeilensuche; Unternehmen kennzeichnen dieselbe Idee unterschiedlich48 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 continue55 return 0.05657 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 )7778 # Spalte 0 = neuestes Jahr, Spalte 1 = Vorjahr (edgartools ordnet neueste zuerst)79 return build(0), build(1)8081def d(a, b): return a / b if b else 0.0 # sichere Division8283def 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*SGI93 + 0.115*DEPI - 0.172*SGAI + 4.679*TATA - 0.327*LVGI)9495def altman_z_score(t):96 wc = t.current_assets - t.current_liabilities97 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))100101def piotroski_f_score(t, p):102 s = 0103 s += t.net_income > 0104 s += t.cfo > 0105 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ückstellungen107 s += t.long_term_debt < p.long_term_debt108 s += d(t.current_assets, t.current_liabilities) > d(p.current_assets, p.current_liabilities)109 s += t.shares <= p.shares # keine Verwässerung110 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)113114def sloan_accruals(t): return d(t.net_income - t.cfo, t.total_assets)115116def 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 Company122 import anthropic123 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].text136137def 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}"); return143144 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")150151 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 "))160161def 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")171172if __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.





