MAD : 평균-절대편차 모델.

설명

MAD.gms: 평균 절대 편차 모델.
콘실리오, 닐슨, 제니오스.
실제 재무 최적화: 슬롯 사이트 추천 모델 라이브러리, 섹션 5.3
최종 수정 날짜: 2008년 4월.

카테고리 : 슬롯 사이트 추천 FIN 라이브러리


메인파일 : MAD.gms 다음을 포함합니다: Corporate.inc WorldIndices.inc

$title 평균 절대 편차 모델

* MAD.gms: 평균절대편차 모델.
* Consiglio, Nielsen 및 Zenios.
* 실제 재무 최적화: 슬롯 사이트 추천 모델 라이브러리, 섹션 5.3
* 최종 수정일: 2008년 4월.

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

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

스칼라
        예산 명목 투자예산
        MU_TARGET 목표 포트폴리오 수익률
        MU_STEP 목표 복귀 단계
        MIN_MU 유니버스의 최소 수익
        MAX_MU 우주의 최대 수익;

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

DISPLAY MAX_MU;

긍정적인 변수
        x(i) 화폐 단위(비율 아님)로 자산 보유
        y(l) 절대 편차의 측정값;

변수
        z 목적 함수 값;

방정식
        예산 제약을 정의하는 BudgetCon 방정식
        포트폴리오 수익률 제약을 정의하는 ReturnCon 방정식
        ObjDef MAD에 대한 목적 함수 정의
        yPosDef(l) 양의 편차를 정의하는 방정식
        yNegDef(l) 음의 편차를 정의하는 방정식.

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

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

yPosDef(l) .. y(l) =G= SUM(i, P(i,l) * x(i)) - SUM(i, EP(i) * x(i));

yNegDef(l) .. y(l) =G= SUM(i, EP(i) * x(i)) - SUM(i, P(i,l) * x(i));

ObjDef .. z =E= SUM(l, pr(l) * y(l));

MODEL MeanAbsoluteDeviation 'PFO 모델 5.3.1' /BudgetCon, ReturnCon, yPosDef, yNegDef, ObjDef/;

옵션 SOLVEOPT = 교체;

파일 FrontierHandle /"MADvsMV.csv"/;

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

PUT 프론티어핸들;

PUT "MAD","평균"/;

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

        LP를 사용하여 평균절대편차를 최소화합니다.

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

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

        넣어 /;

);

* 분산 및 공분산 계산
* 평균 분산과 평균 절대 편차 비교용

별칭(i,i1,i2);

매개변수
        VP(i,i);

VP(i,i) = SUM(l, SQR(P(i,l) - EP(i))) / (CARD(l)- 1);

VP(i1,i2)$(ORD(i1) > ORD(i2)) = SUM(l, (P(i1,l) - EP(i1))*(P(i2,l) - EP(i2))) / (CARD(l) - 1);

디스플레이 부사장;

방정식
        ObjDefMV Mean-Variance에 대한 목적 함수 정의.

ObjDefMV .. z =E= SUM((i1,i2), x(i1)* VP(i1,i2) * x(i2));

모델 MeanVariance /BudgetCon, ReturnCon, ObjDefMV/;

PUT "SD","평균"/;

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

        NLP를 사용하여 z를 최소화하는 평균 분산 해결;

        z.l = SQRT(z.l);

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

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

        넣어 /;

);

스칼라
        LambdaPos 양수 편차에 가중치가 추가됨
        람다네그(lambdaNeg) 음수 편차에 가중치가 부여됩니다.

람다포스 = 0.5;
람다Neg = 0.5;

방정식
        yPosWeightDef(l) 가중치가 추가된 양의 편차를 정의하는 방정식
        yNegWeightDef(l) 가중치가 추가된 양의 편차를 정의하는 방정식입니다.

yPosWeightDef(l) .. y(l) =G= 람다Pos * (SUM(i, P(i,l) * x(i)) - SUM(i, EP(i) * x(i)));

yNegWeightDef(l) .. y(l) =G= 람다Neg * (SUM(i, EP(i) * x(i)) - SUM(i, P(i,l) * x(i)));

MODEL MeanAbsoluteDeviationWeighted /BudgetCon, ReturnCon, yPosWeightDef, yNegWeightDef, ObjDef/;

PUT "MADWeighted","평균"/;

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

        평균절대편차 가중 최소화 z LP 사용;

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

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

        넣어 /;

);

람다포스 = 0.2;
람다Neg = 0.8;

PUT "MADWeighted","평균"/;

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

        평균절대편차 가중 최소화 z LP 사용;

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

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

        넣어 /;

);

* 마지막 두 모델은 동일한 포트폴리오를 생성합니다! PFO 섹션 5.2.2를 참조하십시오.