library(FinancialInstrument)
library(TTR)
library(PerformanceAnalytics)
symbols.close<-read.table("s.txt",header=T, row.names=c("time"))
monthly.returns <- ROC(symbols.close, n = 1, type = "discrete", na.pad = TRUE)
RankRB <- function(x){
r <- as.xts(t(apply(-x, 1, rank, na.last = "keep")))
return(r)
}
MonthlyAd <- function(x){
sym <- sub("\\..*$", "", names(x)[1])
Ad(to.monthly(x, indexAt = 'lastof', drop.time = TRUE, name = sym))
}
CAGR <- function(x, m){
x <- na.omit(x)
cagr <- apply(x, 2, function(x, m) prod(1 + x)^(1 / (length(x) / m)) - 1, m = m)
return(cagr)
}
SimpleMomentumTest <- function(xts.ret, xts.rank, n = 1, ret.fill.na = 3){
lag.rank <- lag(xts.rank, k = 1, na.pad = TRUE)
n2 <- nrow(lag.rank[is.na(lag.rank[,1]) == TRUE])
z <- max(n2, ret.fill.na)
lag.rank <- as.matrix(lag.rank)
lag.rank[lag.rank > n] <- NA
lag.rank[lag.rank <= n] <- 1
mat.ret <- as.matrix(xts.ret) * lag.rank
vec.ret <- rowMeans(mat.ret, na.rm = TRUE)
vec.ret[1:z] <- NA
vec.ret <- xts(x = vec.ret, order.by = index(xts.ret))
f <- list(mat = mat.ret, ret = vec.ret, rank = lag.rank)
return(f)
}
roc.three <- ROC(x = symbols.close , n = 3, type = "discrete")
rank.three <- RankRB(roc.three)
roc.six <- ROC(x = symbols.close , n = 6, type = "discrete")
rank.six <- RankRB(roc.six)
roc.nine <- ROC(x = symbols.close , n = 9, type = "discrete")
rank.nine <- RankRB(roc.nine)
roc.twelve <- ROC(x = symbols.close , n = 12, type = "discrete")
rank.twelve <- RankRB(roc.twelve)
num.assets <- 4
case1 <- SimpleMomentumTest(xts.ret = monthly.returns, xts.rank = rank.three,
n = num.assets, ret.fill.na = 15)
bGlicmFyeShGaW5hbmNpYWxJbnN0cnVtZW50KQpsaWJyYXJ5KFRUUikKbGlicmFyeShQZXJmb3JtYW5jZUFuYWx5dGljcykKc3ltYm9scy5jbG9zZTwtcmVhZC50YWJsZSgicy50eHQiLGhlYWRlcj1ULCByb3cubmFtZXM9YygidGltZSIpKQptb250aGx5LnJldHVybnMgPC0gUk9DKHN5bWJvbHMuY2xvc2UsIG4gPSAxLCB0eXBlID0gImRpc2NyZXRlIiwgbmEucGFkID0gVFJVRSkKUmFua1JCIDwtIGZ1bmN0aW9uKHgpewpyIDwtIGFzLnh0cyh0KGFwcGx5KC14LCAxLCByYW5rLCBuYS5sYXN0ID0gImtlZXAiKSkpCiAgcmV0dXJuKHIpCn0KCk1vbnRobHlBZCA8LSBmdW5jdGlvbih4KXsKc3ltIDwtIHN1YigiXFwuLiokIiwgIiIsIG5hbWVzKHgpWzFdKQogIEFkKHRvLm1vbnRobHkoeCwgaW5kZXhBdCA9ICdsYXN0b2YnLCBkcm9wLnRpbWUgPSBUUlVFLCBuYW1lID0gc3ltKSkKfQoKQ0FHUiA8LSBmdW5jdGlvbih4LCBtKXsKeCA8LSBuYS5vbWl0KHgpCiBjYWdyIDwtIGFwcGx5KHgsIDIsIGZ1bmN0aW9uKHgsIG0pIHByb2QoMSArIHgpXigxIC8gKGxlbmd0aCh4KSAvIG0pKSAtIDEsIG0gPSBtKQogIHJldHVybihjYWdyKQp9CgpTaW1wbGVNb21lbnR1bVRlc3QgPC0gZnVuY3Rpb24oeHRzLnJldCwgeHRzLnJhbmssIG4gPSAxLCByZXQuZmlsbC5uYSA9IDMpewpsYWcucmFuayA8LSBsYWcoeHRzLnJhbmssIGsgPSAxLCBuYS5wYWQgPSBUUlVFKQogIG4yIDwtIG5yb3cobGFnLnJhbmtbaXMubmEobGFnLnJhbmtbLDFdKSA9PSBUUlVFXSkKICB6IDwtIG1heChuMiwgcmV0LmZpbGwubmEpCmxhZy5yYW5rIDwtIGFzLm1hdHJpeChsYWcucmFuaykKICBsYWcucmFua1tsYWcucmFuayA+IG5dIDwtIE5BCmxhZy5yYW5rW2xhZy5yYW5rIDw9IG5dIDwtIDEKbWF0LnJldCA8LSBhcy5tYXRyaXgoeHRzLnJldCkgKiBsYWcucmFuawp2ZWMucmV0IDwtIHJvd01lYW5zKG1hdC5yZXQsIG5hLnJtID0gVFJVRSkKICB2ZWMucmV0WzE6el0gPC0gTkEKdmVjLnJldCA8LSB4dHMoeCA9IHZlYy5yZXQsIG9yZGVyLmJ5ID0gaW5kZXgoeHRzLnJldCkpCiAgZiA8LSBsaXN0KG1hdCA9IG1hdC5yZXQsIHJldCA9IHZlYy5yZXQsIHJhbmsgPSBsYWcucmFuaykKICByZXR1cm4oZikKfQoKcm9jLnRocmVlIDwtIFJPQyh4ID0gc3ltYm9scy5jbG9zZSAsIG4gPSAzLCB0eXBlID0gImRpc2NyZXRlIikKcmFuay50aHJlZSA8LSBSYW5rUkIocm9jLnRocmVlKQoKcm9jLnNpeCA8LSBST0MoeCA9IHN5bWJvbHMuY2xvc2UgLCBuID0gNiwgdHlwZSA9ICJkaXNjcmV0ZSIpCnJhbmsuc2l4IDwtIFJhbmtSQihyb2Muc2l4KQoKcm9jLm5pbmUgPC0gUk9DKHggPSBzeW1ib2xzLmNsb3NlICwgbiA9IDksIHR5cGUgPSAiZGlzY3JldGUiKQpyYW5rLm5pbmUgPC0gUmFua1JCKHJvYy5uaW5lKQoKcm9jLnR3ZWx2ZSA8LSBST0MoeCA9IHN5bWJvbHMuY2xvc2UgLCBuID0gMTIsIHR5cGUgPSAiZGlzY3JldGUiKQpyYW5rLnR3ZWx2ZSA8LSBSYW5rUkIocm9jLnR3ZWx2ZSkKCm51bS5hc3NldHMgPC0gNAoKY2FzZTEgPC0gU2ltcGxlTW9tZW50dW1UZXN0KHh0cy5yZXQgPSBtb250aGx5LnJldHVybnMsIHh0cy5yYW5rID0gcmFuay50aHJlZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4gPSBudW0uYXNzZXRzLCByZXQuZmlsbC5uYSA9IDE1KQogICAgICAgICAgICAgICAgICAgICAgICAgICAg
Main.java:1: error: class, interface, or enum expected
library(FinancialInstrument)
^
Main.java:13: error: unclosed character literal
Ad(to.monthly(x, indexAt = 'lastof', drop.time = TRUE, name = sym))
^
Main.java:13: error: unclosed character literal
Ad(to.monthly(x, indexAt = 'lastof', drop.time = TRUE, name = sym))
^
3 errors