获取沪深300成分股单日收盘价

获取沪深300成分股单日收盘价

首先获得沪深300成分股中各股票名称(沪深300成分股获取网站),导入R中得到数据框。

使用pedquant包获取日收盘价数据:

library(pedquant)
library(tidyverse)
library(readxl)
library(lubridate)
library(writexl)
index_data <- read_xls("000300cons.xls") #导入沪深300成分股名称等信息
index_name <- index_data %>%
  select(`日期Date`, `成分券代码Constituent Code`, `交易所Exchange`) %>% #选择所需变量
  mutate(code = if_else(`交易所Exchange` == "深圳证券交易所", #对股票代码进行改写,使其符合pedquant包中函数所需格式
                        paste(`成分券代码Constituent Code`, "SZ", sep = "."),
                        paste(`成分券代码Constituent Code`, "SS", sep = ".")),
         date = ymd(`日期Date`)) %>%
  select(5, 4) #选择所需变量

# 通过pedqaunt包获取股票信息的函数 ----------------------------------------------------
price_get <- function(code, date){
  get <- md_stock(code, from = date, to = date, adjust = TRUE, source = "163")
  get_t <- tibble(get[[1]]) #获得股票信息数据框
  get_t$close #提取出所需变量,此处为收盘价close
  }
index_price <- index_name %>%
  mutate(close = map2_dbl(code, date, price_get)) #获取各股票收盘价
write_xlsx(index_price, "沪深300成分股收盘价11_25.xlsx") #导出数据结果

此程序缺点:因为是股票数据逐支下载,程序耗时较长。

如需获得多日数据,略加修改源代码即可实现:

如:在数据框中添加endate列,并在自定义函数中将to = date 改为endate,或根据需要直接在函数中指定。
程序所用数据及源代码

你可能感兴趣的:(R语言,R语言在金融中的应用,r语言)