설명
Sharpe.gms: 샤프 모델. 콘실리오, 닐슨, 제니오스. 실제 재무 최적화: 슬롯 나라 모델 라이브러리, 섹션 3.3 최종 수정 날짜: 2008년 4월.
카테고리 : 슬롯 나라 FIN 라이브러리
메인파일 : Sharpe.gms 포함: 추정.gdx
$title 샤프 모델
* Sharpe.gms: 샤프 모델.
* Consiglio, Nielsen 및 Zenios.
* 실제 재무 최적화: 슬롯 나라 모델 라이브러리, 섹션 3.3
* 최종 수정일: 2008년 4월.
SET 자산;
ALIAS(자산,i,j);
매개변수
무위험비율
ExExpectedReturns(i) 초과 기대 수익
ExVarCov(i,j) 초과 수익의 분산-공분산 행렬.
$gdxIn 추정치
$load Assets=하위 집합 RiskFreeRate=MeanRiskFreeReturn ExVarCov=ExcessCov
$load ExExpectedReturns=MeanExcessRet
$gdxIn
긍정적인 변수
x(i) 자산 보유;
변수
PortVariance 포트폴리오 분산
d_bar 포트폴리오 기대초과수익률
z 목적 함수 값;
방정식
포트폴리오 초과 수익을 정의하는 ReturnDef 방정식
포트폴리오 초과 차이를 정의하는 VarDef 방정식
정규화 제약 조건을 정의하는 NormalCon 방정식
ObjDef 목적 함수 정의;
ReturnDef .. d_bar =E= SUM(i, ExExpectedReturns(i) * x(i));
VarDef .. PortVariance =E= SUM((i,j), x(i) * ExVarCov(i,j) * x(j));
NormalCon .. SUM(i, x(i)) =E= 1;
ObjDef .. z =E= d_bar / SQRT( PortVariance );
* 모델에 문제가 발생하지 않도록 Variance에 엄격하게 양수 경계를 설정합니다.
PortVariance.LO = 0.001;
모델 샤프 /ReturnDef, VarDef, NormalCon, ObjDef/;
nlp를 사용하여 z를 최대화하는 Sharpe 해결;
* 최적의 샤프 비율을 사용하여 효율적인 프론티어를 구축하세요.
* 이 경우 국경은 선으로 표시됩니다.
* 기울기는 샤프비율이고 절편은 벤치마크 수익률과 동일합니다.
* 스칼라 "세타"는
* 탄젠시 포트폴리오에 투자된 금액입니다. 세타가 다음보다 작을 때
* 1, 자본의 일부는 기준금리로 투자됩니다. 세타가 클 때
* 1보다 투자자는 기준금리로 차입하여 투자한다.
* 탄젠트 포트폴리오에서 수익을 얻습니다. (벤치마크라고 가정하겠습니다.
*는 위험이 없으므로 분산이 0입니다.
스칼라
세타(theta) 시장 포트폴리오에 투자된 부의 비율
CurrentPortVariance 현재 포트폴리오의 차이
CurrentPortReturn 현재 포트폴리오의 반환입니다.
파일 SharpeHandle /"SharpeFrontier.csv"/;
SharpeHandle.pc = 5;
PUT 샤프핸들;
PUT "표준편차", "기대수익률", "세타"/;
FOR ( CurrentPortVariance = 0 TO 1 BY 0.1,
theta = SQRT ( CurrentPortVariance / PortVariance.L );
CurrentPortReturn = RiskFreeRate + theta * d_bar.L;
PUT SQRT(CurrentPortVariance):6:5, CurrentPortReturn:6:5, theta:6:5/;
);
* 또한 탄젠트 포트폴리오를 플롯합니다.
세타 = 1;
PUT SQRT(PortVariance.L):6:5,(RiskFreeRate + theta * d_bar.L):6:5,theta:6:5/;
PUTCLOSE;