Посчитал беты акций своего инвест. портфеля двумя способами — с помощью пакета PortfolioAnalytics и через линейную регрессию с индексом ММВБ. Результаты расчетов совпали.
Затем я составил таблицы для бет, взяв две истории — с 2012 года по настоящее время и с 2015.
Таблицы
С 2012 г.
C 2015 г.
Видно, что Роснефть и Норникель бегают за рынком. ФосАгро, Акрон и банк Открытие не зависят от рыночных настроений.
Код на R:
rong>
#install.packages("PortfolioAnalytics")
#install.packages("quantmod")
#install.packages("rusquant", repos="http://R-Forge.R-project.org")
library(PortfolioAnalytics)
library(quantmod)
library(rusquant)
rm(list = ls())
# Очистка среды R от лишних переменных в памяти, если требуется
fund.names <- c("MICEX", "BANE", "ALRS", "TGKA", "GMKN", "RUALR", "PHOR", "AKRN", "ROSN", "OFCB")
# Создаем массив из тикеров, для которых будем получать данные
if ( ! exists("BANE") ) {
getSymbols(fund.names, src = "Finam", from = "2012-01-01")
# Получение котировок
}
prices.data <- merge(MICEX[,4], BANE[,4], ALRS[,4], TGKA[,4], GMKN[,4], RUALR[,4], PHOR[,4], AKRN[,4], ROSN[,4], OFCB[,4])
returns.data <- CalculateReturns(prices.data)
returns.data <- na.omit(returns.data)
colnames(returns.data) <- fund.names
# Подготовка данных по ценам закрытия
beta <- CAPM.beta(returns.data$BANE, returns.data$MICEX, Rf = 0)
print(round(beta, 2))
# Расчет беты первым способом,
# через использование встроенной функции пакета PortfolioAnalytics
model <- lm(BANE ~ MICEX, returns.data)
beta <- coef(model)[2]
print(round(beta, 2))
# Расчет беты вторым способом,
# через построение линейной регрессии между доходностями актива и индекса
betas <- array(1:length(fund.names))
for (i in 1:length(fund.names)) {
curReturns <- returns.data[,i]
beta <- CAPM.beta(curReturns, returns.data$MICEX, Rf = 0)
betas[i] <- round(beta, 2)
}
fund.betas <- data.frame(fund.names, betas)
# Для списка активов получаем бета коэффициенты и сохраняем их в таблицу
ordered.fund.betas <- fund.betas[order(-betas),]
# Сортируем по убыванию бет
View(ordered.fund.betas)
# Отображаем отсортированную таблицу
Доделаю кое-какие расчёты по удалению детерминированной составляющей сигнала и выложу статейку о декомпозиции рыночных данных на детерминированную (тренд+сезонность) + стохастическую с аппроксимацией и прогнозом на K шагов вперёд. Пока что использую вейвлеты + современные методы спектрального анализа (MUSIC+ESPRIT).
А можно простым языком?
Пасиба!