0

quadprog를 사용하여 포트폴리오 최적화에 대한 게시물을 읽었으며이 플랫폼에서 많은 트릭을 배웠습니다. 이제 제약 조건 아래에서 quadprog를 사용하여 03 주식의 포트폴리오를 최적화하려고합니다.특정 반환에 대한 quadprog를 사용한 포트폴리오 최적화는 "제약 조건이 일치하지 않고 솔루션이 없음"을 초래합니다.

  • 가중치 없음 짧은 각 스톡 중량 총중량

covariancce 행렬의 50 %를 초과하지 않아야

  • 포트폴리오 복귀 = 2 % 판매 1
  • 합이 없어야 내 3 주식은

    Dmat = matrix(c(0.0119, 0.0071, -0.0023,0.0071, 0.0093, 
          -0.0006,-0.0023,-0.0006,0.0066), nrow = 3) 
    

    반환이/colmeans이 Dvec

    Dvec = c(0.0373, 0.0173, 0.0261) 
    

    에 저장되어있는이 게시물 Portfolio Optimization constraints Matrix/bvec explanation에서 언급 한 코드와 절차를 사용했다. 나는 또한이 평등 즉 백 개 % 투자 한 포트폴리오 수익률의 상호 분석을 시작 Portfolio Optimization constraints Matrix/bvec explanationConstraints on weight in portfolio optimization using quadprog package in R 그래서 내가 노력 코드이

    N = 3 
    total.returns = 0.02 
    lo = rep(0,N) 
    up = rep(0.50,N) 
    A = rbind(rep(1,N), dvec, diag(N), -diag(N)) 
    A = t(A) 
    B = c(1,total.returns, lo, -up) 
    neq = 1 
    qp = solve.QP(Dmat, dvec, A, B,neq) 
    qp$solution 
    

    처럼 보이는 유사한 게시물을 읽어 보시기 바랍니다. 나는 우리가 찾고있는 수익이 현재의 데이터와 제약으로는 불가능하다는 등의 문제를 일으킬 수있는 다른 포스트에서 그것을 읽었다. 그래서 나는 또한 다른 수준으로 반환을 변경하지만 그것은 반환 평등을 완화하고 neq = 1을 사용할 수 있도록 작동하지 않습니다. 여전히 작동하지 않습니다. 또한 개별 주식에 다른 가중치 제한을 시도했는데, 즉 상한을 5 %에서 80 %로 변경하려고했습니다.
    참고 : 나는 총 반환과 함께 아마와 bvev 쓸 때 코드가 작동합니다. 즉, 내가

    A = rbind(rep(1,N), diag(N), -diag(N)) 
    B = c(1, lo, -up) 
    

    대신

    A = rbind(rep(1,N), dvec, diag(N), -diag(N)) and 
    B = c(1,total.returns, lo, -up). 
    

    난 내 코드는 위에서 언급 한 사용할 때 내가 "제약 일관성이 해결책을"는 점점하지하고 왜 내 질문은로 A와 B를 사용할 때? 내가 어떤 실수를하는지 알아낼 수 있다면 고맙겠습니다. 여러분 모두에게 미리 감사드립니다.

  • 답변

    1

    나는 당신의 데이터를 이해하기 위해 노력하고 있어요 : 이것이 내가

    Dvec = c(0.0373, 0.0173, 0.0261) 
    

    1.7 %와 3.7 % 사이

    의 반환을 계기로 200 %의 포트폴리오 수익을 원하는 의미

    total.returns = 2.0 
    

    . 그렇게 쉬운 일은 아닙니다.

    +0

    친애하는 Erwin Kalvelagen, 정말 고마워요. 예, 당신은 100 % 맞습니다. 나는 2 %의 수익을 목표로하고 있었다. 나는 bvec에서 이것을 0.02로 잡아야한다. –

    관련 문제