mcpField
F
Finance Toolkit

Finance Toolkit

リモート
github.com/JerBouma開発ツール5.5k2 日前に更新
リポジトリ

Finance Toolkit について

Finance Toolkitは、PythonユーザーやMCP対応アシスタント向けのオープンソース金融分析ツールキットです。数百種類の指標について計算方法を公開し、複数の資産クラスの過去データ、財務諸表、リスク指標、市場情報を扱えます。

主な機能

  1. 01500以上の金融計算手法
  2. 02財務諸表と80以上の比率分析
  3. 03テクニカル指標とリスク指標の取得
  4. 04株式、ファンド、通貨などに対応
  5. 05銘柄と市場情報の検索

活用シーン

  1. 01企業の財務比率の比較
  2. 02過去のリターンとテクニカル指標の確認
  3. 03ポートフォリオのリスクとパフォーマンス測定
  4. 04MCPクライアントから金融手法を照会

MCP 対応

MCPサーバーはClaude、Copilot、Cursor、Windsurfなどの対応クライアントに、Finance Toolkitの500以上の手法を公開します。ホスト型エンドポイントまたはローカル設定で利用できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://financetoolkit.jeroenbouma.com/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
pypifinancetoolkit2.1.2

ツール

25
パラメーター型必須説明
benchmark_tickerstringいいえ
daysanyいいえ
end_datestringいいえ
growthbooleanいいえ
indicatorenumはいget_days_of_inventory_outstanding | get_days_of_sales_outstanding | get_operating_cycle | get_days_of_accounts_payable_outstanding | get_cash_conversion_cycle | get_cash_conversion_efficiency | get_receivables_turnover | get_inventory_turnover_ratio | get_accounts_payables_turnover_ratio | get_sga_to_revenue_ratio | get_fixed_asset_turnover | get_asset_turnover_ratio | get_operating_ratio
laganyいいえ
quarterlybooleanいいえ
roundinganyいいえ
start_datestringいいえ
tickersstringいいえ
trailinganyいいえ

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

FinanceToolkit

GitHub Sponsors Buy Me a Coffee LinkedIn MCP Server Download MCP Bundle Smithery Glama Documentation Supported Python Versions PYPI Version PYPI Downloads

さまざまなウェブサイトを閲覧する中で、同じ財務指標でも情報源によって大きく数値が異なることに何度も気付きました。同様に、報告されている財務諸表の数値が一致しないことも多く、各指標の算出に用いられた手法に関する情報も限られていました。

たとえば、2023年5月6日時点のMicrosoftの株価収益率(PE比率)は、Stockopediaでは28.93、Morningstarでは32.05、Macrotrendsでは32.66、Finance Chartsでは33.09、Y Chartsでは33.66、Wall Street Journalでは33.67、Yahoo Financeでは33.80、Companies Market Capでは34.4と報告されています。これらの計算はすべて正しいものの、算出方法が異なるため、結果にも違いが生じます。そのため、複数の情報源からデータを収集すると、一方の情報源が他方とは異なる定義を適用している可能性があり、結果を誤って解釈するおそれがあります。しかも、その定義さえ確認できるとは限りません。多くの場合、基礎となる算出方法は有料サブスクリプションの利用者にしか公開されていないからです。

こうした理由から、FinanceToolkitを開発しました。これは、関連するすべての財務手法(500以上)をできるだけ分かりやすく記述し、算出方法を完全に透明化するオープンソースのツールキットです(証明)。これにより、算出方法を公開していない他のプロバイダーの指標に依存せずに済みます。豊富な財務諸表を活用することで、計算を効率化し、一貫性があり、広く理解されている手法や計算式の採用を促進できます。

株式に加えて、オプション、通貨、暗号資産、ETF、投資信託、指数、短期金融市場、コモディティ、主要な経済指標などにも対応しており、過去のデータに加え、シャープレシオやバリュー・アット・リスクなどの重要なパフォーマンス指標やリスク指標も取得できます。

これを補完するのがFinance Database 🌎です。株式、ETF、ファンド、指数、通貨、暗号資産、短期金融市場を含む、300,000以上のシンボルを収録したデータベースです。両方を活用すれば、FinanceDatabaseから取得したティッカーをFinanceToolkitに入力し、本格的な競合分析を実施できます。


🔌 Finance ToolkitはMCP サーバーとしても利用できます

コードを書かずに、Claude、Copilot、Cursor、Windsurf、またはMCP対応クライアントから500以上の手法を呼び出せます。

  • ホスト型: https://financetoolkit.jeroenbouma.com/mcp に接続してください。初回利用時にOAuthが自動で設定されます。
  • ローカル: uvx --from "financetoolkit[mcp]" financetoolkit-mcp-setup を実行すると、クライアント設定とAPIキーが自動的にセットアップされます。手動でのセットアップについては、MCP サーバーのドキュメントをご覧ください。

Smithery、Glama、MCP Serversなどでも利用できます。


目次

  1. インストール
  2. 機能
  3. MCP サーバー
  4. 質問と回答
  5. 貢献
  6. 掲載情報
  7. 連絡先

インストール

インストールの前に、GitHub でこのプロジェクトにスターを付けることをご検討ください。ほかの人がこのプロジェクトを見つけやすくなります。

画像

Finance Toolkit のインストールには、次のコマンドを実行するだけです。

pip install financetoolkit -U

その後、Python で次のように実行します。

from financetoolkit import Toolkit

companies = Toolkit(
    tickers=['AAPL', 'MSFT'],
    api_key="FINANCIAL_MODELING_PREP_KEY",  # replace with your actual API key
)

利用を開始するには、FinancialModelingPrep から API キーを取得する必要があります。このキーを使用すると、年次および四半期ごとの 30 年分以上の財務諸表データにアクセスできます。無料プランでは、1 日あたりのリクエスト数が 250 件、データ期間が 5 年に制限され、米国の取引所に上場している企業のみが対象となります。


FinancialModelingPrep の API キーはこちらから取得できます。


このリンクから、無料プランおよびプレミアムプランを15%割引で契約できます。これはアフィリエイトリンクであり、同時にプロジェクトの支援にもつながります。私が FinancialModelingPrep をデータソースに選んだのは、最も透明性と信頼性が高く、手頃な価格だと考えているためです。提供されるデータ量に対して、これほど低価格のプラットフォームはほかに見つかっていません。データが不正確だと気付いた場合や、データに関するほかの問題がある場合、私はデータにアクセスする手段を提供しているだけであり、データ自体の正確性について責任を負わないことにご留意ください。その場合は、同社のお問い合わせフォームをご利用いただくか、ご自身でデータをご提供ください。

**デフォルトでは、Finance Toolkit はデータ取得に Financial Modeling Prep を優先して使用します。Financial Modeling Prep からデータを取得できない場合(プランの制限や API キーの問題など)、ツールキットは自動的に第 2 のデータソースとして Yahoo Finance に切り替わります。**このフォールバック動作を無効にし、Financial Modeling Prep のみを使用するには、ツールキットの初期化時に enforce_source="FinancialModelingPrep" を設定してください。この設定では、Financial Modeling Prep のデータにアクセスできない場合にエラーが発生します。また、データソースとして Yahoo Finance のみを使用するには、enforce_source="YahooFinance" を設定してください。

同じ enforce_source 引数は、get_historical_data、get_treasury_data、および 4 つの財務諸表関数(get_balance_sheet_statement、get_income_statement、get_cash_flow_statement、get_statistics_statement)の各呼び出しでも受け付けられます。その場合、ツールキットの初期化時に設定した値よりも、呼び出し時の値が優先されます。

機能

このセクションでは、Finance Toolkit の概要を紹介します。以下のリンクから、包括的なコードドキュメントと、基本的な例からカスタム比率の作成、自分のデータセットの活用まで、多くの例を確認できる Jupyter ノートブックをご覧いただけます。


FinanceToolkit のコードドキュメントを含む、さまざまなハウツーガイドはこちらをご覧ください。


Finance Toolkit の基本的な使用例を以下に示します。以降のセクションにあるすべてのコードスニペットは、この同じ companies インスタンスを使用します。

from financetoolkit import Toolkit

# Initialize the Toolkit for Apple and Microsoft
companies = Toolkit(["AAPL", "MSFT"], api_key="FINANCIAL_MODELING_PREP_KEY", start_date="2017-12-31")

各比率、指標、メトリクスには、それぞれ直接呼び出せる関数があります。たとえば、ratios.get_return_on_equity や technicals.get_relative_strength_index です。各モジュールには、カテゴリ全体を一度に返す collect_ 関数も1つ以上あります。たとえば ratios.collect_profitability_ratios は、メトリクスごとに組み立てる代わりに、1回の呼び出しですべてを取得したい場合に便利です。

ツールキットのほぼ全体に適用できる機能が3つあります。

  • rolling ウィンドウと trailing ウィンドウ。 多くのメトリクスは、デフォルトでは報告期間ごとに1つの値を返します。代わりにスライディングウィンドウでメトリクスを計算するには rolling=<n> を、直近の合計または平均を計算するには trailing=<n> を渡します(たとえば、四半期のフローを年率換算するための直近4四半期の合計)。これにより、スナップショットを適切な時系列に変換できます。
  • growth と lag。 ほぼすべての get_ または collect_ 関数で growth=True を渡すと、元の値ではなく期間ごとの成長率が返されます。lag(int または int のリスト、デフォルトは 1)は、成長率を測定する過去の期間数を指定します。たとえば、四半期データで前年比成長率を計算するには lag=4 とします。trailing と組み合わせると(たとえば trailing=4, growth=True)、TTM 成長率を取得できます。
  • standardize(Z スコア)。 Economics、Ratios、Technicals、Risk、Performance、Models、Options、Fixed Income のほとんどの get_* メソッドでは、standardize=True を指定できます。これにより、生の値が、それぞれの過去の平均値と標準偏差からの標準偏差に変換されます。互いに異なる尺度のメトリクスを横断してランキング付けやスコアリングを行ったり、異常な値を見つけたりするのに便利です。

以下の各モジュールには、ハウツーガイドのノートブックと、コードドキュメント(数式、パラメーター、実例)も用意されています。それぞれのセクションにリンクされています。全項目の一覧はドキュメントハブをご覧ください。

金融商品の検索とニュース

銘柄を分析する前に、まずその銘柄を見つける必要があることがよくあります。Discovery モジュールは単体で利用でき、企業、暗号資産、外国為替、コモディティ、ETF、指数の一覧などを扱います。

from financetoolkit import Discovery

# Initialize the standalone Discovery module
discovery = Discovery(api_key="FINANCIAL_MODELING_PREP_KEY")

# Find US semiconductor companies worth more than $100 billion
semiconductors = discovery.get_stock_screener(
    industry="Semiconductors",
    country="US",
    exchange="NASDAQ",
    market_cap_higher=100_000_000_000,
    is_etf=False,
)

スクリーナーは12社を返し、そのうち時価総額上位5社を以下に示します。

シンボル名前時価総額ベータ価格配当
NVDANVIDIA Corporation56778868200002.217234.420.28
AVGOBroadcom Inc.16885660026961.457354.922.60
MUMicron Technology, Inc.12127446289502.2221073.810.53
AMDAdvanced Micro Devices, Inc.10289575180002.476631.030.00
INTCIntel Corp.6049773296552.231119.940.00

以下には、12社すべてを時価総額順に示しています。

銘柄検索

さらに、このモジュールでは株式スクリーナー、セクター/業界のパフォーマンス、ニュースフィードなどを確認できます。Notebookはこちら、金融商品の検索に関するすべてのドキュメントはこちらをご覧ください。

過去のデータの取得

過去のデータを日次、週次、月次、または年次で取得できます。対応する各期間の OHLC、出来高、配当、リターン、累積リターンが含まれます。

# Obtain historical market data for all tickers
historical_data = companies.get_historical_data()

# Select the results for Apple
historical_data.xs('AAPL', axis=1, level=1)

たとえば、Apple の過去のデータの一部を以下に示します。

dateOpenHighLowCloseAdj CloseVolumeDividendsReturnCumulative Return
2018-01-0242.5443.07542.31543.06540.781.02224e+08001
2018-01-0343.132543.637542.9943.057540.771.17982e+080-0.00020.9998
2018-01-0443.13543.367543.0243.257540.968.97384e+0700.00471.0044
2018-01-0543.3643.842543.262543.7541.439.46401e+0700.01151.0159
2018-01-0843.587543.902543.482543.587541.278.22711e+070-0.00391.012

以下には、ベンチマークとして S&P 500 を含む累積リターンをプロットしています。

過去のデータ

Volatility、Excess Return、Excess Volatility などの指標は、より効率的で柔軟な機能を実現するため、このテーブルの列ではなく、専用の リスクメソッドおよびパフォーマンスメソッドとして計算されます。Notebook はこちら、過去のデータに関するドキュメント全文はこちらをご覧ください。

財務諸表の取得

損益計算書を年次または四半期単位で取得します。貸借対照表やキャッシュフロー計算書も取得できます。

# Obtain the Income Statement for all tickers
income_statement = companies.get_income_statement()

# Select the results for Apple
income_statement.loc['AAPL']

以下は、Apple の損益計算書の最初の 5 行です。

2017201820192020202120222023
売上高2.29234e+112.65595e+112.60174e+112.74515e+113.65817e+113.94328e+113.83285e+11
売上原価1.41048e+111.63756e+111.61782e+111.69559e+112.12981e+112.23546e+112.14137e+11
売上総利益8.8186e+101.01839e+119.8392e+101.04956e+111.52836e+111.70782e+111.69148e+11
売上総利益率0.38470.38340.37820.38230.41780.43310.4413
研究開発費1.1581e+101.4236e+101.6217e+101.8752e+102.1914e+102.6251e+102.9915e+10

以下の図では、2017 年以降の Apple と Alphabet の利息・税金・減価償却費・償却費控除前利益(EBITDA)を示しています。両社の会計年度はほぼ一致しているため、どちらも同じ最新報告年まで表示されています。ノートブックはこちら、財務諸表のドキュメント全体はこちらをご覧ください。

財務諸表 ### 財務比率の取得

入力した貸借対照表、損益計算書、キャッシュフロー計算書に基づいて、収益性比率を取得します。ratios モジュールにある80種類以上の比率のいずれでも利用できます。

# Collect all Profitability Ratios for all tickers
profitability_ratios = companies.ratios.collect_profitability_ratios()

# Select the results for Microsoft
profitability_ratios.loc['MSFT']

以下は、Microsoftの収益性比率の一部です。

2017201820192020202120222023
粗利益率0.61910.65250.6590.67780.68930.6840.6892
営業利益率0.24820.31770.34140.37030.41590.42060.4177
純利益率0.23570.15020.31180.30960.36450.36690.3415
インタレスト・カバレッジ・レシオ13.998216.582120.342925.378234.783547.427552.0244
税引前利益率0.25740.33050.34720.37080.4230.42220.4214

また、Microsoftの収益性比率の一部について、最新値、期間中の変化、推移を示します。

財務比率

80種類以上の比率は、5つのカテゴリーに分類されています。効率性(総資産回転率/棚卸資産回転率/売上債権回転率、キャッシュ・コンバージョン・サイクル、売上高に対する研究開発費/販売費および一般管理費/株式報酬費用)、流動性(流動比率、当座比率、現金比率、運転資本)、収益性(利益率、ROE/ROA/ROIC、現金税率と実効税率)、安全性(負債資本倍率、負債資本比率、インタレスト・カバレッジおよび配当カバレッジ)、バリュエーション(P/E、PEG、予想P/E、EV倍率、自社株買い利回り、株主利回り)。貸借対照表、損益計算書、キャッシュフロー計算書から自動的に計算されるカスタム比率を定義することもできます。Notebookはこちら、比率ごとの完全なドキュメントはこちらをご覧ください。

財務モデルの取得

入力された貸借対照表、損益計算書、キャッシュフロー計算書に基づいて、拡張デュポン分析を取得します。

# Get the Extended DuPont Analysis for all tickers
extended_dupont_analysis = companies.models.get_extended_dupont_analysis()

# Select the results for Apple
extended_dupont_analysis.loc['AAPL']

たとえば、次の表は Apple の拡張デュポン分析を示しています。

2017201820192020202120222023
支払利息負担率0.95720.97250.97250.9880.99761.00281.005
税負担率0.78820.83970.86430.86610.8690.83560.8486
営業利益率0.27960.27450.25270.24440.29850.3020.2967
総資産回転率nan0.71680.73890.82881.08411.12061.0868
株主資本倍率nan3.07243.56334.25095.2556.18626.252
株主資本利益率nan0.49360.55920.73691.47441.75461.7195

拡張デュポン分析の5つの要素を掛け合わせると、株主資本利益率(ROE)が求められます。つまり、支払利息負担率 × 税負担率 × 営業利益率 × 総資産回転率 × 株主資本倍率です。以下に各年の値と、その結果として得られる ROE を示します。

モデル

models モジュールには、デュポン分析、WACC、経済付加価値(EVA)、Altman Z-Score、Beneish M-Score、Graham Numberなど、合計10種類以上のモデルが含まれています。Notebook はこちら、モデルごとの詳細なドキュメントはこちらをご覧ください。

オプションとグリークスの取得

コールオプションとプットオプションの両方について、ブラック・ショールズモデルと関連するグリークス(この場合はデルタ、ガンマ、シータ、ベガ)を取得します。対象は、第1次、第2次、第3次のいずれかのグリークスです。

# Get Delta for all tickers across strikes and expirations
delta = companies.options.get_delta(expiration_time_range=180)

# Select the results for Apple
delta.loc['AAPL']

たとえば、以下は複数の満期と権利行使価格における Apple のコールオプションのデルタです(株価:185.92、ボラティリティ:31.59%、配当利回り:0.49%、無リスク金利:3.95%)。

1 Month2 Months3 Months4 Months5 Months6 Months
1750.76860.71780.69670.68570.67940.6759
1800.66590.640.63180.6290.62850.6291
1850.55220.55830.56480.5710.57670.5816
1900.43710.47620.49770.5130.52490.5342
1950.32980.39710.43240.45620.4740.4875

以下のように、ガンマ、シータ、ベガとともにプロットすることもできます。

グリークス

options モジュールは、オプション価格評価(ブラック・ショールズ、二項モデル、インプライド・ボラティリティ)、第1次グリークス(デルタ、ベガ、シータ、ロー)、第2次グリークス(ガンマ、バンナ、チャーム、ボンマ)、第3次グリークス(スピード、ゾンマ、カラー、アルティマ)の4つのカテゴリに分かれています。ノートブックはこちら、オプション価格評価とグリークスの全ドキュメントはこちらをご覧ください。

パフォーマンス指標の取得

Fama-French が定義したファクターとの相関を取得します。これには、市場、サイズ、バリュー、営業収益性、投資が含まれます。この機能の魅力は、任意の期間を対象にできることです。関数は期間として intraday、weekly、monthly、quarterly、yearly を受け付けます。

# Get the Fama-French factor correlations for all tickers, quarterly
factor_asset_correlations = companies.performance.get_factor_asset_correlations(period="quarterly")

# Select the results for Apple
factor_asset_correlations['AAPL']

たとえば、以下は Apple の四半期ごとの相関を示しています。

Mkt-RFSMBHMLRMWCMA
2022Q20.9177-0.1248-0.5077-0.3202-0.2624
2022Q30.80920.1528-0.5046-0.1997-0.5231
2022Q40.89980.2309-0.5968-0.1868-0.5946
2023Q10.77370.1606-0.3775-0.228-0.5707
2023Q20.7416-0.1166-0.27220.0093-0.4745

以下では、Apple と Microsoft の各ファクターとの相関を時系列でプロットしています。

パフォーマンス

Beta、CAPM、Fama-French ファクターに加えて、performance モジュールでは合計 20 種類以上の指標を扱えます。たとえば、シャープレシオ、ソルティノレシオ、カルマーレシオ、オメガレシオ、相関行列などがあります。これらの多くでは rolling=<n> もサポートされており、期間ごとの単一の数値ではなく、時間とともに推移する値を取得できます。Notebook はこちら、パフォーマンス指標の完全なドキュメントはこちらをご覧ください。

リスク指標の取得

各週のバリュー・アット・リスクを取得します。ここでは、週内の日次データをバリュー・アット・リスクの算出に使用します。これにより、各期間における期待バリュー・アット・リスク(VaR)を把握できます。対象期間は任意に設定でき、ヒストリカル、ガウス、スチューデントの t 分布、コーニッシュ・フィッシャー、または裾部分に対するピーク超過型の極値理論(distribution="evt")の適合など、さまざまな分布に基づいて算出できます。

# Get the weekly Value at Risk for all tickers
companies.risk.get_value_at_risk(period="weekly", within_period=True)
AAPLMSFTベンチマーク
2023-09-25/2023-10-01-0.0205-0.0133-0.0122
2023-10-02/2023-10-08-0.0048-0.0206-0.0108
2023-10-09/2023-10-15-0.0089-0.0092-0.0059
2023-10-16/2023-10-22-0.0135-0.0124-0.0131
2023-10-23/2023-10-29-0.0224-0.0293-0.0139

以下には、Apple、Microsoft、ベンチマーク(S&P 500)のバリュー・アット・リスク(VaR)もプロットされており、COVID-19の影響も確認できます。

リスク

VaR/CVaR/エントロピック VaRに加えて、risk モジュールでは、条件付きドローダウン・アット・リスク、最大ドローダウン期間、EWMAボラティリティ、ハースト指数など、合計20種類以上の指標を扱えます。これらの指標の多くは、期間ごとに1つの数値を返す代わりに、時間の経過に伴う値を得るための rolling=<n> に対応しています。ノートブックはこちら、リスク指標のドキュメント全文はこちらをご覧ください。

テクニカル指標の取得

過去の市場データに基づいて、一目均衡表のパラメーターを取得します。これは、technicals モジュールに含まれる 40 種類以上のテクニカル指標のいずれでも利用できます。

# Get the Ichimoku Cloud for all tickers
ichimoku_cloud = companies.technicals.get_ichimoku_cloud()

# Select the results for Apple
ichimoku_cloud.xs('AAPL', axis=1, level=1)

以下に、Apple のパラメーターの一部を示します。

日付基準線転換線先行スパンA先行スパンB
2023-10-30174.005171.755176.245178.8
2023-10-31174.005171.755176.37178.8
2023-11-01174.005170.545176.775178.8
2023-11-02174.005171.725176.235178.8
2023-11-03174.005171.725175.558178.8

また、以下には、Apple と Microsoft の過去 12 か月分の一目均衡表を終値とともに示しています。

テクニカル指標

40 種類以上の指標は、4 つのカテゴリに分かれています。市場の幅(マクレラン・オシレーター、値上がり銘柄数/値下がり銘柄数、OBV、ADL、チャイキン・オシレーター、TRIN、新高値-新安値)、モメンタム(RSI、MACD、ストキャスティクス、Williams %R、アルーン、CCI、ADX など)、重複(SMA、EMA、DEMA、TRIX、WMA、ハル移動平均、VWAP、パラボリックSAR、ピボットポイント、サポート/レジスタンス)、ボラティリティ(ATR、ケルトナーチャネル、ボリンジャーバンド、ドンチャンチャネル、ボラティリティコーン)です。ノートブックはこちら、テクニカル指標の全ドキュメントはこちらをご覧ください。

債券指標の取得

fixedincome モジュールでは、ICE BofA Corporate Bond ベンチマーク指数や、さまざまな債券およびデリバティブ関連の評価にアクセスできます。

# Get the ICE BofA Effective Yield for each Credit Rating
companies.fixedincome.get_ice_bofa_effective_yield(maturity=False)

たとえば、以下は ICE BofA Corporate Bond Index の格付け別実効利回りです。

DateAAAAAABBBBBBCCC
2024-04-190.05180.05320.05610.05940.06780.08040.1385
2024-04-220.05170.05320.0560.05930.06710.07930.1377
2024-04-230.05140.05280.05560.05890.0660.07770.1364
2024-04-240.05180.05310.05590.05920.06640.07780.1361
2024-04-250.05240.05370.05640.05980.06730.0790.1368

以下は、格付けごとの実効利回りの推移を示したグラフです。

債券

ICE BofA のベンチマークに加えて、fixedincome モジュールでは、債券評価(現在価値、マコーレー・デュレーション/修正デュレーション、コンベクシティ、満期利回り)、デリバティブ評価(スワップションのブラック・モデルおよびバシチェック・モデル)、国債(3か月物および10年物の利回り)、中央銀行金利(Euribor、ECB、Federal Reserve rates、SOFR を含む)を扱います。companies.fixedincome 経由で呼び出すか、from financetoolkit import FixedIncome を使って単独で利用できます。ノートブックはこちら、債券に関するドキュメント全文はこちらをご覧ください。

主要な経済指標を把握する

消費者物価指数(CPI)、国内総生産(GDP)、失業率、3か月および10年の政府金利など、60か国以上の主要な経済指標に関する知見を得られます。これは economics モジュールを通じて利用でき、from financetoolkit import Economics を使えば単独のモジュールとしても利用できます。

# Get the Unemployment Rate for a selection of countries
companies.economics.get_unemployment_rate()

以下に国の一部を例として示します。

ColombiaUnited StatesSwedenJapanGermany
20170.0930.04350.06860.02810.0357
20180.09530.0390.06480.02440.0321
20190.10370.03670.06910.02350.0298
20200.15860.08090.08480.02780.0362
20210.13810.05370.08890.02820.0358
20220.11220.03650.07480.0260.0307

以下に、失業率の推移を示します。

経済

40以上の指標は、5つのカテゴリーに分かれています。政府(GDP、政府債務/歳入/歳出/財政赤字、政府への信頼)、経済(CPI、インフレ、消費者/企業の信頼感、住宅/賃貸/株価)、金融(マネーサプライ、中央銀行の政策金利、短期/長期金利)、環境(再生可能エネルギー、カーボンフットプリント)、雇用と社会(失業、労働生産性、所得格差、人口、貧困率)です。ノートブックはこちら、経済指標の詳細なドキュメントはこちらをご覧ください。

自分のポートフォリオを確認する

カスタムの XLSX、XLS、または CSV ファイルを使って、自分のポートフォリオを Finance Toolkit に直接読み込めます。これにより、ベンチマークや他のポジションと比較しながら、ポジションとそのパフォーマンス(経時的な変化)に加えて、損益の経時的な推移を確認できます。さらに、ポートフォリオを Finance Toolkit のコア機能に直接読み込むこともでき、ポートフォリオ(すべてのポジションを時間加重で合計したもの)の各種指標や比率を計算できます。ポートフォリオモジュールはスタンドアロンのモジュールであり、from financetoolkit import Portfolio を使って単独で利用できます。ポートフォリオのドキュメント全文はこちらをご覧ください。


この機能を使用するには特定の Excel テンプレートが必要です。詳しい手順については、次のノートブックこちらをご覧ください。


from financetoolkit import Portfolio

# Initialize the Portfolio module with your own dataset
portfolio = Portfolio(example=True, api_key="FINANCIAL_MODELING_PREP_KEY")

# Get an overview of all positions
portfolio.get_positions_overview()

下の表はポートフォリオモジュールの機能の一例ですが、資産が 30 を超えるため、意図的に縮小して表示しています。

識別子数量コスト価格投資額最新価格最新評価額リターンリターン額ベンチマークリターンボラティリティベンチマークボラティリティアルファベータウェイト
AAPL137-2838.96925310.78241.8433132.15.238627821.32.22580.38580.19373.01281.20270.0405
ALGN81-34117.3659472.53187.0315149.40.59935676.92.14130.59850.1937-1.5421.55010.0185
AMD78-3011.9075898.78499.867789.087.66626890.33.79450.61590.19373.87181.65510.0095
AMZN116-2841.54714791.46212.2824624.54.1392198331.82740.49210.19372.31181.15940.0301
ASML129-2533.31844273.07709.0891471.320.406587198.33.80050.45240.193716.6061.44070.1119
VOO77-12238.49918352.5546.3342067.41.2922237151.11790.16990.19370.17430.99730.0515
WMT92-1817.86451625.5398.619072.124.5817446.592.47870.23340.19372.10240.49480.0111
ポートフォリオ2142-53259.8406128710381.6898175775.35216888672.07730.41930.19373.27471.29091

ウェイトとリターンは、次のように表示できます。

ポートフォリオ ### 計量経済学の手法を適用する

econometrics モジュールは、statsmodels と linearmodels を基盤とする回帰分析、仮説検定、単位根検定と共和分、グレンジャー因果性、パネルデータの手法を提供します。オプションの financetoolkit[econometrics] エクストラ(pip install financetoolkit[econometrics])が必要で、companies.econometrics 経由で利用できます。

# AAPL is the Toolkit's first ticker, so it's the default dependent ticker;
# every other ticker becomes the default independent set
companies.econometrics.get_ols(period="weekly")

Apple のリターンを、チップサプライヤー、大型ハイテク企業の同業他社、および関連のない 2 社(Benchmark は除外)の組み合わせに対して回帰すると、次の結果になります。

係数標準誤差t 統計量P 値
切片0.00280.00171.68150.0943
TSM-0.00540.0523-0.10280.9182
QCOM0.14320.03613.97170.0001
SWKS0.21410.04844.42210.0000
MSFT0.30360.08643.51440.0005
GOOGL0.14480.06892.10150.0369
AMZN0.06170.05291.16640.2448
META-0.01320.0389-0.33980.7343
NVDA-0.00240.0415-0.05750.9542
XOM-0.02910.0373-0.77990.4364
PG0.28580.07074.03930.0001

さらに、各係数の下には 95% 信頼区間が表示され、有意性の度合いはアスタリスクで示されています。

計量経済学

すべての回帰変数を同時に調整すると、統計的に有意なのは QCOM、SWKS、MSFT、GOOGL、PG のみです。econometrics モジュールは、単位根検定(ADF、KPSS、Phillips-Perron)、共和分とグレンジャー因果性、パネルデータ推定(固定効果/ランダム効果)、因果推論(IV-2SLS、差の差法、回帰不連続デザイン、傾向スコアマッチング、合成コントロール)、時系列予測(ARIMA、VAR、VECM)など、合計 48 の手法を網羅しています。ノートブックはこちら、計量経済学のドキュメント全文はこちらをご覧ください。

MCP サーバー

Finance Toolkit MCP サーバーは、Model Context Protocol(MCP)に対応したあらゆる AI アシスタントから、500 種類以上の金融メソッドを直接利用できるようにします。平易な英語で質問すると、Finance Toolkit の透明性の高いオープンソースの計算メソッドに基づき、AI が代わりに最新の金融データを取得します。

以下では、Claude Desktop で Finance Toolkit MCP サーバーが動作する様子をご覧いただけます。

https://github.com/user-attachments/assets/96ad5288-d83d-4497-a345-1841c48c29d5

リモートサーバー

ホストされているサーバー https://financetoolkit.jeroenbouma.com/mcp に直接接続できます。ローカルにインストールする必要はありません。初回接続時にクライアントが OAuth 同意ページを開き、FMP API キーの入力を求めます。一度入力すれば、以降の認証はサーバーが処理します。

クライアント手順
Claude DesktopCustomize → Connectors → Add custom connector → URL を貼り付けます
Claude.aiCustomize → Connectors → Add custom connector → URL を貼り付けます
Claude Codeclaude mcp add --transport http finance-toolkit https://financetoolkit.jeroenbouma.com/mcp
VS CodeCommand Palette → MCP: Add Server → HTTP → URL を貼り付けます
CursorSettings → Features → MCP Servers → Add new → http → URL を貼り付けます
WindsurfSettings → MCP Servers → Add Server → Remote/HTTP → URL を貼り付けます
ローカルインストール

セットアップウィザードを実行すると、クライアントの設定ファイルを検出し、API キーを含む MCP エントリーを自動的に書き込みます。

uvx --from "financetoolkit[mcp]" financetoolkit-mcp-setup

手動で設定する場合は、クライアントの MCP 設定ファイル(例:claude_desktop_config.json、.cursor/mcp.json、.vscode/mcp.json)に以下を追加してください。

{
  "mcpServers": {
    "finance-toolkit": {
      "command": "uvx",
      "args": ["--from", "financetoolkit[mcp]", "financetoolkit-mcp"],
      "env": { "FINANCIAL_MODELING_PREP_API_KEY": "YOUR_API_KEY_HERE" }
    }
  }
}

または、Finance Toolkit MCPB bundle をダウンロードし、Claude Desktop で開いてください。インストールダイアログで FMP API キーの入力を求められます。

質問と回答

このセクションでは、よくある質問を取り上げ、特定の結果や他の情報源との違いについての疑問にお答えします。ここで回答されていない質問がある場合は、以下の連絡先からお気軽にお問い合わせください。

会計年度が異なる企業にはどのように対応していますか?

どの財務諸表も、対応する暦年の期間に合わせています。たとえば、Apple の 2023 年第 4 四半期は、2023 年 7 月から 9 月に該当します。これは暦年の第 3 四半期にあたるため、比較できるように Apple の数値を 2023 年第 3 四半期として正規化しています。会計年度が異なる企業同士を比較できるようにするためです。

財務諸表の数値が FinancialModelingPrep のデータと異なることがあるのはなぜですか?

Hyundai Motor Company(ティッカー:005380.KS)のような企業を見ると、財務諸表が KRW(韓国ウォン)で報告されていることがわかります。このティッカーは韓国取引所に上場しているため、過去の市場データも KRW で報告されます。一方、米国の OTC 市場に上場している HYMTF というティッカーを使用すると、過去の市場データは USD で報告されます。この差異に対応するため、年末または四半期末の為替レートを取得し、財務諸表を USD に換算します。これにより、Free Cash Flow Yield(時価総額に基づく)や Price Earnings Ratio(株価に基づく)などの比率計算が不正確になるのを防ぎます。Toolkit の初期化時に convert_currency=False を設定すると、この機能を無効にできます。企業の本拠地がある国の取引所に上場しているティッカーを常に使用することをおすすめします。

TTM(過去 12 か月)指標や成長指標を取得するにはどうすればよいですか? ほとんどの関数では、trailing パラメーターを定義できます。これにより、トレーリング指標の計算に使用する期間数を指定できます。たとえば、トレーリング12か月(TTM)の株価収益率を計算する場合、Toolkit の初期化時に quarterly=True を設定していれば、trailing=4 と設定できます。成長指標も同様に、growth=True を設定することで計算できます。これにより、各期間の成長率が前の期間に基づいて計算されます。また、遅行成長率を定義できる lag パラメーターもあります。さらに、trailing パラメーターと growth パラメーターを組み合わせて、トレーリング成長率を取得することもできます。たとえば、株価収益率に対して trailing=4 と growth=True を設定すると、TTM 成長率が計算されます。

Finance Toolkit は実行するたびに同じデータを取得しますか?

いいえ。外部ソースから取得したデータ(財務諸表、過去の株価、経済指標、イールドカーブ、ニュースなど)は、ローカルの SQLite データベースに自動的にキャッシュされ、次回の実行時に Toolkit、Economics、Fixed Income、Discovery、Portfolio の各モジュールで再利用されます。Finance Toolkit 自体が計算する比率、モデル、リスク指標などはキャッシュされません。常に必要に応じてそのデータから計算されるため、Finance Toolkit の最新バージョンが反映されます。

キャッシュされたデータが古くなることはありません。変更された可能性があるデータセットは再取得されます。株価と財務諸表は1日後に再取得されます(株価については、古いバーは変化しないため、直近1週間分のみです)。気配値は1分後、企業プロフィールは1か月後に再取得され、経済指標の公表データは公表頻度に応じて再取得されます。企業の ETF 保有状況など、ソースにデータがないという回答もキャッシュされますが、レート制限などによるリクエストの失敗はキャッシュされません。

キャッシュは、ティッカーと日付範囲ごとに保存済みのデータを管理するため、パラメーターを変更しても、それ以外のデータが破棄されることはありません。

  • 同じリクエストを繰り返しても、データは一切取得されません。
  • 期間を広げた場合、取得されるのは不足している年のデータのみです。
  • ティッカーを追加した場合、取得されるのはそのティッカーのデータのみです。

データベースはユーザー設定ディレクトリに保存されます。MCP サーバーも同じディレクトリを使用するため、両者で単一のキャッシュが共有されます。保存場所を指定したり、キャッシュを無効にしたりできます。

from financetoolkit import Economics, Toolkit

# Store the cache in a specific folder
toolkit = Toolkit(["AAPL", "MSFT"], use_cached_data="datasets")

# Retrieve everything every time
toolkit = Toolkit(["AAPL", "MSFT"], use_cached_data=False)
economics = Economics(use_cached_data=False)

FINANCE_TOOLKIT_CACHE_ENABLED 環境変数を 0 に設定すると、ディスクに何も書き込むべきではない継続的インテグレーションのジョブなどに適した設定として、すべての場所でキャッシュがデフォルトで無効になります。FINANCE_TOOLKIT_CACHE_DB を設定すると、共有データベースを別のファイルに移動できます。

現在保存されている内容を確認するには、toolkit.get_cache_contents() を使用します。ソースとデータセットごとにまとめられたエントリーが表示されます。

ソースデータセットエンティティ数エントリー数最古の書き込み最新の書き込み
FinancialModelingPrephistorical222025-01-14 09:12:032025-01-14 09:12:05
FinancialModelingPrepstatements222025-01-14 09:12:012025-01-14 09:12:02

Finance Toolkit は、内部構造が変わった場合でも、キャッシュを自動的に消去することはありません。データの削除は、常に toolkit.clear_cache() を明示的に呼び出して行います。また、すべてを一括で削除するのではなく、対象を絞ることもできます。

# Remove only the price history of a single ticker
toolkit.clear_cache(source="FinancialModelingPrep", ticker="AAPL")

# Remove everything retrieved from the OECD
toolkit.clear_cache(source="OECD")

# Remove the entire cache, which has to be confirmed
toolkit.clear_cache(confirm=True)

source 名は enforce_source パラメーターで使われる名前と同じです。そのため、「FinancialModelingPrep」と「YahooFinance」はどちらの場所でも同じ意味です。

過去のデータを取得するときに自動的に取得される「Benchmark」とは何ですか? これは、デフォルトで「SPY」(S&P 500)に設定されている benchmark_ticker パラメーターに関連しています。これは、市場リターンを必要とするシャープレシオやトレイナーレシオなどのパフォーマンス指標を計算する際に重要です。Toolkit の初期化時に benchmark_ticker=None を設定すると、無効にできます。

データの収集が遅いようです。何が原因でしょうか?

通常、100 銘柄の過去データの取得には 15 秒もかからないはずです。これより大幅に時間がかかる場合、API の上限(Starter プランでは 1 分あたり 250 リクエスト)に達している、インターネット接続が遅い、またはコードが最適化されていないことが原因として考えられます。Finance Toolkit は、共有接続を介して、上限付きのワーカースレッドプール(デフォルトは 10。FINANCETOOLKIT_MAX_WORKERS 環境変数で設定可能)でデータを収集します。そのため、銘柄を 1 つずつではなく、一度に分析したいすべての銘柄を指定して Toolkit を初期化することをおすすめします。10 分以上かかる場合は、問題の解決につながったこちらの issueをご覧ください。

企業プロキシ経由で作業していて、「certificate verify failed」エラーが発生します。どうすれば解決できますか?

多くの企業ネットワークでは、暗号化されたトラフィックを検査します。プロキシはユーザーに代わってすべての HTTPS 接続を開き、ウェブサイト本来の証明書ではなく、会社独自のルート証明書で署名された証明書を提示します。IT 部門がそのルート証明書をコンピューターにインストールしているため、ブラウザーはそれを信頼しますが、Python は信頼しません。Python は独自の公開認証局リスト(certifi パッケージ)を使って証明書を確認しますが、そこには会社の証明書が含まれていないためです。その結果、SSLError: certificate verify failed: self-signed certificate in certificate chain のようなエラーが発生します。

証明書を検証できない場合、Finance Toolkit はまず、Python が見つけられる場合に限り、オペレーティングシステムの証明書ファイルを使って再試行します(通常、Linux では見つかりますが、Windows では見つかりません)。それでも失敗した場合、次に行われることは、リクエストに API キーが含まれているかどうかによって異なります。

  • ECB、Eurostat、BIS などへのリクエストのように API キーを含まないリクエストは、証明書を検証せずに再試行されます。この場合、警告がログに記録されます。
  • FinancialModelingPrep や FRED などへのリクエストのように API キーを含むリクエストは、検証を省略して再試行されることはありません。キーはウェブアドレスの一部であるため、検証されていない接続を傍受できる人は誰でもキーを読み取り、サブスクリプションを利用できてしまいます。この場合、以下の選択肢を説明するエラーが発生します。

推奨される解決方法は、会社のルート証明書を Python に信頼させ、すべての接続を検証された状態に保つことです。

  1. ルート証明書を .pem(または .crt)ファイルとして入手します。通常、IT 部門から提供してもらえます。また、任意の HTTPS ウェブサイトで証明書の詳細を開き、チェーン内の最上位の証明書(Windows では「Base-64 encoded」)をエクスポートして入手することもできます。

  2. Python の公開証明書と結合します。次の手順では、Python のリストに追加するのではなく、リスト全体を置き換えます。そのため、公開証明書が含まれていないと、プロキシを経由しない接続はすべて失敗します。

    # Python の公開証明書の場所を表示
    python -c "import certifi; print(certifi.where())"
    
    # macOS と Linux:両方を 1 つのファイルに結合
    cat /path/printed/above/cacert.pem /path/to/company-root.pem > ~/combined-certificates.pem
    

    Windows では、両方のファイルをテキストエディターで開き、cacert.pem のコピーの末尾に会社の証明書を貼り付けます。

  3. Finance Toolkit を使用する前に、REQUESTS_CA_BUNDLE を結合したファイルに設定します。

    # macOS と Linux:例として ~/.bashrc または ~/.zshrc に記述
    export REQUESTS_CA_BUNDLE=~/combined-certificates.pem
    
    # Windows(PowerShell):以降に開くすべてのウィンドウに適用
    setx REQUESTS_CA_BUNDLE "C:\Users\you\combined-certificates.pem"
    

    setx は実行中のウィンドウを変更しないため、その後で新しいターミナルを開く(またはエディターを再起動する)必要があります。

    または、最初のリクエストの前に Python 内で設定します。

    import os
    
    os.environ["REQUESTS_CA_BUNDLE"] = "/path/to/combined-certificates.pem"
    
    from financetoolkit import Toolkit
    

    MCP サーバーを使用する場合は、代わりに AI アシスタントの設定にあるサーバーの env セクションに変数を追加してください。

あるいは、会社のルート証明書がすでにオペレーティングシステムにインストールされている場合(マネージドの Windows および macOS コンピューターでは通常そうなっています)、truststore パッケージを使うと Python がオペレーティングシステムの証明書を直接利用できます。pip install truststore でインストールし、スクリプトの先頭で import truststore; truststore.inject_into_ssl() を実行してください。

これらのいずれも不可能な場合は、上記と同じ方法で FINANCETOOLKIT_ALLOW_UNVERIFIED_SSL=1 を設定することで、リスクを受け入れ、API キーを使用するリクエストを検証なしで送信できるようにできます。信頼できるネットワーク上でのみ行ってください。その場合、接続は応答する相手に対して暗号化されますが、その相手はあなたが思っているウェブサイトではない可能性があり、あなたの API キーはその相手に読まれてしまいます。

あなたは FinancialModelingPrep の関係者ですか?

いいえ、違います。他のプロバイダーと比べて寛大な無料枠と公正な価格設定があるため、主要なデータプロバイダーとして彼らを選んだだけです。したがって、データに関する質問はすべて彼らのお問い合わせフォームを通じて行ってください。あらゆる種類の比率、パフォーマンス指標、リスク指標、テクニカル指標、経済指標については、これは私自身の成果物ですので、お気軽に私にご連絡ください。

コントリビューション

まず最初に、コントリビューションに時間を割いてくださり(あるいは少なくともコントリビューションガイドラインを読んでくださり)ありがとうございます! 🚀


コントリビューションガイドラインはこちらにあります。


Finance Toolkit の目標は、あらゆる種類の財務計算を可能な限り透過的かつ効率的にすることです。私はこの種の計算を誰にとってもできるだけ利用しやすいものにしたいと考えており、同じことを行うウェブサイトがどれほど多く存在するか(しかもその代わりに料金を支払わなければなりません)を目の当たりにして、これに取り組む十分な理由を得ました。

メンション

Finance Toolkit は、さまざまなブログ記事、研究論文、ニュースレター、ソーシャルメディアで取り上げられています。以下は、私が把握しているメンションの一部です。ほかにもメンションを見つけた場合は、ぜひご連絡ください。この一覧に追加します。

ブログ記事

研究

ニュースレターとソーシャルメディア

お問い合わせ

Finance Toolkit についてご質問がある場合や、取り組んでいることを共有したい場合は、以下からお気軽にご連絡ください。

活動を支援していただける場合は、パッケージへの貢献、またはスポンサーになることでご協力ください。

星の履歴グラフ

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。