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.
Last updated
Was this helpful?
This module provides a comprehensive set of tools for portfolio managers and quantitative analysts to optimize asset allocation strategies and evaluate their performance.
Last updated
Was this helpful?
Was this helpful?
Tutorials
are the best documentation — Weight Optimization Tutorial
Multiple optimization strategies
Comprehensive performance analysis
Risk-adjusted return metrics
Portfolio composition visualization
Drawdown and contribution analysis
Correlation and clustering analysis
Daily weight tracking
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()
Shows the distribution of Sharpe ratios across different strategies, helping to understand the consistency of risk-adjusted returns.
.sharpe_plot
Displays the cumulative returns of all portfolio strategies over time, allowing for easy comparison of overall performance.
.return_plot
Illustrates the asset allocation of all strategies, allowing for a comparison of how different models allocate capital.
.composition_plot
Identifies the strategy that performed best according to the Sharpe ratio.
.best_model
'NCO'
Provides a comprehensive summary of key performance metrics for all strategies, including returns, volatility, Sharpe ratio, and more.
.performance_report
For model-specific analysis, replace "model_name" with the actual model name (e.g., HRP, HERC, NCO, or EQUAL).
["model_name"].backtest_plot
Displays the cumulative returns of the specific model over the backtesting period.
Detailed performance statistics from the backtesting period for the specific model.
["model_name"].backtest_report
Visualizes how the Sharpe ratio of the model changes over time, indicating consistency of performance.
["model_name"].sharpe_rolling_plot
Illustrates the asset allocation for the specific model.
["model_name"].composition_plot
Shows which assets contribute most to the portfolio's drawdowns, helping identify risk sources.
["model_name"].drawdown_contribution_plot
Indicates which assets contribute most to the portfolio's Sharpe ratio, highlighting return drivers.
["model_name"].sharpe_contribution_plot
Displays the correlation structure of assets used in the model (not available for EQUAL).
["model_name"].heatmap_plot
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
Shows the distribution of Sharpe ratio helping to understand the consistency of risk-adjusted returns.
["model_name"].recommended_allocation
Shows how the model's asset allocation changes day-by-day over the backtesting period.
["model_name"].daily_weights