Backtest Report

Strategy: {{ result.strategy_id }}

{{ result.engine.value }} Engine

Executive Summary

Total Return
{{ "%.2f"|format((metrics.total_return_pct|float) * 100) }}%
Net PnL
${{ "{:,.2f}".format(metrics.net_pnl_usd|float) }}
Sharpe Ratio
{{ "%.3f"|format(metrics.sharpe_ratio|float) }}
Max Drawdown
{{ "%.2f"|format((metrics.max_drawdown_pct|float) * 100) }}%
Win Rate
{{ "%.1f"|format((metrics.win_rate|float) * 100) }}%
Total Trades
{{ metrics.total_trades }}
Initial Capital
${{ "{:,.2f}".format(result.initial_capital_usd|float) }}
Final Capital
${{ "{:,.2f}".format(result.final_capital_usd|float) }}

Detailed Metrics

{% if metrics.total_mev_cost_usd|float > 0 %} {% endif %} {% if metrics.avg_gas_price_gwei|float > 0 %} {% endif %} {% if metrics.total_fees_earned_usd|float > 0 %} {% endif %} {% if metrics.total_funding_paid|float > 0 or metrics.total_funding_received|float > 0 %} {% if metrics.liquidations_count > 0 %} {% endif %} {% if metrics.max_margin_utilization|float > 0 %} {% endif %} {% endif %} {% if metrics.total_interest_earned|float > 0 or metrics.total_interest_paid|float > 0 %} {% if metrics.min_health_factor|float < 999 %} {% endif %} {% if metrics.health_factor_warnings > 0 %} {% endif %} {% endif %} {% if metrics.total_leverage|float > 0 %} {% if metrics.correlation_risk is not none %} {% endif %} {% if metrics.liquidation_cascade_risk|float > 0 %} {% endif %} {% endif %}
Metric Value
Performance
Total PnL (Gross) ${{ "{:,.2f}".format(metrics.total_pnl_usd|float) }}
Net PnL (After Costs) ${{ "{:,.2f}".format(metrics.net_pnl_usd|float) }}
Total Return {{ "%.2f"|format((metrics.total_return_pct|float) * 100) }}%
Annualized Return {{ "%.2f"|format((metrics.annualized_return_pct|float) * 100) }}%
Profit Factor {{ "%.2f"|format(metrics.profit_factor|float) }}
Risk
Sharpe Ratio {{ "%.3f"|format(metrics.sharpe_ratio|float) }}
Sortino Ratio {{ "%.3f"|format(metrics.sortino_ratio|float) }}
Calmar Ratio {{ "%.3f"|format(metrics.calmar_ratio|float) }}
Max Drawdown {{ "%.2f"|format((metrics.max_drawdown_pct|float) * 100) }}%
Volatility (Annualized) {{ "%.2f"|format((metrics.volatility|float) * 100) }}%
Trading Statistics
Total Trades {{ metrics.total_trades }}
Winning Trades {{ metrics.winning_trades }}
Losing Trades {{ metrics.losing_trades }}
Win Rate {{ "%.1f"|format((metrics.win_rate|float) * 100) }}%
Avg Trade PnL ${{ "{:,.2f}".format(metrics.avg_trade_pnl_usd|float) }}
Largest Win ${{ "{:,.2f}".format(metrics.largest_win_usd|float) }}
Largest Loss ${{ "{:,.2f}".format(metrics.largest_loss_usd|float) }}
Avg Win ${{ "{:,.2f}".format(metrics.avg_win_usd|float) }}
Avg Loss ${{ "{:,.2f}".format(metrics.avg_loss_usd|float) }}
Execution Costs
Total Fees ${{ "{:,.2f}".format(metrics.total_fees_usd|float) }}
Total Slippage ${{ "{:,.2f}".format(metrics.total_slippage_usd|float) }}
Total Gas ${{ "{:,.2f}".format(metrics.total_gas_usd|float) }}
Total Execution Cost ${{ "{:,.2f}".format(metrics.total_execution_cost_usd|float) }}
Total MEV Cost ${{ "{:,.2f}".format(metrics.total_mev_cost_usd|float) }}
Avg Gas Price {{ "%.2f"|format(metrics.avg_gas_price_gwei|float) }} gwei
Max Gas Price {{ "%.2f"|format(metrics.max_gas_price_gwei|float) }} gwei
LP Performance
Total Fees Earned ${{ "{:,.2f}".format(metrics.total_fees_earned_usd|float) }}
Perp Performance
Total Funding Paid ${{ "{:,.2f}".format(metrics.total_funding_paid|float) }}
Total Funding Received ${{ "{:,.2f}".format(metrics.total_funding_received|float) }}
Liquidations {{ metrics.liquidations_count }}
Liquidation Losses ${{ "{:,.2f}".format(metrics.liquidation_losses_usd|float) }}
Max Margin Utilization {{ "%.1f"|format((metrics.max_margin_utilization|float) * 100) }}%
Lending Performance
Total Interest Earned ${{ "{:,.2f}".format(metrics.total_interest_earned|float) }}
Total Interest Paid ${{ "{:,.2f}".format(metrics.total_interest_paid|float) }}
Min Health Factor {{ "%.2f"|format(metrics.min_health_factor|float) }}
Health Factor Warnings {{ metrics.health_factor_warnings }}
Portfolio Risk
Total Leverage {{ "%.2f"|format(metrics.total_leverage|float) }}x
Correlation Risk {{ "%.2f"|format(metrics.correlation_risk|float) }}
Liquidation Cascade Risk {{ "%.2f"|format(metrics.liquidation_cascade_risk|float) }}

Charts

{% if equity_chart_html %}

Equity Curve

{{ equity_chart_html | safe }}
{% else %}

Equity Curve

Equity curve chart not available. Generate using plot_equity_curve_interactive().

{% endif %} {% if pnl_histogram_html %}

PnL Distribution

{{ pnl_histogram_html | safe }}
{% endif %} {% if drawdown_chart_html %}

Drawdown

{{ drawdown_chart_html | safe }}
{% endif %}
{% if attribution_by_protocol or attribution_by_intent_type or attribution_by_asset %}

PnL Attribution

Breakdown of PnL contribution by different categories. Green bars indicate profit, red bars indicate loss. {% if metrics.realized_pnl and metrics.unrealized_pnl %}
Realized PnL: ${{ "{:,.2f}".format(metrics.realized_pnl|float) }} | Unrealized PnL: ${{ "{:,.2f}".format(metrics.unrealized_pnl|float) }} {% endif %}

{% if attribution_by_protocol %}
{{ attribution_by_protocol | safe }}
{% endif %} {% if attribution_by_intent_type %}
{{ attribution_by_intent_type | safe }}
{% endif %} {% if attribution_by_asset %}
{{ attribution_by_asset | safe }}
{% endif %}
{% if pnl_by_protocol or pnl_by_intent_type or pnl_by_asset %}
{% if pnl_by_protocol %}

By Protocol

{% for protocol, pnl in pnl_by_protocol.items() %} {% endfor %}
Protocol PnL (USD) % of Total
{{ protocol }} ${{ "{:,.2f}".format(pnl|float) }} {% if metrics.total_pnl_usd|float != 0 %} {{ "%.1f"|format((pnl|float / metrics.total_pnl_usd|float) * 100) }}% {% else %} - {% endif %}
{% endif %} {% if pnl_by_intent_type %}

By Intent Type

{% for intent_type, pnl in pnl_by_intent_type.items() %} {% endfor %}
Intent Type PnL (USD) % of Total
{{ intent_type }} ${{ "{:,.2f}".format(pnl|float) }} {% if metrics.total_pnl_usd|float != 0 %} {{ "%.1f"|format((pnl|float / metrics.total_pnl_usd|float) * 100) }}% {% else %} - {% endif %}
{% endif %} {% if pnl_by_asset %}

By Asset

{% for asset, pnl in pnl_by_asset.items() %} {% endfor %}
Asset PnL (USD) % of Total
{{ asset }} ${{ "{:,.2f}".format(pnl|float) }} {% if metrics.total_pnl_usd|float != 0 %} {{ "%.1f"|format((pnl|float / metrics.total_pnl_usd|float) * 100) }}% {% else %} - {% endif %}
{% endif %}
{% endif %}
{% endif %}

Trade Log

{% if trades %}
Showing: {{ trades|length }} Total: {{ trades|length }}
{% endif %}
{% for trade in trades %} {% endfor %} {% if not trades %} {% endif %}
# Timestamp Type Protocol Tokens Amount Price Fee Slippage Gas PnL Status
{{ loop.index }} {{ trade.timestamp.strftime('%Y-%m-%d %H:%M:%S') }} {{ trade.intent_type.value }} {{ trade.protocol or '-' }} {{ trade.tokens | join(', ') if trade.tokens else '-' }} ${{ "{:,.2f}".format(trade.amount_usd|float) }} ${{ "{:,.4f}".format(trade.executed_price|float) }} ${{ "{:,.2f}".format(trade.fee_usd|float) }} ${{ "{:,.2f}".format(trade.slippage_usd|float) }} ${{ "{:,.2f}".format(trade.gas_cost_usd|float) }} ${{ "{:,.2f}".format(trade.pnl_usd|float) }} {{ 'Success' if trade.success else 'Failed' }}
No trades recorded

Configuration

Backtest Settings

Engine {{ result.engine.value }}
Chain {{ result.chain }}
Start Time {{ result.start_time.strftime('%Y-%m-%d %H:%M') }}
End Time {{ result.end_time.strftime('%Y-%m-%d %H:%M') }}
Duration {{ "%.1f"|format(result.simulation_duration_days) }} days
Initial Capital ${{ "{:,.2f}".format(result.initial_capital_usd|float) }}
{% if result.config %}

Strategy Config

{% for key, value in result.config.items() %}
{{ key }} {{ value }}
{% endfor %}
{% endif %}

Run Info

{% if result.run_started_at %}
Run Started {{ result.run_started_at.strftime('%Y-%m-%d %H:%M:%S') }}
{% endif %} {% if result.run_ended_at %}
Run Ended {{ result.run_ended_at.strftime('%Y-%m-%d %H:%M:%S') }}
{% endif %} {% if result.run_duration_seconds > 0 %}
Run Duration {{ "%.2f"|format(result.run_duration_seconds) }}s
{% endif %} {% if result.error %}
Error {{ result.error }}
{% endif %}