计算R中不同股票的日收益率

cl25kdpy  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(101)

我尝试使用常用的对数差分方法计算R中数据集的对数回报率。
我目前的每日收盘价列表如下:

总之,我有一个4,000只股票的数据集,涵盖了一年的时间。
以下是试验数据:
日期〈- c(2019年11月1日、2019年11月4日、2019年11月5日、2019年11月6日、2019年11月7日、2019年11月8日)
符合药代动力学- c(0.0035、0.003、0.0035、0.0057、0.0032、0.0032)
SWGI.药代动力学- c(0.51、0.51、0.51、0.51、0.51、0.51、0.51)
运行确认- c(35.53、35.62、35.76、35.52、35.6、36.07)
我想用R来计算。
通常,该公式用于计算回报。
退货=(新价格-旧价格)/旧价格[百分比],其中“新价格= t”和“旧价格= t-1”
我尝试了以下代码:

# First upload the financial data in R
library(readxl)
Closing_Prices_2020 <- read_excel("Closing_Prices_2020.xlsx")

然后我尝试了两种选择:
第一次尝试:

Returns_2020 <- Return.calculate(Daily_Returns_2020, method="log")

第二次尝试:

CalculateReturns(Closing_Prices_2020$ACCR.PK, method = c("discrete", "log"))

这两个都不适合我。有人能帮我计算一下每天的收益吗?谢谢!

cdmah0mi

cdmah0mi1#

下面介绍如何使用tidyquant来实现这一点。
加载数据:

library(tidyverse)
library(tidyquant)

df <- tibble(
  Date = c(
    '01.11.2019',
    '04.11.2019',
    '05.11.2019',
    '06.11.2019',
    '07.11.2019',
    '08.11.2019'
  ),
  ACCR.PK = c(0.0035, 0.003, 0.0035, 0.0057, 0.0032, 0.0032),
  SWGI.PK = c(0.51, 0.51, 0.51, 0.51, 0.51, 0.51),
  HURC.OQ = c(35.53, 35.62, 35.76, 35.52, 35.6, 36)
) %>% 
  mutate(Date = Date %>% 
           as.Date(format = "%d.%m.%Y"))

计算每种证券的每日回报

df %>% 
  pivot_longer(-Date, names_to = "ticker", values_to = "price") %>% 
  group_by(ticker) %>% 
  tq_mutate(select = price, 
            mutate_fun = periodReturn, 
            period = "daily", 
            col_rename = "daily_return") 

# A tibble: 18 × 4
# Groups:   ticker [3]
   ticker  Date         price daily_return
   <chr>   <date>       <dbl>        <dbl>
 1 ACCR.PK 2019-11-01  0.0035      0      
 2 ACCR.PK 2019-11-04  0.003      -0.143  
 3 ACCR.PK 2019-11-05  0.0035      0.167  
 4 ACCR.PK 2019-11-06  0.0057      0.629  
 5 ACCR.PK 2019-11-07  0.0032     -0.439  
 6 ACCR.PK 2019-11-08  0.0032      0      
 7 SWGI.PK 2019-11-01  0.51        0      
 8 SWGI.PK 2019-11-04  0.51        0      
 9 SWGI.PK 2019-11-05  0.51        0      
10 SWGI.PK 2019-11-06  0.51        0      
11 SWGI.PK 2019-11-07  0.51        0      
12 SWGI.PK 2019-11-08  0.51        0      
13 HURC.OQ 2019-11-01 35.5         0      
14 HURC.OQ 2019-11-04 35.6         0.00253
15 HURC.OQ 2019-11-05 35.8         0.00393
16 HURC.OQ 2019-11-06 35.5        -0.00671
17 HURC.OQ 2019-11-07 35.6         0.00225
18 HURC.OQ 2019-11-08 36           0.0112

相关问题