mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-03 16:02:04 +00:00
* 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>
9.7 KiB
Vendored
9.7 KiB
Vendored
title, description, keywords
| title | description | keywords | |||||
|---|---|---|---|---|---|---|---|
| herc | The page provides detailed documentation for the Hierarchical Equal Risk Contribution (HERC) method in the OpenBB Terminal's portfolio optimization module. The method is used for the optimized allocation of resources in a portfolio to minimize risk. The page includes a detailed explanation of input parameters, return types, and code examples. |
|
import HeadTitle from '@site/src/components/General/HeadTitle.tsx';
Optimize with Hierarchical Equal Risk Contribution (HERC) method.
Source Code: [link]
openbb.portfolio.po.herc(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 |
| objective | str | Objective function of the optimization model, by default 'MinRisk' Possible values are: - 'MinRisk': Minimize the selected risk measure. - 'Utility': Maximize the risk averse utility function. - 'Sharpe': Maximize the risk adjusted return ratio based on the selected risk measure. - 'MaxRet': Maximize the expected return of the portfolio. |
None | True |
| risk_measure | str | The risk measure used to optimize the portfolio, by default 'MV' If model is 'NCO', the risk measures available depends on the objective function. Possible values are: - 'MV': Variance. - 'MAD': Mean Absolute Deviation. - 'MSV': Semi Standard Deviation. - 'FLPM': First Lower Partial Moment (Omega Ratio). - 'SLPM': Second Lower Partial Moment (Sortino Ratio). - 'VaR': Value at Risk. - 'CVaR': Conditional Value at Risk. - 'TG': Tail Gini. - 'EVaR': Entropic Value at Risk. - 'WR': Worst Realization (Minimax). - 'RG': Range of returns. - 'CVRG': CVaR range of returns. - 'TGRG': Tail Gini range of returns. - 'MDD': Maximum Drawdown of uncompounded cumulative returns (Calmar Ratio). - 'ADD': Average Drawdown of uncompounded cumulative returns. - 'DaR': Drawdown at Risk of uncompounded cumulative returns. - 'CDaR': Conditional Drawdown at Risk of uncompounded cumulative returns. - 'EDaR': Entropic Drawdown at Risk of uncompounded cumulative returns. - 'UCI': Ulcer Index of uncompounded cumulative returns. - 'MDD_Rel': Maximum Drawdown of compounded cumulative returns (Calmar Ratio). - 'ADD_Rel': Average Drawdown of compounded cumulative returns. - 'DaR_Rel': Drawdown at Risk of compounded cumulative returns. - 'CDaR_Rel': Conditional Drawdown at Risk of compounded cumulative returns. - 'EDaR_Rel': Entropic Drawdown at Risk of compounded cumulative returns. - 'UCI_Rel': Ulcer Index of compounded 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 |
| risk_aversion | float | Risk aversion factor of the 'Utility' objective function, by default 1.0 | None | True |
| alpha | float | Significance level of VaR, CVaR, EDaR, DaR, CDaR, EDaR, Tail Gini of losses, by default 0.05 | None | True |
| a_sim | float | Number of CVaRs used to approximate Tail Gini of losses, by default 100 | None | True |
| beta | float | Significance level of CVaR and Tail Gini of gains. If None it duplicates alpha value, by default None | None | True |
| b_sim | float | Number of CVaRs used to approximate Tail Gini of gains. If None it duplicates a_sim value, by default None | 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 |
| codependence | str | The codependence or similarity matrix used to build the distance metric and clusters. The default is 'pearson'. Possible values are: - 'pearson': pearson correlation matrix. Distance formula: .. math:: D_{i,j} = \sqrt{0.5(1-\rho^{pearson}{i,j})} - 'spearman': spearman correlation matrix. Distance formula: .. math:: D{i,j} = \sqrt{0.5(1-\rho^{spearman}{i,j})} - 'abs_pearson': absolute value pearson correlation matrix. Distance formula: .. math:: D{i,j} = \sqrt{(1- |
\rho^{pearson}_{i,j} | )} - 'abs_spearman': absolute value spearman correlation matrix. Distance formula: .. math:: D_{i,j} = \sqrt{(1- |
| linkage | str | Linkage method of hierarchical clustering. For more information see linkage <https://docs.scipy.org/doc/scipy/reference/generated/scipy.<br/>cluster.hierarchy.linkage.html?highlight=linkage#scipy.cluster.hierarchy.linkage>__.The default is 'single'. Possible values are: - 'single'. - 'complete'. - 'average'. - 'weighted'. - 'centroid'. - 'median'. - 'ward'. - 'dbht': Direct Bubble Hierarchical Tree. |
None | True |
| k | int | Number of clusters. This value is took instead of the optimal number of clusters calculated with the two difference gap statistic, by default None |
None | True |
| max_k | int | Max number of clusters used by the two difference gap statistic to find the optimal number of clusters, by default 10 |
None | True |
| bins_info | str | Number of bins used to calculate variation of information, by default 'KN'. Possible values are: - 'KN': Knuth's choice method. For more information see knuth_bin_width <https://docs.astropy.org/en/stable/api/astropy.stats.knuth_bin_width.html>.- 'FD': Freedman–Diaconis' choice method. For more information see freedman_bin_width <https://docs.astropy.org/en/stable/api/astropy.stats.freedman_bin_width.html>.- 'SC': Scotts' choice method. For more information see scott_bin_width <https://docs.astropy.org/en/stable/api/astropy.stats.scott_bin_width.html>__.- 'HGR': Hacine-Gharbi and Ravier' choice method. |
None | True |
| alpha_tail | float | Significance level for lower tail dependence index, by default 0.05 | None | True |
| leaf_order | bool | Indicates if the cluster are ordered so that the distance between successive leaves is minimal, by default True |
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.herc(symbols=["AAPL", "MSFT", "AMZN"])
( value
AAPL 0.17521
MSFT 0.19846
AMZN 0.62633,
{'Return': 0.16899696275924703,
'Volatility': 0.34337400112782096,
'Sharpe ratio': 0.49216586638525933})
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.herc(portfolio_engine=p)