financial-analysis について
financial-analysisは、ポートフォリオ保有者や個別株を調べる人向けの、複数ソースを使う株式分析スキルです。APIやRSSのデータとローカル計算を組み合わせ、保有銘柄のレビュー、銘柄候補の検索、個別株の詳細分析を行い、呼び出し制限やフォールバックも管理します。
主な機能
- 01金融APIとRSSデータの集約
- 02ポートフォリオレビューと候補検索
- 03株式評価と目標価格の提示
- 04テクニカル指標と総合スコアのローカル計算
- 05呼び出し制限、ログ、APIフォールバックの管理
活用シーン
- 01保有銘柄を確認して売買評価を得る
- 02ポートフォリオ追加候補やスイングトレード候補を探す
- 03個別株のファンダメンタルズ、テクニカル、センチメントを調べる
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ geogons/ skill-financial-analyst --skill financial-analysisインストール後、Claude Code で/financial-analysisを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
requirements.txtREADME.mdQUICKSTART.mdLICENSE.gitignoresetup.shreferences/api_setup_guide.mdscripts/api_caller.pydata_cache.pydata_fetchers.pyentry_exit.pyrss_feeds.pymacro_calendar.pyapi_config.pyusage_tracker.pysector_rotation.pyscoring.pyrun_daily_scanner.pyrun_deep_dive.pyrun_portfolio_review.pytechnical_analysis.pytests/test_skill.pytest_enhanced_report.py詳細
金融分析スキル
14 以上の無料 API と 20 以上の RSS フィードからデータを集約し、実用的な売買評価と目標株価を含む、プロフェッショナル品質の株式分析を生成するマルチソース金融分析エンジンです。
初回セットアップ
このスキルを使用する前に、API セットアップガイドを読み、API キーを設定してください。
Read references/api_setup_guide.md
次に、設定を初期化してください。
python scripts/api_config.py init
python scripts/api_config.py status
Python の依存関係をインストールしてください。
pip install yfinance feedparser pandas pandas-ta requests --break-system-packages
アーキテクチャの概要
financial-analysis/
├── SKILL.md # This file — main instructions
├── scripts/
│ ├── api_config.py # API registry, keys, fallback chains
│ ├── usage_tracker.py # Rate limit enforcement, logging, reports
│ ├── api_caller.py # Resilient caller with auto-fallback
│ └── rss_feeds.py # RSS feed catalog and parser
└── references/
└── api_setup_guide.md # Step-by-step key setup + rate limits
API システムの仕組み
すべての API 呼び出しは scripts/api_caller.py を経由し、次の処理を行います。
- 呼び出し前にレート制限を確認します(分単位、日単位、月単位)。
- IP ブロックを避けるため、呼び出しの間に遅延を設けます。
- すべての呼び出しを
~/.financial-analysis/logs/api_usage.jsonlに記録します。 - 失敗した場合:
error_log.jsonlに記録し、フォールバックチェーンの次の API を試します。 - すべて失敗した場合:各試行の詳細を含むエラーを返します。
scripts/usage_tracker.py のトラッカーは使用状況を集計し、次の情報を生成します。
- API ごとの無料利用枠の消費率(%)を示す日次使用状況レポート
- 失敗した API と、正常に機能したフォールバックを示すエラーレポート
- いずれかの API が無料利用枠の 70% を超えた場合の有料プランの推奨
フォールバックチェーン
各データカテゴリには、優先順位が設定された API チェーンがあります。プライマリ API が失敗した場合、またはレート制限に達した場合は、次の API が自動的に試されます。チェーンは scripts/api_config.py → FALLBACK_CHAINS で定義されています。主なチェーンは次のとおりです。
| データカテゴリ | プライマリ → フォールバック |
|---|---|
| 株価履歴 | yfinance → Polygon → Alpha Vantage → FMP |
| 財務諸表 | yfinance + SEC EDGAR → Finnhub → FMP |
| アナリスト評価 | Finnhub → yfinance → SA RapidAPI → Mboum |
| インサイダー取引 | SEC EDGAR → Finnhub → Mboum → yfinance |
| 議員の取引 | Mboum → Quiver(有料) |
| テクニカル指標 | Alpha Vantage → Mboum → Polygon → FMP |
| ニュースのセンチメント | Finnhub → Alpha Vantage → Alpaca |
| Reddit のセンチメント | ApeWisdom → StockTwits |
3 つのユースケース
このスキルは、用途の異なる 3 つのワークフローに対応しています。ユーザーがそのうちの 1 つを依頼します(または、状況に応じて適切なものを提案できます)。
ユースケース 1:週次ポートフォリオレビュー
トリガー:ユーザーが PDF、CSV、または現在保有している銘柄のリストを提示し、レビュー、分析、または買い/保有/売りの推奨を求めた場合。
入力:ポートフォリオの保有銘柄(ティッカーシンボル + 任意の保有数量/取得原価) 出力:銘柄ごとの評価(買い/保有/一部売却/売り)、信頼度スコア、3 つの買いエントリー水準、3 つの売却目標価格、および主な理由。 頻度:週 1 回(日曜日/月曜日)
ワークフロー
以下のフェーズを順番に実行します。すべての API 呼び出しで scripts/api_caller.py の call_with_fallback() を使用し、自動フォールバックとログ記録を有効にします。
フェーズ A — データ収集(ポートフォリオ内の各ティッカーについて):
- 現在価格と過去 1 年分の日次 OHLCV 履歴を取得します(yfinance)
- 四半期財務諸表を取得します:損益計算書、貸借対照表、キャッシュフロー計算書(yfinance + SEC EDGAR)
- アナリスト評価のコンセンサスを取得します:買い/ホールド/売りの件数(Finnhub)
- 過去 90 日間のインサイダー取引を調査します:Form 4 提出書類(SEC EDGAR)
- インサイダーセンチメントスコアを確認します:MSPR(Finnhub)
- 期近オプションチェーンを取得します(yfinance)
- ニュースセンチメントを取得します(Finnhub + Alpha Vantage)
- 1 回の呼び出しで取得します:Reddit のトレンドティッカーと言及速度(ApeWisdom)
- 1 回の呼び出しで取得します:最近の議会議員による取引(Mboum)
- 1 回の呼び出しで取得します:今後の決算カレンダー(Finnhub)
フェーズ B — テクニカル分析(pandas-ta を使用してローカルで計算。API 呼び出しなし):
- SMA/EMA 一式(10/20/50/100/200)
- RSI(14)、MACD(12,26,9)、ボリンジャーバンド(20,2)
- ストキャスティクス・オシレーター、ADX
- 出来高分析 + OBV
- ピボットポイント(クラシック + フィボナッチ)
- 直近のスイングを基にしたフィボナッチ・リトレースメント + エクステンション
- ポジションサイジング用の ATR
フェーズ C — スコアリング(すべてローカルで計算):
- ファンダメンタルスコア(0-100):売上成長率、利益率、FCF、各種比率、同業他社との比較
- テクニカルスコア(0-100):トレンド、モメンタム、ボラティリティ、サポート/レジスタンスの位置
- センチメントスコア(0-100):アナリスト + インサイダー + 議会 + ニュース + ソーシャル
- 総合スコア:ファンダメンタル 40% + テクニカル 30% + センチメント 30%
- 評価:75-100 = 買い · 40-74 = ホールド · 0-39 = 縮小/売却
フェーズ D — 出力生成(ティッカーごと):
| 項目 | 説明 |
|---|---|
| 評価 | 買い / ホールド / 縮小 / 売却 |
| 総合スコア | 0-100 |
| 確信度 | 強い / 中程度 / 弱い(各フェーズの一致度に基づく) |
| エントリー 1(積極的) | 現在価格(確信度が高い場合) |
| エントリー 2(中程度) | 最寄りのサポート/フィボナッチ 38.2% |
| エントリー 3(保守的) | 強いサポート/フィボナッチ 61.8% |
| 目標 1(T1) | 最寄りのレジスタンス/フィボナッチ・エクステンション 127.2% |
| 目標 2(T2) | 主要なレジスタンス/フィボナッチ・エクステンション 161.8% |
| 目標 3(T3) | 全エクステンション/フィボナッチ・エクステンション 261.8% |
| 損切り | 主要なサポートを下回る水準、または ATR の 1.5 倍 |
| 主な上昇要因 | 強気材料の上位 3~5 件 |
| 主なリスク | 弱気リスクの上位 3~5 件 |
すべてのティッカーの分析が完了したら、使用状況レポートを実行します:
from scripts.usage_tracker import get_tracker
get_tracker().print_daily_report()
get_tracker().save_daily_summary()
ユースケース 2:毎日の投資機会スキャナー
トリガー:ユーザーが新たな銘柄候補の検索、投資機会のスキャン、またはスイングトレード銘柄の特定を依頼した場合。
入力:ユーザーのポートフォリオ方針(例:「成長」「バリュー」「インカム」)と、重複を避けるための任意の現在の保有銘柄。 出力:ポートフォリオへの追加候補上位 5 件 + スイングトレード候補上位 5 件。それぞれにスコア、3 つのエントリー価格、3 つの決済価格を含めます。 頻度:毎日(市場が開く前)
ワークフロー
フェーズ A — ソース集約(幅広く情報を収集します):
scripts/rss_feeds.py→scan_all_feeds()を使って、Tier 1 と Tier 2 のすべての RSS フィードをスキャンします。全フィードで言及されたティッカーを抽出します。- 手順 1 の上位 5 件のティッカーについて、Seeking Alpha のティッカー別 RSS を取得します。
- Reddit のトレンドティッカー(ApeWisdom)を取得し、RSS での言及と照合します。
- 重複する上位 10 件のティッカーについて、StockTwits のセンチメントをスキャンします。
- 新たな議会取引(Mboum)を確認します。
- 今後 5 日間の決算予定(Finnhub)を取得します。
フェーズ B — スクリーニング(候補を上位 20 件に絞り込みます): 7. 上位 20 件の候補について、ニュースのセンチメントを調べます(Finnhub)。 8. 上位 5 件について、SA の定量評価とファクターグレードを取得します(SA RapidAPI)。 9. 上位 5 件について、AI センチメントスコアを取得します(Alpha Vantage — 1 日あたり 25 件のうち 5 件)。 10. 株価と出来高をスクリーニングします(yfinance)— 52 週レンジ内の位置、平均比の出来高。 11. 上位 10 件について、財務健全性を確認します(yfinance)— 売上高成長率、利益率、PER。 12. 上位 10 件について、アナリストのコンセンサスを取得します(Finnhub)。 13. 上位 10 件について、インサイダーの動向を確認します(SEC EDGAR)。
フェーズ C — 分析(上位 10 件の候補について): 14. サポート/レジスタンス水準とエントリー/エグジット目標を算出します(ローカルで pandas-ta を使用)。 15. 上位 5 件について、異常なオプション取引の動向を確認します(Mboum)。 16. マルチファクターのスコアリングと最終順位付けを行います(ローカルで計算)。
フェーズ D — 出力:
2 つのリストを提示します。
ポートフォリオへの追加(成長志向、長期保有向け):
- ティッカー、スコア、評価、3 つのエントリー、3 つのエグジット、損切り、リスク・リワード比、カタリスト
スイングトレード(モメンタムベース、短期保有向け):
- ティッカー、スコア、評価、3 つのエントリー、3 つのエグジット、損切り、リスク・リワード比、カタリスト、時間軸
ユースケース 3:オンデマンドの株式詳細分析
トリガー:特定の株式の分析、ティッカーの詳細分析、または「X を買うべきですか?」という質問をユーザーがした場合。
入力:1~10 件のティッカー
出力:ティッカーごとの、Buy/Watch·Hold/Sell 評価、3 つのエントリー、3 つのエグジット、包括的な分析を含む、アナリスト水準の詳細レポート。
ワークフロー
最も詳細な分析で、利用可能なすべてのデータソースを照会します。4 つのフェーズで、ティッカーあたり約 30 回の API 呼び出しを行います。
フェーズ A — ファンダメンタルズ(ティッカーごとに 11 ステップ): 企業概要、過去 5 年間の損益計算書、四半期ごとの収益動向、貸借対照表、キャッシュフロー、SEC EDGAR の XBRL データによるクロス検証、主要比率の算出(PER/PBR/PSR/PEG/EV-EBITDA/ROE/ROA/D-E/FCF 利回り)、同業他社との比較(5 社)、決算履歴と予想との差異、次回決算日、配当履歴。
フェーズ B — テクニカル分析(17 ステップ、大半は pandas-ta を使ったローカル処理): 過去 2 年間の日次価格履歴と過去 6 か月間のイントラデイ価格履歴、SMA/EMA 一式、RSI、MACD、ボリンジャーバンド、ストキャスティクス、ADX、出来高と OBV、VWAP、ピボットポイント、フィボナッチ・リトレースメント、フィボナッチ・エクステンション、出来高プロファイル、ATR、一目均衡表。Alpha Vantage API を使って 2 つの指標をクロス検証します。
フェーズ C — センチメントと代替データ(16 ステップ): アナリスト評価のコンセンサス(Finnhub)、目標株価(yfinance)、インサイダーの Form 4 提出書類(SEC EDGAR)、インサイダー MSPR(Finnhub)、議会取引(Mboum)、機関投資家の保有状況(yfinance)、空売り比率、ニュースセンチメント(Finnhub + AV AI)、Reddit での言及(ApeWisdom)、StockTwits のセンチメント、SA の定量評価とファクターグレード(SA RapidAPI)、SA のティッカー別記事(RSS)、オプションの取引フロー(yfinance)、異常なオプション取引(Mboum)、最近の SEC 提出書類のスキャン。
フェーズ D — スコアリングと出力(12 ステップ、すべてローカル処理): ファンダメンタルスコア(0~100)、テクニカルスコア(0~100)、センチメントスコア(0~100)、総合スコア(加重比率 40/30/30)、評価の決定(Buy ≥75/Watch·Hold 40-74/Sell <40)、3 つのエントリーレベル、3 つのエグジット目標、損切り、リスク・リワード比、信頼度、主なカタリスト、主なリスク。
調査結果をすべて含む、ティッカーごとの包括的なレポートを出力します。リスク・リワード比が 2:1 以上の取引のみを推奨します。
エラー処理
API 呼び出しが失敗した場合、システムは次の処理を行います。
- エラーを記録します。タイムスタンプ、API、カテゴリ、エラーメッセージを
~/.financial-analysis/logs/error_log.jsonlに記録します。 - フォールバックを試行します。そのデータカテゴリで次に使う API に切り替えます。
- フォールバックの結果を記録します。使用したフォールバックと、その成功の有無を記録します。
- すべてのフォールバックが失敗した場合は、利用可能なデータを使って処理を続け、出力に不足しているデータを記載します。
エラーの確認
python scripts/usage_tracker.py errors # Last 7 days
python scripts/usage_tracker.py errors 30 # Last 30 days
よくあるエラーと対処法
| エラー | API | 対処法 |
|---|---|---|
| 429 Too Many Requests | yfinance | 待機時間を5秒に延ばします。バッチサイズを小さくします。 |
| 429 Rate Limited | Alpha Vantage | 1日あたり25回の上限に達しました。待つか、ローカルでpandas-taを使用します。 |
| 403 Forbidden | SEC EDGAR | 設定ファイルにUser-Agentのメールアドレスを設定します。 |
| API key invalid | Any | ~/.financial-analysis/api_keys.jsonを確認します。 |
| Connection timeout | Any | 自動フォールバックが作動します。インターネット接続を確認します。 |
使用状況レポートと有料プランの推奨
各ワークフローの実行後、使用状況トラッカーが日次サマリーを保存します。いずれかのAPIの無料枠の70%を超えると、有料プランを推奨します。
python scripts/usage_tracker.py daily # See today's report
python scripts/usage_tracker.py summary # Save JSON summary
サマリーにはAPIごとに、今日/今月の呼び出し回数、無料枠に対する使用率、エラー数、重大度の評価(SAFE/WARNING/CRITICAL)が含まれます。
アップグレードが必要になる可能性が高いAPI(順):
- Alpha Vantage(1日25回) — 最初に上限に達します。アップグレード:月額$29.99
- Mboum(月600回) — 3つすべてのユースケースを毎日実行する場合は余裕がありません。アップグレード:月額$9.95
- SA RapidAPI(月1K回) — 詳細な調査を頻繁に行う場合は余裕がありません。RapidAPIの料金を確認してください。
重要事項
- このスキルはデータに基づく分析を提供するものであり、金融アドバイスではありません。必ずご自身でデューデリジェンスを行ってください。
- yfinanceは非公式のライブラリです。データが遅延したり、一時的に利用できなくなったりする場合があります。
- SEC EDGARのデータは信頼性の高いものですが、解析が必要です。
- すべてのタイムスタンプは、分析対象の市場のタイムゾーン(米国株の場合は米国東部時間)です。
- スコアリングシステムの重みは、ユーザーの好みに応じて調整できます。