R

使用 R 計算日誌返回

  • July 26, 2020

我正在嘗試使用通常的對數差分方法計算 R 中數據集的對數返回。然而,計算的數據只是一個零向量。我看不出我做錯了什麼。

這是顯示我在做什麼的片段

> prices <- data$cl
> head(prices)
[1] 1108.1 1095.4 1095.4 1102.2 1096.3 1096.7
>
>
> lrets <- log(lag(prices)) - log(prices)
> head(lrets)
[1] 0 0 0 0 0 0
> summary(lrets)
  Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
     0       0       0       0       0       0 

我究竟做錯了什麼?

你只是在做 $ log(S_t) - log(S_t) = 0 $ 對全部 $ t $ . 相反,嘗試

> n <- length(prices);
> lrest <- log(prices[-1]/prices[-n])

應該做的伎倆。

執行所需操作的一種簡單方法是這樣做:

如果您的數據是每天的,那麼:

> prices <- data$cl
> log_returns <- diff(log(prices), lag=1)

將為您提供每日日誌返回,如果您更改 $ lag=1 $ 到 $ lag=5 $ 那麼您將獲得每週移動日誌返回。

引用自:https://quant.stackexchange.com/questions/2909