Visualization¶
Widgets¶
widgets
¶
Section 6.2.1 -- Jupyter widget helpers (Plotly-based).
All public functions return plotly.graph_objects.Figure when plotly is
installed, or plain dict representations otherwise. No ipywidgets
dependency -- the helpers are pure-data so they work in any notebook runtime.
ChartConfig
dataclass
¶
Shared visual configuration for all chart helpers.
asset_selector(available, selected=None)
¶
Return a dict with available tickers and the selected subset.
This is a pure-data helper so downstream widgets / UI code can consume the selection without coupling to ipywidgets.
Parameters¶
available: Full universe of ticker strings. selected: Pre-selected tickers. Defaults to all available.
Returns¶
dict with keys available, selected.
efficient_frontier(returns, volatilities, *, sharpe_ratios=None, labels=None, optimal_idx=None, config=None)
¶
Plot the mean-variance efficient frontier.
Parameters¶
returns: 1-D array of portfolio expected returns (one per frontier point). volatilities: Matching 1-D array of portfolio standard deviations. sharpe_ratios: Optional Sharpe ratios used for colour-mapping. labels: Optional hover labels for each point. optimal_idx: Index of the optimal portfolio to highlight. config: Visual configuration.
Returns¶
Plotly Figure or dict.
quantum_vs_classical(metric_names, classical_values, quantum_values, *, title='Quantum vs Classical', config=None)
¶
parameter_sensitivity(param_name, param_values, objective_values, *, series_name='Objective', extra_series=None, title=None, config=None)
¶
Line chart showing how an objective changes with a parameter.
Useful for sweeping risk-aversion, cardinality, mixer type index, etc.
Parameters¶
param_name:
Name of the parameter being swept (x-axis label).
param_values:
Numeric parameter values.
objective_values:
Corresponding objective / metric values.
series_name:
Legend name for the primary series.
extra_series:
Optional mapping {legend_name: values} for overlay lines.
title:
Chart title (defaults to "Sensitivity: {param_name}").
config:
Visual configuration.
Returns¶
Plotly Figure or dict.
Dashboard¶
dashboard
¶
Section 6.2.2 -- Portfolio dashboard charts and optional Dash app.
Every public function returns a plotly.graph_objects.Figure (or plain
dict when plotly is not installed). The create_dash_app factory
builds a full Dash application but is gated behind an optional dash
import.
DashboardConfig
dataclass
¶
Layout configuration shared across dashboard charts.
portfolio_value_chart(dates, values, *, benchmark_values=None, title='Portfolio Value Over Time', config=None)
¶
Line chart of portfolio NAV with optional benchmark overlay.
Parameters¶
dates: Sequence of date-like x-axis values. values: Portfolio values corresponding to each date. benchmark_values: Optional benchmark series for comparison. title: Chart title. config: Visual configuration.
drawdown_chart(dates, values, *, title='Drawdown', config=None)
¶
Area chart of portfolio drawdown.
Parameters¶
dates: Date-like x-axis values. values: Portfolio values (not returns). title: Chart title. config: Visual configuration.
risk_decomposition_chart(categories, contributions, *, level='asset', title=None, config=None)
¶
Horizontal bar chart of risk contributions by factor / sector / asset.
Parameters¶
categories:
Labels (factor names, sector names, or asset tickers).
contributions:
Risk contribution values (e.g. variance contribution, VaR
decomposition).
level:
One of "factor", "sector", "asset" -- used only for
the default title.
title:
Chart title override.
config:
Visual configuration.
rebalancing_schedule_chart(dates, turnover, *, title='Rebalancing Schedule', config=None)
¶
Bar chart of portfolio turnover at each rebalancing date.
Parameters¶
dates: Rebalancing dates. turnover: Turnover fraction at each rebalancing (0-1 or 0-100 scale). title: Chart title. config: Visual configuration.
transaction_cost_chart(dates, costs, *, cumulative=True, title='Transaction Costs', config=None)
¶
Line/bar chart of transaction costs over time.
Parameters¶
dates: Trade / rebalancing dates. costs: Per-period transaction costs. cumulative: If True, also overlay the cumulative cost line. title: Chart title. config: Visual configuration.
create_dash_app(portfolio_dates, portfolio_values, *, benchmark_values=None, risk_categories=None, risk_contributions=None, rebalance_dates=None, rebalance_turnover=None, transaction_dates=None, transaction_costs=None, config=None, title='qufin Portfolio Dashboard')
¶
Build a Dash app that renders the full dashboard.
Returns a dash.Dash application instance. If dash is not
installed, raises ImportError with a helpful message.