Skip to main content

blacklitterman

Optimize portfolio using Black Litterman estimates

Usageโ€‹

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]

Parametersโ€‹

NameDescriptionDefaultOptionalChoices
benchmarkportfolio name from current portfolio listNoneTrueNone
objectiveObjective function used to optimize the portfolioSharpeTrueMinRisk, Utility, Sharpe, MaxRet
p_viewsmatrix P of analyst viewsNoneTrueNone
q_viewsmatrix Q of analyst viewsNoneTrueNone
risk_aversionRisk aversion parameter1TrueNone
deltaRisk aversion factor of Black Litterman modelNoneTrueNone
equilibriumIf True excess returns are based on equilibrium market portfolio, if False excess returns are calculated as historical returns minus risk free rate.TrueTrueNone
optimizeIf True Black Litterman estimates are used as inputs of mean variance model, if False returns equilibrium weights from Black Litterman modelTrueTrueNone
short_allocationAmount to allocate to portfolio in short positions0.0TrueNone
fileUpload an Excel file with views for Black Litterman modelTrueNone
downloadCreate a template to design Black Litterman model viewsTrueNone
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
categoriesShow selected categoriesASSET_CLASS, COUNTRY, SECTOR, INDUSTRYTrueNone
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
long_allocationAmount to allocate to portfolio1TrueNone
nameSave portfolio with personalized or default nameBL_0TrueNone

Examplesโ€‹

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

Weights
โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ โ”ƒ 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