PropMovingOptim <- function(kint = c(5,250), kby = 1,
cfint = c(0.05, 0.95), cfby = 0.05,
prices = BTC, nd = 365.25,
rf = 1, alpha = 0.05, Initpocket = NULL,
TransCost = NULL, rf.asset = 0,
type = c("SharpeRatio", "CGR", "CAGR")) {
kvec <- seq(from = kint[1], to = kint[2], by = kby)
cfvec <- seq(from = cfint[1], to = cfint[2], by = cfby)
fooFun <- function(k, cf, type) {
foo <- suppressWarnings(PropMoving(prices, k, nd,
rf, alpha, Initpocket,
TransCost, rf.asset,
confidence.level = cf))
if(!is.null(TransCost)) {
return(as.numeric(as.character(foo$table[type,2])))
} else {
return(as.numeric(as.character(foo$table[type,1])))
}
}
outProp <- PropOPtLoopCpp(kvec, cfvec, type)
outErr <- numeric(length(kvec))
for(i in 1:length(kvec)) {
+ k <- kvec[i]
+ outErr[i] <- as.numeric(as.character(ErrMoving(x = BTC, k, nd = 365.25,
rf = 1, alpha = 0.05, Initpocket = NULL,
TransCost = NULL)$table["SharpeRatio",1]))
+ for(j in 1:length(cfvec)) {
+ cf <- cfvec[j]
+ outProp[j,i] <- as.numeric(as.character(suppressWarnings(PropMoving(x = BTC, k, nd = 365.25,
rf = 1, alpha = 0.05, Initpocket = NULL,
TransCost = NULL, rf.asset = 0,
confidence.level = cf)$table["SharpeRatio",1])))
}
}
head(outProp)
head(outErr)
max(matrix(outErr, ncol = 1, dimnames = list(kvec)))
which(matrix(outErr, ncol = 1, dimnames = list(kvec)) == max(matrix(outErr, ncol = 1, dimnames = list(kvec))))
rownames(outProp) <- cfvec
colnames(outProp) <- kvec
max(outProp)
which(outProp == max(outProp))
optrow(outProp)[outProp == max(outProp)]
col(outProp)[outProp == max(outProp)]
outProp[11,2]
cfvec[11]
kvec[2]
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.