-2
library("PerformanceAnalytics") 

데이터 :롤링 윈도우 계산 방법 Bull and Bear Beta? - PerformanceAnalytics는 R

dput(head(all_returns5, n = 25)) 
structure(c(NA, 0.0127576508492631, -0.0136465076457385, 0.024306527050457, 
0.0105905227296192, 0.00170260583823545, 0.00718128277256991, 
0.00586860402322142, 0.0151164985424574, 0.0159574248302818, 
0.00499428585372597, -0.00887664957569334, 0.00105954910979489, 
-0.001152238197206, -0.00444480741549869, 0.00105617627274368, 
0.00744484484443464, 0.00426836832012567, 0.00107116244411332, 
0.00196203363775194, -0.00629245692483171, 0.00524543005619238, 
-0.00225940746129893, 0.00663963281493696, 0.00562598092478561, 
NA, 0.0120981992422189, -0.0113201724823986, 0.0249611906463298, 
0.0106580760970605, 0.000364737785248703, 0.00653118163660005, 
0.00499259772576921, 0.0128739559010203, 0.0202916489382277, 
0.00550467062962512, -0.00484865851267591, 0.0012957392154338, 
-0.00124865674804386, -0.00587223531372894, -0.000762183503300262, 
0.00189928452655175, 0.00347922741357132, 0.00189669822772509, 
-0.00199912159808557, -0.00676813815499955, 0.00762402407908214, 
-0.001243366186505, 0.00498724722171628, -0.0042675972294608, 
NA, 0.00641802582479989, 0.00538141680614102, -0.00528658875904287, 
0.00930662557781203, 0.0137208297320657, 0.00523147783456657, 
0.00301929583567651, 0.00510586278051228, 0.0331361109078938, 
0.0117636124646494, 0.00181532660568906, -0.00746210004191683, 
0.00225678023887554, 0.00516617799392516, -0.00627497216217998, 
0.00545331505308311, -0.0085223920387747, 0.00989601470516921, 
-0.00481877226063276, -0.00728508771929826, 0.00638422896628521, 
0.00809099848979722, 0.000940655933317824, 0.00316737947207457, 
NA, 0.00701062547924214, -0.00148663838427798, 0.00791633379330392, 
0.00378296584522264, 0.0126341480923153, 0.000602559103959122, 
-0.00410910379029406, 0.0130539944511632, 0.0141497840665705, 
0.00602409638554224, -0.00361346272971308, 0.00117431699651172, 
0.00131093248697689, -0.00585701981050812, -0.00242592271703346, 
0.00260552371026579, 0.00540540540540535, 0.0047904604356217, 
0.00205796604356023, -0.00670888242341261, 0.0109238774595954, 
-0.00228388328333795, 0.0119238785062694, -0.00256600715780941, 
NA, 0.00726924377324467, -0.00413986013986023, 0.0247738891073535, 
0.00422102839600935, 0.0137562094000765, 0, 0.00215389585913517, 
0.0174090591585621, 0.0133086876155268, 0.00448220149059253, 
-0.00726404815026194, -0.0076307949615847, 0.00847948596408066, 
-0.00720701900981824, 0.00220936349289858, 0.00482888935544823, 
0.00699958211450058, -0.00373482726423902, 0.000781005935645229, 
-0.00312158576556887, 0.00798496946923422, -0.00295122708915807, 
0.0114244170950824, -0.0, NA, 0.00608596424496, 
-0.000756143667296816, -0.00302686341278846, 0.0197343453510437, 
0.0148864905098622, 0.00990099009900991, -0.00290486564996362, 
0.00509832483612538, 0.0311594202898551, 0.00210822206605754, 
-0.00245441795231416, -0.0042179261862918, 0.00635368866925523, 
-0.00245527884952645, -0.00914205344585095, 0.013484740951029, 
-0.00420168067226878, 0.0014064697609002, -0.00105337078651691, 
-0.00843585237258337, 0.00708968450903935, 0.000703977472720885, 
0.00844178684488228, 0.00244157656086497, NA, 0, 0, -0.00343642611683859, 
0.0137931034482759, 0.0136054421768708, 0.00335570469798663, 
0, 0.70211, 0.0332225913621262, 0, 0.00321543408360125, 
-0.00641025641025639, 0, 0, 0, 0.00967741935483857, -0.00319488817891367, 
0, 0.00320512820512819, -0.00319488817891367, 0.00641025641025639, 
0, 0.00955414012738842, 0.00315457413249209, NA, 0.0101867572156198, 
-0.00403361344537823, 0.0134998312521095, 0.0153180153180152, 
0, 0.0127910790423089, 0.00777202072538863, 0.0292416452442159, 
0.01311270683734, -0.0, -0.00493674791730936, 
-0.00837209302325581, 0.00469043151969983, -0.00809212573918461, 
0.00784436774395969, 0.0177459526774595, -0.00244723156928717, 
0.00919963201471941, 0.00425402613187487, 0.000605143721633894, 
0.0139098881161173, -0.0020876826722338, 0.0203227734608489, 
0.00878734622144095, NA, 0.0104281009879255, -0.00869092884302014, 
0.0213698630136987, 0.007510729613734, 0.00585729499467513, 0.00476442562202228, 
0.00316122233930449, 0.00105042016806722, 0.0194123819517313, 
0.00823468862583643, -0.00918836140888202, 0.00257599175682643, 
-0.000513874614594068, -0.00205655526992288, -0.00566718186501802, 
0.0020725388601035, 0.00620475698035161, 0.00411099691675232, 
-0.00204708290685773, -0.0102564102564102, 0.00984455958549213, 
-0.000513083632632028, 0.00513347022587252, -0.00306435137895811, 
NA, 0.0169746454662656, -0.0160574688358335, 0.0244792785054757, 
0.00775518759169991, 0.00457570715474209, 0.0126293995859212, 
0.00674708648538136, 0.0241673436230707, 0.0067420186396987, 
0.00354540082726018, -0.00902845927379781, -0.00693206575559524, 
0.00239329876346228, -0.00775964982093114, 0.00220573491076803, 
0.0184073629451782, 0.000785854616895953, -0.00490773458971339, 
0.00887749062931542, -0.0148611654282361, 0.00813815005954743, 
-0.0059066745422327, 0.013269954446425, 0.0158326817826426), class = c("xts", 
"zoo"), .indexCLASS = "Date", tclass = "Date", .indexTZ = "UTC", tzone = "UTC", index = structure(c(1421020800, 
1421107200, 1421193600, 1421280000, 1421366400, 1421625600, 1421712000, 
1421798400, 1421884800, 1421971200, 1422230400, 1422316800, 1422403200, 
1422489600, 1422576000, 1422835200, 1422921600, 1423008000, 1423094400, 
1423180800, 1423440000, 1423526400, 1423612800, 1423699200, 1423785600 
), tzone = "UTC", tclass = "Date"), .Dim = c(25L, 10L), .Dimnames = list(
    NULL, c("DB3018", "LU0929189636", "LU0256881987", "LU0219424305", 
    "LU0219424131", "LU0196036957", "IE0032904330", "IE0031574977", 
    "IE0004766675", "IE00BKWQ0G16"))) 
> 

나는이 반환 시리즈를 사용하여 다음과 같은 기능을 가지고, 즉 포트폴리오의 및 벤치 마크. 이 같은 간다 : 그러나 제한됩니다 위의

apply.fromstart(R, FUN = "mean", gap = 14) 

:

TimingRatio(data[,1], data[,2], Rf = 0) 

패키지가 자신의 롤 창 기능을 함께 제공 :

CAPM.beta(data[,1], data[,2], Rf = 0) 

CAPM.beta.bull(data[,1], data[,2], Rf = 0) 

CAPM.beta.bear(data[,1], data[,2], Rf = 0) 

은 기본적으로 아래의 fomula가 CAPM.beta.bull/CAPM.beta.bear의 배급을 계산 1 반환 시리즈 입력을 사용하는 FUN. 예.

내가 주어진 롤 창 간격 동안 CAPM.beta.bull & CAPM.beta.bear 또는 TimingRatio을 계산하고 싶습니다 "의미".

이 코드는 아래의 PA 공식에 직접 "창"을 입력하여 25 롤 창을 사용하여 미리

+0

최종 결과물에서 원하는 것을 재현 할 수 있습니까? – ulfelder

+0

나는이 질문이 매우 분명하다고 생각한다. 롤 창을 통해 함수를 적용하십시오. 이것은 PA 패키지의 특정 질문이며 그에 따라 태그되었습니다. 이를 추정하려면이 패키지를 사용하는 모든 사람이 가지고있는 긴 시계열 데이터가 필요합니다. 데이터 (portfolio_bacon)는 PA 패키지의 샘플을 제공합니다. 고맙습니다. –

+0

그래서 여러분은 사람들이 스스로 그것을하는 대신 테스트 할 예제를 만드는 여분의 작업을 무료로 할 수 있도록 여러분에게 도움을 요청하고 있습니다. 오키. – ulfelder

답변

0

에 감사드립니다. 그것은 입력으로 XTS 반환을 사용합니다.

이것은 패키지에서 사용할 수있는 3 가지 유형의 베타 버전입니다.

results <- data.frame() 


for (i in 25:nrow(all_returns5)){ 

    # rolling window to be put in -1 also needs to be adjusted in the for loop at i in x:...) 

    start_n <- i - 24 
    end_n <- i 

    # get the date 

    date_tmp <- index(all_returns5[i]) 


    # apply the formula on the looped datasets 

    output_bear <- as.matrix(CAPM.beta.bear(all_returns5[start_n:end_n,2], all_returns5[start_n:end_n,1], Rf = 0)) 


    output_bull <- as.matrix(CAPM.beta.bull(all_returns5[start_n:end_n,2], all_returns5[start_n:end_n,1], Rf = 0)) 


    output_beta <- as.matrix(CAPM.beta(all_returns5[start_n:end_n,2], all_returns5[start_n:end_n,1], Rf = 0)) 


    FINAL_OUTPUT <- cbind(output_bear, output_bull, output_beta) 
       rownames(FINAL_OUTPUT) <- as.character(date_tmp) 
       colnames(FINAL_OUTPUT) <- c("Beta Bear (-)", "Beta Bull (+)", "Beta") 

# store results in frame 

    results <- rbind(results, FINAL_OUTPUT) 

print(FINAL_OUTPUT) 

}