/trading-visualization
Professional trading charts including candlesticks, equity curves, drawdowns, correlation heatmaps, and return distributions
$ npx -y skills add agiprolabs/claude-trading-skills --skill trading-visualization --agent claude-codeHow 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.mdname: 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
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,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.
Repo: agiprolabs/claude-trading-skills
Other skills on trading-skills.
- /backtrader
Event-driven backtesting with bar-by-bar execution, complex order types, multiple analyzers, and custom indicators
Open skill - /birdeye-api
Solana token market data via Birdeye — prices, OHLCV, trades, token metadata, security checks, and trader activity
Open skill - /coingecko-api
Broad crypto market data from CoinGecko covering 13,000+ tokens. Global market stats, historical price data going back years, exchange volumes, trending tokens, and category filters. Best for macro analysis and long-term historical data.
Open skill - /cointegration-analysis
Cointegration testing for pairs trading using Engle-Granger, Johansen, and rolling stability analysis
Open skill - /copy-trading
Wallet evaluation, monitoring, and copy-trade strategy design for Solana DEX trading
Open skill - /correlation-analysis
Cross-asset correlation analysis including rolling correlation, hierarchical clustering, tail dependence, and regime-dependent correlation
Open skill

