Annualized Sharpe Ratio (sharpeRatio × √365), null if unsafe. Higher is better.
Average fall PNL percentage across all signals (_fall.pnlPercentage), null if unsafe. Lower (more negative) means deeper drawdowns.
Average peak PNL percentage across all signals (_peak.pnlPercentage), null if unsafe. Higher is better.
Average PNL per signal as percentage, null if unsafe. Higher is better.
Calmar Ratio (annualized expected return / max drawdown), null if unsafe. Higher is better.
Certainty Ratio (avgWin / |avgLoss|), null if unsafe. Higher is better.
Expected yearly returns based on average trade duration and PNL, null if unsafe. Higher is better.
Number of losing signals (PNL < 0)
Recovery Factor (totalPnl / max drawdown), null if unsafe. Higher is better.
Sharpe Ratio (risk-adjusted return = avgPnl / stdDev), null if unsafe. Higher is better.
Array of all closed signals with full details (price, PNL, timestamps, etc.)
Sortino Ratio (avgPnl / downside deviation — stdDev of losses only), null if unsafe. Higher is better.
Standard deviation of returns (volatility metric), null if unsafe. Lower is better.
Cumulative PNL across all signals as percentage, null if unsafe. Higher is better.
Total number of closed signals
Number of winning signals (PNL > 0)
Win rate as percentage (0-100), null if unsafe. Higher is better.
Statistical data calculated from backtest results.
All numeric values are null if calculation is unsafe (NaN, Infinity, etc). Provides comprehensive metrics for strategy performance analysis.
Example