Skip to main content


This function plots random portfolios based on their risk and returns and shows the efficient frontier.




short_allocationAmount to allocate to portfolio in short positions0.0TrueNone
amount_portfoliosNumber of portfolios to simulate100TrueNone
random_seedSeed used to generate random portfolios123TrueNone
tangencyAdds the optimal line with the risk-free assetFalseTrueNone
plot_tickersWhether or not to plot the tickers for the assets providedTrueTrueNone
risk_measureRisk 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 returnsMVTrueMV, MAD, MSV, FLPM, SLPM, CVaR, EVaR, WR, ADD, UCI, CDaR, EDaR, MDD
nan_fill_methodMethod 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 pointstimeTruelinear, time, nearest, zero, slinear, quadratic, cubic, barycentric
historic_periodPeriod 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 asset3yTrue1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max
start_periodStart date to get yfinance data from. Must be in 'YYYY-MM-DD' formatTrueNone
end_periodEnd date to get yfinance data from. Must be in 'YYYY-MM-DD' formatTrueNone
log_returnsIf use logarithmic or arithmetic returns to calculate returnsFalseTrueNone
return_frequencyFrequency used to calculate returns. Possible values are: 'd': for daily returns 'w': for weekly returns 'm': for monthly returnsdTrued, w, m
max_nanMax percentage of nan values accepted per asset to be considered in the optimization process0.05TrueNone
threshold_valueValue used to replace outliers that are higher to threshold in absolute value0.3TrueNone
risk_freeRisk-free rate of borrowing/lending. The period of the risk-free rate must be annual0.02924TrueNone
significance_levelSignificance level of CVaR, EVaR, CDaR and EDaR0.05TrueNone
long_allocationAmount to allocate to portfolio1TrueNone


2022 Apr 05, 15:03 (🦋) /portfolio/po/ $ ef