##########################
###SUB FUNCTION###########
##########################
#' Sub-function: variabletonumeric.f
#'
#' convert variable type to numeric
#'
#' @param var var
#' @param df df
#' @keywords variable to numeric
#' @export
#'
variabletonumeric.f <- function(var, df){
df[, var] <- suppressWarnings(as.numeric(df[,var]));
return(df)
}
#' Sub-function: returncode.c.f
#'
#' return code from stock name
#'
#' @param stockname stockname
#' @param df df
#' @keywords returncode
#' @export
#'
returncode.c.f <- function(stockname, df = final.df){
u1 <- df[, "stock."] %in% toupper(stockname)
if(sum(u1) > 0){
return(df[u1, "code."][1])
}else{
print(paste0("No such stock exist!"));
return(NA);
}
}
#' Sub-function: returnstock.c.f
#'
#' return latest stock name from stock code"
#'
#' return code from stock name
#' @param code code
#' @param df final.df
#' @keywords returnstock
#' @export
#'
returnstock.c.f <- function(code, df = final.df){
u1 <- df[, "code."] %in% toupper(code)
if(sum(u1) > 0){
return(df[u1, "stock."][sum(u1)])
}else{
print(paste0("No such stock exist!"));
return(NA);
}
}
#' Sub-function: returnstock.c.f
#'
#' return the closing price n days before today"
#' @param code code
#' @param df default to final.df
#' @param n default to 0
#' @keywords returnclose
#' @export
#'
returnclose.n.f <- function(code, df = final.df, n = 0){
u1 <- df[, "code."] %in% toupper(code)
if(sum(u1) > n){
return(df[u1, "last."][sum(u1)-n])
}else{
return(NA);
}
}
#' Sub-function: uniquecode.v.f
#'
#' return unique vector of stock's code (With/without warrant)
#' @param df df
#' @param warrant true/false
#' @keywords uniquecode
#' @export
#'
uniquecode.v.f <- function(df = final.df, warrant = F){
if(warrant){
uniquecode.v <- unique(df[, "code."])
}else{
uniquecode.v <- unique( nowarrant.df.f(df)[, "code."] )
}
return(uniquecode.v);
}
#'Sub-function: subcode.df.f
#'
#' return subset df" - subset df based on code
#' @param code code
#' @param df default to final.df
#' @keywords subcode
#' @export
#'
subcode.df.f <- function(code, df = final.df){
u <- df[,"code."] %in% code
subcode.df <- df[u,]
return(subcode.df);
}
#' funlag
#'
#' return 1 value = fun(vector[L-n-lag+1: L-lag])
#'
#' @export
funlag <- function(last.v, lag, n, fun){
L <- length(last.v)
if(L-n-lag+1 > 0){
return( fun( last.v[ (L-n-lag+1):(L-lag) ] ) )
}else{
return(NA)
}
}
#' funfwd
#'
#' @export
#'
funfwd <- function(return.v, predday, fwdn, fun = returnprod.f){
L <- length(return.v)
if( -1*predday + fwdn <= 0 & L-predday > 0 ){
return( fun( return.v[ (L-predday+1):(L-predday + fwdn)] ) )
}else{
return(NA)
}
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.