1
주가를 포착하고 월별 수익을 계산하는 코드가 있습니다. 계산에 사용 된 가격이 월말에 발생하지 않은 경우 마지막 반품을 취소하고 싶습니다. 예를 들어 아래 코드를 실행하면 2014-06-13까지 가격이 반환됩니다. 그리고 monthlyReturn 함수는 전체 월이 없었더라도 6 월의 수익을 계산합니다. monthlyReturn이 전체 개월간의 수익 만 계산하는지 아니면 전체 월간 가격으로 계산되지 않은 경우 수익률 벡터에서 지난 달을 드롭 하는지를 쉽게 확인할 수있는 방법이 있습니까?월별 수익 계산에서 불완전한 월을 제거하십시오.
library(quantmod)
symbols <- c('XLY', 'XLP', 'XLE', 'XLF', 'XLV', 'XLI', 'XLB', 'XLK', 'XLU')
Stock <- xts()
Prices <- xts()
for (i in 1:length(symbols)){
Stock <- getSymbols(symbols[i],auto.assign = FALSE)
Prices <- merge(Prices,Stock[,6])
}
returns <- do.call(cbind, lapply(Prices, monthlyReturn, leading=FALSE))
names(returns) <- symbols
이 코드는 발견되었지만 몇 가지 제한 사항이있는 것으로 보입니다. 이것을 향상시킬 수있는 방법이 있습니까?
if(tail(index(x.xts),1) != as.Date(as.yearmon(tail(index(x.xts),1)), frac=1)){
x.m.xts = x.m.xts[-dim(x.m.xts)[1],]
}
# That test isn't quite right, but its close. It won't work on the first
# day of a new month when the last business day wasn't the last day of
# the month. It will work for the second day.
예는 명확하지 않습니다. 'monthlyReturn' 함수의 동작을 바꾸고 싶다고 가정합니까? 질문을 편집하여 위의 코드로 얻을 수있는 것과 얻을 수있는 것의 차이점을 간소화하고 명확하게 지적 할 수 있습니다. – MrFlick
죄송합니다 - 명확하게 편집하려고했습니다. 여전히 불분명한지 알려주세요. – tragen907