설명
StochDedication.gms: 확률론적 헌신 모델. 콘실리오, 닐슨, 제니오스. 실제 재무 최적화: 메가 슬롯 모델 라이브러리, 섹션 6.2.1 최종 수정 날짜: 2008년 4월.
카테고리 : 메가 슬롯 FIN 라이브러리
메인파일 : StochDedication.gms 포함: BondData.inc SpotRates.inc FactorData.inc
$title 확률론적 헌신 모델
* StochDedication.gms: 확률론적 헌신 모델.
* Consiglio, Nielsen 및 Zenios.
* 실제 재무 최적화: 메가 슬롯 모델 라이브러리, 섹션 6.2.1
* 최종 수정일: 2008년 4월.
세트
기간 기간 /2001 * 2011/
시나리오 시나리오 세트 /SS_1 * SS_9/;
별칭(시나리오, l, ll);
별칭(시간, t, t1, t2);
스칼라
현재 올해
지평선 끝의 지평선;
지금 = 2001;
지평선 = CARD(t)-1;
매개변수
tau(t) 시간(년)입니다.
* 참고: 시간은 0부터 시작됩니다.
타우(t) = ORD(t)-1;
세트
채권 채권의 세계
/DS-8-06, DS-8-03, DS-7-07,
DS-7-04, DS-6-11, DS-6-09,
DS-6-02, DS-5-05, DS-5-03, DS-4-02/;
세트
요인 기간 구조 요인
/FF_1, FF_2, FF_3/;
ALIAS(요인, j);
ALIAS(채권, i);
매개변수
가격(i) 채권가격
쿠폰(i) 쿠폰
만기(i) 만기
부채(t) 부채의 흐름
F(t,i) 현금흐름;
* 채권 데이터. 덴마크 시장의 가격, 쿠폰 및 만기
$include "BondData.inc"
$include "FactorData.inc"
매개변수
beta(j,t) 인자 로딩;
* 전치 인자 로딩
베타(j,t) = 베타트랜스(t,j);
* 데이터 복사/변환. 단위 데이터를 얻기 위해 100으로 나누는 것을 기록하고,
* 만기일에서 "지금"을 뺍니다(타우와 일치함).
가격(i) = BondData(i,"가격")/100;
Coupon(i) = BondData(i,"쿠폰")/100;
Maturity(i) = BondData(i,"Maturity") - 현재;
* t년차 채권 i의 쿠폰 적용 전 현금흐름을 계산합니다.
F(t,i) = 1$(tau(t) = 성숙도(i))
+ 쿠폰(i) $ (tau(t) <= 만기(i) AND tau(t) > 0);
매개변수
부채(t) 부채
/2002 = 80000, 2003 = 100000, 2004 = 110000, 2005 = 120000,
2006 = 140000, 2007 = 120000, 2008 = 90000, 2009 = 50000,
2010 = 75000, 2011 = 150000/;
* 현물 요금 읽기
매개변수 r(t)
/
$onDelim
$include "SpotRates.inc"
$offDelim
/;
* FactorData.inc의 요소를 사용하여 현물 환율 시나리오 Sr(t,s)를 생성합니다.
매개변수
Sr(t,l) 현물 환율 시나리오;
매개변수
FactorWeights(j,l) 각 시나리오에서 각 요인의 가중치
/FF_1.SS_1 0.01, FF_1.SS_2 -0.02, FF_1.SS_3 0.04,
FF_2.SS_4 0.02, FF_2.SS_5 0.01, FF_2.SS_6 0.01,
FF_3.SS_7 -0.01, FF_3.SS_8 -0.01, FF_3.SS_9 -0.02/;
Sr(t,l)$(r(t) <> 0) = r(t) + SUM(j, FactorWeights(j, l) * 베타(j,t));
매개변수
pr(l) 시나리오 확률
/SS_1 = 10, SS_2 = 5, SS_3 = 11,
SS_4 = 2, SS_5 = 7, SS_6 = 9,
SS_7 = 15, SS_8 = 3, SS_9 = 3/;
* 확률을 1로 조정합니다.
pr(l) = pr(l) / SUM(ll, pr(ll));
디스플레이 pr, Sr;
* 두 가지 모두에 대해 시나리오에 따른 현재 가치를 계산합니다.
* 채권과 부채.
매개변수
P(i) 내재시장가격
PV(i,l) 채권 현재 가치
PVL(l) 부채 현재 가치;
PV(i,l) = SUM(t, F(t,i) * exp(-Sr(t,l) * tau(t)));
PVL(l) = SUM(t, 부채(t) * exp(-Sr(t,l) * tau(t)));
P(i) = SUM(l, pr(l) * PV(i,l) );
디스플레이 PV, PVL;
스칼라
예산 초기예산 /800000/
예상 부족분에 대한 오메가 바운드 /1275/;
긍정적인 변수
yPos(l) 양의 편차
yNeg(l) 음의 편차
x(i) 화폐 단위(비율이 아님)로 자산을 보유합니다.
변수
z 목적 함수 값;
방정식
예산 제약을 정의하는 BudgetCon 방정식
ObjDef 목적 함수 정의
TargetDevDef(l) 양수 및 음수 편차를 정의하는 방정식
음수 편차의 예상 값을 제한하는 PutCon 제약 조건;
ObjDef .. z =e= SUM(l, pr(l) * yPos(l));
BudgetCon .. SUM(i, P(i) * x(i)) =E= 예산;
PutCon .. SUM(l, pr(l) * yNeg(l)) =L= 오메가;
TargetDevDef(l) .. SUM(i, PV(i,l) * x(i)) =E= PVL(l) + yPos(l) - yNeg(l);
모델 StochDedication 'PFO 모델 6.4.1' /ALL/;
LP를 사용하여 z를 극대화하는 StochDedication 해결;
디스플레이 x.l;