アーキテクチャ
システム全体像
graph TB
subgraph "External Data Sources"
PG[Polygon API]
UW[Unusual Whales API]
YF[yfinance]
FH[Finnhub API]
FR[FRED API]
end
subgraph "Broker"
SX[Saxobank OpenAPI]
end
subgraph "Data Layer"
HDP[HybridDataProvider]
DC[DataCache]
AR[LiveDataArchive]
end
subgraph "Analysis Layer"
GE[GEX Engine]
DS[DynamicScanner]
SA[SignalAggregator]
end
subgraph "Strategy Layer"
SM[StrategyManager]
SP[SunacchanSpear]
BS[BeatShield]
end
subgraph "Execution Layer"
RM[RiskManager]
EX[Execution]
TS[TradeStore]
end
subgraph "Monitoring"
DB[Dashboard]
SL[Slack Bot]
end
PG --> HDP
UW --> HDP
YF --> HDP
FH --> HDP
FR --> HDP
HDP --> DC
HDP --> AR
HDP --> GE
HDP --> DS
GE --> SA
DS --> SA
SA --> SM
SM --> SP
SM --> BS
SP --> RM
BS --> RM
RM --> EX
EX --> SX
EX --> TS
TS --> DB
TS --> SL
レイヤー詳細
Data Layer
| コンポーネント |
役割 |
ファイル |
| HybridDataProvider |
複数データソースの統合API |
core/hybrid_data_provider.py |
| DataCache |
ローカルキャッシュ管理 |
core/data_cache.py |
| LiveDataArchive |
Parquetアーカイブ |
core/archive.py |
Analysis Layer
| コンポーネント |
役割 |
ファイル |
| GEX Engine |
0D/98D GEX計算 |
core/gex.py |
| DynamicScanner |
Hot Symbol検出 |
core/scanner.py |
| SignalAggregator |
シグナル統合 |
core/signal_aggregator.py |
Strategy Layer
| コンポーネント |
役割 |
ファイル |
| StrategyManager |
戦略切替制御 |
strategies/strategy_manager.py |
| SunacchanSpear |
攻撃型戦略 |
strategies/sunacchan_spear.py |
| BeatShield |
防御型戦略 |
strategies/beat_shield.py |
Execution Layer
| コンポーネント |
役割 |
ファイル |
| RiskManager |
リスク管理 |
core/risk.py |
| Execution |
注文執行 |
core/execution.py |
| TradeStore |
トレード記録 |
core/trade_store.py |
データフロー
エントリーフロー
sequenceDiagram
participant UW as Unusual Whales
participant DS as DynamicScanner
participant GE as GEX Engine
participant SM as StrategyManager
participant RM as RiskManager
participant SX as Saxobank
UW->>DS: Sweep Alert
DS->>GE: Get GEX Profile
GE-->>DS: GEX Data
DS->>SM: Hot Symbol + Signals
SM->>RM: Trade Request
RM->>RM: Risk Check
RM->>SX: Place Order
SX-->>RM: Order Confirmation
イグジットフロー
sequenceDiagram
participant PG as Polygon API
participant PM as PositionMonitor
participant SM as StrategyManager
participant SX as Saxobank
participant TS as TradeStore
loop Every Minute
PG->>PM: Price Update
PM->>SM: Check Exit Conditions
SM-->>PM: Exit Signal
end
PM->>SX: Close Order
SX-->>PM: Confirmation
PM->>TS: Record Trade
技術スタック詳細
Python パッケージ
# Core
python >= 3.14
pandas >= 2.0
pyarrow >= 14.0
numpy >= 1.26
# API Clients
aiohttp >= 3.9
httpx >= 0.26
finnhub-python >= 2.4
# Data Storage
duckdb >= 0.9
# Web
flask >= 3.0
flask-sock >= 0.7
# Utilities
loguru >= 0.7
python-dotenv >= 1.0
外部サービス
| サービス |
用途 |
接続方式 |
| Saxobank |
注文執行 |
REST API (OAuth2) |
| Polygon |
株価/オプション/GEX |
REST API |
| Unusual Whales |
オプションフロー / IV Rank |
REST API |
| yfinance |
株価フォールバック |
Python API |
| Finnhub |
決算カレンダー |
REST API |
| FRED |
経済指標 (HY OAS) |
REST API |
| Slack |
通知・Q&A Bot |
Slack Events API |