Backtest Configs
This is the configs your backtesting used.
Config Term | Value |
---|---|
{{key}} | {{value | cut_if_too_long(50) }} |
PnL Curve & Performance Metrics

This data is stored in Analyzer.df_returns
Strategy Performance Metrics
These are calculated using ACTIVE return of your portfolio. When calculating sharpe ratio, risk-free rate is assumed to be 0.
Term | Value |
---|---|
{{key}} | {{value | round_if_float(1) }} |
Strategy Risk Metrics
Term | Value |
---|---|
{{key}} | {{value | round_if_float(3) }} |
Daily Trading & Holding PnL
Trading PnL = (close price - fill price) * position change
Holding PnL = (close price - pre-close price) * initial position

This data is stored in Analyzer.df_pnl
Brinson Attribution

This data is stored in Analyzer.df_brinson
Visualization for Selected Security
{% for symbol in selected_securities %}
Daily PnL for Selected Security
{% for symbol in selected_securities %} {{ symbol }}{{ df_daily[symbol].to_html(classes="table table-striped", border=0) }}
{% endfor %} {% endif %} {% if rebalance_positions is not none %}
Table of Position on Re-balance Days
{% for date, df in rebalance_positions.items() %}
{{ df.to_html(classes="table table-striped", border=0) }}
This data is stored in Analyzer.rebalance_positions
Table of Daily Position
{{ daily_position.to_html(classes="table table-striped", border=0) }}This data is stored in Analyzer.daily_position
Table of Records of Position Changes
{% for date, df in position_change.items() %} {{ date }}market value = {{ account[date]['market_value'] / 1000.0 | round(0) }}k, cash = {{ account[date]['cash'] / 1000.0 | round(0) }}k,
{{ df.to_html(classes="table table-striped", border=0) }} {% endfor %}
This data is stored in Analyzer.position_change