Optimize Portfolio Ratios

A Math Tool in Beta Testing– Not Investment Advice



⬅ Return to Main Menu

Portfolio Editor:

TickerCurrentOptimizedOptimize
Total

Disclaimer: All results are based on approximate historical data and are for informational purposes only. No guarantee is made as to the accuracy, completeness, or applicability of the results. Use at your own risk. This is not financial advice and is not guaranteed to be accurate.

This calculation performs a retrospective analysis, identifying what would have worked best historically. Results do not account for sector diversification needs, taxes, or other factors. The optimizer adjusts weights to maximize the "Sortino Ratio", "Sharpe Ratio", "Kappa Ratio", or minimize "Conditional VaR" (based on your selection), while ensuring that no ticker exceeds the "Maximum Percentage" constraint or falls below the "Minimum Percentage" constraint. The "Minimum Percentage" may be negative to allow short positions. A portfolio can include up to 50 tickers.

Steps:

Set Default Options – The "Default Ticker" is used if your portfolio has missing data (e.g., "SHY"). The "Compare Ticker" is used as a benchmark for performance comparison. The 'Years' field determines how far back the analysis will take into account.

Use one of the following two options to input your portfolio:

Option 1: Use the "Choose File" button to select a CSV or Excel file from your computer (wait until its filename appears to the right of "Choose File"). Data must start in cell A1. The file must have at least one of the following column sets:

"Symbol", "Current Value", "Total Gain/Loss Dollar" (such as from a Fidelity Positions download),
OR "ticker" and "amount". Extra columns can be left in place; column names are case-sensitive.

Click "Read Excel" immediately after choosing the file to populate the table with the "Ticker", "Current", and "Proposed" columns. These values are percentages, and the total will be close to 100. The "Current Value $" - Total Portfolio Value - is displayed in a box above.

Option 2: Manually type in tickers and their "Current" weights, ensuring these weights add up to 100. Then enter the Total value of portfolio as "Current Value $" in the box above the buttons.

Select Tickers to Optimize – In the "Optimize" column, enter "1" for each ticker you want the optimizer to adjust. At least two tickers must be selected. You may add new tickers in and set their "Optimize" value to "1". Ensure that all current weights sum to 100.

Now Select Optimization Metric – Choose one of: "Sortino Ratio", "Sharpe Ratio", "Kappa Ratio", or "Conditional VaR". The optimizer will use the selected metric for optimization.

Run the Optimizer – Click "Optimize Selected" to view the optimized portfolio weights and performance chart. If results do not change, try selecting more tickers (more "1"s) or shortening the optimization period. You can also click "Optimize All" to allow the optimizer to change all weights (NOT RECOMMENDED especially if you want to control diversification). You can manually adjust weights and re-run the optimizer as needed.

Other Features: Clicking "Move Optimized to Current" swaps the proposed and current portfolios for further iterative analysis. Clicking "Save to Excel" exports the proposed portfolio to an Excel file with three tabs (the first tab can later be reloaded as a CSV). Clicking "Results as PDF" saves the proposed portfolio to a PDF file.

Back Test toggle (if set to Yes) allows one to run the optimizer for a previous period and see its impact now.
For example, one can set the Year=2024, set Back Test=Yes. Now optimizer is run based on Market Data for 2024, but the ensuing portfolio will be compared against original portfolio for the entire period upto previous trading day starting from 1/1/2024
However , please note that Mutual Fund returns data is unreliable prior to 2019 September, also Optimizer will use "Default Ticker" for periods with missing data (eg: Newly issued ticker)

Other ways to specify years are:
Year - eg: 2022 will use data from 1/1/2022 to 12/31/2022
Year range : eg: 2021-2023 or 2021-23 will use data from 1/1/2021 to 12/31/2023
YTD : year to date
Years : 2 will show data from 2 years ago, 2.3 will data from 2.3 years ago, 3.5-6 will show data from 6 years to 3.5 years ago
Months : 3M will show data from 3months ago, 3M-7M will show data from 7 months ago to 3 months ago