更新日期 : 2023-02-20 10:57:03
## [1] "無需更新"
## [1] "最新日期 : 20230217"
con <<- DBI::dbConnect(RSQLite::SQLite(), dbname = paste0(dir.r.stock,'stock.ohlc.db'))
df <- dplyr::tbl(con, "stock.ohlc")
yyyymmdd.db<-df %>%
arrange(desc(date)) %>%
pu(date)
dbDisconnect(con)
#標示日期
day0 = yyyymmdd.db[1]
day1 = yyyymmdd.db[2]
day3 = yyyymmdd.db[4]
day5 = yyyymmdd.db[6] #1 week
day10 = yyyymmdd.db[11] #2 weeks
day20 = yyyymmdd.db[21] #1 month
day40 = yyyymmdd.db[41] #2 months
day60 = yyyymmdd.db[61] #1 months
day120= yyyymmdd.db[121] #0.5 year
day240= yyyymmdd.db[241] #1 year
#依據標示日期query資料庫資料
con <<- DBI::dbConnect(RSQLite::SQLite(), dbname = paste0(dir.r.stock,'stock.ohlc.db'))
dbdf <- dplyr::tbl(con, "stock.ohlc")
#list-column 股價
plot.stock.close.sparkline<-
dbdf %>%
filter(date >= day240) %>%
select(stockcode,date,收盤價) %>%
collect() %>%
arrange(stockcode,date) %>%
group_by(stockcode) %>%
na.omit(.) %>%
summarize(across(where(is.numeric), list)) %>%
dplyr::rename(close = 收盤價)
#list-column 成交張數
plot.stock.piece.sparkline<-
dbdf %>%
filter(date >= day240) %>%
select(stockcode,date,成交張數) %>%
collect() %>%
arrange(stockcode,date) %>%
group_by(stockcode) %>%
na.omit(.) %>%
summarize(across(where(is.numeric), list)) %>%
dplyr::rename(piece = 成交張數)
res %<>%
mutate(across(where(is.numeric)
,~as.numeric(ifelse(is.infinite(.),"",.))))
res %<>%
merge(plot.stock.close.sparkline,by="stockcode") %>%
merge(plot.stock.piece.sparkline,by="stockcode")
### display crosstalk filters
shiny::div(bscols(
list(stockcode_filter,
type_filter))
)
### display table
(ohlc_table)