#' Start Remote RSelenium Server
#'
#' @param ...
#'
#' @import RSelenium
#' @return Remote RSelenium Server Environment
#' @export
#'
#' @examples startRS()
startRS <- function (...) {
#start remote server
rD <- rsDriver(browser = "chrome")
remDr <- rD$client
#can be added later to verify is login still active
#remDr$getCurrentUrl()
#XML::htmlParse(remDr$getPageSource()[[1]])
#login to page
login_url <- "https://www.wikifolio.com/dynamic/de/de/login/login?ReturnUrl=/de/"
remDr$navigate(login_url)
login_user <- remDr$findElement(using = 'css selector', "#Username.textbox")
login_user$sendKeysToElement(list("bin1234567890@web.de"))
login_pw <- remDr$findElement(using = 'css selector', "#Password.textbox")
login_pw$sendKeysToElement(list("getin88"))
login_button <- remDr$findElement(using = 'css selector', "button.c-button.c-button--large.c-button--block.c-button--uppercase.c-button--bold")
login_button$clickElement()
remDr
}
#' Download Historical Price Data From Wikifolio with RSelenium
#'
#' @param wiki_symbol wikifolio symbol
#' @param acc_statement if TRUE will download account statement; default FALSE
#'
#' @return returns an xts object containing historical price data of the wikifolio
#' @import zoo
#' @import xts
#' @importFrom lubridate dmy_hms
#' @export
#'
#' @examples getWikiRS("WF0AAABEST")
getWikiRS <- function(wiki_symbol, acc_statement = FALSE) {
yesterday <- paste0(
strsplit(as.character(Sys.Date() - 1), "-")[[1]][3], ".",
strsplit(as.character(Sys.Date() - 1), "-")[[1]][2], ".",
strsplit(as.character(Sys.Date() - 1), "-")[[1]][1]
)
if (isTRUE(acc_statement)) {
wiki_url <- paste0(
"https://www.wikifolio.com/dynamic/de/de/invest/download?type=account-statement&name=",
wiki_symbol, "&dateFrom=01.01.2010&dateTo=", yesterday
)}
wiki_url <- paste0(
"https://www.wikifolio.com/dynamic/de/de/invest/download?type=daily&name=",
wiki_symbol, "&dateFrom=01.01.2010&dateTo=", yesterday
)
remDr$navigate(wiki_url)
Sys.sleep(18)
#feind file in dowload folder
file_n <- list.files("/Users/home/Downloads") %>%
grep(., pattern=wiki_symbol, perl = FALSE) %>%
tail(., 1)
file_tmp <- paste0("/Users/home/Downloads/",
list.files("/Users/home/Downloads")[file_n])
wiki_historic <- read.csv2(file_tmp,
fileEncoding = c("UCS-4-INTERNAL"),
skip = 5,
sep = ";",
col.names = c("Date", "Interval", "Open", "Close", "High", "Low"),
allowEscapes = TRUE
)
if (file.exists(file_tmp)) file.remove(file_tmp)
#remDr$close()
#rm(rD)
#gc()
wiki_historic$Date <- as.Date(as.POSIXct(
lubridate::dmy_hms(wiki_historic$Date, tz = "UTC")
), tz = "UTC")
wiki_historic <- wiki_historic[, -2]
wiki_historic <- wiki_historic[, c("Date", "Open", "High", "Low", "Close")]
wiki_historic <- as.xts(wiki_historic[, -1], order.by = wiki_historic[, 1])
wiki_historic <- wiki_historic[!(weekdays(index(wiki_historic)) %in%
c("Saturday", "Sunday")), ]
return(wiki_historic)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.