Learn R Programming

pedquant

pedquant (Public Economic Data and QUANTitative analysis) provides an interface to access public economic and financial data for economic research and quantitative analysis. The functions are grouped into three main categories,

  • ed_* (economic data) functions load economic data from NBS and FRED;
  • md_* (market data) functions load the forex, money, bond, stock, future market data from public data sources, including 163, Sina, qq finance and etc.
  • pq_* (quantitative analysis) functions create technical indicators, visualization charts and industrial index etc for time series data.

The functions in this package are designed to minimize code writing for common tasks in quantitative analysis process. Since the parameters to get data can be specified interactively, it is very easy to get started. The loaded data have been carefully cleansed and provided in a unified format.

pedquant package has advantages in multiple aspects. For example, the format of loaded data is a list of data frames, which can be easily manipulated using data.table or tidyverse packages; it achieves high performance through implementations data.table and TTR; and it produces interactive charts using echarts4r. Similar works include tidyquant and quantmod.

Installation

  • Install the release version of pedquant from CRAN with:
install.packages("pedquant")
  • Install the developing version of pedquant from github with:
devtools::install_github("shichenxie/pedquant")

Example

The following examples show you how to import data.

library(pedquant)
packageVersion('pedquant')
#> [1] '0.2.4'
# loading data
## import eocnomic data
dat1 = ed_fred('GDPCA')
#> 1/1 GDPCA
dat2 = ed_nbs(geo_type='nation', freq='quarterly', symbol='A010101')

## import market data
FAAG = md_stock(c('META', 'AMZN', 'AAPL', 'GOOG'), date_range = '10y')
#> 1/4 meta
#> 2/4 amzn
#> 3/4 aapl
#> 4/4 goog
INDX = md_stock(c('^000001','^399001'), date_range = '10y')
#> 1/2 ^000001
#> 2/2 ^399001

# double moving average strategy
## add technical indicators
data("dt_banks")
dtbnkti = pq_addti(dt_banks, x='close_adj', sma=list(n=200), sma=list(n=50))

## crossover signals
library(data.table)
dtorders = copy(dtbnkti[['601988.SH']])[
   sma_50 %x>% sma_200, `:=`(side = 1,  prices = close_adj)
 ][sma_50 %x<% sma_200, `:=`(side = -1, prices = close_adj)
 ][order(date)
 ][, (c('side', 'prices')) := lapply(.SD, shift), .SDcols = c('side', 'prices')
 ][,.(symbol, name, date, side, prices)
 ][!is.na(side)]
head(dtorders)
#>       symbol     name       date side prices
#> 1: 601988.SH 中国银行 2021-04-20    1   5.76
#> 2: 601988.SH 中国银行 2021-08-19   -1   5.67
#> 3: 601988.SH 中国银行 2021-11-18    1   5.70
#> 4: 601988.SH 中国银行 2021-11-25   -1   5.71
#> 5: 601988.SH 中国银行 2022-01-18    1   5.72

# charting
e = pq_plot(setDT(dt_banks)[symbol=='601988.SH'],  y='close_adj', addti = list(sma=list(n=200), sma=list(n=50)), orders = dtorders)
# e[['601988.SS']]

Issues and Contributions

This package still on the developing stage. If you have any issue when using this package, please update to the latest version from github. If the issue still exists, report it at github page. Contributions in any forms to this project are welcome.

Copy Link

Version

Install

install.packages('pedquant')

Monthly Downloads

729

Version

0.2.6

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Shichen Xie

Last Published

September 24th, 2025

Functions in pedquant (0.2.6)

md_stock

query stock market data
md_symbol

symbol of market data
md_stock_adjust

adjust stock prices
md_stock_symbol

symbol components of exchange
md_stock_financials

query financial statements
pq_return

calculating returns by frequency
md_future

query future market data
pq_addti

adding technical indicators
pq_addti_funs

technical functions
pq_performance_funs

performance functions
pq_performance

calculating performance metrics
pq_portfolio

calculating returns/equity of portfolio
pq_plot

creating charts for time series
pq_opr

dataframe operation
pq_freq

converting frequency of daily data
ed_code

code list by category
ed_fred

query FRED economic data
md_bond

query bond data
ed_nbs_subregion

subregion code of NBS economic data
dt_banks

dataset of bank stocks in sse
ed_fred_symbol

symbol of FRED economic data
%x>%

crossover operators
ed_nbs

query NBS economic data
ed_nbs_symbol

symbol of NBS economic data
md_money

query interbank offered rate
md_moneycn

query chinese benchmark rates
md_future_symbol

symbol of future market data
md_forex

query forex data
dt_ssec

dataset of shanghai composite index