Use this page when your goal is simple: render a strategy result quickly and verify signals visually.
For full API coverage, advanced configuration, and styling details, see Charting.
ChartWorkflow chartWorkflow = new ChartWorkflow();
JFreeChart chart = chartWorkflow.builder()
.withSeries(series)
.toChart();TradingRecord record = new BarSeriesManager(series).run(strategy);
JFreeChart chart = chartWorkflow.builder()
.withSeries(series)
.withTradingRecordOverlay(record)
.toChart();ClosePriceIndicator close = new ClosePriceIndicator(series);
SMAIndicator sma = new SMAIndicator(close, 50);
JFreeChart chart = chartWorkflow.builder()
.withSeries(series)
.withIndicatorOverlay(sma)
.toChart();Use TimeAxisMode.BAR_INDEX when you want evenly spaced bars (for markets with weekends/holidays):
JFreeChart chart = chartWorkflow.builder()
.withTimeAxisMode(TimeAxisMode.BAR_INDEX)
.withSeries(series)
.toChart();- No chart window: likely headless environment; write chart files instead.
- Signals look wrong: compare with Backtesting execution assumptions first.
- Indicator line looks shifted: verify warmup/unstable bars and source indicator wiring.