Seminar psu 05.04.2013

2,208 views
2,177 views

Published on

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

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,208
On SlideShare
0
From Embeds
0
Number of Embeds
1,766
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Seminar psu 05.04.2013

  1. 1. Использование R для моделирования финансовых рынковПермский государственный Арбузов Вячеславнаучно-исследовательский arbuzov@prognoz.ruуниверситет 05.04.2013Лаборатория финансовогомоделирования и управления рисками
  2. 2. Необходимые знания в R
  3. 3. Выборка данных из матриц 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),] Операторы и & или |
  4. 4. Распределения Основные распределения в RBeta ?beta d – densityBinomial ?binom q – quantileCauchy ?cauchy r – randomChi-squared ?chisqExponential ?expF ?fGamma ?gammaGeometric ?geomHypergeometric ?hyperLog-normal ?lnormMultinomial ?multinomNegative binomial ?nbinomNormal ?normPoisson ?poisStudents t ?tUniform ?unifWeibull ?weibull
  5. 5. Распределения Построим плотность выбранного распределения… x <- seq(-4, 4, length=100) dx <- d?????(x) plot(x, hx, type=“l”) Сгенерируем СВ выбранного распределения… x<-rnorm(1000)
  6. 6. Распределения Каким распределением описывается СВ? hist (?) density (?) ?
  7. 7. Оценка параметров распределений Оценим параметры выбранного распределения…. library(MASS) fitdistr(x,"normal") params<-fitdistr(x,"normal")$estimate Сравним теоретическое и эмпирическое распределения hist(x, freq = FALSE,ylim=c(0,0.4)) curve(dnorm(x, params[1], params[2]), col = 2, add = TRUE)
  8. 8. Корреляции y<-rnorm(1000) cor(x,y) cor(x,y, ,method = ?????) acf(y)
  9. 9. Нелинейный МНК x<-seq(0,10,length=1000) y<-2*sin(3*x)+rnorm(1000,0,0.8) z<-rnorm(1,2,3) Как оценить параметры уравнения? help(nls) nls(y ~ A*sin(B*x)) nls(y ~ A*sin(B*x),start=list(A=1.8,B=3.1))
  10. 10. Продвинутая графика Размещение в одном окне нескольких графиков par(mfrow=c(2,2)) plot(rnorm(100),rbeta(100,12,1)) Добавление легенды на график legend("topright", inset=.05, title="legend", c("4","6","8"), horiz=TRUE)
  11. 11. Графика пакета lattice library(lattice)bwplot(sign(rnorm(30))~rnorm(30)|runif(3)) cloud(y~x*y)xyplot(rnorm(100)~rnorm(100)|rnorm(4)) densityplot(rnorm(4))
  12. 12. Графика пакета ggplot2 library(ggplot2) qplot(rnorm(100)) qplot(rnorm(100),geom=density) qplot(rnorm(100),rnorm(100),qplot(rnorm(100),rnorm(100)) size=sign(rnorm(100))+1)
  13. 13. Загрузка данных Package quantmod Package rusquantgetSymbols("GOOG",src="yahoo", getSymbols("SPFB.RTS", from="2011-01-from = "2007-01-01“, to = 01", src="Finam“, period="hour"Sys.Date()) , auto.assign=FALSE) 1min, 5min, 10min, 15min,getSymbols("USD/EUR",src="oanda") 30min, hour, day, week, month
  14. 14. Работа с пакетом quantmodВизуализация данных Добавление технических индикаторовbarChart(AAPL)candleChart(AAPL,multi.col=TRUE,theme="white") addMACD()chartSeries(AAPL,up.col=white,dn.col=blue) addBBands()Управление Преобразованиеданными данныхAAPL[2007] to.weekly(AAPL)AAPL[2007-03/2007]AAPL[/2007] to.monthly(AAPL)AAPL[2007-01-03] dailyReturn(AAPL) weeklyReturn(AAPL) monthlyReturn(AAPL)
  15. 15. Загрузка данныхPackage RODBClibrary(RODBC)odbcDriverConnect(“”)channel <- odbcConnect("psu_schs",“student","Qwerty1")sqlQuery(channel, “select * from LPPL_MODELS”)
  16. 16. Использование пакета RMiFITlibrary(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
  17. 17. Практические задания
  18. 18. Практическое задание № 1. Работа с данными ЗАДАНИЕ: a. Загрузить данные1. AFLT b. Построить графики2. GAZP c. Добавить индикаторы на графики3. RTKM d. Посчитать приросты цен4. ROSN e. Построить графики за 2008 год5. SBER6. SBERP7. HYDR8. LKOH Команды в помощь:9. VTBR barChart(AAPL)10. GMKN chartSeries(AAPL,up.col=white,dn.col=blue)11. SIBN AAPL[2007-03/2007]12. PLZL addMACD()13. MTSS dailyReturn(AAPL)14. CHMF15. SNGS
  19. 19. Практическое задание № 2. Распределение приростов цен1. AFLT2. GAZP ЗАДАНИЕ:3. RTKM a. Загрузить данные4. ROSN b. Построить приросты цен закрытия5. SBER c. Построить плотность распределения6. SBERP d. Оценить параметры выбранного распределения7. HYDR e. Построить на одном графике эмпирическое и8. LKOH теоретическое распределения9. VTBR10. GMKN11. SIBN Команды в помощь:12. PLZL13. MTSS getSymbols("AFLT",14. CHMF src="Finam", period="day" , auto.assign=FALSE)15. SNGS library(MASS) fitdistr(x,"normal") hist(x) density(x) curve(dnorm(x, params[1], params[2]), col = 2, add = TRUE)
  20. 20. Практическое задание № 3. Оценка корреляций1. AFLT2. GAZP ЗАДАНИЕ:3. RTKM a. Загрузить данные индекса ММВБ (MICEX)4. ROSN b. Загрузить данные выбранного инструмента5. SBER c. Посчитать дневные приросты6. SBERP d. Найти корреляцию за весь период7. HYDR e. Найти корреляцию за 2012 год8. LKOH f. Найти корреляцию за 2008 год9. VTBR g. Найти автокорреляцию приростов за период с 110. GMKN января 2013 по 1 апреля 201311. SIBN Команды в помощь:12. PLZL13. MTSS getSymbols(" MICEX ",14. CHMF src="Finam", period="day" , auto.assign=FALSE)15. SNGS AAPL[2007] AAPL[2007-03/2007] AAPL[/2007] AAPL[2007-01-03]
  21. 21. Практическое задание № 4. Расчет VaR1. AFLT2. GAZP ЗАДАНИЕ:3. RTKM a. Загрузить данные выбранного инструмента4. ROSN b. Посчитать дневные приросты5. SBER c. Найти исторический VaR у инструмента6. SBERP d. Найти параметрический VaR у инструмента7. HYDR e. library(PerformanceAnalytics)8. LKOH f. help(VaR)9. VTBR10. GMKN11. SIBN Команды в помощь:12. PLZL13. MTSS quantile(x,0.95, na.rm=TRUE)14. CHMF15. SNGS AAPL[2007] AAPL[2007-03/2007] AAPL[/2007] AAPL[2007-01-03]
  22. 22. Практическое задание № 5. Волатильность приростов1. AFLT2. GAZP ЗАДАНИЕ:3. RTKM a. Загрузить данные выбранного инструмента4. ROSN b. Посчитать дневные приросты5. SBER c. Отобразить кластеризацию волатильности6. SBERP d. Оценить модель garch7. HYDR e. garchFit(data=x) @sigma.t8. LKOH9. VTBR10. GMKN11. SIBN Команды в помощь:12. PLZL13. MTSS AAPL[2007]14. CHMF AAPL[2007-03/2007]15. SNGS AAPL[/2007] AAPL[2007-01-03]
  23. 23. Практическое задание № 6. Оценка длинной памяти в потоке заявок1. AFLT2. GAZP ЗАДАНИЕ:3. RTKM a. Загрузить данные выбранного инструмента за 1 день4. ROSN b. Посчитать длинную память в потоке заявок5. SBER6. SBERP7. HYDR8. LKOH9. VTBR10. GMKN11. SIBN Команды в помощь:12. PLZL13. MTSS help (getFinData)14. CHMF15. SNGS
  24. 24. Практическое задание № 7. Расчет модели LPPLЗАДАНИЕ:a. Загрузить данные индекса ММВБ c 2001 по 2009b. Оценить параметры модели LPPLc. Проделать оценку параметров для различных «окон» и сохранить параметры моделиd. Отбросить «неправильные» параметрыМОДЕЛЬ LPPL:Команды в помощь:help(nsl)
  25. 25. Практическое задание № 8. Оптимизация портфеляЗАДАНИЕ: 1. AFLT 2. GAZPa. Загрузить данные по следующим инструментам: 3. RTKM 4. ROSNb. Построить график доходность - риск 5. SBER 6. SBERPc. Сформировать оптимальный портфель 7. HYDR использую функцию portfolio.optim из пакета 8. LKOH tseries 9. VTBR 10. GMKNd. Проанализировать выбранный портфель 11. SIBN 12. PLZLe. Оценить 10 дневный VaR у выбранного портфеля 13. MTSS 14. CHMF 15. SNGS
  26. 26. Вопросы?arbuzov@prognoz.ru

×