Files
OpenBB/website/content/sdk/reference/portfolio/po/riskparity.md
DidierRLopes 4ad995fdd0 Docs/terminalpro and improvement (#5622)
* add first iteration of content for Terminal Pro

* Update index.md

* Update dashboards.md

* Update folders.md

* Update grouping.md

* Update report.md

* Update templates.md

* Update quick-start.md

* Update index.md

* Update index.md

* Update home.md

* Update news.md

* Update index.md

* Update index.md

* Update index.md

* Update data-provider.md

* Update chat-with-widget.md

* Update data-manipulation.md

* Update forecasting.md

* fix: images self closing tags

* fix: only pro visitors can see pro

* inter font

* improve SEO content and restructuring

* add new package for toggle on tutorials

* move folder around

* improve main page of each prod

* small updates and improvements

* fix logo above

* small improvement in headtitle for portfolio funcs

* fix typos from OpenAI's GPT-4

* fix _category_ json

* remove generic SEO words

* add script that generates SEO for documentation

* add missing file

* remove sdk warning message

* fix links for andrew

---------

Co-authored-by: jose-donato <zmcdonato@gmail.com>
Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com>
Co-authored-by: andrewkenreich <andrew.kenreich@gmail.com>
2023-10-30 21:01:29 +00:00

5.9 KiB
Vendored

title, description, keywords
title description keywords
riskparity Documentation page on how to optimize portfolio with Risk Parity using the risk budgeting approach in the OpenBB Terminal Python package. It includes parameters specifications, return values, and usage examples.
Risk Parity
Portfolio Optimization
Risk Budgeting Approach
Portfolio Engine
Investment Strategies

import HeadTitle from '@site/src/components/General/HeadTitle.tsx';

Optimize with Risk Parity using the risk budgeting approach

Source Code: [link]

openbb.portfolio.po.riskparity(portfolio_engine: portfolio_optimization.po_engine.PoEngine = None, symbols: List[str] = None, kwargs: Any)

Parameters

Name Type Description Default Optional
portfolio_engine PoEngine Portfolio optimization engine, by default None
Use portfolio.po.load to load a portfolio engine
None True
symbols List[str] List of symbols, by default None None True
interval str Interval to get data, by default '3y' None True
start_date str If not using interval, start date string (YYYY-MM-DD), by default "" None True
end_date str If not using interval, end date string (YYYY-MM-DD). If empty use last weekday, by default "" None True
log_returns bool If True use log returns, else arithmetic returns, by default False None True
freq str Frequency of returns, by default 'D'. Options: 'D' for daily, 'W' for weekly, 'M' for monthly None True
maxnan float Maximum percentage of NaNs allowed in the data, by default 0.05 None True
threshold float Value used to replace outliers that are higher than threshold, by default 0.0 None True
method str Method used to fill nan values, by default 'time'
For more information see interpolate <https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html>__.
None True
value float Amount to allocate to portfolio in long positions, by default 1.0 None True
risk_measure str The risk measure used to optimize the portfolio, by default 'MV'
Possible values are:

- 'MV': Standard Deviation.
- 'MAD': Mean Absolute Deviation.
- 'MSV': Semi Standard Deviation.
- 'FLPM': First Lower Partial Moment (Omega Ratio).
- 'SLPM': Second Lower Partial Moment (Sortino Ratio).
- 'CVaR': Conditional Value at Risk.
- 'EVaR': Entropic Value at Risk.
- 'WR': Worst Realization.
- 'ADD': Average Drawdown of uncompounded cumulative returns.
- 'UCI': Ulcer Index of uncompounded cumulative returns.
- 'CDaR': Conditional Drawdown at Risk of uncompounded cumulative returns.
- 'EDaR': Entropic Drawdown at Risk of uncompounded cumulative returns.
- 'MDD': Maximum Drawdown of uncompounded cumulative returns.
None True
risk_free_rate float Risk free rate, annualized. Used for 'FLPM' and 'SLPM' and Sharpe objective function, by default 0.0 None True
alpha float Significance level of VaR, CVaR, EDaR, DaR, CDaR, EDaR, Tail Gini of losses, by default 0.05 None True
target_return float Constraint on minimum level of portfolio's return, by default -1.0 None True
mean str The method used to estimate the expected returns, by default 'hist'
Possible values are:

- 'hist': use historical estimates.
- 'ewma1': use ewma with adjust=True. For more information see EWM <https://pandas.pydata.org/pandas-docs/stable/user_guide/window.html#exponentially-weighted-window>.
- 'ewma2': use ewma with adjust=False. For more information see EWM <https://pandas.pydata.org/pandas-docs/stable/user_guide/window.html#exponentially-weighted-window>
.
None True
covariance str The method used to estimate the covariance matrix, by default 'hist'
Possible values are:

- 'hist': use historical estimates.
- 'ewma1': use ewma with adjust=True. For more information see EWM <https://pandas.pydata.org/pandas-docs/stable/user_guide/window.html#exponentially-weighted-window>.
- 'ewma2': use ewma with adjust=False. For more information see EWM <https://pandas.pydata.org/pandas-docs/stable/user_guide/window.html#exponentially-weighted-window>
.
- 'ledoit': use the Ledoit and Wolf Shrinkage method.
- 'oas': use the Oracle Approximation Shrinkage method.
- 'shrunk': use the basic Shrunk Covariance method.
- 'gl': use the basic Graphical Lasso Covariance method.
- 'jlogo': use the j-LoGo Covariance method. For more information see: a-jLogo.
- 'fixed': denoise using fixed method. For more information see chapter 2 of a-MLforAM.
- 'spectral': denoise using spectral method. For more information see chapter 2 of a-MLforAM.
- 'shrink': denoise using shrink method. For more information see chapter 2 of a-MLforAM.
None True
d_ewma float The smoothing factor of ewma methods, by default 0.94 None True
risk_cont List[str] The vector of risk contribution per asset, by default 1/n (number of assets) None True

Returns

Type Description
Tuple[pd.DataFrame, Dict] Tuple with weights and performance dictionary

Examples

from openbb_terminal.sdk import openbb
openbb.portfolio.po.riskparity(symbols=["AAPL", "MSFT", "AMZN"])
(        value
 AAPL  0.33201
 MSFT  0.34953
 AMZN  0.31846,
 {'Return': 0.19946644069106015,
  'Volatility': 0.29074583524705444,
  'Sharpe ratio': 0.6860508956957826})
from openbb_terminal.sdk import openbb
p = openbb.portfolio.po.load(symbols_file_path="~/openbb_terminal/miscellaneous/portfolio_examples/allocation/60_40_Portfolio.xlsx")
weights, performance = openbb.portfolio.po.riskparity(portfolio_engine=p)