차입 : 차입 제약이 있는 평균-분산 모델.

설명

Borrow.gms: 차입 제약이 있는 평균-분산 모델.
콘실리오, 닐슨, 제니오스.
실제 재무 최적화: 슬롯 나라 모델 라이브러리, 섹션 3.3.1
최종 수정 날짜: 2008년 4월.

카테고리 : 슬롯 나라 FIN 라이브러리


메인파일 : Borrow.gms 포함: 추정.gdx

$title 차입 제약이 있는 평균-분산 모델

* Borrow.gms: 차입 제약이 있는 평균-분산 모델.
* Consiglio, Nielsen 및 Zenios.
* 실제 재무 최적화: 슬롯 나라 모델 라이브러리, 섹션 3.3.1
* 최종 수정일: 2008년 4월.

SET 자산;

ALIAS(자산,i,j);

매개변수
         무위험비율
         기대수익률(i) 기대수익률
         VarCov(i,j) 분산-공분산 행렬 ;

$gdxIn 추정치
$load Assets=하위 집합 RiskFreeRate=MeanRiskFreeReturn VarCov 예상 수익
$gdxIn

* 위험 태도: 0은 위험 중립, 1은 매우 위험 회피입니다.

스칼라
     BorrowRate_1 차입이자율
     BorrowRate_2 높은 차입이자율
     람다 위험 태도;

BorrowRate_1 = RiskFreeRate;
BorrowRate_2 = RiskFreeRate + 0.005;

긍정적인 변수
    차입_1 차입이자율로 차입한 금액
    차입_2 더 높은 차입이자율로 차입한 금액
    x(i) 자산 보유;

빌림_1.UP = 2.0;

변수
    PortVariance 포트폴리오 분산
    PortReturn 포트폴리오 반환
    z 목적 함수 값;

방정식
    포트폴리오 초과 수익을 정의하는 ReturnDef 방정식
    포트폴리오 초과 차이를 정의하는 VarDef 방정식
    정규화 제약 조건을 정의하는 NormalCon 방정식
    ObjDef 목적 함수 정의;

ReturnDef .. PortReturn =E= SUM(i, ExpectedReturns(i) * x(i)) - (borrow_1 * BorrowRate_1) - (borrow_2 * BorrowRate_2);

VarDef .. PortVariance =E= SUM((i,j), x(i) * VarCov(i,j)*x(j));

NormalCon .. SUM(i, x(i)) =E= 1 + 차용_1 + 차용_2;

ObjDef .. z =E= (1-람다) * PortReturn - 람다 * PortVariance;

모델 빌려오기 /ReturnDef, VarDef, NormalCon, ObjDef/;

파일 FrontierHandle /"BorrowFrontier.csv"/;

FrontierHandle.pc = 5;
FrontierHandle.pw = 1048;

PUT 프론티어핸들;

PUT "모델 상태","Lambda","Borrow_1","Borrow_2","z","Variance","ExpReturn";

LOOP(i, PUT i.tl);

놓다 /;

FOR(람다 = 0 TO 0.5 BY 0.01,

   nlp를 사용하여 z를 최대화하는 문제 해결;

   PUT Borrow.modelstat:0:0,lambda:6:5, 차용_1.l:6:5, 차용_2.l:6:5, z.l:6:5, PortVariance.l:6:5, PortReturn.l:6:5;

   LOOP(i, PUT x.l(i):6:5 );

   넣어 /;
)

PUTCLOSE;