Download Data
end_date <- Sys.Date()
start_date <- end_date - 730 # roughly 2 years
# Tickers of major Taiwan-listed companies
# TSMC, Foxconn, MediaTek, Delta Electronics, Fubon Financial, Cathay Financial
symbols <- c("2330.TW", "2317.TW", "2454.TW", "2308.TW", "2881.TW", "2882.TW")
get_taiwan_stock <- function(symbol) {
tryCatch({
df <- getSymbols(symbol, src = "yahoo", from = start_date, to = end_date,
auto.assign = FALSE)
df_data <- data.frame(Date = index(df), coredata(df))
colnames(df_data) <- c("Date", "Open", "High", "Low", "Close", "Volume", "Adjusted")
df_data$Ticker <- symbol
df_data
}, error = function(e) {
message("Failed to download: ", symbol, " - ", conditionMessage(e))
NULL
})
}
all_stocks_df <- map_dfr(symbols, get_taiwan_stock)
# Save combined data to CSV (same folder as this .Rmd file)
write.csv(all_stocks_df, "taiwan_stock_prices.csv", row.names = FALSE)
Summary by Ticker
all_stocks_df %>%
group_by(Ticker) %>%
summarise(Days = n(),
First = min(Date),
Last = max(Date),
Avg_Close = round(mean(Close, na.rm = TRUE), 2)) %>%
kable()
| 2308.TW |
486 |
2024-10-04 |
2026-10-02 |
998.87 |
| 2317.TW |
486 |
2024-10-04 |
2026-10-02 |
208.14 |
| 2330.TW |
486 |
2024-10-04 |
2026-10-02 |
1525.86 |
| 2454.TW |
486 |
2024-10-04 |
2026-10-02 |
2021.56 |
| 2881.TW |
486 |
2024-10-04 |
2026-10-02 |
96.22 |
| 2882.TW |
486 |
2024-10-04 |
2026-10-02 |
74.02 |
Preview of the Data
kable(head(all_stocks_df, 10))
| 2024-10-04 |
986 |
986 |
967 |
977 |
40934818 |
949.1689 |
2330.TW |
| 2024-10-07 |
993 |
1010 |
989 |
1005 |
39667071 |
976.3714 |
2330.TW |
| 2024-10-08 |
1000 |
1010 |
997 |
1010 |
30845902 |
981.2289 |
2330.TW |
| 2024-10-09 |
1030 |
1035 |
1020 |
1020 |
46975717 |
990.9440 |
2330.TW |
| 2024-10-11 |
1025 |
1050 |
1020 |
1045 |
43058754 |
1015.2318 |
2330.TW |
| 2024-10-14 |
1045 |
1055 |
1035 |
1045 |
36858874 |
1015.2318 |
2330.TW |
| 2024-10-15 |
1050 |
1075 |
1050 |
1070 |
42850176 |
1039.5198 |
2330.TW |
| 2024-10-16 |
1040 |
1070 |
1035 |
1045 |
52652149 |
1015.2318 |
2330.TW |
| 2024-10-17 |
1050 |
1055 |
1030 |
1035 |
54173771 |
1005.5167 |
2330.TW |
| 2024-10-18 |
1095 |
1100 |
1075 |
1085 |
85011961 |
1054.0924 |
2330.TW |