アーキテクチャ
システム全体像
graph TB
subgraph "External Data Sources"
UW[Unusual Whales API]
TD[ThetaData API]
PG[Polygon API]
BC[Barchart Scraper]
IB[IBKR TWS/Gateway]
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/SMS]
end
UW --> HDP
TD --> HDP
PG --> HDP
BC --> 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 --> IB
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 IB as IBKR
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->>IB: Place Order
IB-->>RM: Order Confirmation
イグジットフロー
sequenceDiagram
participant TD as ThetaData
participant PM as PositionMonitor
participant SM as StrategyManager
participant IB as IBKR
participant TS as TradeStore
loop Every Minute
TD->>PM: Price Update
PM->>SM: Check Exit Conditions
SM-->>PM: Exit Signal
end
PM->>IB: Close Order
IB-->>PM: Confirmation
PM->>TS: Record Trade
技術スタック詳細
Python パッケージ
# Core
python >= 3.12
pandas >= 2.0
pyarrow >= 14.0
numpy >= 1.26
# API Clients
aiohttp >= 3.9
httpx >= 0.26
ib_insync >= 0.9
# Data Storage
duckdb >= 0.9
# Web
flask >= 3.0
flask-sock >= 0.7
# Utilities
loguru >= 0.7
python-dotenv >= 1.0
外部サービス
| サービス |
用途 |
接続方式 |
| IBKR TWS/Gateway |
注文執行 |
TCP (Port 4002/7496) |
| Unusual Whales |
オプションフロー |
REST API |
| ThetaData |
オプション/GEX |
REST API (Port 25503) |
| Polygon |
株価/出来高 |
REST API |
| Barchart |
IV Rank |
Web Scraping |
| Twilio |
SMS通知 |
REST API |
| Slack |
通知 |
Webhook |