2014-05-18 2 views
0

R을위한 QuantLib 패키지를 사용하여 재무 옵션의 Implied Volatility를 계산해야합니다. 출력이 Object (ImpliedVolatility라고 함)이기 때문에 "EuropeanOptionImpliedVolatility"함수에 반복 사용에 문제가 있습니다.R에 객체 벡터를 만드는 방법은 무엇입니까?

largo = nrow(call26) #number of rows in my data set 
impl_vol= vector("list",largo) 
for(i in largo){ 
    impl_vol[[i]] = EuropeanOptionImpliedVolatility(type="call", value=valor_opcion[i], 
     underlying=st[i], strike=strike[i], dividendYield=dividendo[i], 
     riskFreeRate=rf[i], maturity=maturity[i], volatility=0.4) 
} 

이것의 결과는 다음과 같습니다

list(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
    NULL, NULL, NULL, NULL, structure(list(impliedVol = 0.173643438965225, 
     parameters = structure(list(type = "call", value = 52.95, 
      underlying = 1497.66, strike = 1680, dividendYield = 0.01, 
      riskFreeRate = 0.04, maturity = 0.983561644, volatility = 0.4), .Names = c("type", 
     "value", "underlying", "strike", "dividendYield", "riskFreeRate", 
     "maturity", "volatility"))), .Names = c("impliedVol", 
    "parameters"), class = c("EuropeanOptionImpliedVolatility", 
    "ImpliedVolatility"))) 

내가 가진 내가 그것에 대한 액세스를 할 수있는 하나의 금융 옵션에 대한 계산하면 나는 ... 느릅 나무를 내재 변동성 필요

valor$impliedVol 

무엇을 할 수 있습니까? 감사합니다.

for(i in largo){ 

그것의 : 루프에 오류가 대신에,있다

답변

0

이 오류로 인해, 마지막 요소의 내재 변동성의

for(i in 1:largo){ 

(인덱스 195) 계산 (게시 한 출력 구조에서 명확하게 볼 수 있듯이 첫 번째 194 목록 슬롯은 NULL이고 마지막에는 값이 있습니다. 당신이 오타를 수정 한 후

값에 대한 액세스를 그냥 수행

impl_vol[[i]]$impliedVol 
0

빠른 사람 :

  • 당신은 compond 객체를 저장할 수 없습니다 (A의 EuropeanOptionImpliedVolatility()에 의해 반환되는 것과 같은 벡터

  • 목록에 저장할 수 있습니다.

  • 치수를 알고있는 경우 매트릭스로 채울 수 있습니다.

  • 다른 당신은 당신이 원하는 모든 단지 내재 변동성의 경우, (효율적이지 않다) data.frame 객체

성장이를 추출하여 벡터에 저장할 수 있습니다. RQuantLib 패키지에는 거의 모든 용도의 예제가 있습니다.

+0

기술적 목록, 그냥 원자들 벡터입니다. 호출 :'impl_vol = vector ("list", largo)'는 유효한 목록을 생성해야합니다. –

관련 문제