リストのxts要素を行ごとに合計します

グレコノミスト

data2015-01-0117:00:00から2015-12-3117:00:00までの期間の5分のリターンを含むxtsオブジェクトが呼び出されました。各取引日は17:00:00に開始し、翌日同時に終了して、合計288の日次リターン[(24時間* 60分)/ 5分= 288日中リターン]になります。リターンは次のように表されます

head(data, 5)
                          DPRICE
2015-01-01 17:00:00 0.000000e+00
2015-01-01 17:05:00 9.797714e-05
2015-01-01 17:10:00 2.027022e-04
2015-01-01 17:15:00 2.735798e-04
2015-01-01 17:20:00 7.768653e-05

tail(data, 5)
                          DPRICE
2015-12-31 16:40:00 0.0001239429
2015-12-31 16:45:00 0.0001272704
2015-12-31 16:50:00 0.0010186764
2015-12-31 16:55:00 0.0006841370
2015-12-31 17:00:00 0.0002481227

McMillan and Speight Daily FX Volatility Forecasts(2012)に従って、5分間の日中間隔ごとの平均絶対値でデータを標準化しようとしています。

数式は次のとおりです。 ここに画像の説明を入力してください

私の*コードは

library(xts)
std_data = abs(data) #create absolute returns
D <- split(std_data, "days") #splits data to days
mts.days <- lapply(seq_along(D) - 1, function(i) {
  if (i > 0) rbind(D[[i]]["T17:00:00/T23:55:00"], D[[i + 1]]["T00:00:00/T16:55:00"])
}) #creates a list with 365 elements each containing 288 unique returns
dummy = mapply(sum, mts.days) #add the first,second... observations from each element

このコードを使用して、それぞれが次元を持つ365xts要素を含むリストを作成します

> dim(mts.days[[2]])
[1] 288   1 

上記の関数の分母を作成するために、各要素から同じ観測値を追加したいと思います。

renato vitolo

私はあなたの要求を理解していませんが、それでもそれを試してみます。

## generate bogus data
library(quantmod)
set.seed(123)
ndays <- 3
ndatperday <- 288
data <- cumsum(do.call("rbind", lapply(13:15, function(dd){
    xts(rnorm(ndatperday)/1e4,
        seq(as.POSIXct(paste0("2016-08-",dd," 17:00:00")),
            length = ndatperday, by = 300))

})))
colnames(data) <- "DPRICE"

## calculate percentage returns
ret <- ROC(data, type="discrete")

## this is probably not what you need: returns divided by the overall mean
ret/mean(abs(ret), na.rm=T)

## I suspect indeed that you need returns divided by the daily mean return
library(dplyr)
ret.df <- data.frame(ret)
## create a factor identifying the 3 days of bogus data
ret.df$day <- rep(paste0("2016-08-",13:15),each=ndatperday)
## compute daily mean return
dail <- ret.df %>%
    group_by(day) %>%
    summarise(mean=mean(abs(DPRICE), na.rm=TRUE))
## attach daily mean returns to the days they actually are associated to
ret.df <- ret.df %>% left_join(dail)
## normalize
ret.df$DPRICE <- ret.df$DPRICE/ret.df$mean

%%%%%%%%%

セカンドショット:論文(http://onlinelibrary.wiley.com/doi/10.1002/for.1222/full)を読んだ後、私はあなたが何を求めているのか理解したかもしれません:

library(quantmod)
library(dplyr)
set.seed(123)

## generate bogus 5-min series
ndays <- 365
ndatperday <- 288
data <- as.xts(zoo(0.1+cumsum(rt(ndays*ndatperday, df=3))/1e4,
                  seq(as.POSIXct("2015-01-01 17:00"),
                      as.POSIXct("2015-12-31 17:00"), by=300)))
colnames(data) <- "DPRICE"

## calculate 5-min percentage returns
ret <- ROC(data, type="discrete")

## create a factor identifying the 5-minute intra-day interval
ret.df <- as.data.frame(ret)
ret.df$intra5 <- strftime(index(ret), format="%H:%M")

## compute mean returns (over the year) for each of the 288 5-minute intra-day intervals
dail <- ret.df %>%
    group_by(intra5) %>%
    summarise(mean=mean(abs(DPRICE), na.rm=TRUE))

## attach mean returns to each datapoint
ret.df <- ret.df %>% left_join(dail)

## normalize
ret.df$DPRICE <- ret.df$DPRICE/ret.df$mean

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リストのxts要素を行ごとに合計します

分類Dev

Netlogo:要素ごとに同じ長さのリストのリストを合計します

分類Dev

purrrで要素ごとに合計してリストを減らします

分類Dev

要素ごとに、すべての行列行にnarrayを合計します

分類Dev

xts時系列の行ごとのリターンを計算します

分類Dev

パンダは特定のクラスごとに行を合計します

分類Dev

Pyspark:キーごとにRDDを集計し、タプル値のリストもキーごとに合計します

分類Dev

タプルのリスト内の値を合計し、平日ごとに並べ替えます

分類Dev

タプルのリスト内の値を合計し、平日ごとに並べ替えます

分類Dev

Pythonはリストのリストを要素ごとに乗算します

分類Dev

合計を計算し、次に行ごとの合計のパーセンテージを計算します

分類Dev

行ごとに異なる範囲の要素を合計し、置き換えます

分類Dev

Python配列はベクトルを追加してから、配列の要素を位置ごとに合計します(要素ごとではありません)

分類Dev

どのようにJavaでラムダ関数を使用して、行、列ごとおよびリストのリストを合計するには?

分類Dev

Java 8 Streamは、リストと合計に要素を追加します

分類Dev

Java 8 Streamは、リストと合計に要素を追加します

分類Dev

Pythonは、リスト内のすべての要素に値を合計します

分類Dev

2つのリストを要素ごとにnxn行列に連結します

分類Dev

表の列ごとの合計ストレージを計算します

分類Dev

MySQLは、州ごとの合計を年ごとに合計します

分類Dev

F#は要素ごとに2つのシーケンスを合計します

分類Dev

行ごとに列の値を合計し、合計のx%に達する列を取得します

分類Dev

リストの2つの要素ごとに関数をマップします

分類Dev

リストの 7 番目の要素ごとに null を挿入します

分類Dev

'mutate_'を使用して、行ごとに一連の列を合計します

分類Dev

範囲内の行ごとの数値とテキスト番号を合計します

分類Dev

関連する行のセットごとに1つの列の合計を追加します

分類Dev

要素ごとのリストのダーツ合計リスト

分類Dev

列A、Bを要素ごとに結合して、AおよびBの要素からの範囲のリスト列にします。

Related 関連記事

  1. 1

    リストのxts要素を行ごとに合計します

  2. 2

    Netlogo:要素ごとに同じ長さのリストのリストを合計します

  3. 3

    purrrで要素ごとに合計してリストを減らします

  4. 4

    要素ごとに、すべての行列行にnarrayを合計します

  5. 5

    xts時系列の行ごとのリターンを計算します

  6. 6

    パンダは特定のクラスごとに行を合計します

  7. 7

    Pyspark:キーごとにRDDを集計し、タプル値のリストもキーごとに合計します

  8. 8

    タプルのリスト内の値を合計し、平日ごとに並べ替えます

  9. 9

    タプルのリスト内の値を合計し、平日ごとに並べ替えます

  10. 10

    Pythonはリストのリストを要素ごとに乗算します

  11. 11

    合計を計算し、次に行ごとの合計のパーセンテージを計算します

  12. 12

    行ごとに異なる範囲の要素を合計し、置き換えます

  13. 13

    Python配列はベクトルを追加してから、配列の要素を位置ごとに合計します(要素ごとではありません)

  14. 14

    どのようにJavaでラムダ関数を使用して、行、列ごとおよびリストのリストを合計するには?

  15. 15

    Java 8 Streamは、リストと合計に要素を追加します

  16. 16

    Java 8 Streamは、リストと合計に要素を追加します

  17. 17

    Pythonは、リスト内のすべての要素に値を合計します

  18. 18

    2つのリストを要素ごとにnxn行列に連結します

  19. 19

    表の列ごとの合計ストレージを計算します

  20. 20

    MySQLは、州ごとの合計を年ごとに合計します

  21. 21

    F#は要素ごとに2つのシーケンスを合計します

  22. 22

    行ごとに列の値を合計し、合計のx%に達する列を取得します

  23. 23

    リストの2つの要素ごとに関数をマップします

  24. 24

    リストの 7 番目の要素ごとに null を挿入します

  25. 25

    'mutate_'を使用して、行ごとに一連の列を合計します

  26. 26

    範囲内の行ごとの数値とテキスト番号を合計します

  27. 27

    関連する行のセットごとに1つの列の合計を追加します

  28. 28

    要素ごとのリストのダーツ合計リスト

  29. 29

    列A、Bを要素ごとに結合して、AおよびBの要素からの範囲のリスト列にします。

ホットタグ

アーカイブ