earnings-trade-analyzer について
決算後の株価反応を分析し、決算ギャップや PEAD 候補を調べるトレーダー向けのスキルです。5要素の加重スコアで銘柄を評価し、ランク付きの JSON と Markdown レポートを作成します。
主な機能
- 01直近の決算銘柄をスクリーニング
- 025要素の加重スコアリング
- 03A〜Dのランク付け
- 04ギャップ、トレンド、出来高の報告
- 05JSON と Markdown レポートの出力
活用シーン
- 01決算後のモメンタム候補を抽出
- 02直近の決算反応を比較
- 03候補銘柄のスコアとランクを確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tradermonty/ claude-trading-skills --skill earnings-trade-analyzerインストール後、Claude Code で/earnings-trade-analyzerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
requirements.txtreferences/scoring_methodology.mdscripts/_fmp_compat.py_market_calendar.pyanalyze_earnings_trades.pyfmp_client.pyreport_generator.pyscorer.pyscripts/calculators/__init__.pygap_size_calculator.pyma200_calculator.pyma50_calculator.pypre_earnings_trend_calculator.pyvolume_trend_calculator.pyscripts/tests/conftest.pytest_cli_reports.pytest_earnings_trade_analyzer.pytest_fmp_client_historical.pytest_fmp_stable_migration.pytest_market_calendar_contract.py詳細
決算トレードアナライザー - 決算後の5要因スコアリング
5要因の加重スコアリングシステムを使って、決算発表後の直近の銘柄を分析し、モメンタムトレード候補として最も強い決算反応を特定します。
使用するタイミング
- 決算後のトレード分析や、決算ギャップのスクリーニングを依頼された場合
- 直近で最も優れた決算反応を探したい場合
- 決算モメンタムのスコアリングや評価を求められた場合
- 決算後の蓄積日(PEAD)候補について質問された場合
前提条件
- FMP API キー(環境変数
FMP_API_KEYを設定するか、--api-keyを渡します) - 無料枠(1日250回の呼び出し)で、デフォルトのスクリーニング(遡る期間2日、上位20銘柄)には十分です
- 遡る期間を長くする場合や、全銘柄をスクリーニングする場合は有料プランを推奨します
ワークフロー
ステップ 1:決算トレードアナライザーを実行する
アナライザースクリプトを実行します。
# Default: last 2 days of earnings, top 20 results
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py --output-dir reports/
# Custom lookback and market cap filter
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
--lookback-days 5 \
--min-market-cap 1000000000 \
--top 30 \
--output-dir reports/
# Deterministic anchor date (America/New_York); the window is anchored on the
# ET calendar date, not the runner's local clock. For reproducible runs/tests.
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
--as-of 2026-09-15 \
--output-dir reports/
# With entry quality filter
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
--apply-entry-filter \
--output-dir reports/
エンドポイントの機能低下/定期レビュー時の予算不足へのフォールバック
アナライザーが404を報告した場合、もっともらしくない空の決算カレンダーを返した場合、または取引終了後/市場開始前の定期実行でスコア付き候補を出力する前にAPI呼び出し予算を使い切った場合は、ただちに「決算反応なし」と報告しないでください。XNYSの取引日が少なくとも1日含まれる日付範囲で、正常な空のレスポンスが返された場合は、ZERO_RESULT_REASON=earnings_calendar_empty_with_market_sessions として終了コード1で終了します。共有XNYSカレンダーで期間を判定できない場合は、ZERO_RESULT_REASON=market_calendar_unavailable として終了コード1で終了します。プロファイルの取得中に予算を使い切るか、1日のレート制限に達した場合は、ZERO_RESULT_REASON=profiles_budget_exhausted として終了コード1で終了します。これらは何も起きなかった日ではなく、再試行またはフォールバックが必要な実行失敗として扱ってください。取引日がゼロの日付範囲で正常な空のレスポンスが返された場合のみ、ZERO_RESULT_REASON=no_earnings_rows として終了コード0で終了します。
- まず、流動性の高い銘柄に絞った設定で1回再試行し、完全な5要因スコアラーが処理を完了できるようにします。例:
python3 skills/earnings-trade-analyzer/scripts/analyze_earnings_trades.py \
--lookback-days 2 \
--min-market-cap 5000000000 \
--top 20 \
--max-api-calls 600 \
--output-dir reports/<routine-date>
- スコア付きの実行でも候補が返されない場合、または処理が完了できない場合は、互換性シムが使用する安定版エンドポイントで同じ期間を確認し、評価なしのフォールバックであることを明確に示します。
curl "https://financialmodelingprep.com/stable/earnings-calendar?from=YYYY-MM-DD&to=YYYY-MM-DD&apikey=$FMP_API_KEY"
その後、必要に応じてアナライザーの安定版優先FMPクライアント、または銘柄ごとの /stable/quote?symbol=<ticker> 呼び出しを使って米国のティッカーを補足し、同日の changesPercentage、時価総額、流動性に基づいて順位付けできます。レガシーの /api/v3 株価情報呼び出しは、安定版での取得に失敗した場合に限り、レガシーキーのフォールバックとして使用してください。5要因スコアラーが実行されていないため、これらは 予備的/評価なしの反応 として提示し、フォールバック結果だけでA/B/C/Dの評価を付けないでください。
候補なし出力時の注意点: アナライザーは Candidates after filtering: 0 / No candidates found matching criteria. を出力して、正常終了する一方で、earnings_trade_analyzer_*.json ファイルを書き出さないことがあります。その場合、存在しない候補ファイルを使ってPEAD Mode Bを実行しないでください。スコア付きアナライザーのJSONが生成されなかったことを明示し、定例レポートに決算セクションが必要な場合は、上記のエンドポイント/株価情報の補足フォールバックを実行し、銘柄名は手動レビュー専用としてください。この正常終了パスは、プロファイルの取得中に予算を使い切るケースには該当しません。その場合は終了コード1(ZERO_RESULT_REASON=profiles_budget_exhausted)で終了します。
空のウィンドウと当日のみの実行
決算カレンダーのウィンドウには開始日と終了日が含まれ、--as-of(または現在の ET 日付)の America/New_York カレンダー日付を使用します。プロバイダーからの正常な [] は、共有 XNYS カレンダーでそのウィンドウ内の取引所セッションがゼロと正常に判定された場合(週末や祝日など)に限り、問題のない静穏期間の結果となります。ウィンドウに XNYS セッションが含まれる場合、同じ正常な [] でも ZERO_RESULT_REASON=earnings_calendar_empty_with_market_sessions とともに終了コード 1 で終了し、プロバイダーのデータ欠落が静穏日として報告されるのを防ぎます。XNYS カレンダーを照会できない場合も、実行は ZERO_RESULT_REASON=market_calendar_unavailable とともに終了コード 1 で終了します。
--lookback-days 0 は有効で、ET の基準日を正確に 1 日だけ照会します。関連する発表が公開された後(通常は取引終了後)に使用してください。XNYS セッション中の空の応答は、意図的にフェイルクローズのままです。symbol を持たない行を含む空でない応答では、個別の ZERO_RESULT_REASON=no_earnings_rows の動作が維持されます。このケースは、上記の文字どおりの空リストに対するセッションチェックとは異なります。
ステップ 2:結果を確認する
- 生成された JSON および Markdown レポートを読みます
- スコアの解釈に関する背景情報として
references/scoring_methodology.mdを読み込みます - 実行可能なセットアップについて、グレード A および B の銘柄に注目します
ステップ 3:分析を提示する
上位候補ごとに、以下を提示します。
- 複合スコアとレターグレード(A/B/C/D)
- 決算ギャップの大きさと方向
- 決算前 20 日間のトレンド
- 出来高比率(20 日平均と 60 日平均の比較)
- 200 日および 50 日移動平均線に対する位置
- スコア構成要素のうち、最も弱いものと最も強いもの
ステップ 4:実行可能な指針を提示する
グレードに基づいて、以下のように判断します。
- グレード A(85 以上): 機関投資家の買い集めを伴う強い決算反応です。エントリーを検討してください
- グレード B(70~84): 注目に値する良好な決算反応です。押し目または確認を待ってください
- グレード C(55~69): シグナルが混在しています。慎重に判断し、追加の分析が必要です
- グレード D(55 未満): セットアップが弱い状態です。回避するか、より良い条件を待ってください
出力
earnings_trade_analyzer_YYYY-MM-DD_HHMMSS.json- schema_version "1.0" の構造化された結果earnings_trade_analyzer_YYYY-MM-DD_HHMMSS.md- 表を含む、人が読みやすいレポート
決算発表時刻が不明な場合
FMP はすべての決算行について bmo/amc のセッションを確認できるわけではありません。確認されていない行では earnings_timing: "unknown" が報告され、ギャップ計算ではフォールバックとして AMC の時間帯が想定されます。両方のレポートで timing_candidates_total のうちの timing_unknown_count が示されるため、この想定がスコアに気付かないうちに混ざることなく、明示されます。
リソース
references/scoring_methodology.md- 5 要素のスコアリングシステム、グレードのしきい値、エントリー品質フィルターのルール