Skip to main content
scripts/dashboard.py prints a one-shot trading summary to the terminal. It reads state.json, trade_log.csv, logs/trades.csv, and blocked_signals.csv to give a live snapshot of the bot’s performance.

Usage

# Standard view
python scripts/dashboard.py

# Include per-trade log + full block reason list
python scripts/dashboard.py --full

# Today's trades only (uses timezone from config.json)
python scripts/dashboard.py --today

CLI flags

FlagDefaultDescription
--fullfalseShow per-trade log and complete block reasons list
--todayfalseFilter to today’s trades (respects timezone.offset_hours in config.json)

Sample output

NOVOSKY Dashboard
=================
Bot state       : RUNNING
Circuit breaker : 0 / 5 consecutive losses
Daily P&L       : +$22.41
Weekly P&L      : +$87.63

All-time stats (last 90 days)
------------------------------
Total trades    : 142
Win rate        : 80.3%
Profit factor   : 3.89
Max drawdown    : 7.2%
Score           : 13.81

Today (2026-04-18, local timezone)
------------------------
Trades  : 3
Winners : 3 (100%)
P&L     : +$22.41

Top block reasons (last 7d)
----------------------------
news_block         : 14
low_confidence     : 9
atr_below_min      : 7
circuit_breaker    : 2

Model
-----
Signal model    : v20260415 (56 features)
Position model  : v20260415 (60 features)
Train cutoff    : 2026-03-05

Log files read

FileUsed for
state.jsonCircuit breaker state, daily counters
logs/trades.csvRich structured trade log (primary)
trade_log.csvFallback simple trade log
blocked_signals.csvBlock reason aggregation
models/ensemble_btcusd-live_metadata.jsonModel version info