seminar psu 05.04.2013

26
Использование R для моделирования финансовых рынков Пермский государственный научно- исследовательский университет Арбузов Вячеслав [email protected] 05.04.2013 RISK LAB Лаборатория финансового моделирования и управления рисками

Upload: arbuzov1989

Post on 06-May-2015

1.930 views

Category:

Education


0 download

DESCRIPTION

Семинар по моделированию финансовых рынков, Пермь, 05.04.2013, Пермский государственный университет, Арбузов Вячеслав

TRANSCRIPT

Page 1: Seminar psu 05.04.2013

Использование R для моделирования

финансовых рынков

Пермский государственный научно-исследовательский университет

Арбузов Вячеслав[email protected]

05.04.2013

RISK LABЛаборатория финансовогомоделирования и управления рисками

Page 2: Seminar psu 05.04.2013

Необходимые знания в R

Page 3: Seminar psu 05.04.2013

Выборка данных из матриц

x <- matrix(0,50,2)

x[,1]

x[1,]

x[,1]<-rnorm(50)

x

x[1,]<-rnorm(2)

x

x <- matrix(rnorm(100),50,2)

x[which(x[,1]>0),]

Операторыи &или |

Page 4: Seminar psu 05.04.2013

Основные распределения в R

Распределения

Beta ?beta

Binomial ?binom

Cauchy ?cauchy

Chi-squared ?chisq

Exponential ?exp

F ?f

Gamma ?gamma

Geometric ?geom

Hypergeometric ?hyper

Log-normal ?lnorm

Multinomial ?multinom

Negative binomial ?nbinom

Normal ?norm

Poisson ?pois

Student's t ?t

Uniform ?unif

Weibull ?weibull

d – densityq – quantiler – random

Page 5: Seminar psu 05.04.2013

Распределения

Построим плотность выбранного распределения…

x <- seq(-4, 4, length=100)dx <- d?????(x)plot(x, hx, type=“l”)

Сгенерируем СВ выбранного распределения…

x<-rnorm(1000)

Page 6: Seminar psu 05.04.2013

Распределения

Каким распределением описывается СВ?

hist (?)density (?)

?

Page 7: Seminar psu 05.04.2013

Оценка параметров распределений

Оценим параметры выбранного

распределения….library(MASS)

params<-fitdistr(x,"normal")$estimate

fitdistr(x,"normal")

Сравним теоретическое и эмпирическое распределения

hist(x, freq = FALSE,ylim=c(0,0.4))

curve(dnorm(x, params[1], params[2]), col = 2, add = TRUE)

Page 8: Seminar psu 05.04.2013

Корреляции

y<-rnorm(1000)

cor(x,y)

cor(x,y, ,method = ?????)

acf(y)

Page 9: Seminar psu 05.04.2013

Нелинейный МНК

x<-seq(0,10,length=1000)

y<-2*sin(3*x)+rnorm(1000,0,0.8)

Как оценить параметры уравнения?

𝑦=𝛼 sin (𝛽 𝑥)

help(nls)

nls(y ~ A*sin(B*x))

nls(y ~ A*sin(B*x),start=list(A=1.8,B=3.1))

z<-rnorm(1,2,3)

Page 10: Seminar psu 05.04.2013

Продвинутая графика

Размещение в одном окне нескольких графиков

par(mfrow=c(2,2))

plot(rnorm(100),rbeta(100,12,1))

Добавление легенды на график

legend("topright", inset=.05, title="legend",  c("4","6","8"), horiz=TRUE)

Page 11: Seminar psu 05.04.2013

Графика пакета lattice

library(lattice)

xyplot(rnorm(100)~rnorm(100)|rnorm(4)) densityplot(rnorm(4))

cloud(y~x*y)bwplot(sign(rnorm(30))~rnorm(30)|runif(3))

Page 12: Seminar psu 05.04.2013

Графика пакета ggplot2

qplot(rnorm(100),geom='density') qplot(rnorm(100))

qplot(rnorm(100),rnorm(100))qplot(rnorm(100),rnorm(100),

size=sign(rnorm(100))+1)

library(ggplot2)

Page 13: Seminar psu 05.04.2013

Загрузка данных

Package quantmod

getSymbols("GOOG",src="yahoo", from = "2007-01-01“, to = Sys.Date())

getSymbols("USD/EUR",src="oanda")

getSymbols("SPFB.RTS", from="2011-01-01", src="Finam“, period="hour" , auto.assign=FALSE)

1min, 5min, 10min, 15min, 30min, hour, day, week, month

Package rusquant

Page 14: Seminar psu 05.04.2013

Работа с пакетом quantmod

barChart(AAPL)

candleChart(AAPL,multi.col=TRUE,theme="white")

chartSeries(AAPL,up.col='white',dn.col='blue')

Визуализация данных

addMACD()

addBBands()

Добавление технических индикаторов

to.weekly(AAPL)

 to.monthly(AAPL)  dailyReturn(AAPL)

weeklyReturn(AAPL)

 monthlyReturn(AAPL)

Преобразование данных

Управление данными

AAPL['2007'] AAPL['2007-03/2007']AAPL['/2007']AAPL['2007-01-03']

Page 15: Seminar psu 05.04.2013

Загрузка данных

Package RODBC

library(RODBC)

odbcDriverConnect(“”)channel <- odbcConnect("psu_schs",“student","Qwerty1")sqlQuery(channel, “select * from LPPL_MODELS”)

Page 16: Seminar psu 05.04.2013

Использование пакета RMiFIT

library(RMiFIT )

getFinData(Symbols = "AFLT",period = “mins")

getFinData(Symbols = "TGKI",from = "2010-04-01", to = "2010-04-01",period = "deals")

getFinData(Symbols = "AFLT",from = "2012-12-14", to = "2012-12-14",src=“Finam” ,period = "tick")

getFinData(Symbols = "AFLT", from = "2012-12-04",period = "orders")

www.r-group.mifit.ru

Page 17: Seminar psu 05.04.2013

Практические задания

Page 18: Seminar psu 05.04.2013

Практическое задание № 1. Работа с данными

1. AFLT2. GAZP3. RTKM4. ROSN5. SBER6. SBERP7. HYDR8. LKOH9. VTBR10. GMKN11. SIBN12. PLZL13. MTSS14. CHMF15. SNGS

Команды в помощь:

ЗАДАНИЕ:a. Загрузить данные b. Построить графикиc. Добавить индикаторы на графикиd. Посчитать приросты ценe. Построить графики за 2008 год

barChart(AAPL)

chartSeries(AAPL,up.col='white',dn.col='blue')AAPL['2007-03/2007']

addMACD()

dailyReturn(AAPL)

Page 19: Seminar psu 05.04.2013

Практическое задание № 2. Распределение приростов цен

1. AFLT2. GAZP3. RTKM4. ROSN5. SBER6. SBERP7. HYDR8. LKOH9. VTBR10. GMKN11. SIBN12. PLZL13. MTSS14. CHMF15. SNGS

Команды в помощь:

getSymbols("AFLT", src="Finam", period="day" , auto.assign=FALSE)

library(MASS)fitdistr(x,"normal")

hist(x)density(x)

curve(dnorm(x, params[1], params[2]), col = 2, add = TRUE)

ЗАДАНИЕ:a. Загрузить данные b. Построить приросты цен закрытияc. Построить плотность распределенияd. Оценить параметры выбранного

распределенияe. Построить на одном графике эмпирическое

и теоретическое распределения

Page 20: Seminar psu 05.04.2013

Практическое задание № 3. Оценка корреляций

1. AFLT2. GAZP3. RTKM4. ROSN5. SBER6. SBERP7. HYDR8. LKOH9. VTBR10. GMKN11. SIBN12. PLZL13. MTSS14. CHMF15. SNGS

Команды в помощь:

getSymbols(" MICEX ", src="Finam", period="day" , auto.assign=FALSE)

AAPL['2007'] AAPL['2007-03/2007']AAPL['/2007']AAPL['2007-01-03']

ЗАДАНИЕ:a. Загрузить данные индекса ММВБ (MICEX)b. Загрузить данные выбранного инструментаc. Посчитать дневные приросты d. Найти корреляцию за весь периодe. Найти корреляцию за 2012 годf. Найти корреляцию за 2008 годg. Найти автокорреляцию приростов за

период с 1 января 2013 по 1 апреля 2013

Page 21: Seminar psu 05.04.2013

Практическое задание № 4. Расчет VaR

1. AFLT2. GAZP3. RTKM4. ROSN5. SBER6. SBERP7. HYDR8. LKOH9. VTBR10. GMKN11. SIBN12. PLZL13. MTSS14. CHMF15. SNGS

Команды в помощь:

quantile(x,0.95, na.rm=TRUE)

AAPL['2007'] AAPL['2007-03/2007']AAPL['/2007']AAPL['2007-01-03']

ЗАДАНИЕ:a. Загрузить данные выбранного инструментаb. Посчитать дневные приросты c. Найти исторический VaR у инструментаd. Найти параметрический VaR у

инструментаe. library(PerformanceAnalytics)f. help(VaR)

Page 22: Seminar psu 05.04.2013

Практическое задание № 5. Волатильность приростов

1. AFLT2. GAZP3. RTKM4. ROSN5. SBER6. SBERP7. HYDR8. LKOH9. VTBR10. GMKN11. SIBN12. PLZL13. MTSS14. CHMF15. SNGS

Команды в помощь:

AAPL['2007'] AAPL['2007-03/2007']AAPL['/2007']AAPL['2007-01-03']

ЗАДАНИЕ:a. Загрузить данные выбранного инструментаb. Посчитать дневные приросты c. Отобразить кластеризацию волатильностиd. Оценить модель garche. garchFit(data=x) @sigma.t

Page 23: Seminar psu 05.04.2013

Практическое задание № 6. Оценка длинной памяти в потоке заявок

1. AFLT2. GAZP3. RTKM4. ROSN5. SBER6. SBERP7. HYDR8. LKOH9. VTBR10. GMKN11. SIBN12. PLZL13. MTSS14. CHMF15. SNGS

Команды в помощь:

help (getFinData)

ЗАДАНИЕ:a. Загрузить данные выбранного инструмента за

1 деньb. Посчитать длинную память в потоке заявок

Page 24: Seminar psu 05.04.2013

Практическое задание № 7. Расчет модели LPPL

Команды в помощь:

help(nsl)

ЗАДАНИЕ:a. Загрузить данные индекса ММВБ c 2001 по

2009b. Оценить параметры модели LPPLc. Проделать оценку параметров для

различных «окон» и сохранить параметры модели

d. Отбросить «неправильные» параметрыМОДЕЛЬ LPPL:

+

Page 25: Seminar psu 05.04.2013

Практическое задание № 8. Оптимизация портфеля

ЗАДАНИЕ:

a. Загрузить данные по следующим инструментам:

b. Построить график доходность - риск

c. Сформировать оптимальный портфель использую функцию portfolio.optim из пакета tseries

d. Проанализировать выбранный портфель

e. Оценить 10 дневный VaR у выбранного портфеля

1. AFLT2. GAZP3. RTKM4. ROSN5. SBER6. SBERP7. HYDR8. LKOH9. VTBR10. GMKN11. SIBN12. PLZL13. MTSS14. CHMF15. SNGS

Page 26: Seminar psu 05.04.2013

Вопросы?

[email protected]