Last active
September 17, 2021 05:56
-
-
Save dariubs/22c314eb11d91b163ddc91c7af9ab357 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Load dataset | |
load("HW1_data.rData") | |
View(BTC.charts) | |
# normalize date | |
BTC.charts$date <- as.Date(BTC.charts$date, format= "%Y-%m-%d") | |
DASH.charts$date <- as.Date(DASH.charts$date, format= "%Y-%m-%d") | |
ETH.charts$date <- as.Date(ETH.charts$date, format= "%Y-%m-%d") | |
LTC.charts$date <- as.Date(LTC.charts$date, format= "%Y-%m-%d") | |
PPC.charts$date <- as.Date(PPC.charts$date, format= "%Y-%m-%d") | |
XLM.charts$date <- as.Date(XLM.charts$date, format= "%Y-%m-%d") | |
XRP.charts$date <- as.Date(XRP.charts$date, format= "%Y-%m-%d") | |
# Quiz 1 | |
ROI.BTC <- round( (( subset(BTC.charts, date> "2021-08-31" & date < "2021-09-02")$close - | |
subset(BTC.charts, date> "2016-01-09" & date < "2016-01-11")$close ) / | |
subset(BTC.charts, date> "2016-01-09" & date < "2016-01-11")$close) , digits = 0 ) * 100 | |
ROI.DASH <- round( (( subset(DASH.charts, date> "2021-08-31" & date < "2021-09-02")$close - | |
subset(DASH.charts, date> "2016-01-09" & date < "2016-01-11")$close ) / | |
subset(DASH.charts, date> "2016-01-09" & date < "2016-01-11")$close) , digits = 0 ) * 100 | |
ROI.ETH <- round( (( subset(ETH.charts, date> "2021-08-31" & date < "2021-09-02")$close - | |
subset(ETH.charts, date> "2016-01-09" & date < "2016-01-11")$close ) / | |
subset(ETH.charts, date> "2016-01-09" & date < "2016-01-11")$close) , digits = 0 ) * 100 | |
ROI.LTC <- round( (( subset(LTC.charts, date> "2021-08-31" & date < "2021-09-02")$close - | |
subset(LTC.charts, date> "2016-01-09" & date < "2016-01-11")$close ) / | |
subset(LTC.charts, date> "2016-01-09" & date < "2016-01-11")$close) , digits = 0 ) * 100 | |
ROI.PPC <- round( (( subset(PPC.charts, date> "2021-08-31" & date < "2021-09-02")$close - | |
subset(PPC.charts, date> "2016-01-09" & date < "2016-01-11")$close ) / | |
subset(PPC.charts, date> "2016-01-09" & date < "2016-01-11")$close) , digits = 0 ) * 100 | |
ROI.XLM <- round( (( subset(XLM.charts, date> "2021-08-31" & date < "2021-09-02")$close - | |
subset(XLM.charts, date> "2016-01-09" & date < "2016-01-11")$close ) / | |
subset(XLM.charts, date> "2016-01-09" & date < "2016-01-11")$close) , digits = 0 ) * 100 | |
ROI.XRP <- round( (( subset(XRP.charts, date> "2021-08-31" & date < "2021-09-02")$close - | |
subset(XRP.charts, date> "2016-01-09" & date < "2016-01-11")$close ) / | |
subset(XRP.charts, date> "2016-01-09" & date < "2016-01-11")$close) , digits = 0 ) * 100 | |
#### HW | |
# 1a | |
ROIBase <- function(sub1, sub2) { | |
result <- (( sub1 - | |
sub2 ) / sub2 ) | |
return(result) | |
} | |
ROI <- function(ds, start, end){ | |
start1 = start - 1 | |
start2 = start + 1 | |
end1 = end - 1 | |
end2 = end + 1 | |
sub1 <- subset(ds, date> end1 & date < end2)$close | |
sub2 <- subset(ds, date> start1 & date < start2 )$close | |
result <- ROIBase(sub1, sub2) | |
return(result) | |
} | |
ROI.BTC <- ROI(BTC.charts, as.Date("2016-01-10"), as.Date("2021-09-01")) | |
ROI.DASH <- ROI(DASH.charts, as.Date("2016-01-10"), as.Date("2021-09-01")) | |
ROI.ETH <- ROI(ETH.charts, as.Date("2016-01-10"), as.Date("2021-09-01")) | |
ROI.LTC <- ROI(LTC.charts, as.Date("2016-01-10"), as.Date("2021-09-01")) | |
ROI.PPC <- ROI(PPC.charts, as.Date("2016-01-10"), as.Date("2021-09-01")) | |
ROI.XLM <- ROI(XLM.charts, as.Date("2016-01-10"), as.Date("2021-09-01")) | |
ROI.XRP <- ROI(XRP.charts, as.Date("2016-01-10"), as.Date("2021-09-01")) | |
# 1b | |
dailyroi <- function( charts, day) { | |
day <- as.Date(day) | |
mean <- ROI(charts, day , day + 1) | |
} | |
updatemean <- function(ds) { | |
ds$mean <- 0 | |
i <- 1 | |
while (i < length(ds$date)) { | |
if( i < 2) { | |
i <- i + 1 | |
next | |
} | |
j <- i -1 | |
meanex <- ROIBase(ds[i-1, 1:5]$close, ds[i, 1:5]$close) | |
ds[i, 1:6]$mean <- meanex | |
i <- i + 1 | |
} | |
return(ds) | |
} | |
BTC.charts <- updatemean(BTC.charts) | |
max(BTC.charts$mean) | |
mean(BTC.charts$mean) | |
DASH.charts <- updatemean(DASH.charts) | |
max(DASH.charts$mean) | |
ETH.charts <- updatemean(ETH.charts) | |
max(ETH.charts$mean) | |
LTC.charts <- updatemean(LTC.charts) | |
max(LTC.charts$mean) | |
PPC.charts <- updatemean(PPC.charts) | |
max(PPC.charts$mean) | |
XLM.charts <- updatemean(XLM.charts) | |
max(XLM.charts$mean) | |
XPR.charts <- updatemean(XPR.charts) | |
max(XPR.charts$mean) | |
# 1c | |
sd(BTC.charts$mean) | |
sd(DASH.charts$mean) | |
sd(ETH.charts$mean) | |
sd(LTC.charts$mean) | |
sd(PPC.charts$mean) | |
sd(XLM.charts$mean) | |
sd(XPR.charts$mean) | |
# 2a | |
newvalue <- function(usd, init.value, current.value) { | |
print(init.value) | |
print(current.value) | |
p <- (current.value / init.value) * usd | |
} | |
btc_jan16 <- 5000 | |
xpr_jan16 <- 2500 | |
ltc_jan16 <- 2500 | |
eth_jan16 <- 1250 | |
dash_jan16 <-1250 | |
ppc_jan16 <- 1250 | |
xlm_jan16 <- 1250 | |
portfo1 <- list(btc_jan16) | |
portfo2 <- list(xpr_jan16, ltc_jan16) | |
portfo3 <- list(eth_jan16, dash_jan16, ppc_jan16, xlm_jan16) | |
btc_newvalue <- newvalue(btc_jan16, subset(BTC.charts, date> "2016-01-09" & date < "2016-01-11")$close, subset(BTC.charts, date> "2021-08-31" & date < "2021-09-02")$close ) | |
xpr_newvalue <- newvalue(xpr_jan16, subset(XPR.charts, date> "2016-01-09" & date < "2016-01-11")$close, subset(XPR.charts, date> "2021-08-31" & date < "2021-09-02")$close ) | |
ltc_newvalue <- newvalue(ltc_jan16, subset(LTC.charts, date> "2016-01-09" & date < "2016-01-11")$close, subset(LTC.charts, date> "2021-08-31" & date < "2021-09-02")$close ) | |
eth_newvalue <- newvalue(eth_jan16, subset(ETH.charts, date> "2016-01-09" & date < "2016-01-11")$close, subset(ETH.charts, date> "2021-08-31" & date < "2021-09-02")$close ) | |
dash_newvalue <- newvalue(dash_jan16, subset(DASH.charts, date> "2016-01-09" & date < "2016-01-11")$close, subset(DASH.charts, date> "2021-08-31" & date < "2021-09-02")$close ) | |
ppc_newvalue <- newvalue(ppc_jan16, subset(PPC.charts, date> "2016-01-09" & date < "2016-01-11")$close, subset(PPC.charts, date> "2021-08-31" & date < "2021-09-02")$close ) | |
xlm_newvalue <- newvalue(btc_jan16, subset(XLM.charts, date> "2016-01-09" & date < "2016-01-11")$close, subset(XLM.charts, date> "2021-08-31" & date < "2021-09-02")$close ) | |
portfo1_value <- btc_newvalue | |
portfo2_value <- xpr_newvalue + ltc_newvalue | |
portfo3_value <- eth_newvalue + dash_newvalue + ppc_newvalue + xlm_newvalue |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment