Pedquant是一个开源的R包,可用于从多种数据源下载股票数据。以下是使用Pedquant获取A股数据的方法:
- 安装Pedquant包:在R环境中,可以使用
install.packages("Pedquant")
安装发布版本,也可以使用devtools::install_github("shichen xie / ped quant")
从GitHub安装开发版本。 - 加载相关库和包:在获取数据前,需加载
pedquant
包及可能用到的其他辅助包,如tidyverse
、readxl
、lubridate
、writexl
等。代码示例如下:
library(pedquant)
library(tidyverse)
library(readxl)
library(lubridate)
library(writexl)
- 准备数据:若要获取沪深300成分股数据,可先从相关网站下载沪深300成分股名称等信息的文件(如
.xls
格式),然后导入R中得到数据框。代码示例如下:
index_data <- read_xls("000300cons.xls")
- 处理股票代码格式:对成分股数据框中的股票代码进行处理,使其符合
pedquant
包中函数所需格式。例如,如果成分股数据中有“交易所”列,可根据交易所信息将股票代码改写为“代码.交易所代码”的形式,如“600000.SS”表示上证的股票,“000001.SZ”表示深证的股票。代码示例如下:
index_name <- index_data %>%
select(`日期Date`, `成分券代码Constituent Code`, `交易所Exchange`) %>%
mutate(code = if_else(`交易所Exchange` == "深圳证券交易所",
paste(`成分券代码Constituent Code`, "SZ", sep = "."),
paste(`成分券代码Constituent Code`, "SS", sep = ".")),
date = ymd(`日期Date`)) %>%
select(5, 4)
- 获取股票数据:使用
md_stock
函数来获取股票数据。可指定股票代码、日期范围、是否调整数据以及数据源等参数。示例代码如下:
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
}
index_price <- index_name %>%
mutate(close = map2_dbl(code, date, price_get))
上述代码中,price_get
函数用于获取单个股票在指定日期的收盘价。md_stock
函数从163数据源获取股票数据,map2_dbl
函数将price_get
函数应用到index_name
数据框的code
和date
列上,以获取每个股票在对应日期的收盘价。
- 导出数据:将获取到的数据导出为文件,如Excel文件,以便进一步分析和使用。代码示例如下:
write_xlsx(index_price, "沪深300成分股收盘价11_25.xlsx")