Trading Tools

Strategy Performance Heatmap

7 min read

What it is

Shows your realized P&L as a 7×24 hour-of-day by day-of-week matrix, computed from REAL closed round-trips (no simulation). Filter by source — Smart Trade, Grid Bot, DCA Safety, CEX Trading manual, or All sources combined. The grid reveals the windows when your trading is most profitable and most damaging, so you can tighten bot schedules or stop trading at hours that consistently lose.

How to think about it

Every trader has hours that work and hours that don't. The heatmap surfaces yours from actual fills, not from gut feel. A green cell at Mon 14:00 UTC + a red cell at Sun 22:00 UTC is honest market behavior you can plan around — pause bots in the red windows, or restrict triggers to the green ones.

Step-by-step

  1. Open Strategy Heatmap

    CEX Trade → Strategy Heatmap. The hero card shows the 7×24 matrix. If you have no closed round-trips yet, you see the "Insufficient closed round-trips" empty state with a per-source breakdown of how many entries exist vs how many have closed (paired BUY → SELL).

  2. Pick a source filter

    Pills along the top: All sources (combined), Smart Trade, Grid Bot, DCA Safety, CEX Trading (manual). Start with All sources to see the aggregate, then drill into a single source to see what that one bot is doing. The aggregate ALWAYS includes every closed round-trip across all your strategies.

  3. Read the 3 KPI cards

    Total realized P&L (sum of profit/loss from all closed trades in the filter). Closed round-trips (count of paired BUY→SELL or Smart Trade exits). Win rate % (W/L count on those trades).

  4. Read Best window + Worst window

    Top emerald card shows the single 1-hour bucket with the largest positive P&L. Top red card shows the single 1-hour bucket with the largest negative P&L. Both display day-of-week, hour UTC, P&L, trade count, win rate.

  5. Read the heatmap grid

    Rows = days of week (Sun → Sat). Columns = hours 00-23 UTC. Cell color = P&L intensity (4 levels emerald = profit, 4 levels red = loss, dark = no trades). Cell number = trade count in that window. Hover any cell for exact P&L + trade count + win rate. Right column = day-total. Bottom row = hour-total.

  6. Use the insights

    A bot that loses consistently in one row (e.g., every Sunday) probably needs a "do not trade Sunday" filter — possible via the Conditional Bot wrapper. A bot with a sharp red column at 14:00 UTC might be triggering on a recurring liquidity event (US market open). A Grid Bot with rows-totals all green is doing its job — keep it running.

  7. Per-source breakdown (All view only)

    When source = All, a P&L decomposition card shows how the aggregate P&L splits across each source. Click any source row to drill into JUST that source. Useful when your Smart Trade is +$500 but your Grid Bot is -$300 — you want to know which one to feed and which to fix.

Tips & pitfalls

  • All times are UTC. If you live on US Eastern, a 9 PM EST trade shows at 02:00 (next day in UTC). Plan accordingly when you read your local night-trading patterns.
  • Only CLOSED round-trips count. A BUY that you never sold (long-term ETH accumulation) does not appear. Open positions also do not appear until they close. This is intentional — the heatmap measures realized P&L per window, not unrealized.
  • Pure buys (DCA accumulation strategies) will not show up unless you also sell some. If you want a heatmap for a pure-DCA bot, look at its dashboard P&L instead.
  • Insufficient state shows the per-source entry vs round-trip count. If you have 50 entries but 0 round-trips, your bot is opening positions but never closing — usually because the take-profit / stop-loss is too far away.
  • Sparse heatmap with only 3-5 cells lit = not enough data. The patterns become meaningful around 50+ closed round-trips spread across at least 2 weeks. Don't over-interpret 10-trade heatmaps.
  • The "consider pausing bots in this window" suggestion on the Worst window card is a hint, not an order. A consistently red Friday 22:00 might just mean illiquid weekend rolls — a smart fix is a Conditional Bot day-filter, not pausing the whole bot.
  • Per-source view (e.g., Grid Bot only) is the most actionable. Source-aggregated view (All) is good for spotting the unique-bot worst-offender; the source-specific view tells you which configuration to change.
  • Re-read the heatmap monthly. Market regimes change — your Tuesday-morning profitable window in Q1 2026 may flip to a loss window in Q2 if regime shifts. The heatmap reflects the trailing fills, not the future.