Skip to main content


Optimize portfolio using Black Litterman estimates


blacklitterman [-bm BENCHMARK] [-o {MinRisk,Utility,Sharpe,MaxRet}] [-pv P_VIEWS] [-qv Q_VIEWS] [-ra RISK_AVERSION] [-d DELTA] [-eq] [-op] [-vs SHORT_ALLOCATION] [--file FILE] [--download DOWNLOAD] [-mt METHOD] [-ct CATEGORIES] [-p PERIOD] [-s START_PERIOD] [-e END_PERIOD] [-lr] [--freq {d,w,m}] [-mn MAX_NAN] [-th THRESHOLD_VALUE] [-r RISK_FREE] [-v LONG_ALLOCATION] [--name NAME]


benchmark-bm --benchmarkportfolio name from current portfolio listNoneTrueNone
objective-o --objectiveObjective function used to optimize the portfolioSharpeTrueMinRisk, Utility, Sharpe, MaxRet
p_views-pv --p-viewsmatrix P of analyst viewsNoneTrueNone
q_views-qv --q-viewsmatrix Q of analyst viewsNoneTrueNone
risk_aversion-ra --risk-aversionRisk aversion parameter1TrueNone
delta-d --deltaRisk aversion factor of Black Litterman modelNoneTrueNone
equilibrium-eq --equilibriumIf True excess returns are based on equilibrium market portfolio, if False excess returns are calculated as historical returns minus risk free rate.TrueTrueNone
optimize-op --optimizeIf True Black Litterman estimates are used as inputs of mean variance model, if False returns equilibrium weights from Black Litterman modelTrueTrueNone
short_allocation-vs --value-shortAmount to allocate to portfolio in short positions0.0TrueNone
file--fileUpload an Excel file with views for Black Litterman modelTrueNone
download--downloadCreate a template to design Black Litterman model viewsTrueNone
nan_fill_method-mt --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
categories-ct --categoriesShow selected categoriesTrueNone
historic_period-p --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, 3y, 5y, 10y, ytd, max
start_period-s --startStart date to get yfinance data from. Must be in 'YYYY-MM-DD' formatTrueNone
end_period-e --endEnd date to get yfinance data from. Must be in 'YYYY-MM-DD' formatTrueNone
log_returns-lr --log-returnsIf use logarithmic or arithmetic returns to calculate returnsFalseTrueNone
return_frequency--freqFrequency used to calculate returns. Possible values are: 'd': for daily returns 'w': for weekly returns 'm': for monthly returnsdTrued, w, m
max_nan-mn --maxnanMax percentage of nan values accepted per asset to be considered in the optimization process0.05TrueNone
threshold_value-th --thresholdValue used to replace outliers that are higher to threshold in absolute value0.3TrueNone
risk_free-r --risk-free-rateRisk-free rate of borrowing/lending. The period of the risk-free rate must be annual0.04242TrueNone
long_allocation-v --valueAmount to allocate to portfolio1TrueNone
name--nameSave portfolio with personalized or default nameBL_0TrueNone


2022 Apr 26, 01:25 (๐Ÿฆ‹) /portfolio/po/ $ add AAPL,MSFT,JP,BA
2022 Apr 26, 01:26 (๐Ÿฆ‹) /portfolio/po/ $ maxsharpe

[3 Years] Maximal return/risk ratio portfolio using volatility as risk measure

โ”ƒ โ”ƒ Value โ”ƒ
โ”‚ AAPL โ”‚ 100.00 % โ”‚
โ”‚ BA โ”‚ 0.00 % โ”‚
โ”‚ JP โ”‚ 0.00 % โ”‚
โ”‚ MSFT โ”‚ 0.00 % โ”‚
Annual (by 252) expected return: 45.46%
Annual (by โˆš252) volatility: 34.16%
Sharpe ratio: 1.3209