PersonalAssetAllocation : PAA.gms: 개인 자산 배분.

설명

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/;

);