Блог им. SciFi

# ПОИСК АКЦИЙ ДЛЯ ИНВЕСТИРОВАНИЯ ПО КРИТЕРИЮ ДОХОДНОСТЬ И РИСК
#install.packages("tseries")
# Установка пакета tseries (анализ временных рядов и количественные финансы)
#install.packages("rusquant", repos="http://R-Forge.R-project.org")
# Установка пакета rusquant (адаптированная под Россию версия quantmod)
library(tseries)
library(rusquant)
# Подключение библиотек
Tikers <- read.csv('market80.csv', header = TRUE, sep = ";")
# Читаем из файла тикеры акций
# Файл с тикерами акций получаем с сайта ММВБ http://moex.com/s1163
assetsName <- as.character(Tikers[,1])
# Сохраняем названия тикеров в отдельную переменную для удобства
system.time(getSymbols(assetsName, from='2016-01-01', to=Sys.Date(), src='Finam'))
# Загружаем данные по тикерам c Финам
# Замеряем сколько на загрузку потребовалось времени в секундах
for (i in 1:length(assetsName)) { ifelse ( i==1,
returns <- dailyReturn(eval(parse(text=assetsName[1]))),
returns <- cbind(returns,dailyReturn(eval(parse(text=assetsName[i])))))}
# Сохраняем в отдельную таблицу доходность каждого дня для каждого тикера
names(returns) <- as.character(Tikers[,1])
# Присваиваем новые названия колонок
stat.data <- as.data.frame( t(sapply(returns, function(cl) list(means=mean(cl,na.rm=TRUE),
sds=sd(cl,na.rm=TRUE)))))
# Получаем среднюю доходность и стандартное отклонение, сохраняем в отдельную таблицу
stat.data <- as.data.frame(lapply(stat.data, unlist))
# Убираем список, который образовался на предыдущем этапе
attach(stat.data)
# Прицепляем таблицу для короткого доступа к данным
newdata <- stat.data[order(-means, sds),]
# Сортируем по убыванию мат. ожидания доходности и возрастанию ср.-кв. отклонения
newdata.subset <- subset(newdata, means > 0.002 & sds < 0.02)
# Оставляем только те активы, доходность которых выше требуемого нам значения, а
# отклонение ниже.
View(newdata.subset)
# Визуализируем полученную таблицу
detach(stat.data)
# Отцепляем таблицу
candleChart(BANE)
# Строим свечной график интересующей нас акции из списка
addEMA(20, col="green")
# Добавляем индикатор EMA(20)
addCCI()
# Добавляем индикатор CCI