Can't Even Draw Charts but Claim to Know Strategies? Full Freqtrade plot_config Guide

This article was produced by the Quantitative Trading Lab at https://www.itrade.icu. Visit for more benefits. In Freqtrade strategy development, visualizing charts is one of the most intuitive ways to understand signals and debug strategies. With the plot_config parameter, you can clearly display indicators, buy/sell signals, stop-loss points, exit reasons, etc., greatly improving strategy debugging efficiency.

This article provides a detailed guide on using plot_config and common configuration scenarios, helping you master chart-based strategy debugging quickly!


🧩 What is plot_config?

plot_config is a dictionary in your strategy class. When used with CLI tools such as:

freqtrade backtesting --plot
freqtrade plot-dataframe

It automatically generates charts showing your buy/sell signals, technical indicators, take-profit/stop-loss points, etc.

✅ Common fields:

Field Name
Type
Description

main_plot

list

Indicators to plot on the main chart (e.g., EMA, MA)

subplots

dict

Subplots like RSI, MACD, displayed below main chart

plot_signals

bool

Whether to show buy/sell arrows on the chart

plot_trades

bool

Whether to show connecting lines between trades

plot_exit_reason

bool

Whether to mark exit reasons (take profit, stop-loss, signal, etc.)


🔧 Example Configuration

plot_config = {
    'main_plot': ['ema_20', 'ema_50'],  # Draw two EMAs on the main chart
    'subplots': {
        "rsi": {
            'rsi': {'color': 'blue'}   # Display RSI in the RSI subplot
        },
        "macd": {
            'macd': {'color': 'green'},
            'macdsignal': {'color': 'orange'}
        }
    },
    'plot_signals': True,         # Show buy/sell arrows
    'plot_trades': True,          # Show trade connecting lines
    'plot_exit_reason': True      # Mark exit reasons
}

📈 Example Chart Explanation

Assume your strategy uses the following indicators:

  • EMA20 and EMA50 to determine trends

  • RSI for overbought/oversold conditions

  • MACD for momentum

  • Buy when RSI < 30, sell when RSI > 70

With plot_config:

  • The main chart shows EMA20 and EMA50

  • RSI curve is displayed in a subplot with color

  • MACD and its signal line are plotted below

  • Buy/sell arrows are shown on the chart

  • Trade connecting lines and exit reasons are displayed


🔍 Debugging Recommendations

Goal
Recommended Configuration

Check trend indicators

Add MA, EMA, Bollinger Bands to main_plot

Adjust buy/sell logic

Enable plot_signals and plot_trades to view entries/exits

Verify exit reason validity

Enable plot_exit_reason to see stop-loss/profit triggers

Validate multiple indicators

Use subplots for RSI, MACD, CCI intersection analysis


🚀 How to Generate Charts

To make plot_config effective, run commands with the --plot parameter:

✅ 1. Plot during backtesting

  • Automatically opens interactive charts after backtest (or generates charts in Jupyter)

  • Shows candles, indicators, signals, and trade paths

✅ 2. Plot indicators for a specific pair (no trades)

  • Shows only content from populate_indicators()

  • Does not rely on entries/exits, ideal for indicator debugging

✅ 3. Export charts as interactive HTML

  • Generates interactive HTML files for local viewing or sharing

💡 Tips

Scenario
Recommended Command

Quickly review strategy execution

freqtrade backtesting --plot

View indicators for a specific pair and time

plot-dataframe with --pair and --timerange

Save charts for review or sharing

Add --export-html to generate interactive HTML


⚠️ Notes

  • Field names in main_plot and subplots must match those defined in populate_indicators()

  • Chart commands do not automatically save charts; use --export or --plot

  • Too many indicators may clutter the chart; choose selectively


🧠 Summary

Parameter
Controls
Required
Recommended

main_plot

Main chart indicators

EMA, Bollinger Bands

subplots

Subplot indicators

RSI, MACD

plot_signals

Show buy/sell arrows

True

plot_trades

Show trade lines

True

plot_exit_reason

Show exit reason tags

True

With plot_config, you can visualize your strategy’s behavior, making post-development debugging and optimization much easier. Your strategy logic becomes transparent, turning “blind coding” into informed strategy development.

Last updated