Skip to content
/ pedquant Public

❗ This is a read-only mirror of the CRAN R package repository. pedquant — Public Economic Data and Quantitative Analysis. Homepage: https://github.com/ShichenXie/pedquanthttps://pedquant.com/ Report bugs for this package: https://github.com/ShichenXie/pedquant/issues

Notifications You must be signed in to change notification settings

cran/pedquant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pedquant

CRAN status

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 offers high performance in terms of speed by using data.table and TTR; and it generates 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.

About

❗ This is a read-only mirror of the CRAN R package repository. pedquant — Public Economic Data and Quantitative Analysis. Homepage: https://github.com/ShichenXie/pedquanthttps://pedquant.com/ Report bugs for this package: https://github.com/ShichenXie/pedquant/issues

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages