AI を活用してアナリストのように企業を分析する方法

@gemchange_ltd
英語2 か月前 · 2026年5月30日
383K
268
27
8
764

TL;DR

SEC EDGAR のデータ、フォレンジック会計スコア、そして AI エージェントを活用し、従来の株式から暗号資産プロトコルに至るまで、リスクを特定するための財務分析自動化ガイドです。

1998 年春、コーネル大学の MBA の学生 6 名が、エンロンの財務諸表に 1 つの計算式を適用したところ、結果は -1.89 でした。

「この会社は粉飾決算をしている可能性が高い」と判断する基準値は -2.22 です。エンロンはそれを上回っていました。そして、繰り返しますが、彼らは学生であり、特別な法廷会計の専門家ではありませんでした。

gemchanger - inline image

彼らはそのレポートを大学のウェブサイトに掲載しました。当時、ウォール街のほとんどは依然としてエンロンの評価を「買い」としており、株価がゼロになる数週間前までその評価を維持していました。

これは誰でも入手できる公開書類と、手計算で約 20 分かかるたった 1 つの計算式によるものです。これからご紹介するのはまさにその内容ですが、皆さんは数秒で実行でき、地球上のあらゆる企業やトークンを対象にすることができます。

これは投資アドバイスではありません。ご自身で調査を行ってください。フォレンジックスコアは確率のフラグであり、証明ではありません。ここに記載されている価格はすべて変動するため、実行する前に必ず確認してください。私はプロの予測市場トレーダー向けのツールを開発しています @coldvisionXYZ

L0: データハウス

米国のすべての上場企業は SEC に書類を提出し、SEC は EDGAR と呼ばれる API を通じてそのすべてを公開しています。URL にアクセスするだけで、企業が過去に報告したあらゆる数字が、すでに構造化された状態で取得できます。

EDGAR を強力なツールにする 2 つのポイント:

  1. 全文検索。これまでに提出されたすべての書類の実際のテキストをインデックス化しているため、「material weakness(内部統制の重要な欠陥)」のようなフレーズを市場全体で検索し、会計管理に問題があることを静かに認めたすべての企業を瞬時に洗い出すことができます。これは、約 1 秒で作成できるショート候補リストです。
  2. 構造化された財務データ。すべての項目、すべての四半期、機械可読形式で、過去数年分にわたって利用可能です。

edgartools がおすすめのライブラリです。

gemchanger - inline image

Pip でインストールでき、API キーは不要で、10-K、8-K、インサイダー提出書類の Form 4、13F ファンドの保有状況などを、すべてクリーンな Python オブジェクトにパースします。

MCP サーバーも内蔵されているので、Claude に直接「Apple と Microsoft の 3 年間の収益成長率を比較して」と指示すれば、実際にリアルな書類を取得してきて、それらしい数字をでっち上げることはありません。

sec-edgar-downloader は誰もが最初に見つけるライブラリです。これは生の提出書類をダウンロードするだけで、自分で解析する必要がある HTML の山を渡されます。数年前はそれが主流でしたが、今ではただ面倒なだけです。edgartools を使用しましょう。

BamSEC は、1998 年スタイルの EDGAR インターフェースを介さずに書類を読みたい場合に適しています。クリーンなリーダー、並べて比較機能があり、必要な機能のほとんどは無料で利用できます。ざっと目を通すのに適しています。

gemchanger - inline image

これで、すべての上場企業の財務諸表に無料で構造化された形でアクセスできるようになりました。

L1 - 嘘をつく企業を見破る

これで数字を入手できました。経営陣が「変革の年」と称する文章を一行も読む前に、生の数値に対していくつかの計算式を実行します。

これらの計算式は、学者が長年にわたる実際の不正事件のデータに基づいて構築したものです。それぞれの計算式が何を探っているかを理解するだけで、すぐに使えます。

Beneish M-Score は、エンロン事件で知られる計算式です。

8 つの入力値を1つの数値にまとめます。最も重要な入力項目は総資産に対する総発生利益額で、これは現金として実際に入金されていない収益を計上するのが、利益を偽装する最も簡単な方法だからです。次に目立つフラグは、あまりに完璧すぎて正直とは思えない売上成長率で、これがエンロンで点灯した項目です。-2.22 を上回った場合、調査対象となります。エンロンは -1.89 でした。

gemchanger - inline image

Altman Z-Score は、倒産リスクを評価する指標です。

収益性、レバレッジ、資産の効率性を組み合わせて、1 つの財務危険度スコアを算出します。1.81 未満は危険ゾーンです。

gemchanger - inline image

Sloan accruals ratio(スローン発生利益率) は、収益の質を評価します。

現金で構成される収益は信頼性が高く、発生利益で構成される収益は後で反転します。約 25% を超えてどちらかに乖離すると、収益は基本的に会計上の蜃気楼であり、間もなく崩壊します。

gemchanger - inline image

Piotroski F-Score は、企業が実際に財務的に強化されているかどうかを評価する 9 つの Yes/No 項目で構成されます。6 以上であれば健全です。

gemchanger - inline image

これを単なる宿題から実用的なワークフローに変える方法は、ウォッチリスト全体に対してこれら 4 つすべてを一度に実行し、フラグが立った銘柄だけを読むことです。これこそが、以下のスクリプトが実行する処理です。

また、これらの計算式をランダムなブログから再実装しないでください。GitHub 上の M-Score コードの半数は微妙に間違っています。

FinanceToolkit リポジトリには、Beneish、Altman、Piotroski、Sloan など 150 以上の計算式が含まれており、計算式はすべて公開されているため、数値を信頼できない場合に検証できます。

データ取得のために FMP キーと組み合わせれば準備完了です。正直なところ、最も過小評価されている金融系リポジトリの 1 つであり、透明性が高く、実際にメンテナンスされています。

https://github.com/JerBouma/FinanceToolkit

gemchanger - inline image

Beneish は前年度のデータに基づいて計算されるため、フラグを確認した時点で、すでに不正操作が解消されている可能性があります。また、実際の不正を見逃したり、健全な企業に誤ったフラグを立てることもあります。悪いスコアは、その書類を開くべきだという意味です。これだけでショートする理由にはなりません。

L2: AI に文章を読ませる

スクリーニングをかけ、何かのフラグが立ちました。次に 10-K を開きますが、これは 100 ページ以上の、読めないように作られた法律用語の塊です。

その作業は AI に任せましょう。

間違った方法は:

書類全体をチャットボックスに貼り付けて、「これは良い会社ですか」と尋ねることです。AI は情報過多で混乱し、あなたが聞きたいことを何でも答えます。

正しい方法は:

今年の書類と昨年の書類の差分を取るように依頼することです。

今年の 10-K と昨年の 10-K から Risk Factors(リスク要因)セクションだけを抽出し、両方をモデルに渡して、1 つのタスクだけを与えます。

今年新たに追加された部分と削除された部分だけを教えてください。新しい文言を引用し、両方に存在する定型文は無視してください。

顧客集中リスクに関する段落を静かに追加した企業は、大口顧客が不安定になっていることを示唆しています。主要サプライヤーに関する記述を削除した企業は、その関係が終了したことを示しています。これらがプレスリリースで報じられることは決してありません。弁護士がこれらの文章を書くのは、訴訟を恐れているからであり、恐怖は誰も二度読まないプレーンテキストの中に存在する情報なのです。

同じ差分比較は、MD&A(経営陣自身による年度の説明)や脚注にも有効です。エンロンの不正はすべて、オフバランスシート事業体に関する脚注にありました。物語は嘘でしたが、脚注は嘘ではありませんでした。

edgar-crawler リポジトリは、Risk Factors や MD&A といった項目セクションをクリーンな JSON に抽出することだけを目的として存在します。HTML を正規表現で解析する必要がなくなります。それが唯一の役割であり、それをうまく実行します。出力を差分比較ツールに入力してください。

自分で構築するよりも料金を払いたい場合、以下が実際にこのサービスを提供するツールの正直なマップです。

Hudson Labs(旧 Bedrock AI)

これはあまり知られていませんが、私が実際に料金を払っても良いと思う選択肢です。前年比較のレッドフラグ抽出を自動的に実行し、ゴーイングコンサーン(継続企業の前提)に関する文言、内部統制の重要な欠陥、関連当事者リスクを、こちらから依頼しなくても表面化します。料金は月額約 100 ドルからです。本気で書類を読むなら、このリストの中で最もコストパフォーマンスに優れています。

gemchanger - inline image

AlphaSense

機関投資家のデフォルトツールで、1 シートあたり約 15,000 ~ 20,000 ドルなので、事実上、会社が支払ってくれる場合のみ利用可能です。元役員や顧客への有料インタビューを数千件収録したライブラリ、Tegus を所有しています。合法的なインサイダー情報に限りなく近く、無料で再現することはできません。

gemchanger - inline image

Daloopa

モデル準備済みの財務データを取得でき、すべての数値が提出書類の正確な場所にハイパーリンクされています。この監査証跡こそが、本格的な DCF モデルを構築する人々がこれを使用する理由です。エンタープライズ向けの価格設定であり、モデリングが実際の仕事でない限り、オーバースペックです。

gemchanger - inline image

Fintool は AI ファーストで、米国株向けに構築されており、すべての情報に出典が明記され、さらに「サプライチェーン問題に新たに言及した企業があれば通知する」といった常時アラート機能もあります。

Hudson がフォレンジックすぎる、AlphaSense が高すぎるという場合の、適度な中間点です。

gemchanger - inline image

L3: 暗号通貨

次はトークンについてです。考え方はまったく同じです。

株式の場合、不正は発生利益額や脚注に隠れています。

暗号通貨の場合、不正は供給スケジュールと保有者集中度に隠れており、これらは両方とも無料で読み取れるパブリックチェーン上に存在します。

ここでの EDGAR に相当するのは DefiLlama です。

gemchanger - inline image

無料の API で、キーは不要です。基本的にすべてのプロトコルの TVL、手数料、収益、アンロックスケジュールをカバーしています。

プロトコルには、通常の企業に直接対応する 3 つの数値があります。

  • 手数料 = ユーザーが支払うすべての費用。これが総収益です。
  • 収益 = プロトコルが実際に保持する分。これが純収益です。
  • 利益 = 収益から、ユーザーを集めるために発行したトークンの費用を差し引いたもの。

Token Terminal は、これら手数料、収益、利益、暗号通貨版の PER 相当を、主要なすべてのチェーンにわたって標準化しています。

まさに「ブロックチェーン版ブルームバーグ」であり、この標準化作業は手作業ではやりたくない本物の価値です。ただし、月額約 350 ドルと個人には高額で、無料ティアと DefiLlama でほとんどのニーズは満たせます。

gemchanger - inline image

次に、フォレンジックスクリーニングの暗号通貨版とも言える 2 つの殺し屋指標です。

まずはアンロックスケジュール。

トークンはすべてがローンチ時に存在するわけではなく、チームや VC の割り当て分は数年かけて権利確定期間(ベスティング)を経ます。そして、それらがアンロックされると、ほぼ無料で参入した人々がようやくあなたに売りつけることができるようになります。経験則として、循環供給量の 5% を超える単一のアンロックはレッドフラグです。具体的には、Arbitrum の最初の大きなクリフアンロックでは、1 日で当時の循環供給量にほぼ等しい量の ARB が解放されました。開始時から保有していたクジラは個人投資家に売り抜けることができ、その日付は数ヶ月前からカレンダーに記載されていました。

3 つのパターンを把握しておきましょう。

  1. クリフ(崖): 一度に大量のトークンが放出される(衝撃的)。
  2. 線形ベスティング: 毎日少しずつ放出される(長期保有できる場合もある緩やかな減少)。
  3. アクティビティベースのエミッション: アクティビティに基づいて放出される。VC ウォレットへのクリフアンロックは、ポートフォリオを終わらせるタイプです。

次に、保有者集中度です。実際に誰がそのトークンを所有しているのか。少数のウォレットが供給量の大部分を保有しており、それらがチームや初期の VC ファンドとラベル付けされている場合、おめでとうございます。あなたは出口流動性(exit liquidity)として設計されています。

ここでウォレットラベリングツールが真価を発揮します。生のチェーンデータは、それが Jump Trading なのかチームのベスティングコントラクトなのかを誰かが教えてくれるまでは、単なる 0x....... の羅列だからです。

Arkham

ここから始めましょう。個人向けに無料であることが、他の本格的なプラットフォームにはない最大の強みです。匿名解除エンジンは本物であり、盗まれた数十億ドル相当のビットコインをハッキングまで公開追跡した企業です。同じエンティティ追跡を、関心のある任意のトークンに対して実行できます。「無料」であることが最大の利点です。とにかく使ってみてください。

Nansen

多数のチェーンにわたって、「スマートマネー」(早期発見と的中実績のあるウォレット)を追跡します。最近 Pro 価格を大幅に値下げし、月額約 49 ドルになりました。ラベルこそが製品のすべてであり、それらは優れていますが、資金が centralized exchange に到達した瞬間に追跡は途絶えます。本気でオンチェーントレーディングを行うなら価値があります。

Dune

10 万以上のコミュニティ作成 SQL ダッシュボードがあり、自分で SQL を一行も書かずにフォークして利用できます。無料ティアはほとんどの人にとって十分です。また、必要なダッシュボードはすでに誰かが作成しているので、自分で構築する前にまず探しましょう。

Messari は質の高い定性調査とレーティングを提供しています。価格設定は不透明でエンタープライズ向けですが、無料の調査レポートは読む価値があります。ただし、営業電話なしでは優良な情報は期待しないでください。

Tokenomist(旧 Token Unlocks)は、アンロック専用のカレンダーです。DefiLlama もアンロックをカバーしていますが、アンロックを利用したトレーディングが専門なら、こちらが特化型ツールです。

L4: 一つのシステム

これでピースは揃いました。株式と暗号通貨の両方で無料のデータ、フォレンジック計算式、書類の差分比較、オンチェーンスクリーニングが可能です。最後のレイヤーは、これらを 15 のタブをコピーペーストして回るのではなく、一つのマシンのように連携して動作させることです。

virattt/ai-hedge-fund は、それぞれ有名な投資家の哲学をモデルにした AI エージェントのチームであり、銘柄について議論し、最終的な判断を出力します。投資家ペルソナのアイデアは正直なところ一種のギミックであり、実際のお金を使ってリアルタイムで取引すべきではありません。

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

しかし、分析エージェントをどのように組織化するか、データ取得器をスクリーナーに、スクリーナーを推論エンジンにチェーンする方法についての無料のレッスンとしては、現在 GitHub 上で最も優れた教材です。

gemchanger - inline image

OpenBB は、オープンソースの Bloomberg ターミナルです。データベンダーを一度接続すれば、どこでも使用でき、MCP サーバーを介してエージェントが全体を操作できます。強力ですが、重量級であり、セットアップには実際の作業が必要で、データ品質は接続する無料ベンダーに完全に依存します。すべてを一つのコンソールで管理したい場合に価値がありますが、いくつかの銘柄をスクリーニングしたいだけならオーバースペックです。

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

gemchanger - inline image

FinGPT / FinRobot は、低コストでファインチューニング可能なオープンな金融向け LLM です。学術的には印象的であり、実際、ファインチューニングは人々が考えるよりも低コストです。

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

しかし、基本的にほとんどの人にとって、何かをファインチューニングする必要はありません。上記のプロンプトを使用したフロンティアモデルで十分です。

gemchanger - inline image

順序

まずツールレイヤー。EDGAR、FMP、DefiLlama をラップするファンクションコーリングまたは MCP サーバーにより、モデルが実際の数値を取得し、決して捏造しないようにします。これは絶対条件です。出典不明の財務数値を引用する AI は、アナリストではなく責任問題です。

次にスクリーニングレイヤー。フォレンジックスコアとオンチェーンチェックが、あなたのユニバースに入ってくるすべての銘柄に対して自動的に実行されます。

次に読み取りレイヤー。スクリーニングを通過したものに対して前年比較差分を実行します。

最後に統合。モデルはすべての主張に出典を付けたメモを作成し、あなたは 200 ページの代わりにそのメモを読みます。

モデルについては、Claude または GPT のどちらでも機能します。機密データを扱い、書類が自分のマシンから出ていかないようにしたい場合は、Ollama を介してローカルでオープンモデルを実行してください。モデル自体は参入障壁ではありません。真の参入障壁は、それをクリーンで検証済み、出典付きのデータに接続し、規律ある計算式を適用することです。

L5: L1 を構築する

ティッカーシンボルを渡すと、EDGAR から実際の書類を取得し、Beneish、Altman、Piotroski、発生利益率を計算します。キーを設定すれば、前年比較の Risk Factors 差分を実行し、1 段落の判定を書き出します。

python
1#!/usr/bin/env python3
2"""
3forensic_screener.py - 1 つのコマンドで、あらゆる企業をアナリストのように読み解く
4
5セットアップ:
6 pip install edgartools anthropic
7 export SEC_IDENTITY="Your Name [email protected]" # SEC はこのヘッダーを要求します
8 export ANTHROPIC_API_KEY="sk-..." # オプション、差分比較にのみ必要
9
10実行方法:
11 python forensic_screener.py AAPL
12 python forensic_screener.py TSLA NVDA SMCI # 複数の銘柄を同時にスクリーニング
13 python forensic_screener.py SMCI --diff # リスク要因の差分比較を追加
14"""
15
16import os, sys, argparse
17from dataclasses import dataclass
18
19# 閾値 - スタンスを変えるライン。必要に応じて調整してください。
20M_FLAG = -1.78 # Beneish がこれを上回る -> 操作リスク(標準的なカットオフは -2.22)
21Z_DISTRESS = 1.81 # Altman がこれを下回る -> 危険ゾーン
22Z_SAFE = 2.99 # Altman がこれを上回る -> 安全ゾーン
23ACCRUAL_BAD = 0.25 # |発生利益/総資産| がこれを上回る -> 収益の質に関するレッドフラグ
24F_STRONG = 6 # Piotroski がこの値以上 -> 財務体質強化中
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 """(今年度データ, 前年度データ) を返します。ネットワーク経由で SEC EDGAR を呼び出します。"""
36 from edgar import Company, set_identity
37 identity = os.environ.get("SEC_IDENTITY")
38 if not identity:
39 sys.exit("SEC_IDENTITY='Your Name [email protected]' を設定してください。SEC はこれを要求します。")
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 # ベストエフォート型の行検索。企業によって同じ項目のタグが異なります。
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 = 最新年度、col 1 = 前年度(edgartools は最新を先に並べます)
79 return build(0), build(1)
80
81def d(a, b): return a / b if b else 0.0 # 安全な除算
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 # 現金が発生利益を上回る
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 # 希薄化なし
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 """今年度と前年度の Risk Factors を比較します。このスタックで最も優れた単一の読み物です。"""
118 key = os.environ.get("ANTHROPIC_API_KEY")
119 if not key:
120 return "(スキップされました - 差分比較を有効にするには ANTHROPIC_API_KEY を設定してください)"
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 "連続する年次報告書からのこれら 2 つの Risk Factors セクションを比較してください。"
131 "今年度 NEW で追加されたもの、または REMOVED(削除)されたものだけを報告してください。新しい文言を引用してください。"
132 "両方に存在する定型文は無視してください。最後に一文で締めくくってください:ここにリスクを変えるものはありますか?\n\n"
133 f"前年度:\n{last_rf[:40000]}\n\n今年度:\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" 書類を読み込めませんでした: {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} - 利益操作リスク")
147 if z < Z_DISTRESS: flags.append(f"Z-Score {z:.2f} - 財務危険ゾーン")
148 if abs(a) > ACCRUAL_BAD: flags.append(f"発生利益率 {a:+.1%} - 収益の質に関するレッドフラグ")
149 if f < F_STRONG: flags.append(f"F-Score {f}/9 - 財務体質強化中ではない")
150
151 print(f" Beneish M : {m:+.2f} (> {M_FLAG} = 調査対象)")
152 print(f" Altman Z : {z:.2f} (< {Z_DISTRESS} 危険, > {Z_SAFE} 安全)")
153 print(f" Piotroski F: {f}/9 (>= {F_STRONG} 強固)")
154 print(f" Sloan Accr : {a:+.1%} (|x| > {ACCRUAL_BAD:.0%} レッドフラグ)")
155 print(f"\n 判定: {'調査対象' if flags else 'クリーン'}")
156 for fl in flags: print(f" - {fl}")
157 if do_diff:
158 print("\n リスク要因差分比較 (前年比):")
159 print(" " + risk_factor_diff(ticker).replace("\n", "\n "))
160
161def main():
162 ap = argparse.ArgumentParser(description="任意の米国上場企業向けフォレンジックスクリーナー")
163 ap.add_argument("tickers", nargs="+")
164 ap.add_argument("--diff", action="store_true", help="リスク要因の差分比較も実行します")
165 args = ap.parse_args()
166 for tk in args.tickers:
167 screen(tk, do_diff=args.diff)
168 print("\n注意: これは確率のフラグであり、証明ではありません。Beneish は前年度のデータに基づいて"
169 "計算されるため、不正操作はすでに解消されている可能性があります。悪いスコアはその書類を開くべきだという"
170 "意味であり、その数値だけでショートしてはいけません。\n")
171
172if __name__ == "__main__":
173 main()

公開前に計算式を確認しました。健全な数値のセットを入力すると、M は -2.24 付近でクリーン、Z は安全ゾーン、F は 9/9、発生利益率はゼロ近辺と、期待通りの結果を出力します。

あなたのマシンで必要なのは、リアルタイムの SEC 接続と差分比較用のキーだけです。タグのエイリアスは標準的な提出企業をカバーしています。特殊な企業の場合は、行を追加する必要があるかもしれませんが、その箇所はコメントで示してあります。

ワンクリック保存

YouMindでバイラル記事をAI深読み

ソースを保存し、的を絞った質問をし、主張を要約して、バイラル記事を再利用できるノートに変えます。すべてを1つのAIワークスペースで行えます。

YouMindを探索
クリエイターのために

あなたの Markdown をきれいな 𝕏 記事に

自分の長文を投稿するとき、画像・表・コードブロックを 𝕏 向けに整形するのは手間がかかります。YouMind は Markdown 全体を、そのまま投稿できるきれいな 𝕏 記事に変換します。

Markdown → 𝕏 を試す

解読すべきパターンをもっと

最近のバイラル記事

バイラル記事をもっと見る