Weight Optimization

This module provides a comprehensive set of tools for portfolio managers and quantitative analysts to optimize asset allocation strategies and evaluate their performance.

Tutorials are the best documentation — Weight Optimization Tutorial

Key Features

  • Multiple optimization strategies

  • Comprehensive performance analysis

  • Risk-adjusted return metrics

  • Portfolio composition visualization

  • Drawdown and contribution analysis

  • Correlation and clustering analysis

  • Daily weight tracking

Usage

To use the Weight Optimization module, you first need to prepare your dataset. Here's an example of how to set up and run the optimization:

import sovai as sov

# Authenticate
sov.token_auth(token="your_authentication_token")

# Prepare your data
df_price = sov.data("market/closeadj")
df_mega = df_price.select_stocks("mega").date_range("2000-01-01")
df_returns = df_mega.calculate_returns().dropna(axis=1, how="any")

# Select the most uncorrelated stocks
feature_importance = df_returns.importance()
df_select = df_returns[feature_importance["feature"].head(25)]

# Run weight optimization
 = df_select.weight_optimization()

Overall Portfolio Analysis

Sharpe Ratio Distribution

Shows the distribution of Sharpe ratios across different strategies, helping to understand the consistency of risk-adjusted returns.

.sharpe_plot

Cumulative Returns Plot

Displays the cumulative returns of all portfolio strategies over time, allowing for easy comparison of overall performance.

.return_plot

Overall Composition Plot

Illustrates the asset allocation of all strategies, allowing for a comparison of how different models allocate capital.

.composition_plot

Best Performing Model

Identifies the strategy that performed best according to the Sharpe ratio.

.best_model
'NCO'

Performance Summary

Provides a comprehensive summary of key performance metrics for all strategies, including returns, volatility, Sharpe ratio, and more.

.performance_report

Model-Specific Analysis

For model-specific analysis, replace "model_name" with the actual model name (e.g., HRP, HERC, NCO, or EQUAL).

Cumulative Returns

["model_name"].backtest_plot

Displays the cumulative returns of the specific model over the backtesting period.

Backtest Report

Detailed performance statistics from the backtesting period for the specific model.

["model_name"].backtest_report

Rolling Sharpe Ratio

Visualizes how the Sharpe ratio of the model changes over time, indicating consistency of performance.

["model_name"].sharpe_rolling_plot

Model Composition

Illustrates the asset allocation for the specific model.

["model_name"].composition_plot

Drawdown Contribution

Shows which assets contribute most to the portfolio's drawdowns, helping identify risk sources.

["model_name"].drawdown_contribution_plot

Sharpe Ratio Contribution

Indicates which assets contribute most to the portfolio's Sharpe ratio, highlighting return drivers.

["model_name"].sharpe_contribution_plot

Correlation Heatmap

Displays the correlation structure of assets used in the model (not available for EQUAL).

["model_name"].heatmap_plot

Clustering Dendrogram

Visualizes the hierarchical clustering of assets used in the model (not available for EQUAL).

["model_name"].cluster_plot

Provides the model's most recent recommended asset allocation.

["model_name"].recommended_allocation

Sharpe Ratio Distribution

Shows the distribution of Sharpe ratio helping to understand the consistency of risk-adjusted returns.

["model_name"].recommended_allocation

Daily Weights

Shows how the model's asset allocation changes day-by-day over the backtesting period.

["model_name"].daily_weights

Last updated