From b880f34053d399fffa51ac703050664df32b3c24 Mon Sep 17 00:00:00 2001 From: northern-64bit <75195383+northern-64bit@users.noreply.github.com> Date: Sat, 14 Jan 2023 13:47:52 +0100 Subject: [PATCH 1/2] Fix issue 3960 --- openbb_terminal/portfolio/portfolio_model.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/openbb_terminal/portfolio/portfolio_model.py b/openbb_terminal/portfolio/portfolio_model.py index be7429a1fe1..c61a814a659 100644 --- a/openbb_terminal/portfolio/portfolio_model.py +++ b/openbb_terminal/portfolio/portfolio_model.py @@ -727,6 +727,13 @@ def get_summary( portfolio_engine.benchmark_returns, window ) + r2_portfolio_returns = portfolio_returns.copy() + r2_benchmark_returns = benchmark_returns.copy() + if len(portfolio_returns) > len(benchmark_returns): + r2_portfolio_returns = r2_portfolio_returns[r2_portfolio_returns.index.isin(r2_benchmark_returns.index)] + elif len(portfolio_returns) < len(benchmark_returns): + r2_benchmark_returns = r2_benchmark_returns[r2_benchmark_returns.index.isin(r2_portfolio_returns.index)] + metrics = { "Volatility": [portfolio_returns.std(), benchmark_returns.std()], "Skew": [ @@ -750,8 +757,8 @@ def get_summary( metrics_model.sortino_ratio(benchmark_returns, risk_free_rate), ], "R2 Score": [ - r2_score(portfolio_returns, benchmark_returns), - r2_score(portfolio_returns, benchmark_returns), + r2_score(r2_portfolio_returns, r2_benchmark_returns), + r2_score(r2_portfolio_returns, r2_benchmark_returns), ], } From 71728ec2640bf9f749558267e38f5accb031691b Mon Sep 17 00:00:00 2001 From: northern-64bit <75195383+northern-64bit@users.noreply.github.com> Date: Sat, 14 Jan 2023 13:59:36 +0100 Subject: [PATCH 2/2] Linting --- openbb_terminal/portfolio/portfolio_model.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/openbb_terminal/portfolio/portfolio_model.py b/openbb_terminal/portfolio/portfolio_model.py index c61a814a659..8d228d5c3e9 100644 --- a/openbb_terminal/portfolio/portfolio_model.py +++ b/openbb_terminal/portfolio/portfolio_model.py @@ -730,9 +730,13 @@ def get_summary( r2_portfolio_returns = portfolio_returns.copy() r2_benchmark_returns = benchmark_returns.copy() if len(portfolio_returns) > len(benchmark_returns): - r2_portfolio_returns = r2_portfolio_returns[r2_portfolio_returns.index.isin(r2_benchmark_returns.index)] + r2_portfolio_returns = r2_portfolio_returns[ + r2_portfolio_returns.index.isin(r2_benchmark_returns.index) + ] elif len(portfolio_returns) < len(benchmark_returns): - r2_benchmark_returns = r2_benchmark_returns[r2_benchmark_returns.index.isin(r2_portfolio_returns.index)] + r2_benchmark_returns = r2_benchmark_returns[ + r2_benchmark_returns.index.isin(r2_portfolio_returns.index) + ] metrics = { "Volatility": [portfolio_returns.std(), benchmark_returns.std()],