StochDedication : 확률론적 헌신 모델.

설명

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;