Last active
          September 17, 2021 05:56 
        
      - 
      
- 
        Save dariubs/22c314eb11d91b163ddc91c7af9ab357 to your computer and use it in GitHub Desktop. 
  
    
      This file contains hidden or 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