ef
This function plots random portfolios based on their risk and returns and shows the efficient frontier.
Usage
ef [-vs SHORT_ALLOCATION] [-n AMOUNT_PORTFOLIOS] [-se RANDOM_SEED] [-t] [--no_plot] [-rm {MV,MAD,MSV,FLPM,SLPM,CVaR,EVaR,WR,ADD,UCI,CDaR,EDaR,MDD}] [-mt METHOD] [-p PERIOD] [-s START_PERIOD] [-e END_PERIOD] [-lr] [--freq {d,w,m}] [-mn MAX_NAN] [-th THRESHOLD_VALUE] [-r RISK_FREE] [-a SIGNIFICANCE_LEVEL] [-v LONG_ALLOCATION]
Parameters
Name | Parameter | Description | Default | Optional | Choices |
---|---|---|---|---|---|
short_allocation | -vs --value-short | Amount to allocate to portfolio in short positions | 0.0 | True | None |
amount_portfolios | -n --number-portfolios | Number of portfolios to simulate | 100 | True | None |
random_seed | -se --seed | Seed used to generate random portfolios | 123 | True | None |
tangency | -t --tangency | Adds the optimal line with the risk-free asset | False | True | None |
plot_tickers | --no_plot | Whether or not to plot the tickers for the assets provided | True | True | None |
risk_measure | -rm --risk-measure | Risk measure used to optimize the portfolio. Possible values are: 'MV' : Variance 'MAD' : Mean Absolute Deviation 'MSV' : Semi Variance (Variance of negative returns) 'FLPM' : First Lower Partial Moment 'SLPM' : Second Lower Partial Moment 'CVaR' : Conditional Value at Risk 'EVaR' : Entropic Value at Risk 'WR' : Worst Realization 'ADD' : Average Drawdown of uncompounded returns 'UCI' : Ulcer Index of uncompounded returns 'CDaR' : Conditional Drawdown at Risk of uncompounded returns 'EDaR' : Entropic Drawdown at Risk of uncompounded returns 'MDD' : Maximum Drawdown of uncompounded returns | MV | True | MV, MAD, MSV, FLPM, SLPM, CVaR, EVaR, WR, ADD, UCI, CDaR, EDaR, MDD |
nan_fill_method | -mt --method | Method used to fill nan values in time series, by default time. Possible values are: 'linear': linear interpolation 'time': linear interpolation based on time index 'nearest': use nearest value to replace nan values 'zero': spline of zeroth order 'slinear': spline of first order 'quadratic': spline of second order 'cubic': spline of third order 'barycentric': builds a polynomial that pass for all points | time | True | linear, time, nearest, zero, slinear, quadratic, cubic, barycentric |
historic_period | -p --period | Period to get yfinance data from. Possible frequency strings are: 'd': means days, for example '252d' means 252 days 'w': means weeks, for example '52w' means 52 weeks 'mo': means months, for example '12mo' means 12 months 'y': means years, for example '1y' means 1 year 'ytd': downloads data from beginning of year to today 'max': downloads all data available for each asset | 3y | True | 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 3y, 5y, 10y, ytd, max |
start_period | -s --start | Start date to get yfinance data from. Must be in 'YYYY-MM-DD' format | True | None | |
end_period | -e --end | End date to get yfinance data from. Must be in 'YYYY-MM-DD' format | True | None | |
log_returns | -lr --log-returns | If use logarithmic or arithmetic returns to calculate returns | False | True | None |
return_frequency | --freq | Frequency used to calculate returns. Possible values are: 'd': for daily returns 'w': for weekly returns 'm': for monthly returns | d | True | d, w, m |
max_nan | -mn --maxnan | Max percentage of nan values accepted per asset to be considered in the optimization process | 0.05 | True | None |
threshold_value | -th --threshold | Value used to replace outliers that are higher to threshold in absolute value | 0.3 | True | None |
risk_free | -r --risk-free-rate | Risk-free rate of borrowing/lending. The period of the risk-free rate must be annual | 0.04739 | True | None |
significance_level | -a --alpha | Significance level of CVaR, EVaR, CDaR and EDaR | 0.05 | True | None |
long_allocation | -v --value | Amount to allocate to portfolio | 1 | True | None |
Examples
2022 Apr 05, 15:03 (🦋) /portfolio/po/ $ ef