Skip to content
Finance
Skill

/trading-visualization

Professional trading charts including candlesticks, equity curves, drawdowns, correlation heatmaps, and return distributions

From plugin
trading-skills
26767 skills
Install
$ npx -y skills add agiprolabs/claude-trading-skills --skill trading-visualization --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/trading-visualization

Context preview

The summary Claude sees to decide when to auto-load this skill.

Professional trading charts including candlesticks, equity curves, drawdowns, correlation heatmaps, and return distributions

SKILL.md

trading-visualization.SKILL.md
name: trading-visualization
description: Professional trading charts including candlesticks, equity curves, drawdowns, correlation heatmaps, and return distributions

Trading Visualization

Visualization is the primary interface between a trader and their data. Charts reveal patterns that tables and numbers cannot: breakdowns in strategy, regime transitions, clustering of losses, and the shape of risk. A well-designed chart communicates more in a glance than a page of statistics.

**Three uses of trading charts:**

1. **Pattern recognition** — Spot structural changes in price, volume, and momentum that quantitative filters miss. 2. **Strategy evaluation** — Equity curves, drawdown plots, and return distributions expose whether a strategy is robust or curve-fit. 3. **Reporting** — Communicate performance to stakeholders, journals, or your future self with publication-quality visuals.

---

Chart Types Covered

| Chart Type | Purpose | Library | |------------|---------|---------| | Candlestick | OHLCV price action with overlays | mplfinance | | Equity curve | Portfolio value over time | matplotlib | | Drawdown | Underwater equity plot | matplotlib | | Return distribution | Histogram + normal fit | matplotlib | | Correlation heatmap | Cross-asset correlation matrix | matplotlib / seaborn | | Trade markers | Entry/exit points on price chart | mplfinance / matplotlib | | Indicator panels | RSI, MACD below price chart | mplfinance | | Position timeline | When positions were held | matplotlib |

---

Libraries

mplfinance

Best for candlestick charts. Built on matplotlib with finance-specific defaults.

uv pip install mplfinance
import mplfinance as mpf

# Basic candlestick from a DataFrame with DatetimeIndex
# Columns: Open, High, Low, Close, Volume
mpf.plot(df, type="candle", volume=True, style="charles")

Key features:

  • Native OHLCV support — pass a DataFrame directly
  • Built-in volume bars
  • `addplot` for overlays (moving averages, Bollinger Bands)
  • Custom styles via `mpf.make_mpf_style()`

matplotlib

General purpose, most flexible. Use when you need full control over layout.

uv pip install matplotlib
import matplotlib.pyplot as plt

fig, axes = plt.subplots(2, 1, figsize=(14, 8), height_ratios=[3, 1],
                         sharex=True)
axes[0].plot(dates, equity, color="#00ff88")
axes[1].fill_between(dates, drawdown, 0, color="#ff4444", alpha=0.5)

plotly

Interactive charts rendered as HTML. Best for exploration and dashboards.

uv pip install plotly
import plotly.graph_objects as go

fig = go.Figure(data=[go.Candlestick(
    x=df.index, open=df["Open"], high=df["High"],
    low=df["Low"], close=df["Close"]
)])
fig.update_layout(template="plotly_dark")
fig.write_html("chart.html")

---

Styling: Dark Theme Default

Trading terminals use dark backgrounds by default. All charts in this skill follow that convention.

Quick dark theme setup

import matplotlib.pyplot as plt

plt.style.use("dark_background")
plt.rcParams.update({
    "figure.facecolor": "#1a1a2e",
    "axes.facecolor": "#1a1a2e",
    "axes.edgecolor": "#333333",
    "grid.color": "#333333",
    "grid.alpha": 0.4,
    "text.color": "#e0e0e0",
    "xtick.color": "#aaaaaa",
    "ytick.color": "#aaaaaa",
})

Trading color scheme

| Element | Color | Hex | |---------|-------|-----| | Bullish / profit | Green | `#00ff88` | | Bearish / loss | Red | `#ff4444` | | Neutral / info | Blue | `#4488ff` | | Warning | Amber | `#ffaa00` | | MA short | Orange | `#ff6600` | | MA long | Blue | `#3399ff` | | MA signal | Yellow | `#ffcc00` |

See `references/styling_guide.md` for complete typography, layout ratios, and export settings.

---

Chart Composition: Multi-Panel Layout

Most trading charts need multiple synchronized panels — price on top, volume in the middle, indicators at the bottom.

Stacked panels with shared x-axis

import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

fig = plt.figure(figsize=(14, 10))
gs = gridspec.GridSpec(3, 1, height_ratios=[3, 1, 1], hspace=0.05)

ax_price = fig.add_subplot(gs[0])
ax_volume = fig.add_subplot(gs[1], sharex=ax_price)
ax_rsi = fig.add_subplot(gs[2], sharex=ax_price)

# Hide x-tick labels on upper panels
ax_price.tick_params(labelbottom=False)
ax_volume.tick_params(labelbottom=False)

Panel height ratios

| Layout | Ratios | Use Case | |--------|--------|----------| | Price + Volume | `[3, 1]` | Simple OHLCV chart | | Price + Volume + Indicator | `[3, 1, 1]` | Standard analysis view | | Equity + Drawdown | `[2, 1]` | Performance review | | Price + RSI + MACD | `[3, 1, 1]` | Full indicator stack |

---

Candlestick Charts with Overlays

import mplfinance as mpf
import pandas as pd

# df: DataFrame with DatetimeIndex, columns Open/High/Low/Close/Volume
ema20 = df["Close"].ewm(span=20).mean()
ema50 = df["Close"].ewm(span=50).mean()

ap = [
    mpf.make_addplot(ema20, color="#ff6600", width=1.2),
    mpf.make_addplot(ema50, color="#3399ff", width=1.2),
]

style = mpf.make_mpf_style(
    base_mpf_style="nightclouds",
    marketcolors=mpf.make_marketcolors(
        up="#00ff88", down="#ff4444",
        wick={"up": "#00ff88", "down": "#ff4444"},
        edge={"up": "#00ff88", "down": "#ff4444"},
        volume={"up": "#00ff88", "down": "#ff4444"},
    ),
    facecolor="#1a1a2e", figcolor="#1a1a2e",
    gridcolor="#333333", gridstyle="--",
)

mpf.plot(df, type="candle", style=style, addplot=ap,
         volume=True, figsize=(14, 8),
         title="Token / SOL — 15m", savefig="candles.png")

---

Equity Curve with Drawdown Panel

import numpy as np
import matplotlib.pyplot as plt

def plot_equity_drawdown(equity: pd.Series, title: str = "Portfolio") -> plt.Figure:
    """Plot equity curve with drawdown panel below."""
    peak = equity.cummax()
    drawdown = (equity - peak) / peak

    fig, (ax1,
Read more
Ships withtrading-skills

A comprehensive collection of 67 ready-to-use trading, DeFi, and quantitative finance Agent Skills. Works with Claude Code, Cursor, Codex, Gemini CLI, and 30+ other tools.

Get the whole plugin
Stats
312
Stars
62
Forks
Maintained
Maintenance
Python
Language
MIT
License
1mo ago
Last commit
5mo ago
Created

Repo: agiprolabs/claude-trading-skills