-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy path12_SimpleStockReturns.Rmd
107 lines (91 loc) · 1.83 KB
/
12_SimpleStockReturns.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
title: "Simple Stock calculations in Returns"
output: html_notebook
---
```{r}
library(quantmod)
```
# Calculate simple returns
# Simple return: Rt = [ Pt - Pt-1 ]/ Pt-1
# Ri = (today - yesterday) / yesterday
```{r}
amd <- getSymbols("AMD", from = "2020-01-01", auto.assign = F)
```
```{r}
head(amd)
```
```{r}
tail(amd)
```
```{r}
# Calculation and displaying Arithmetic returns
AMD_DailyReturn<-dailyReturn(amd$AMD.Adjusted, subset=NULL, type="arithmetic", leading=TRUE)
head(AMD_DailyReturn)
```
```{r}
# Calculation and displaying log returns
AMD_LogReturn<-dailyReturn(amd$AMD.Adjusted, subset=NULL, type="log", leading=TRUE)
head(AMD_LogReturn)
```
```{r}
log(amd$AMD.Adjusted / lag(amd$AMD.Adjusted, -1))
```
```{r}
amd$AMD.Adjusted
```
```{r}
close <- amd$AMD.Adjusted
head(close)
```
```{r}
ret <- dailyReturn(close)
tail(ret)
`
```{r}
print("Log Returns")
log_ret <- diff(log(close))
tail(log_ret)
```
```{r}
log_ret <- (diff(close)/close[-1] * 100)
tail(log_ret)
```
```{r}
apply(close, 2, Delt)
```
```{r}
cbind(close[,1], apply(close, 2, Delt))
```
```{r}
head(close)
```
```{r}
close$change <- c(diff(close)/close[-1] * 100)
tail(close)
```
# Drop NA
```{r}
close <- na.omit(close)
head(close)
```
```{r}
library(TTR)
amd <- getSymbols("AMD", from = "2020-01-01", auto.assign = F)[,6]
ret = ROC(amd)
tail(ret)
```
```{r}
amd <- getSymbols("AMD", from = "2020-01-01", auto.assign = F)[,6]
amd_ret <- diff(log(amd))
tail(amd_ret)
```
```{r}
library(PerformanceAnalytics)
prices <- getSymbols("AMD", from = "2020-01-01", auto.assign = F)[,6]
price_ret = Return.calculate(prices, method = c("discrete", "log", "difference"))
tail(price_ret)
```
```{r}
price_ret = CalculateReturns(prices, method = c("discrete", "log"))
tail(price_ret)
```