Skip to content

Instantly share code, notes, and snippets.

@dariubs
Last active September 17, 2021 05:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dariubs/22c314eb11d91b163ddc91c7af9ab357 to your computer and use it in GitHub Desktop.
Save dariubs/22c314eb11d91b163ddc91c7af9ab357 to your computer and use it in GitHub Desktop.
# 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