mcpField
E
earnings-recap

earnings-recap

github.com/himself65データ・データベース3.5k3.4k 回インストール4 日前に更新
リポジトリ

earnings-recap について

yfinanceを使って決算結果、予想との差、株価反応、最近の財務推移を分析する、金融リサーチ担当者や投資家向けのスキルです。実績と予想の比較を軸に、投資推奨を含めず事実を整理します。

主な機能

  1. 01実績EPSと予想の比較
  2. 02EPSサプライズの規模
  3. 03決算前後の株価反応
  4. 04最近の売上高・利益率の推移
  5. 05アナリスト評価と財務情報

活用シーン

  1. 01企業の最新決算の振り返り
  2. 02当四半期と過去の業績の比較
  3. 03決算発表後の市場反応の評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/himself65/finance-skills --skill earnings-recap

インストール後、Claude Code で/earnings-recapを入力して読み込まれたか確認します。

同梱ファイルREADME.mdreferences/api_reference.md

詳細

決算振り返りスキル

ホストが以下のシェルプローブをまだ実行していない場合(たとえば、Codex の場合)、セットアップ方法を選ぶ前に、シェルツールを使って ! ラッパー内のコマンドを実行してください。実際の出力を使用してください。シェルにアクセスできない場合は、その制限を報告してください。

yfinance 経由で Yahoo Finance のデータを使用して、決算発表後の分析を生成します。実績と予想の数値、サプライズの規模、株価の反応、財務状況を取り上げ、何が起きたのかを包括的に説明します。

重要:データは調査および教育目的に限られます。金融に関する助言ではありません。yfinance は Yahoo, Inc. と提携していません。


ステップ 1:yfinance が利用可能であることを確認する

現在の環境の状態:

!`python3 -c "exec('try:\n import yfinance\n print(\'yfinance \' + yfinance.__version__ + \' installed\')\nexcept Exception:\n print(\'YFINANCE_NOT_INSTALLED\')')"`

YFINANCE_NOT_INSTALLED の場合は、インストールしてください。

import subprocess, sys
subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", "yfinance"])

すでにインストールされている場合は、次のステップに進んでください。


ステップ 2:ティッカーを特定してデータを収集する

ユーザーのリクエストからティッカーを抽出します。関連する決算発表後のデータをすべて、1 つのスクリプトで取得してください。

import yfinance as yf
import pandas as pd

ticker = yf.Ticker("AAPL")  # replace with actual ticker

# --- Earnings results ---
earnings_dates = ticker.get_earnings_dates(limit=12)  # report timestamps, newest first
earnings_hist = ticker.earnings_history               # last 4 quarters, indexed by fiscal quarter-end, oldest first

# --- Financial statements (about five quarters, newest first) ---
quarterly_income = ticker.quarterly_income_stmt
quarterly_cashflow = ticker.quarterly_cashflow
quarterly_balance = ticker.quarterly_balance_sheet

# --- Context ---
info = ticker.info
news = ticker.news
recommendations = ticker.recommendations
抽出するデータ
データソース主なフィールド目的
get_earnings_dates()Earnings Date、EPS Estimate、Reported EPS、Surprise(%)対象の決算発表、その時期、予想超過または未達の確認
earnings_historyepsEstimate、epsActual、epsDifference、surprisePercent会計四半期ごとの直近 4 四半期の実績
quarterly_income_stmtTotalRevenue、GrossProfit、OperatingIncome、NetIncome、BasicEPS実際の財務数値
history()各決算発表前後の日次終値株価の反応
infocurrentPrice、marketCap、forwardPE現在の状況
news最近の見出し決算関連のニュース

ステップ 3:決算発表を特定して反応を測定する

earnings_history は発表日ではなく会計四半期末をインデックスにしているため、決算発表の時期は get_earnings_dates() から取得してください。直近の発表は、Reported EPS が記載された最新の行です。そのタイムスタンプ(米国東部時間)で反応を測る時間帯を決めます。16:00 以降なら会社は取引終了後に発表しており、それより前なら寄り付き前、または場合によっては取引時間中の発表です。ユーザーが特定の四半期について尋ねている場合は、該当する行を使用してください。

def earnings_reaction(ticker, report_ts):
    """% move from the last close before the report to the first close after it."""
    daily = ticker.history(start=(report_ts - pd.Timedelta(days=10)).date(),
                           end=(report_ts + pd.Timedelta(days=10)).date())
    closes = daily["Close"]
    days = closes.index.date
    d = report_ts.date()
    if report_ts.hour >= 16:  # reported after the close: report-day close -> next close
        pre, post = closes[days <= d], closes[days > d]
    else:                     # before the open or intraday: prior close -> report-day close
        pre, post = closes[days < d], closes[days >= d]
    if pre.empty or post.empty:
        return None           # the reaction session hasn't closed yet
    return (post.iloc[0] / pre.iloc[-1] - 1) * 100

reported = earnings_dates[earnings_dates["Reported EPS"].notna()]
latest_ts = reported.index[0]
reaction_pct = earnings_reaction(ticker, latest_ts)

# Typical earnings-day move over the prior four reports
prior_moves = [earnings_reaction(ticker, ts) for ts in reported.index[1:5]]
avg_abs_move = pd.Series([abs(m) for m in prior_moves if m is not None]).mean()

reaction_pct が None の場合、決算発表は直近の取引終了後です。通常取引時間中の反応はまだ出ていないことを伝えてください(ユーザーが希望する場合は、日中の history(..., prepost=True) 呼び出しで時間外の値動きを確認できます)。


ステップ 4:決算を振り返る

結果から始めて、以下の項目を取り上げてください。

  1. 決算結果の要点 — EPS の実績と予想、サプライズ率、売上高と前年同期比の成長率、株価の反応。
  2. 予想と実績の比較 — 該当四半期の EPS 予想、実績、サプライズ額(ドルおよびパーセント)。
  3. 四半期ごとの傾向 — 直近の四半期の売上高、粗利益率、営業利益率、EPS。利益率は財務諸表から算出してください(粗利益 ÷ 売上高、営業利益 ÷ 売上高)。yfinance が返すのは通常約 5 四半期分なので、前年同期比の成長率を示せるのは最新四半期のみです(列 0 と列 4 の比較)。それ以外は比較を作り上げず、前四半期比の変化を示してください。
  4. 株価の反応 — 反応があった取引時間中の値動き、直近 4 回の決算発表における平均絶対値ベースの値動きとの比較、その後株価が値動きを維持したか、値を戻したか、さらに上昇・下落したか。
  5. 変化した点 — 前四半期比での利益率の方向性、売上高成長の軌道に変化があったか、今回のサプライズが同社の通常の傾向と比べてどうか、入手可能な場合は現在のアナリストの見方。

ステップ 5:ユーザーに回答する

まず、対象の四半期、発表日、予想を上回ったか下回ったか、売上高の伸び、発表後の反応を見出しで伝え、その後に裏付けとなる表を示します。重要な点を述べます。今回の結果が意味のある上振れだったのか、それとも低いハードルをクリアしたにすぎないのか、また、傾向が改善しているのか悪化しているのかを示してください。事実に基づいて記述し、投資判断の推奨は含めないでください。

該当する注意事項も含めてください。Yahoo Finance のデータには、決算説明会での情報(業績見通し、セグメント別の詳細など)がすべて反映されるわけではありません。売上高は売上高コンセンサスとの比較ではなく、財務諸表に基づく前年同期比で比較します。株価の反応には、その日の市場全体の動きが影響している可能性があります。また、これは財務上の助言ではありません。


参考ファイル

  • references/api_reference.md — 決算履歴および財務諸表メソッドに関する yfinance API の詳細なリファレンス

財務データの正確なメソッドシグネチャを確認するときや、エッジケースに対応するときは、リファレンスファイルを参照してください。

コメント