diff --git a/CRAN-SUBMISSION b/CRAN-SUBMISSION index 7d2776d..4b8a27f 100644 --- a/CRAN-SUBMISSION +++ b/CRAN-SUBMISSION @@ -1,3 +1,3 @@ -Version: 0.2.2.1 -Date: 2023-05-05 12:14:48 UTC -SHA: 58e89720c12078bca2bb7c6e64ed84ccb68a6c18 +Version: 0.2.3 +Date: 2023-08-30 12:35:59 UTC +SHA: f73ee78fb2e1cf472574a2015d386dcd2b3bb031 diff --git a/R/md_future.R b/R/md_future.R index b039dc6..a483626 100755 --- a/R/md_future.R +++ b/R/md_future.R @@ -1,18 +1,6 @@ # query future data from sina # ref: http://blog.sina.com.cn/s/blog_53d5ab970102vjj7.html -symbol_future_sina_xchg = function() { - exchange = type = NULL - syb_dt = setDT(copy(symbol_future_sina))[ - , c('exchange', 'board', 'symbol', 'name'), with = FALSE - ][exchange %in% c('DCE', 'ZCE', 'SHFE', 'CFFEX'), type := 'inner' - ][is.na(type), type := 'global' - ] - syb_lst = split(syb_dt, by = 'type', keep.by = FALSE) - syb_lst = c(split(syb_lst$inner, by = 'exchange'), syb_lst[2]) - - return(syb_lst) -} #' symbol of future market data #' #' \code{md_future_symbol} returns all future symbols that provided by sina finance, see details on \url{http://vip.stock.finance.sina.com.cn/quotes_service/view/qihuohangqing.html} or \url{http://vip.stock.finance.sina.com.cn/mkt/#global_qh}) @@ -26,7 +14,16 @@ symbol_future_sina_xchg = function() { #' #' @export md_future_symbol = function(...) { - syb_dt = symbol_future_sina_xchg() + exchange = type = board = NULL + + syb_dt = setDT(copy(symbol_future_sina))[order(exchange, board)][ + , c('exchange', 'board', 'symbol', 'name'), with = FALSE + ][exchange %in% c('DCE', 'ZCE', 'SHFE', 'CFFEX', 'GFEX'), type := 'inner' + ][is.na(type), type := 'global' + ] + syb_lst = split(syb_dt, by = 'type', keep.by = FALSE) + syb_lst = c(split(syb_lst$inner, by = 'exchange'), syb_lst[2]) + return(syb_dt) } @@ -39,7 +36,7 @@ future_symbols_sybnam = function(symbols) { symbol_future = setDT(copy(symbol_future_sina))[ sub('[0-9]+', '0', sybs), on = 'symbol' ][, symbol := sybs - ][exchange %in% c('DCE', 'ZCE', 'CFFEX', 'SHFE') & sub('[A-Z]+', '', symbol) != '0', + ][exchange %in% c('DCE', 'ZCE', 'CFFEX', 'SHFE', 'GFEX') & sub('[A-Z]+', '', symbol) != '0', name := paste0(name, sub('[A-Z]+', '', symbol)) ] return(symbol_future) @@ -71,7 +68,7 @@ md_future1_history_sina = function(symbol, name, freq, from, to, handle, ...) { # url # http://stock2.finance.sina.com.cn/futures/api/json.php/IndexService.getInnerFuturesDailyKLine?symbol=M0 url0 = 'https://stock2.finance.sina.com.cn/futures/api/jsonp.php/var=/InnerFuturesNewService.get%s?symbol=%s' - if (!(sybnam$exchange %in% c('DCE', 'ZCE', 'CFFEX', 'SHFE'))) url0 = 'https://stock2.finance.sina.com.cn/futures/api/jsonp.php/var=/GlobalFuturesService.getGlobalFutures%s?symbol=%s' + if (!(sybnam$exchange %in% c('DCE', 'ZCE', 'CFFEX', 'SHFE', 'GFEX'))) url0 = 'https://stock2.finance.sina.com.cn/futures/api/jsonp.php/var=/GlobalFuturesService.getGlobalFutures%s?symbol=%s' urli = sprintf(url0, freq, syb) dat = try(read_lines(urli), silent = TRUE) diff --git a/R/pq_freq.R b/R/pq_freq.R index 40c468f..bab0aaf 100755 --- a/R/pq_freq.R +++ b/R/pq_freq.R @@ -66,10 +66,10 @@ pq1_freq = function(dat, freq, date_type='eop') { #' @param date_type the available date type are eop (end of period) and bop (bebinning of period), defaults to the eop. #' #' @examples +#' \dontrun{ #' data(dt_ssec) #' dat1_weekly = pq_freq(dt_ssec, "weekly") #' -#' \dontrun{ #' data(dt_banks) #' dat2_weekly = pq_freq(dt_banks, "monthly") #' } diff --git a/R/pq_performance.R b/R/pq_performance.R index ce2add7..2ce2cc8 100755 --- a/R/pq_performance.R +++ b/R/pq_performance.R @@ -92,6 +92,7 @@ pq1_performance = function(dt1, Ra, Rb=NULL, perf_fun, col_date='date', ...) { #' @param ... additional parameters, the arguments used in `PerformanceAnalytics` functions. #' #' @examples +#' \dontrun{ #' library(pedquant) #' library(data.table) #' @@ -113,6 +114,7 @@ pq1_performance = function(dt1, Ra, Rb=NULL, perf_fun, col_date='date', ...) { #' # claculate table.CAPM metrics #' perf_capm = pq_performance(datRaRb, Ra = 'Ra', Rb = 'Rb', perf_fun = 'table.CAPM') #' rbindlist(perf_capm, idcol = 'symbol') +#' } #' #' @export #' diff --git a/R/pq_plot2.R b/R/pq_plot2.R index c684ac3..b7a63fc 100644 --- a/R/pq_plot2.R +++ b/R/pq_plot2.R @@ -243,7 +243,7 @@ p_addti_indicator = function(e, dt, addti = NULL, x = 'date', theme = 'default') } e = do.call(efun, args = ticol_args) |> - e_y_axis(position = 'right', axisLabel = list(rotate = 90, hideOverlap=TRUE)) |> + e_y_axis(min='dataMin', position = 'right', axisLabel = list(rotate = 90, hideOverlap=TRUE)) |> e_legend(type = "plain", orient = "vertical", left='30', top='10') |> e_datazoom(show=FALSE) |> e_toolbox(show=FALSE) |> diff --git a/R/sysdata.rda b/R/sysdata.rda index fc5db38..0214cd9 100755 Binary files a/R/sysdata.rda and b/R/sysdata.rda differ diff --git a/data-raw/sysdata.R b/data-raw/sysdata.R index e524008..a8d3c27 100644 --- a/data-raw/sysdata.R +++ b/data-raw/sysdata.R @@ -39,78 +39,91 @@ if (FALSE) { # rbind(syb_stock2, symbol_stock_163, fill=TRUE) # )[,.SD[1], keyby=symbol # ][grepl('^c.+', province), province := NA] ) - + + + # # symbol_future_sina future1 = fread( 'exchange symbol name board unit -DCE V0 PVC energy 人民币/吨 -DCE L0 乙烯塑料 energy 人民币/吨 -DCE PP0 聚丙烯PP energy 人民币/吨 -DCE EB0 苯乙烯 energy 人民币/吨 -DCE EG0 乙二醇 energy 人民币/吨 -DCE J0 焦炭 energy 人民币/吨 -DCE JM0 焦煤 energy 人民币/吨 -DCE A0 豆一 grain 人民币/吨 -DCE B0 豆二 grain 人民币/吨 -DCE M0 豆粕 grain 人民币/吨 -DCE Y0 豆油 grain 人民币/吨 -DCE C0 玉米 grain 人民币/吨 -DCE CS0 淀粉 grain 人民币/吨 -DCE RR0 粳米 grain 人民币/吨 -DCE JD0 鸡蛋 grain 人民币/500千克 -DCE LH0 生猪 grain 人民币/吨 -DCE I0 铁矿石 metal 人民币/吨 -DCE FB0 纤维板 other 人民币/立方米 -DCE BB0 胶合板 other 人民币/张 -DCE P0 棕榈 soft 人民币/吨 -SHFE NR0 20号胶 other 人民币/吨 -SHFE SP0 纸浆 other 人民币/吨 -SHFE SC0 原油 energy 人民币/桶 -SHFE FU0 燃油 energy 人民币/吨 -SHFE LU0 低硫燃料油 energy 人民币/吨 -SHFE BU0 沥青 energy 人民币/吨 -SHFE RU0 橡胶 energy 人民币/吨 -SHFE AU0 黄金 metal 人民币/克 -SHFE AG0 白银 metal 人民币/千克 -SHFE BC0 国际铜 metal 人民币/吨 -SHFE CU0 沪铜 metal 人民币/吨 -SHFE SS0 不锈钢 metal 人民币/吨 -SHFE RB0 螺纹钢 metal 人民币/吨 -SHFE WR0 线材 metal 人民币/吨 -SHFE HC0 热轧卷板 metal 人民币/吨 -SHFE PB0 沪铅 metal 人民币/吨 -SHFE AL0 沪铝 metal 人民币/吨 -SHFE ZN0 沪锌 metal 人民币/吨 -SHFE SN0 沪锡 metal 人民币/吨 -SHFE NI0 沪镍 metal 人民币/吨 -ZCE TA0 PTA energy 人民币/吨 -ZCE ZC0 动力煤 energy 人民币/吨 -ZCE MA0 郑醇 energy 人民币/吨 -ZCE AP0 苹果 grain 人民币/吨 -ZCE CJ0 红枣 grain 人民币/吨 -ZCE PK0 花生 grain 人民币/吨 -ZCE RS0 菜籽 grain 人民币/吨 -ZCE RM0 菜粕 grain 人民币/吨 -ZCE OI0 菜油 grain 人民币/吨 -ZCE WH0 强麦 grain 人民币/吨 -ZCE JR0 粳稻 grain 人民币/吨 -ZCE RI0 早籼稻 grain 人民币/吨 -ZCE LR0 晚籼稻 grain 人民币/吨 -ZCE SF0 硅铁 metal 人民币/吨 -ZCE SM0 锰硅 metal 人民币/吨 -ZCE PF0 短纤 other 人民币/吨 -ZCE SA0 纯碱 other 人民币/吨 -ZCE UR0 尿素 other 人民币/吨 -ZCE FG0 玻璃 other 人民币/吨 -ZCE SR0 白糖 soft 人民币/吨 -ZCE CF0 棉花 soft 人民币/吨 -ZCE CY0 棉纱 soft 人民币/吨 -CFFEX TS0 2年期国债 financial 百元净价报价 -CFFEX TF0 5年期国债 financial 百元净价报价 -CFFEX T0 10年期国债 financial 百元净价报价 -CFFEX IH0 上证50指数 financial 指数点 -CFFEX IF0 沪深300指数 financial 指数点 -CFFEX IC0 中证500指数 financial 指数点') + DCE V0 PVC energy 人民币/吨 + DCE L0 乙烯塑料 energy 人民币/吨 + DCE PP0 聚丙烯PP energy 人民币/吨 + DCE EB0 苯乙烯 energy 人民币/吨 + DCE EG0 乙二醇 energy 人民币/吨 + DCE J0 焦炭 energy 人民币/吨 + DCE JM0 焦煤 energy 人民币/吨 + DCE A0 豆一 grain 人民币/吨 + DCE B0 豆二 grain 人民币/吨 + DCE M0 豆粕 grain 人民币/吨 + DCE Y0 豆油 grain 人民币/吨 + DCE C0 玉米 grain 人民币/吨 + DCE CS0 淀粉 grain 人民币/吨 + DCE RR0 粳米 grain 人民币/吨 + DCE JD0 鸡蛋 grain 人民币/500千克 + DCE LH0 生猪 grain 人民币/吨 + DCE I0 铁矿石 metal 人民币/吨 + DCE FB0 纤维板 other 人民币/立方米 + DCE BB0 胶合板 other 人民币/张 + DCE P0 棕榈 soft 人民币/吨 + DCE PG0 液化石油气 energy 人民币/吨 + SHFE NR0 20号胶 other 人民币/吨 + SHFE SP0 纸浆 other 人民币/吨 + SHFE SC0 原油 energy 人民币/桶 + SHFE FU0 燃油 energy 人民币/吨 + SHFE LU0 低硫燃料油 energy 人民币/吨 + SHFE BU0 沥青 energy 人民币/吨 + SHFE RU0 橡胶 energy 人民币/吨 + SHFE AU0 黄金 metal 人民币/克 + SHFE AG0 白银 metal 人民币/千克 + SHFE BC0 国际铜 metal 人民币/吨 + SHFE CU0 沪铜 metal 人民币/吨 + SHFE SS0 不锈钢 metal 人民币/吨 + SHFE RB0 螺纹钢 metal 人民币/吨 + SHFE WR0 线材 metal 人民币/吨 + SHFE HC0 热轧卷板 metal 人民币/吨 + SHFE PB0 沪铅 metal 人民币/吨 + SHFE AL0 沪铝 metal 人民币/吨 + SHFE ZN0 沪锌 metal 人民币/吨 + SHFE SN0 沪锡 metal 人民币/吨 + SHFE NI0 沪镍 metal 人民币/吨 + SHFE AO0 氧化铝 metal 人民币/吨 + SHFE BR0 丁二烯橡胶 energy 人民币/吨 + SHFE EC0 集运指数欧线 other 指数点 + ZCE TA0 PTA energy 人民币/吨 + ZCE ZC0 动力煤 energy 人民币/吨 + ZCE MA0 郑醇 energy 人民币/吨 + ZCE AP0 苹果 grain 人民币/吨 + ZCE CJ0 红枣 grain 人民币/吨 + ZCE PK0 花生 grain 人民币/吨 + ZCE RS0 菜籽 grain 人民币/吨 + ZCE RM0 菜粕 grain 人民币/吨 + ZCE OI0 菜油 grain 人民币/吨 + ZCE WH0 强麦 grain 人民币/吨 + ZCE JR0 粳稻 grain 人民币/吨 + ZCE RI0 早籼稻 grain 人民币/吨 + ZCE LR0 晚籼稻 grain 人民币/吨 + ZCE SF0 硅铁 metal 人民币/吨 + ZCE SM0 锰硅 metal 人民币/吨 + ZCE PF0 短纤 other 人民币/吨 + ZCE SA0 纯碱 other 人民币/吨 + ZCE UR0 尿素 other 人民币/吨 + ZCE FG0 玻璃 other 人民币/吨 + ZCE SR0 白糖 soft 人民币/吨 + ZCE CF0 棉花 soft 人民币/吨 + ZCE CY0 棉纱 soft 人民币/吨 + ZCE SH0 烧碱 other 人民币/吨 + ZCE PX0 对二甲苯 other 人民币/吨 + CFFEX TS0 2年期国债 financial 百元净价报价 + CFFEX TF0 5年期国债 financial 百元净价报价 + CFFEX T0 10年期国债 financial 百元净价报价 + CFFEX IH0 上证50指数 financial 指数点 + CFFEX IF0 沪深300指数 financial 指数点 + CFFEX IC0 中证500指数 financial 指数点 + GFEX SI0 工业硅 other 人民币/吨 + GFEX LC0 碳酸锂 other 人民币/吨') + + + future2 = fread( 'exchange board symbol name unit CME-CBOT grain C 美国玉米 美分/蒲式耳 diff --git a/docs/news/index.html b/docs/news/index.html index 0acb6cb..0a8a472 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -17,7 +17,7 @@
@@ -59,8 +59,10 @@data(dt_ssec)
+ if (FALSE) {
+data(dt_ssec)
dat1_weekly = pq_freq(dt_ssec, "weekly")
-if (FALSE) {
data(dt_banks)
dat2_weekly = pq_freq(dt_banks, "monthly")
}
diff --git a/docs/reference/pq_performance.html b/docs/reference/pq_performance.html
index 8730934..31c8f5d 100644
--- a/docs/reference/pq_performance.html
+++ b/docs/reference/pq_performance.html
@@ -93,6 +93,7 @@ Arguments
Examples
+if (FALSE) {
library(pedquant)
library(data.table)
@@ -114,24 +115,7 @@ Examples
# claculate table.CAPM metrics
perf_capm = pq_performance(datRaRb, Ra = 'Ra', Rb = 'Rb', perf_fun = 'table.CAPM')
rbindlist(perf_capm, idcol = 'symbol')
-#> symbol Alpha Beta Beta+ Beta- R-squared Annualized Alpha
-#> 1: 601288.SH -0.0029 0.0724 0.0968 0.0964 0.0113 -0.0347
-#> 2: 601328.SH -0.0001 0.1147 -0.0257 0.3716 0.0155 -0.0012
-#> 3: 601398.SH -0.0047 0.2386 0.2711 0.4381 0.0802 -0.0545
-#> 4: 601939.SH -0.0023 0.2817 0.1165 0.3164 0.0575 -0.0269
-#> 5: 601988.SH -0.0009 0.0969 0.1387 -0.0737 0.0219 -0.0105
-#> Correlation Correlation p-value Tracking Error Active Premium
-#> 1: 0.1062 0.5436 0.1771 -0.0832
-#> 2: 0.1245 0.4762 0.1963 -0.0520
-#> 3: 0.2832 0.0993 0.1712 -0.0967
-#> 4: 0.2398 0.1652 0.2078 -0.0741
-#> 5: 0.1480 0.3962 0.1714 -0.0573
-#> Information Ratio Treynor Ratio
-#> 1: -0.4698 -0.4961
-#> 2: -0.2647 -0.0406
-#> 3: -0.5648 -0.2070
-#> 4: -0.3566 -0.0952
-#> 5: -0.3341 -0.1026
+}
diff --git a/man/pq_freq.Rd b/man/pq_freq.Rd
index 8c35aab..b9548aa 100644
--- a/man/pq_freq.Rd
+++ b/man/pq_freq.Rd
@@ -17,10 +17,10 @@ pq_freq(dt, freq = "monthly", date_type = "eop")
\code{pq_freq} convert a daily OHLC dataframe into a specified frequency.
}
\examples{
+\dontrun{
data(dt_ssec)
dat1_weekly = pq_freq(dt_ssec, "weekly")
-\dontrun{
data(dt_banks)
dat2_weekly = pq_freq(dt_banks, "monthly")
}
diff --git a/man/pq_performance.Rd b/man/pq_performance.Rd
index 1b7dca6..b1349c4 100644
--- a/man/pq_performance.Rd
+++ b/man/pq_performance.Rd
@@ -22,6 +22,7 @@ pq_performance(dt, Ra, Rb = NULL, perf_fun, ...)
}
\examples{
+\dontrun{
library(pedquant)
library(data.table)
@@ -43,5 +44,6 @@ datRaRb = merge(
# claculate table.CAPM metrics
perf_capm = pq_performance(datRaRb, Ra = 'Ra', Rb = 'Rb', perf_fun = 'table.CAPM')
rbindlist(perf_capm, idcol = 'symbol')
+}
}