За първата ми публикация свързана с квантитативно инвестиране съм избрал паритет на риска.
Това е стратегия, която разпределя инвестиционното портфолио на база риск.
С други думи, вместо тежестта на всяка компания да се изразява като равна сума пари тук те интересува да имаш изравнен риск.
В края на тази статия ще научиш:
Как да извличаш данни за акции.
Как да създадеш портфолио с равно разпределен по тежест риск.
Как да създадеш портфолио с ограничение на неговата възвръщаемост.
Кратка история
През 90-те години на 20-ви век Bridgewater Associates бяха една от първите компании за управление на активи използваща паритет на риска. В момента имат около $200 милиарда AUM и са един от най-големите хедж фондове в света.
Каква е целта?
Основната цел трябва да бъде да получиш оптимална доходност срещу определено ниво на риск.
Проблемът с портфейлите, които разчитат на тежест за сума пари е, че не всяка компания носи еднакъв риск.
Ако "претеглиш" две акции едната винаги носи повече риск. Съответно възвръщаемостта на портфолиото ще бъде доминирана от по-високорисковите акции. Инвеститорите използват паритет на риска, за да избегнат този проблем.
В миналото на разни професори им е отнело десетилетия да разработят и развият този анализ.
Днес ще ти покажа как можеш да я използваш с помощта няколко реда Python и малко желание да отделиш 5 минути от времето си.
За да е реално портфолиото ще включа компаниите от дивидентното ми начинание.
1. Извличане на данните за компаниите.
Първо трябва да се импортнат пакетите за извличане на данни. В този пример ще използвам yfinance и Riskfolio-Lib за паритетния анализ.
!pip install pybind11
!pip install riskfolio-lib
!pip install yfinance
import yfinance as yf
import riskfolio as rp
import warnings
warnings.filterwarnings("ignore")
След импортирането направи списък с компаниите, които искаш да анализираш.
Избрал съм период от 20г.
# Tickers we need data for.
assets = ["FRG", "BBY", "ABBV", "AVGO", "AMGN", "AQN", "GILD", "INTC", "AEP", "PG", "MPW", "EPD", "STX", "VZ", "DLX"]
# Sort tickers.
assets.sort()
# Download data
data = yf.download(assets, start="2002-11-30", end="2022-11-30")
# Compute non-compounding, daily returns.
returns = data['Adj Close'].pct_change().dropna()
2. Създаване на портфолио с равна тежест за риск.
Riskfolio-Lib ще изчисли тежестта на всяка акция и ще го разпредели поравно.
port = rp.Portfolio(returns=returns)
port.assets_stats(method_mu='hist', method_cov='hist', d=0.94)
w_rp = port.rp_optimization(
model="Classic", # Use historical.
rm="MV", # Use mean-variance optimization.
hist=True, # Use historical scenarios.
rf=0, # Set risk free rate to 0.
b=None # Don't use constraints.
)
Изгради обект с възвръщаемостта на акциите.
Прецени очакваната възвръщаемост и ковариацията въз основа на исторически данни.
Чрез оптимизация на средната дисперсия ще намериш теглото на паритета на риска.
По-рисковите акции получават по-малък "дял". Тежестта на риск на всяка компания е равна.
Ето го и самото разпределение на риск.
# Show the risk contribution for each asset is equal.
ax = rp.plot_risk_con(
w_rp,
cov=port.cov,
returns=port.returns,
rm="MV",
rf=0,
)
Напълно очаквано всички са равни.
3. Ограничение за минимална възвръщаемост
Една от критиките на паритета на риск е, че без ливъридж имаш по-слаба възвръщаемост.
Нека добавим тежест към по-високорисковите акции, за да увеличим възвръщаемостта на портфолиото.
port.lowerret = 0.0007
# Estimate the optimal portfolio with risk parity with the constraint
w_rp_c = port.rp_optimization(
model="Classic", # Use historical.
rm="MV", # Use mean-variance optimization.
hist=True, # Use historical scenarios.
rf=0, # Set risk free rate to 0.
b=None # Don't use constraints.
)
Както показах по-рано изобразяването става много лесно.
Изминаха няколко месеца, в който не съм публикувал нови статии, защото бях фокусиран върху два нови проекта. 🙂 Това не означава, че съм спрял да инвестирам. Даже напротив. Редовно добавям към дивидентното си портфолио. Ето как стоят нещата към днешна дата. За месец юни получих $71.37 Портфолиото продължава да е леко назад, но това не
Ето как изглеждат следващите покупки за дивидентното портфолио. AQNU е за хубост. Има някакво разминаване между SA, Google Finance и Fidelity. Ще подпитам съпорта на SA да проверят защо. Това ще добави около $30 доходност на годишна база. PADI ще стане $453 или около 70лв месечно. Ще кажете, че 70лв. не са нищо, но са
Тази седмица ще е доста ползотворна! Ще получа общо $26.94 под формата на дивиденти. Това е повече от първоначалната сума, която смятах да инвестирам всеки месец. Преди започването планирах да влагам по минимум 50лв. месечно с идеята да покажа на хората, че няма нищо страшно в това да инвестираш при мечи пазар и никога не е късно