메가 슬롯 : 위험 모델의 조건부 가치.

설명

메가 슬롯gms: 위험 모델의 조건부 가치.
콘실리오, 닐슨, 제니오스.
실제 재무 최적화: GAMS 모델 라이브러리, 섹션 5.5
최종 수정 날짜: 2008년 4월.

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


메인파일 : 메가 슬롯gms 포함: Corporate.inc WorldIndices.inc

$title 조건부 위험 모델 가치

* 메가 슬롯gms: 위험 모델의 조건부 가치.
* Consiglio, Nielsen 및 Zenios.
* 실제 재무 최적화: GAMS 모델 라이브러리, 섹션 5.5
* 최종 수정일: 2008년 4월.

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

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

스칼라
        예산 명목 투자예산
        알파 신뢰 수준
        MU_TARGET 목표 포트폴리오 수익률
        MU_STEP 목표 복귀 단계
        MIN_MU 유니버스의 최소 수익
        MAX_MU 우주 최대 수익
        RISK_TARGET 메가 슬롯에 바인딩됨(위험)
        LossFlag 손실 유형을 선택하는 플래그입니다.

예산 = 100.0;
알파 = 0.99;

매개변수
        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));

MIN_MU = SMIN(i, EP(i));
MAX_MU = SMAX(i, EP(i));

* 프론티어에 20개의 포트폴리오가 필요하다고 가정

MU_STEP = (MAX_MU - MIN_MU) / 20;

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

* 시장 지수를 사용하여 모델을 테스트하려면 다음 두 줄의 주석 처리를 제거하세요.
* 이 인덱스는 WorldIndexes.inc에서만 사용할 수 있습니다.

*$include "Index.inc";

*TargetIndex(l) = Index(l);

긍정적인 변수
        x(i) 화폐 단위(비율 아님)로 자산 보유
        VaRDev(l) VaR과의 편차를 측정합니다.

변수
       VaR 위험가치
        z 목적 함수 값
      손실(l) 손실 측정

방정식
        예산 제약을 정의하는 BudgetCon 방정식
        포트폴리오 수익률 제약을 정의하는 ReturnCon 방정식
        허용되는 메가 슬롯을 정의하는 CVaRCon 방정식
        ObjDefCVaR 메가 슬롯 최소화를 위한 목적 함수 정의
        ObjDefReturn 반환 확대화를 위한 객관적인 함수 정의
      LossDef(l) 손실을 정의하는 방정식
        VaRDevCon(l) VaR 편차 제약을 정의하는 방정식.

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

ReturnCon .. SUM(i, EP(i) * x(i)) =G= MU_TARGET * 예산;

CVaRCon .. VaR + SUM(l, pr(l) * VaRDev(l)) / (1 - 알파) =L= RISK_TARGET;

VaRDevCon(l) .. VaRDev(l) =G= 손실(l) - VaR;

LossDef(l).. 손실(l) =E= (예산 - SUM(i, P(i,l) * x(i)))$(LossFlag = 1) +
                           (TargetIndex(l) * 예산 - SUM(i, P(i,l) * x(i)))$(LossFlag = 2) +
                           (SUM(i, EP(i) * x(i)) - SUM(i, P(i,l) * x(i)))$(LossFlag = 3);

ObjDefCVaR .. z =E= VaR + SUM(l, pr(l) * VaRDev(l)) / (1 - 알파);

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

모델 MinCVaR 'PFO 모델 5.5.1' /BudgetCon, ReturnCon, LossDef, VaRDevCon, ObjDefCVaR/;

모델 MaxReturn 'PFO 모델 5.5.2' /BudgetCon, CVaRCon, LossDef, VaRDevCon, ObjDefReturn/;

파일 FrontierHandle /"CVaRFrontiers.csv"/;

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

PUT 프론티어핸들;

PUT "상태", "VaR", "메가 슬롯", "평균";

LOOP(i, PUT i.tl);

놓다 /;

LossFlag = 2;

* 원하시면 다음줄에 댓글을 달아주세요
* 시장 지수를 추적합니다.

타겟인덱스(l) = 1.01;

FOR (MU_TARGET = MIN_MU에서 MAX_MU까지 MU_STEP,

        LP를 사용하여 z를 최소화하는 MinCVaR 해결;

        PUT MinCVaR.MODELSTAT:0:0,VaR.l:6:5,z.l:6:5,(MU_TARGET * 예산):8:3;

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

      넣어 /;
);