Creating Visual Dashboards
8 min read
Build visual performance dashboards that surface execution patterns and make data-driven decisions intuitive.
8 min read
Build visual performance dashboards that surface execution patterns and make data-driven decisions intuitive.
Numbers in a spreadsheet tell you what happened. Visualizations tell you why. A well-designed execution dashboard turns months of trade data into patterns you can see in seconds and act on immediately.
A spreadsheet with 200 rows of trade data contains everything you need to improve your trading. The problem is that your brain cannot extract patterns from rows and columns. It takes a visual system -- charts, scatter plots, histograms, and heatmaps -- to surface the relationships that matter.
The goal of a dashboard is not to look professional. The goal is to answer specific questions about your execution quality within seconds of looking at it.
Examine how trade outcomes distribute across R-multiples, and how changing execution parameters shifts the shape of the distribution.
A complete execution dashboard needs exactly five views. Each answers a different question about your trading system. More than five creates noise. Fewer than five leaves blind spots.
Question it answers: Is my system healthy right now, and when did conditions last change?
Plot your cumulative R over trade number with a 20-trade rolling average overlaid. Mark regime boundaries where the rolling average crosses zero or where slope changes significantly.
| Element | Purpose |
|---|---|
| Cumulative R line | Overall trajectory and drawdown visibility |
| 20-trade rolling average | Smoothed trend detection |
| Regime change markers | When your edge turned on or off |
| Drawdown shading | Visual weight on recovery periods |
The regime overlay is what separates a useful equity curve from a decorative one. Without it, you see that you had a drawdown. With it, you see that the drawdown began exactly when BTC/USDT transitioned from trending to range-bound -- and you can plan for that.
Question it answers: What does my typical trade look like, and are my results dominated by outliers?
Plot a histogram of all trade results in R-multiples. The shape of this distribution is your strategy's fingerprint.
| Distribution Shape | Interpretation |
|---|---|
| Tight cluster around +0.5R to +1.5R with thin left tail | Consistent small wins, controlled losses. High-frequency edge. |
| Wide spread with fat right tail | Trend-following system. Many small losses, occasional large wins. |
| Bimodal (peaks at -1R and +2R) | Binary outcome system. Works or does not. |
| Normal distribution centered near 0R | No edge. Random entries with risk management. |
Mark the mean and median on the histogram. If the mean is significantly higher than the median, your system depends on outlier wins. This is not inherently bad, but it means you need a large sample size before drawing conclusions.
Question it answers: How efficient are my entries and exits, and where is slippage concentrated?
Plot each trade as a point with MAE on the X-axis and MFE on the Y-axis. Color-code by outcome (green for winners, red for losers).
Key patterns to look for:
On the MAE/MFE scatter plot, draw a diagonal line from the origin at a 45-degree angle. Trades above this line had more favorable excursion than adverse excursion. The percentage of trades above this line is a rough measure of directional accuracy. If more than 60% of your trades are above the line, your directional calls are sound and you should focus on execution and exit optimization.
Question it answers: When am I trading well, and when should I stop?
Create a grid with day of week on one axis and time block (2-hour or 4-hour windows) on the other. Color each cell by win rate or average R for trades taken in that window.
| 00-04 UTC | 04-08 UTC | 08-12 UTC | 12-16 UTC | 16-20 UTC | 20-24 UTC | |
|---|---|---|---|---|---|---|
| Mon | 0.3R | - | 0.8R | 1.2R | 0.4R | -0.2R |
| Tue | - | 0.1R | 0.6R | 0.9R | 0.7R | - |
| Wed | -0.4R | - | 1.1R | 1.4R | 0.5R | -0.3R |
| Thu | 0.2R | - | 0.7R | 0.8R | 0.3R | -0.5R |
| Fri | - | - | 0.4R | 0.6R | -0.1R | - |
In this example, the trader's best window is 12-16 UTC on weekdays (overlapping the US equity open). Late sessions (20-24 UTC) are consistently negative -- likely fatigue-driven. The actionable insight is obvious: stop trading after 20:00 UTC.
Question it answers: How much is execution friction costing me, and are there outlier events?
Plot a histogram of per-trade slippage in basis points. Separate entry slippage and exit slippage into stacked bars or two separate histograms.
| Metric to Display | Target for BTC/USDT |
|---|---|
| Median entry slippage | Below 3 bps |
| Median exit slippage | Below 5 bps |
| 95th percentile slippage | Below 15 bps |
| Percentage of trades with zero or negative slippage | Above 30% (if using limit orders) |
The 95th percentile is critical. If your median slippage is 3 bps but your 95th percentile is 40 bps, you have a fat tail problem -- a small number of trades with extreme slippage that disproportionately harm performance. Investigate those outliers individually.
A dashboard is only as good as the data feeding it. For the five visualizations above, you need these fields logged per trade:
| Field | Used In |
|---|---|
| Trade timestamp | Session heatmap, equity curve |
| Signal price | Slippage histogram, MAE/MFE scatter |
| Fill price (entry) | Slippage histogram |
| Fill price (exit) | Slippage histogram, R-distribution |
| MAE price | MAE/MFE scatter |
| MFE price | MAE/MFE scatter |
| R-multiple result | Equity curve, R-distribution, session heatmap |
| Stop distance | R-multiple calculation |
| Setup type tag | Filtering across all views |
Do not build a dashboard with 20 trades of data. The visualizations will be misleading. Collect at least 50 trades with complete data before constructing your first dashboard. For the session heatmap and R-distribution histogram, 100+ trades are needed for reliable patterns.
The workflow from trade journal to dashboard has three stages:
Replace free-text journal entries with structured fields. Every trade gets the same set of fields, filled consistently. Missing data is worse than no data -- it creates selection bias in your visualizations.
Derive metrics from your raw data:
Map calculated fields to the five chart types. Update weekly or after every 10-20 trades. The cadence matters: too frequent and you react to noise; too infrequent and you miss regime changes.
Every visualization should be filterable by setup type, date range, and market condition. Your overall statistics might look fine while a specific setup type is hemorrhaging R. Filters reveal this.
Set thresholds on your dashboard. When slippage exceeds 15 bps, when execution score drops below 12/20, when MFE Capture Ratio falls below 0.40 -- these should visually stand out. A dashboard where everything looks the same is a dashboard that hides problems.
Always show current period alongside a comparison period. "My win rate is 58%" means nothing. "My win rate improved from 52% to 58% after switching to limit entries during the US session" is an actionable insight.
If your dashboard requires scrolling, it has too much information. The five essential views should fit on a single screen. Supplementary analysis can live on secondary pages, but the primary dashboard should be a single-glance health check.