설명
PersonalAssetAllocation.gms: 개인 자산 할당. 콘실리오, 닐슨, 제니오스. 실제 재무 최적화: 피망 슬롯 모델 라이브러리, 섹션 8.5 최종 수정 날짜: 2008년 5월.
카테고리 : 피망 슬롯 FIN 라이브러리
메인파일 : PersonalAssetAllocation.gms 포함: AssetReturns-PersonalAssetAllocation.inc CapFactorsScenarios.inc PersonalCommonInclude.inc InflationScenarios.inc LiabilityScenarios.inc
$title 개인 자산 배분
* PersonalAssetAllocation.gms: 개인 자산 배분.
* Consiglio, Nielsen 및 Zenios.
* 실제 재무 최적화: 피망 슬롯 모델 라이브러리, 섹션 8.5
* 최종 수정일: 2008년 5월.
$include "PersonalCommonInclude.inc";
매개변수 ar(l,t,i)
/
$onDelim
$include "AssetReturns-PersonalAssetAllocation.inc";
$offDelim
/;
매개변수 lblty(l,t)
/
$onDelim
$include "LiabilityScenarios.inc";
$offDelim
/;
매개변수 infltn(l,t)
/
$onDelim
$include "InflationScenarios.inc"
$offDelim
/;
매개변수 cfs(l,t)
/
$onDelim
$include "CapFactorsScenarios.inc"
$offDelim
/;
긍정적인 변수
HO(i) 자산 보유
YP(l,t) yPlus - 성장률을 초과하는 잉여입니다.
YM(l,t) yMinus - 성장률 부족으로 인한 적자.;
자유변수
OF 목적 함수 값;
방정식
OFe 목적 함수 방정식(호출).
OFPCe 목적 함수 방정식(Call - 람다 * Put).
BAe 밸런스 방정식.
음수 편차의 예상 값을 제한하는 PUTe 제약 조건입니다.
YPMd(l,t) yPlus 및 yMinus 역학을 정의하는 방정식.
OFe.. OF =E= (1.0/CARD(l)) * SUM(l, SUM(t, lblty(l,t) * YP(l,t) * cfs(l,t)));
OFPCe.. OF =E= (1.0/CARD(l)) * (SUM(l, SUM(t, lblty(l,t) * YP(l,t) * cfs(l,t))) -
람다 * SUM(l, SUM(t,lbty(l,t) * YM(l,t) * cfs(l,t))));
PUTe .. SUM(l, SUM(t,lbty(l,t) * YM(l,t) * cfs(l,t))) / CARD(l) =L= 오메가;
BAe.. SUM(i, HO(i)) =E= ipv;
YPMd(l,t).. SUM( i, (HO(i) * ar(l,t,i))) - (grr + infltn(l,t)) =E= YP(l,t) - YM(l,t);
* Put 측에 경계를 두고 Call 측을 최대화하는 모델
모델 PersonalModelOne 'PFO 모델 13.5.1' /OFe,PUTe,BAe,YPMd/;
PersonalModelOne.RESLIM = 100000000;
PersonalModelOne.ITERLIM = 100000000;
HO.UP(i) = IPV;
LP MAXIMIZING OF를 사용하여 PersonalModelOne을 해결하세요.
파일 AssetAllocationHandle /"PAA.csv"/;
AssetAllocationHandle.pc = 5;
AssetAllocationHandle.pw = 1048;
매개변수
YpYm(1,t);
YpYm(l,t) = YP.l(l,t) * YM.l(l,t);
DISPLAY YpYm,PUTe.M;
PUT 자산 할당 핸들;
PUT "Put 측의 경계를 사용하여 호출 측을 최대화합니다"/;
루프(나는,
PUT CARD(l):0:0,CARD(t):0:0,nbryears:0:0,omega:0:3,agrr:0:4,i.TL,i.TE(i),HO.L(i):12:8/;
);
* Call 측을 최대화하고 Put 측을 최소화하는 모델
모델 PersonalModelTwo /OFPCe,BAe,YPMd/;
PersonalModelTwo.RESLIM = 100000000;
PersonalModelTwo.ITERLIM = 100000000;
HO.UP(i) = IPV;
LP 최대화를 사용하여 PersonalModelTwo를 해결하세요.
YpYm(l,t) = YP.l(l,t) * YM.l(l,t);
디스플레이 YpYm;
PUT "콜 측을 최대화하고 풋 측을 최소화합니다"/;
루프(나는,
PUT CARD(l):0:0,CARD(t):0:0,nbryears:0:0,lambda:0:3,agrr:0:4,i.TL,i.TE(i),HO.L(i):12:8/;
);