parent_command:portfolio/po
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]

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

optional arguments:
  -vs SHORT_ALLOCATION, --value-short SHORT_ALLOCATION
                        Amount to allocate to portfolio in short positions (default: 0.0)
  -n AMOUNT_PORTFOLIOS, --number-portfolios AMOUNT_PORTFOLIOS
                        Number of portfolios to simulate (default: 100)
  -se RANDOM_SEED, --seed RANDOM_SEED
                        Seed used to generate random portfolios (default: 123)
  -t, --tangency        Adds the optimal line with the risk-free asset (default: False)
  --no_plot             Whether or not to plot the tickers for the assets provided (default: True)
  -rm {MV,MAD,MSV,FLPM,SLPM,CVaR,EVaR,WR,ADD,UCI,CDaR,EDaR,MDD}, --risk-measure {MV,MAD,MSV,FLPM,SLPM,CVaR,EVaR,WR,ADD,UCI,CDaR,EDaR,MDD}
                        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 (default: MV)
  -mt METHOD, --method 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
                        (default: time)
  -p PERIOD, --period 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 (default: 3y)
  -s START_PERIOD, --start START_PERIOD
                        Start date to get yfinance data from. Must be in 'YYYY-MM-DD' format (default: )
  -e END_PERIOD, --end END_PERIOD
                        End date to get yfinance data from. Must be in 'YYYY-MM-DD' format (default: )
  -lr, --log-returns    If use logarithmic or arithmetic returns to calculate returns (default: False)
  --freq {d,w,m}        Frequency used to calculate returns. Possible values are: 'd': for daily returns 'w': for weekly returns 'm': for monthly returns (default: d)
  -mn MAX_NAN, --maxnan MAX_NAN
                        Max percentage of nan values accepted per asset to be considered in the optimization process (default: 0.05)
  -th THRESHOLD_VALUE, --threshold THRESHOLD_VALUE
                        Value used to replace outliers that are higher to threshold in absolute value (default: 0.3)
  -r RISK_FREE, --risk-free-rate RISK_FREE
                        Risk-free rate of borrowing/lending. The period of the risk-free rate must be annual (default: 0.04739)
  -a SIGNIFICANCE_LEVEL, --alpha SIGNIFICANCE_LEVEL
                        Significance level of CVaR, EVaR, CDaR and EDaR (default: 0.05)
  -v LONG_ALLOCATION, --value LONG_ALLOCATION
                        Amount to allocate to portfolio (default: 1)


Examples:
- Generate random portfolios and plot the efficient frontier: portfolio/po/ef
- Create random portfolios with a short allocation of 0.5 and plot the efficient frontier: portfolio/po/ef -vs 0.5
- Generate 200 random portfolios and plot the efficient frontier: portfolio/po/ef -n 200
- Create random portfolios with a specific random seed and plot the efficient frontier: portfolio/po/ef -se 456
- Generate random portfolios and plot the efficient frontier with a tangency line: portfolio/po/ef -t
- Create random portfolios using a specific risk measure and plot the efficient frontier: portfolio/po/ef -rm MAD
- Generate random portfolios with a specific method to fill nan values and plot the efficient frontier: portfolio/po/ef -mt linear
- Create random portfolios using a specific period and plot the efficient frontier: portfolio/po/ef -p 2y
- Generate random portfolios with a specific start and end date and plot the efficient frontier: portfolio/po/ef -s 2020-01-01 -e 2022-12-31
- Create random portfolios with a specific risk-free rate and plot the efficient frontier: portfolio/po/ef -r 0.03