6. Coding
Useful commands
to create a vector assignment operator
1:10 <- or ->
seq(1,10) x<-10
rep(1,10) 10->X
working with vectors case sensitive
A<-1:10 X
B<-c(2,4,8) x
A*B
A>B
R is a case sensitive language. FOO, Foo, and foo are three
different objects!
7. Coding
Matrix Matrix Operations
y <- matrix(nrow=2,ncol=2) x %*% y
y[1,1] <- 1 x* y
y[2,1] <- 2 3*y
y[1,2] <- 3 x+y
y[2,2] <- 4 x+3
x <- matrix(1:4, 2, 2) x[,2]
x[1,]
rbind(x,y)->z
cbind(x,y)
z[1:2,]
A matrix is a vector z[z[,1]>1,]
with two additional z[which(z[,1]>1),1]
attributes: the
number of rows and
the
number of columns
8. Coding
Data Frame
List
kids <- c("Jack","Jill")
j <- list(name="Joe", salary=55000, union=T) ages <- c(12,10)
j$salary d <- data.frame(kids,ages)
j[["salary"]] d[1,]
j[[2]] d[,1]
j$name [2]<-”Poll” d[[1]]
j$salary[2]<-10000
j$union [2]<-”F”
Arrays
my.array <- array(1:24, dim=c(3,4,2))
In contrast to a
vector, in which all
elements
must be of the same a data frame is like a
mode, R’s list matrix, with a two-dimensional rows-
structure can andcolumns
combine objects of structure. However, it differs from
different a matrix in that each column may have a
types. different
mode.
9. Coding
Loops
while
for
x <- c(5,12,13)
i <- 1
for (n in x) print(n^2)
while (i <= 10) i <- i+4
for (i in 1:10)
i <- 1
{
while (i <= 10)
x<-i*3
{
cos(x)->x
x<-i*3
print(x)
cos(x)->x
}
print(c(x,i))
i <- i+1
}
if-else
i<-3
if (i == 4) x <- 1 else x <- 3
10. Import data
Import from text files or csv
mydata <- read.table("d:/my.data.txt",
header=TRUE,
sep=",")
Import from Excel
library(xlsx)
mydata<-read.xlsx("d:/my.data.xlsx",1)
Exporting Data
write.table(mydata, "c:/mydata.txt", sep="t")
write.xlsx(mydata, "c:/mydata.xls")
11. Basic Graphs
Creating a Graph Bar Plot
attach(mtcars) counts <- table(mtcars$gear)
plot(wt, mpg) barplot(counts, main="Car Distribution",
abline(lm(mpg~wt)) xlab="Number of Gears")
title("Regression of MPG on Weight")
Pie Charts Boxplot
slices <- c(10, 12,4, 16, 8) boxplot(mpg~cyl,data=mtcars, mai
lbls <- c("US", "UK", "Australia", n="Car Milage Data",
"Germany", "France") xlab="Number of Cylinders",
pie(slices, labels = lbls, main="Pie Chart of ylab="Miles Per Gallon")
Countries")
13. Select data from matrix
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),]
Operators
and &
or |
14. Distributions
Basic distributions in R
Beta ?beta d – density
Binomial ?binom q – quantile
Cauchy ?cauchy r – random
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
15. Distributions
Plot density of chosen distribution…
x <- seq(-4, 4, length=100)
dx <- d?????(x)
plot(x, hx, type=“l”)
Generate random variables of chosen
distribution …
x<-rnorm(1000)
16. Distributions
What is this distribution ?
hist (?)
density (?)
?
17. Estimation of parameters
Let’s estimate parameters of
chosen distribution….
library(MASS)
fitdistr(x,"normal")
params<-fitdistr(x,"normal")$estimate
Compare theoretical and empirical
distributions…
hist(x, freq = FALSE,ylim=c(0,0.4))
curve(dnorm(x, params[1], params[2]), col = 2, add = TRUE)
29. Practice № 1. Working with data
TASK:
a. Download Data of your instrument
1. AFLT
b. Plot price
2. GAZP
c. Add technical indicators
3. RTKM
d. Calculate price returns
4. ROSN
5. SBER
6. SBERP
7. HYDR
8. LKOH Commands to help :
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. CHMF
15. SNGS
30. Practice № 2. Distribution of price returns
1. AFLT
2. GAZP TASK :
3. RTKM a. Download Data of your instrument
4. ROSN b. Calculate returns of close prices
5. SBER c. Plot density of distribution
6. SBERP d. Estimate parameters of distribution
7. HYDR e. Plot in one graph empirical and theoretical
8. LKOH distributions
9. VTBR
10. GMKN
11. SIBN Commands to help :
12. PLZL
13. 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)
31. Practice № 3. Estimation of correlation
1. AFLT
2. GAZP TASK :
3. RTKM a. Download Index Data (ticker: “MICEX”)
4. ROSN b. Download Data of your instrument
5. SBER c. Calculate returns of close prices
6. SBERP d. Calculate correlation of returns
7. HYDR e. Calculate correlation of returns in 2012 year
8. LKOH f. Calculate correlation of returns in 2008 year
9. VTBR g. Calculate autocorrelation function of returns
10. GMKN
11. SIBN Commands to help :
12. PLZL
13. 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']
32. Practice № 4. Volatility estimation
1. AFLT
2. GAZP TASK :
3. RTKM a. Download Data of your instrument
4. ROSN b. Calculate returns of close prices
5. SBER c. Plot clusterization of volatility
6. SBERP d. Estimate model garch
7. HYDR e. garchFit(data=x) @sigma.t
8. LKOH
9. VTBR
10. GMKN
11. SIBN Commands to help :
12. PLZL
13. MTSS AAPL['2007']
14. CHMF AAPL['2007-03/2007']
15. SNGS AAPL['/2007']
AAPL['2007-01-03']
33. Practice № 5.Estimation of long memory of order flow
1. AFLT
2. GAZP TASK :
3. RTKM a. Download order data of your instrument
4. ROSN b. Calculate long memory of limit orders, cancellations
5. SBER
6. SBERP
7. HYDR
8. LKOH
9. VTBR
10. GMKN
11. SIBN Commands to help :
12. PLZL
13. MTSS help (getFinData)
14. CHMF
15. SNGS
34. The practical task № 6. Calculation of VaR
1. AFLT
2. GAZP TASK :
3. RTKM a. Download Data of your instrument
4. ROSN b. Calculate returns of close prices
5. SBER c. Calculate historical VaR
6. SBERP d. Calculate parametric VaR
7. HYDR e. library(PerformanceAnalytics)
8. LKOH f. help(VaR)
9. VTBR
10. GMKN
11. SIBN Commands to help :
12. PLZL
13. MTSS quantile(x,0.95, na.rm=TRUE)
14. CHMF
15. SNGS AAPL['2007']
AAPL['2007-03/2007']
AAPL['/2007']
AAPL['2007-01-03']
35. The practical task № 7. Estimate LPPL model
TASK :
a. Download Index Data(ticker: “MICEX”) from 2001 to 2009
b. Estimate parameters of model LPPL
MODEL LPPL:
Commands to help :
help(nsl)