후회 : 모델을 후회합니다.

설명

Regret.gms: 모델을 후회합니다.
콘실리오, 닐슨, 제니오스.
실제 재무 최적화: 무료 슬롯 게임 모델 라이브러리, 섹션 5.4
최종 수정 날짜: 2008년 4월.

카테고리 : 무료 슬롯 게임 FIN 라이브러리


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

$title 후회하는 모델

* Regret.gms : 후회하는 모델.
* Consiglio, Nielsen 및 Zenios.
* 실제 재무 최적화: 무료 슬롯 게임 모델 라이브러리, 섹션 5.4
* 최종 수정일: 2008년 4월.

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

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

스칼라
        예산 명목 투자예산
        엡실론 후회 모델에 허용되는 EpsRegret 허용 오차
        MU_TARGET 목표 포트폴리오 수익률
        MU_STEP 목표 복귀 단계
        MIN_MU 유니버스의 최소 수익
        MAX_MU 우주 최대 수익
        RISK_TARGET 예상되는 후회(위험)에 묶여 있습니다.

예산 = 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));

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) 화폐 단위(비율 아님)로 자산 보유
        후회(l) 부정적인 일탈이나 후회에 대한 측정;

변수
        z 목적 함수 값;

방정식
        예산 제약을 정의하는 BudgetCon 방정식
        포트폴리오 수익률 제약을 정의하는 ReturnCon 방정식
        허용되는 예상 후회를 정의하는 ExpRegretCon 방정식
        ObjDefRegret 후회 최소화를 위한 목적 함수 정의
        ObjDefReturn 반환 확대화를 위한 객관적인 함수 정의
        RegretCon(l) 후회 제약 조건을 정의하는 방정식
        EpsRegretCon(l) 허용 한계점을 사용하여 후회 제약 조건을 정의하는 방정식입니다.

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

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

ExpRegretCon .. SUM(l, pr(l) * 후회(l)) =L= RISK_TARGET;

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

EpsRegretCon(l) .. 후회(l) =G= (TargetIndex(l) - EpsRegret) * 예산 - SUM(i, P(i,l) * x(i));

ObjDefRegret .. z =E= SUM(l, pr(l) * Regrets(l));

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

MODEL MinRegret 'PFO 모델 5.4.1' /BudgetCon, ReturnCon, RegretCon, ObjDefRegret/;
모델 MaxReturn /BudgetCon, ExpRegretCon, EpsRegretCon, ObjDefReturn/;

파일 FrontierHandle /"RegretFrontiers.csv"/;

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

PUT 프론티어핸들;

PUT "상태", "후회", "평균";
LOOP(i, PUT i.tl);
PUT "","상태","후회","평균"/;

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

타겟인덱스(l) = 1.01;
EpsRegret = 0.0;

* 두 모델은 동일합니다. 실제로 그들은
* 동일한 효율적인 국경.

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

        LP를 사용하여 MinRegret 최소화 z를 해결합니다.

        PUT MinRegret.MODELSTAT:0:0,z.L:6:5,(MU_TARGET * 예산):8:3;

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

        RISK_TARGET = z.L;

        넣어 "";

        LP를 사용하여 z를 최대화하는 MaxReturn 해결;

        PUT MaxReturn.MODELSTAT:0:0,RISK_TARGET:6:5,z.L:8:3;

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

        넣어 /;
);