설명
대체 위험 회피 매개변수에 대한 포트폴리오 선택 모델이 해결되었습니다.
키워드: 비선형 계획법, 포트폴리오 최적화, GUSS, 시나리오 분석,
투자 계획
소형 모델 유형 :NLP
카테고리 : 슬롯 무료체험 모델 라이브러리
메인 파일 : gussrisk.gms
$title GUSS를 사용하여 다양한 위험 가중치를 적용한 간단한 투자 예시(GUSSRISK,SEQ=399)
$onText
대체 위험 회피 매개변수에 대해 포트폴리오 선택 모델이 해결되었습니다.
키워드: 비선형 계획법, 포트폴리오 최적화, GUSS, 시나리오 분석,
투자 계획
$offText
세트
주식 '잠재적 투자' / buystock1*buystock4 /
이벤트는 '자연 상태를 반환할 가능성이 동일합니다' / event1*event10 /;
별칭(주식,s,sp), (이벤트,e,ep);
매개변수
가격(주식) '주식 매입 가격' / buystock1 22
구매 재고2 30
구매 재고3 28
구매 재고4 26 /
자금 '총 투자 가능 자금' / 500 /;
테이블 수익률(이벤트,주식) '자연현상에 의한 수익률'
Buystock1 Buystock2 Buystock3 Buystock4
이벤트1 7 6 8 5
이벤트2 8 4 16 6
이벤트3 4 8 14 6
이벤트4 5 9 -2 7
이벤트5 6 7 13 6
이벤트6 3 10 11 5
이벤트7 2 12 -2 6
이벤트8 5 4 18 6
이벤트9 4 7 12 5
이벤트10 3 9 -5 6;
매개변수
평균 (주식) 'x(주식)에 대한 평균 수익률'
covar(stocks,stocks) '분산 공분산 행렬';
평균(들) = 합계(e, 수익(e,s))/카드(e);
covar(s,sp) = sum(e,(returns(e,sp) - 평균(sp))*(returns(e,s) - 평균(들)))/card(e);
스칼라 랩 '위험 회피 매개변수' / 0 /;
변수
투자(주식) '각 주식에 투자한 돈'
obj '최대화할 숫자';
포지티브 변수 투자;
방정식
objj '목적 함수'
Investav '사용 가능한 투자 자금';
objj.. obj =e= sum(s, 평균(들)*투자(들)) - rap*(sum((s,sp), 투자(들)*covar(s,sp)*투자(sp)));
투자액.. 합계(들, 가격(들)*투자(들)) =l= 자금;
모델 evportfol / all /;
obj를 최대화하는 nlp를 사용하여 evportfol을 해결합니다.
스칼라 분산;
분산 = sum(s, sum(sp,Invest.l(s)*covar(s,sp)*invest.l(sp)));
디스플레이 차이;
랩 시나리오 '위험 회피 매개변수' 설정 / r0*r25 /;
매개변수
riskaver(rapscenarios) '위험 회피 매개변수에 따른 위험 회피 계수'
/ r0 0.00000, r1 0.00025, r2 0.00050, r3 0.00075
r4 0.00100, r5 0.00150, r6 0.00200, r7 0.00300
r8 0.00500, r9 0.01000, r10 0.01100, r11 0.01250
r12 0.01500, r13 0.02500, r14 0.05000, r15 0.10000
r16 0.30000, r17 0.50000, r18 1.00000, r19 2.50000
r20 5.00000, r21 10.0000, r22 15. , r23 20.
r24 40. , r25 80. /;
매개변수
stockoutput(rapscenarios,stocks) '다양한 랩으로 모델 실행을 기반으로 한 투자 결과'
objlevel(rapscenarios) '다양한 랩으로 실행된 모델의 목적 함수 결과'
Investavshadow(rapscenarios) '다양한 랩으로 모델을 실행한 결과 펀드 섀도우 가격에 대한 결과';
dict/rapscenarios.scenario를 설정합니다. ''
랩 .param .riskaver
투자 .level .stockoutput
obj .레벨 .obj레벨
Investmentav .marginal.investavshadow /;
obj 시나리오 dict를 최대화하는 nlp를 사용하여 evportfol을 해결합니다.
재고 생산량 표시;
매개변수 출력(*,rapscenarios);
루프(랩시나리오,
랩 = Riskaver(rapscenarios);
* 솔루션 정보 로드
Investment.l(s) = stockoutput(rapscenarios,s);
obj.l = objlevel(rapscenarios);
Investav.m=Investavshadow(rapscenarios);
* 일부 항목 계산
Investmentav.l = sum(s,invest.l(s));
분산 = sum((s,sp),Invest.l(s)*covar(s,sp)*invest.l(sp));
출력('랩',rapscenarios) = 랩;
출력(주식, 랩시나리오) = 투자.l(주식);
출력('obj',rapscenarios) = obj.l;
output('평균',rapscenarios) = sum(s, 평균(들)*invest.l(s));
output('var' ,rapscenarios) = 분산;
output('std' ,rapscenarios) = sqrt(분산);
output('shadprice',rapscenarios) =Investav.m;
output('idle' ,rapscenarios) = 자금 -Investav.l;
);
디스플레이 출력;