データソース
接続状況サマリー
| データソース |
用途 |
接続方式 |
状態 |
| Saxobank |
注文執行 |
OpenAPI (REST/OAuth2) |
✅ 接続OK |
| Polygon |
株価/オプション/GEX |
REST API (Developer plan) |
✅ 接続OK |
| Unusual Whales |
オプションフロー / IV Rank |
REST API |
✅ 接続OK |
| yfinance |
株価フォールバック |
Python API |
✅ 利用可能 |
| Finnhub |
決算カレンダー |
REST API |
✅ 接続OK |
| FRED |
経済指標 (HY OAS) |
REST API |
✅ 接続OK |
Saxobank OpenAPI
概要
Saxobankの取引APIを通じて注文を執行(IBKR TWS/Gatewayから移行済み)。
接続設定
| 項目 |
Simulation |
Live |
| 環境 |
sim.logonvalidation.net |
live.logonvalidation.net |
| 認証 |
OAuth2 (App Key + Secret) |
OAuth2 |
| Account ID |
21734682 |
- |
使用API
brokers/saxobank/adapter.py: SaxobankAdapter
brokers/saxobank/hands_compat.py: SaxobankHands (IBKR互換レイヤー)
- OAuth2自動リフレッシュ
Unusual Whales
概要
オプションフローデータを提供。Sweep/Block取引を検出。
API情報
| 項目 |
値 |
| Base URL |
https://api.unusualwhales.com |
| 認証 |
Bearer Token |
| レート制限 |
120 req/min, 15k req/day |
使用エンドポイント
| エンドポイント |
用途 |
/api/option-trades |
リアルタイムフロー |
| IV Rank取得 |
UW IV Provider経由 |
レート制限対策
# 市場時間帯による頻度調整
if is_market_open():
interval = 30 # 30秒間隔
elif is_pre_market():
interval = 60 # 1分間隔
else:
interval = 300 # 5分間隔
Polygon
概要
株価、出来高、オプションチェーン、GEX計算用データを提供する主要データソース。
Developer plan ($79/月) を使用。Snapshot API、Greeks、IV、OI等を含む。
使用エンドポイント
| エンドポイント |
用途 |
/v2/snapshot/locale/us/markets/stocks/tickers/{symbol} |
株価スナップショット |
/v3/snapshot/options/{underlying} |
オプションスナップショット (Greeks/IV/OI含む) |
/v2/aggs/ticker/{symbol}/range/1/day |
日次集計データ |
/v1/marketstatus/now |
市場ステータス |
フォールバック
Polygon失敗 → yfinanceフォールバック
yfinance
概要
Polygon失敗時の株価・オプションチェーンフォールバック。
取得データ
| データ |
用途 |
| 株価 (リアルタイム) |
Polygon失敗時の現在価格 |
| VIX推定 (VXX/VIXY) |
VIX取得失敗時のフォールバック |
| オプションチェーン |
Polygon失敗時の最終手段 |
制限事項
- レート制限あり(Yahoo Finance依存)
- 市場クローズ中はリアルタイム価格取得不可
Finnhub
概要
決算カレンダーデータを提供。決算ブラックアウト(±2日)判定に使用。
プラン
Free tier (無料)
- 60 API calls/min
- 30 calls/sec
- 決算カレンダー、基本的なファンダメンタルデータ
API情報
| 項目 |
値 |
| Base URL |
https://finnhub.io/api/v1 |
| 認証 |
token クエリパラメータ |
| レート制限 |
60 req/min (Free) |
使用エンドポイント
| エンドポイント |
用途 |
/calendar/earnings |
決算カレンダー(バルク取得) |
実装方式
- 1日1回バルクダウンロード(今後90日分、1 API call)
- ローカルdict キャッシュ → O(1) ルックアップ
HybridDataProvider.has_earnings_within() で使用
- BT/PT両方で決算±2日ブラックアウト判定に使用
# 使用例
if data_provider.has_earnings_within(symbol, current_date, days=2):
logger.debug(f"[{symbol}] 決算±2日 → 新規停止")
continue # エントリースキップ
使用ファイル
core/hybrid_data_provider.py: _refresh_earnings_cache(), has_earnings_within()
.env: FINNHUB_API_KEY
FRED (Federal Reserve Economic Data)
概要
セントルイス連銀が提供する経済データAPI。HY OAS (ICE BofA US High Yield OAS) をベアレジーム検知に使用。
プラン
Free tier (無料、APIキー登録制)
- レート制限: 120 req/min
- 全系列アクセス可能
API情報
| 項目 |
値 |
| Base URL |
https://api.stlouisfed.org/fred |
| 認証 |
api_key クエリパラメータ |
| レート制限 |
120 req/min (Free) |
使用系列
| FRED Series ID |
データ |
用途 |
BAMLH0A0HYM2 |
ICE BofA US High Yield OAS |
ベアレジーム検知(≥400bpsでモメンタム方向切替有効化) |
実装方式
- BT: CSV事前ダウンロード (
aegis_v3/data/fred/hy_oas.csv)
- PT: FRED API経由で日次取得(EOD更新)
- HY OAS ≥ 4.0% (400bps) → ベアレジーム → 銘柄別モメンタムでPut/Call自動切替
使用ファイル
aegis_v3/aegis/engine/backtest.py: _load_hy_oas_csv()
aegis_v3/aegis/strategy/beat_shield/strategy.py: HY OAS gate チェック
.env: FRED_API_KEY
IV Rank
概要
IV Rank データは Unusual Whales API 経由で取得(旧Barchartスクレイピングから移行済み)。
取得方式
HybridDataProvider が UW API からIV Rankを取得
- EODデータ収集時に
collect_eod_all.py がIV Rankパーケットを生成
データ鮮度管理
フォールバック理由
| 理由コード |
説明 |
対応 |
holiday |
休場日 |
前日データ使用 |
weekend |
週末 |
金曜データ使用 |
after_hours |
時間外 |
終値使用 |
pre_market |
プレマーケット |
前日終値使用 |
early_close |
早期終了 |
終了時データ使用 |
api_error |
API障害 |
キャッシュ使用 |