Architecture Map

SpikeWatch v0.2.0 — modular crypto monitor & backtester

~3,126 LOC src · 17 Python files · 89 tests passing · aiohttp + asyncio · SQLite store · pluggable strategies
UI Engine / Signals Pure (strategy/state/metrics) Data layer Store External
Drag to pan · scroll to zoom · click a node to inspect
🚀
main.py
App entry · sets app version
entry37 LOC
🪟
ui.main_window
SpikeWatchApp · QSettings · status bar
ui609 LOC
🧩
ui.widgets
TradeItemWidget row
ui68 LOC
📈
ui.charts
pyqtgraph windows
ui82 LOC
⚙️
core.engine
1 asyncio loop · aiohttp · Sem(20)
core441 LOCtyped open trades
📡
core.signals
Qt bus · 9 signals
core38 LOC
🧬
core.trade_state
step(trade,bar,params) · shared
pure291 LOC15 golden tests
🧠
core.strategy_base
Strategy ABC · @register · run_backtest
pure255 LOC
📦
core.strategies_pkg
3 built-ins · auto-register
strategies160 LOC
📐
core.utils
MetricsResult · Sharpe·Sortino·Calmar
pure296 LOC
🔌
data.exchange_api
aiohttp · fetch_klines · paginate
data289 LOC
🚦
data.rate_limit
RateLimiter · 429 backoff
data184 LOC
💾
data.trade_store
SQLite WAL · CSV mirror · filters
store318 LOCUNIQUE idem
🟡
Binance USDT-M Futures
fapi.binance.com · public
RESTbudget 2400/60s
🟠
Bitget USDT Futures v2
api.bitget.com · public
RESTbudget 600/60s
Imports / dependency
Solid sky-blue arrow → static import / instantiation.
Runtime data flow
Dashed green arrow → REST / DB / runtime data movement.
Qt signal
Dashed pink arrow → SignalEmitter → UI slot (cross-thread).