Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Эконометрия на финансовом рынке. Практикум

.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
41
Для решения в R можно использовать следующий код:
pnorm(750,1050,200)
3.   󰇛  󰇜  .
4.   имеет нормальное распределение с математическим
ожиданием 1000 ∙ 1,05 – 1000 = 50 и стандартным отклонением 200. Для нахождения вероятности нужно стандартизовать нормальное
распределение:
󰇛  󰇜  
  

  

 


   .
Получается, что минимальные потери с 10%-й вероятностью составят 206 юань.
Для решения в R можно использовать следующий код:
qnorm(0.1,1050-1000,200)
Для расчета VaR в R на реальных данных доходностей можно использовать пакет PerformanceAnalytics и функцию VaR():
install.packages("PerformanceAnalytics")
library(PerformanceAnalytics)
VaR(r,p = 0.95)
Но коэффициент VaR показывает только минимальные потери и не всегда полностью информативен, поэтому все большую популярность набирает его скорректированная версия CVaR. CVaR рассчитывается как математическое ожидание потерь в случае негативного исхода:
 󰇛󰇜.
CVaR(r,p=0.95,method ='gaussian')
Должен заметить, что CVaR всегда должен быть меньше VaR.
6.2. Коэффициент Шарпа (Sharp Ratio)
Если инвесторы обращают внимание не только на доходность, но и на риск, то возникает вопрос сравнения портфелей. Классическим методом сравнения является использование коэффициента Шарпа (Sharp Ratio). Он определяется как величина доходности на одну единицу риска:

󰇛󰇜
󰇛󰇜
,
где
– это безрисковая ставка процента.
42
Для расчета коэффициента в R можно использовать функцию SharpeRatio() :
SharpeRatio(r,method ='gaussian')
Основные проблемы этого коэффициента следующие: коэффициент Шарпа сравнивает доходность актива только с безрисковой ставкой процента; риск определяется стандартным отклонением доходностей. Эти проблемы породили большой набор других коэффициентов для сравнения портфелей, часть из которых будут описаны далее.
6.3. Информационный коэффициент (Information Ratio)
В отличии от коэффициента Шарпа, информационный коэффициент сравнивает доходность актива не с безрисковой ставкой процента, а с некоторым бэнчмарком (ориентиром), который обычно является рыночным индексом или облигацией:

󰇛󰇜
󰇛󰇜
,
где
– это доходность бэнчмарка.
Для расчета коэффициента в R можно использовать функцию
InformationRatio():
InformationRatio(r[,1:2],r$SPY)
6.4. Коэффициент Сортино (Sortino Ratio)
Коэффициент Сортино пытается решить проблему измерения риска. Как обсуждалось ранее, стандартное отклонение не является лучшим методом измерения риска, поэтому для измерения риска было принято решение взять средневзвешенный интеграл от левого хвоста распределения:

󰇛󰇜

,
где

рассчитывается так:

󰇛
  
󰇜
󰇛󰇜


,
где 󰇛
󰇜
– плотность распределения доходности актива.
SortinoRatio(r)
SortinoRatio(r,0.01)
SortinoRatio(r,0.001)
6.5. Capital Asset Pricing Model
Важным аспектом изучения ценообразования является взаимосвязь активов. Если рассмотреть корреляции доходностей, то можно увидеть существенную взаимосвязь почти между всеми активами:
43
cor(r)
Подобную закономерность описывает модель Capital Asset Pricing Model (CAPM). В модели CAPM доходность актива выражается с помощью рыночного индекса:
   
,
где:  – доходность ценной бумаги; 
– доходность рыночного индекса;
 – коэффициент наклона (Бета-коэффициент); 
– коэффициент
смещения (Альфа-коэффициент);
– случайная погрешность.
Одной из интерпретаций этой модели является зависимость настроений инвесторов от макроэкономических общерыночных новостей, которые отражаются в рыночном индексе. Чем больше бета, тем больше доходность портфеля зависит от общерыночных новостей:
󰇛󰇜 
󰇛󰇜  
,
где
󰇛󰇜 – часть вариации, зависящая от рыночных новостей,
– часть вариации, не зависящая от рыночных новостей.
Можно сделать вывод, что все рыночные активы зависимы, так как они зависят от рыночного индекса:
        󰇛
󰇜
.
Тем самым все активы являются взаимосвязанными, появляется отдельная задача поиска независимых активов.
При формировании портфеля можно сделать расчет портфельных альфа и бета:
     
  
  
  
.
Иногда возникает необходимость создание портфеля активов, который не зависит от рыночного индекса. С помощью коэффициентов бета можно рассчитать необходимые веса активов:


.


.
Должен заметить, что обычно один из активов имеет отрицательный вес.
44
Задачи
1. Вы хотите вложить деньги в фьючерс SPY 1000 юань. Доходность
фьючерса имеет нормальное распределение с параметрами 0,1 и стандартным отклонением 0,1.
Какое распределение имеют будущие накопления  󰇛  󰇜?
Найдите вероятность 󰇛 󰇜.
При какой доходности  ?
Найдите минимальные потери актива с 5%-й вероятностью
󰇛  󰇜 .
2. Для акций Apple, Citigroup и General Electric (AAPL, C и GE
соответственно) найдите VaR, CVaR. Сравните активы по коэффициенту Шарпа и Сортано. Найдите для каждого из них рыночную альфа и бета.
Литература
1. Ковалева Г. Д., Липин А. С. Теория вероятностей для социологов и
менеджеров : курс лекций. Новосибирск : РИЦ НГУ, 2009. 76 с.
2. Pfaff B. Financial Risk Modelling and Portfolio Optimization with R.
Second Edition. 2016. 426 с. doi: 10.1002/9781119119692
45
7. Портфельная оптимизация
Формирование бета-нейтральных портфелей для инвесторов – задача важная, но чаще всего такие портфели могут оказаться достаточно рискованными. Возникает вопрос: как составить эффективный портфель из ограниченного набора инструментов?
Классическим методом оптимизации портфеля является подход Генри Марковица. Он рассматривал два основных параметра портфелей активов: доходность и риск. Чем больше доходность и чем меньше риск, тем лучше портфель. Было предложено отобразить в осях доходности и риска все возможные портфели, которые можно составить из выбранных активов. Благодаря этому становится возможно выявить множество лучших портфелей, формирующих эффективную границу (рис. 7.1.).
Рис. 7.1. Эффективная граница и множество допустимых портфелей
Точка A хуже, чем точка B, потому что имеет больше риск при той же доходности. Точка А хуже, чем точка С, потому что имеет меньше доходность при том же уровне риска. Можно сделать вывод, что портфель A является неэффективным. Сравнивая все портфели между собой, мы можем выделить эффективную границу – множество эффективных портфелей.
Доходность
Риск
Допустимые портфели
A
C
B
Эффективная граница
46
Какой портфель является лучшим? Для ответа на этот вопрос нужно прибегнуть к коэффициенту Шарпа, чтобы сравнить на эффективной границе:
   

  󰇛󰇜  

  


 
󰇛
󰇜
 
󰇛
󰇜
   
󰇛
󰇜
 󰇛 
󰇜
 󰇛 
󰇜
 
 

󰇛

 
󰇜

󰇛󰇜
󰇛󰇜
.
Максимизируя коэффициент Шарпа, можно сопоставить все портфели между собой и выявить самый эффективный.
Если комбинировать оптимальный портфель и безрисковый актив, то можно составить более эффективное множество портфелей – линию рынка капиталов (рис. 7.2.).
Рис. 7.2. Линия рынка капиталов
Доходность
Риск
Оптимальный портфель
Эффективная граница
Безрисковый актив
Линия рынка капиталов
47
Такая линия будет касательной к эффективной границе. Она проходит через точки безрискового актива и оптимального портфеля. Каждый портфель, находящийся на этой линии, будет иметь одинаковый коэффициент Шарпа, равный коэффициенту Шарпа оптимального портфеля на эффективной границе.
Можно найти оптимальный портфель из двух активов в R (e1 и e2 – ожидаемая доходность двух активов, var1 и var2 – дисперсия, cor – корреляция между активами) (рис. 7.3.):
e1=0.15
e2=0.1
var1=2
var2=1.5
cor=0.25
x1=seq(-1,2,by=0.1)
x2=1-x1
ep=x1*e1+x2*e2
varp=x1^2*var1+x2^2*var2+2*x1*x2*cor*sqrt(var1*var2)
sdp=sqrt(varp)
plot(sdp,ep,type="l",main="Эффективная граница",
xlab='Риск (Стандартное отклонение)',ylab='Доходность',
xlim=c(0,3))
points(sqrt(var1),e1,col='red',bg='red')
text(sqrt(var1)+0.3,e1,'Акция 1',cex=0.5)
points(sqrt(var2),e2,col='green',bg='red')
text(sqrt(var2)+0.3,e2,'Акция 2',cex=0.5)
x1=seq(-1,2,by=0.1)
x2=1-x1
ep=x1*e1+x2*e2
varp=x1^2*var1+x2^2*var2+2*x1*x2*cor*sqrt(var1*var2)
sdp=sqrt(varp)
srp=(ep-mt)/sdp
x1Opt=x1[srp==max(srp)]
x2Opt=1-x1Opt
epOpt=x1Opt*e1+x2Opt*e2
varpOpt=x1Opt^2*var1+x2Opt^2*var2+2*x1Opt*x2Opt*cor*sqrt (var1*var2)
points(sqrt(varpOpt),epOpt,col=5)
48
text(sqrt(varpOpt)+0.5,epOpt,'Оптимальный портфель',cex=0.5)
mt=0.05
x1=seq(0,2,by=0.1)
x2=1-x1
ep=x2*mt+x1*epOpt
varp=x1^2*varpOpt
sdp=sqrt(varp)
lines(sdp,ep,col="blue")
Рис. 7.3. Эффективная граница теоретических портфелей
(результат кода)
Можно изменять начальные параметры активов или взять их из предыдущей задачи и понаблюдать, как изменяется эффективная границы.
В случае большого количества реальных активов процедура построения эффективной границы усложняется. Тогда можно использовать пакет fPortfolio (рис. 7.4.):
install.packages("fPortfolio")
library(fPortfolio)
r=NULL
assets=c("AAPL","SPY","IBM","AMZN","AMGN","V","GS")
for(symbol in assets){
getSymbols(symbol,src="yahoo")
49
r=cbind(r,diff(log(get(symbol)[,paste(symbol,".Close",sep= "")])))
}
names(r)=assets
r=r[!is.na(rowSums(r)),]
spec = portfolioSpec()
setNFrontierPoints(spec) = 2000
frontier = portfolioFrontier(timeSeries(r),spec)
#Запускать построчно! Интерактив. Нужно вводит числа от 0 до 8.
plot(frontier)
tailoredFrontierPlot(object = frontier ,sharpeRatio =F)
monteCarloPoints(object = frontier)
#Добавляем ограничения для активов
constraints = c("minW[assets]=0", "maxW[assets]=0.5")
frontierWithConstraints= portfolioFrontier(timeSeries(r),spec,constraints)
plot(frontierWithConstraints)
tailoredFrontierPlot(object = frontierWithConstraints,sharpeRatio =F)
Рис. 7.4. Эффективная граница портфеля из акций рынка США
(результат кода)
50
Таким образом мы можем формировать эффективные границы и находить оптимальные портфели.
Проблемой классической портфельной теории является использование исторических данных для расчета риска и доходности. Получается, мы в состоянии определить, какой портфель был оптимальным в прошлом, но не будущем. Поэтому эффективные границы постоянно изменяются во времени.
Одним из решений этой проблемы является прогнозирование доходностей и рисков активов.
Задачи
1. Используйте код в R и получите информационные таблицы по
активам:
r=NULL
assets=c("AAPL","AMZN","AMGN","V","GS")
for(symbol in assets){
getSymbols(symbol,src="yahoo")
r=cbind(r,diff(log(get(symbol)[,paste(symbol,".Close",sep= "")])))
}
names(r)=assets
r=r[!is.na(rowSums(r)),]
colMeans(r)
cov(r)
Средние доходности активов:
AAPL AMZN AMGN V GS
8.8e-04 1.1e-03 5.7e-04 8.7e-04 8.3e-05
Ковариационная матрица активов:
AAPL AMZN AMGN V GS
AAPL 0.00036 0.00022 0.00011 0.00016 0.00012
AMZN 0.00021 0.00054 0.00014 0.00020 0.00023
AMGN 0.00011 0.00015 0.00027 0.00011 0.00013
V 0.00016 0.00020 0.00011 0.00034 0.00023
GS 0.00020 0.00023 0.00013 0.00023 0.00054