TrackingMAD : MAD를 사용하여 모델을 추적합니다.

설명

TrackingMAD.gms: MAD를 사용하여 모델을 추적합니다.
콘실리오, 닐슨, 제니오스.
실제 재무 최적화: 슬롯 모델 라이브러리, 섹션 5.3.1
최종 수정 날짜: 2008년 4월.

카테고리 : 슬롯 FIN 라이브러리


메인파일 : TrackingMAD.gms 포함: Corporate.inc WorldIndices.inc Index.inc

$title MAD를 사용한 추적 모델

* TrackingMAD.gms: MAD를 사용하여 모델을 추적합니다.
* Consiglio, Nielsen 및 Zenios.
* 실제 재무 최적화: 슬롯 모델 라이브러리, 섹션 5.3.1
* 최종 수정일: 2008년 4월.

* 데이터 파일을 포함하려면 다음 줄 중 하나의 주석 처리를 제거하세요.

* $include "Corporate.inc"
$include "WorldIndices.inc"

스칼라
        예산 명목 투자예산
        EpsTolerance 공차;

예산 = 100.0;

매개변수
        pr(l) 시나리오 확률
        P(i,l) 최종 값
        EP(i) 최종 예상 값;

pr(l) = 1.0 / 카드(l);

P(i,l) = 1 + 자산 반환(i,l);

EP(i) = SUM(l, pr(l) * P(i,l));

긍정적인 변수
        x(i) 화폐 단위(비율이 아님)로 자산을 보유합니다.

변수
        z 목적 함수 값;

방정식
        예산 제약을 정의하는 BudgetCon 방정식
        ObjDef MAD에 대한 목적 함수 정의
        ToleranceCon(l) 허용되는 공차를 정의하는 방정식입니다.

BudgetCon .. SUM(i, x(i)) =E= 예산;

ToleranceCon(l) .. SUM(i, P(i,l) * x(i)) =G= SUM(i, EP(i) * x(i)) - EpsTolerance * Budget;

ObjDef .. z =E= SUM(i, x(i) * EP(i));

모델 DownsideBound 'PFO 모델 5.3.4' /BudgetCon, ToleranceCon, ObjDef/;

파일 FrontierHandle /"TrackingMAD.csv"/;

FrontierHandle.pc = 5;
FrontierHandle.pw = 1048;

PUT 프론티어핸들;

PUT "공차","평균"/;

DownsideBound.MODELSTAT = 1;

* 높은 허용오차에서 시작하여 모델이 실현 가능해질 때까지 이를 줄입니다.

EpsTolerance = 0.2;

WHILE( DownsideBound.MODELSTAT <= 2,

        LP를 사용하여 DownsideBound를 최대화하는 방법을 해결하세요.

        PUT (EpsTolerance * Budget):6:5,z.l:10:3,DownsideBound.MODELSTAT:0:0;

        LOOP(i, PUT x.l(i):6:2);

        넣어 /;

       EpsTolerance = EpsTolerance - 0.01;
);

매개변수
        TargetIndex(l) 목표 인덱스 반환;

* 시장 지수로 모델을 테스트하려면 다음 두 줄의 주석 처리를 제거하세요.
* 이 색인은 WorldIndexes.inc를 사용할 때만 일관성이 있습니다.

$include "Index.inc"

TargetIndex(l) = Index(l);

방정식
        TrackingCon(l) 추적 제약 조건.

TrackingCon(l) .. SUM(i, P(i,l) * x(i)) =G= ( TargetIndex(l) - EpsTolerance ) * 예산;

모델 TrackingMAD /BudgetCon, TrackingCon, ObjDef/;

PUT "공차","평균"/;

추적MAD.MODELSTAT = 1;

EpsTolerance = 0.2;

WHILE( 추적MAD.MODELSTAT <= 2,

        LP를 사용하여 추적을 최대화하는 방법을 해결하세요.

        PUT (EpsTolerance * Budget):6:5,z.l:10:3,TrackingMAD.MODELSTAT:0:0;

        LOOP(i, PUT x.l(i):6:2);

        넣어 /;

        EpsTolerance = EpsTolerance - 0.01;
);

* 고정 목표 수익률은 2\%이며, 각 시나리오에서 최종 값은 1.02입니다.

타겟인덱스(l) = 1.02;

PUT "공차","평균"/;

추적MAD.MODELSTAT = 1;

EpsTolerance = 0.2;

WHILE( 추적MAD.MODELSTAT <= 2,

        LP를 사용하여 추적을 최대화하는 방법을 해결하세요.

        PUT (EpsTolerance * Budget):6:5,z.l:10:3,TrackingMAD.MODELSTAT:0:0;

        LOOP(i, PUT x.l(i):6:2);

        넣어 /;

        EpsTolerance = EpsTolerance - 0.01;
);