TerraFin は何をしますか?
金融データ、チャート作成、分析、およびリサーチワークフローのためのエージェント対応PythonツールキットとFastAPIインターフェース。
概要
TerraFinは、金融データの取得から可視化、分析までをシームレスに行えるPythonツールキットです。FastAPIベースのAPIを提供し、AIエージェントや開発者がコードや自然言語の指示から直接金融データにアクセスできます。株価データ、テクニカル指標、財務レポート、チャート生成などの機能を備えています。
主な機能
- 株式データ取得: yfinanceを使用した過去およびリアルタイムの株価データ取得
- チャート生成: mplfinanceを使用したインタラクティブなチャート作成(ローソク足、移動平均線、出来高など)
- テクニカル分析: RSI、MACD、移動平均線などの主要なテクニカル指標の計算
- 財務データ: 財務諸表、決算情報、指標の取得
- リサーチ自動化: 自然言語クエリによる市場分析とレポート生成
- FastAPIインターフェース: RESTful APIとしての簡単な統合
インストール
pip install terrafin
または、ソースからインストールする場合:
git clone https://github.com/KiUngSong/TerraFin.git
cd TerraFin
pip install -r requirements.txt
クイックスタート
from terrafin import StockData, ChartGenerator, TechnicalIndicators
# 株式データの取得
ticker = "AAPL"
stock = StockData(ticker)
data = stock.get_history(period="1y")
print(data.head())
# チャートの生成
chart = ChartGenerator()
chart.plot_candlestick(data, title=f"{ticker} ローソク足チャート")
# テクニカル指標の計算
ti = TechnicalIndicators(data)
rsi = ti.calculate_rsi(period=14)
macd = ti.calculate_macd()
print(f"RSI: {rsi}")
print(f"MACD: {macd}")
FastAPIサーバーの起動
uvicorn terrafin.api:app --reload
サーバーが起動したら、http://localhost:8000/docs でSwagger UIにアクセスできます。
APIエンドポイント例
| エンドポイント | メソッド | 説明 |
|---|---|---|
/api/stock | GET | 株式データの取得(ティッカー、期間指定) |
/api/chart | GET | チャート画像の生成 |
/api/technical | GET | テクニカル指標の計算 |
/api/research | POST | 自然言語クエリによるリサーチ |
CLIでの使用
# 株式データの取得
tfs -t AAPL -p 1y
# チャートの生成
tfs --chart -t AAPL -p 1y
# テクニカル指標の計算
tfs --technical -t AAPL -p 6mo
環境変数
TERRAFIN_API_KEY: APIを使用する際の認証キー(オプション)TERRAFIN_CACHE_DIR: データキャッシュのディレクトリ(デフォルト:~/.terrafin/cache)
設定
TerraFinの設定は、~/.terrafin/config.yaml に保存できます。
# 設定例
api:
key: your_api_key_here
host: localhost
port: 8000
cache:
enable: true
directory: /path/to/cache
logging:
level: INFO
サポート範囲
- データソース: Yahoo Finance (yfinance)
- チャートライブラリ: mplfinance, matplotlib
- APIフレームワーク: FastAPI
- 対応銘柄: 世界中の株式、ETF、通貨、暗号通貨(yfinanceがサポートするもの)
貢献
プルリクエストは歓迎します。大きな変更を加える場合は、まずissueを開いて変更内容を議論してください。
ライセンス
MIT