worst.gms : 재무 최적화: 위험 관리

설명

옵션 포트폴리오 분석의 필요성은 위험/수익 때문에 발생합니다.
더 많은 옵션이 포함됨에 따라 장단점은 점점 더 복잡해집니다.
포트폴리오에서. 이 모델은 최악의 시나리오를 평가합니다.
옵션 포트폴리오입니다.

소형 모델 유형 :NLP


카테고리 : 크레이지 슬롯 모델 라이브러리


메인 파일 : 최악.gms

$title 재무 최적화: 위험 관리(WORST,SEQ=111)

$onText
옵션 포트폴리오 분석의 필요성은 위험/수익률 때문에 발생합니다.
더 많은 옵션이 포함됨에 따라 장단점은 점점 더 복잡해집니다.
포트폴리오에서. 이 모델은 최악의 시나리오를 평가합니다.
옵션 포트폴리오.

Dahl, H, Meeraus, A 및 Zenios, S A, 일부 재무 최적화
모델: 위험 관리. Zenios, S A, Ed, 재무 최적화.
캠브리지 대학 출판부, 뉴욕, 뉴욕, 1993.

키워드: 비선형 계획법, 위험 관리, 포트폴리오 최적화, 재무,
          재무 최적화
$offText

세트
   t '만료일' / 6월, 10월, 1월 /
   i '기본 문제' / 9000011, 9020063 /
   j '옵션' / 1*5 /;

테이블 tdata(t,*) '시간 관련 데이터'
* 표기법:
* 성숙까지의 기간(년)
* r0 현재 예상 무위험 이자율
* rmax 최대 무위험 비율
* rmin 최소 무위험 비율
* qmax 최대 변동성 이동
* qmin 최소 변동성 이동
            항 r0 rmax rmin qmax qmin
   6월 0.09167 0.0697 0.08570 0.05245 0.0788 0.0388
   10월 0.33889 0.0790 0.09500 0.06175 0.0768 0.0368
   1월 0.58889 0.0779 0.09390 0.06190 0.0768 0.0368;

테이블 f0(i,t) '조정 현물 가격'
               6월 10월 1월
   9000011 95.54 93.27 91.03
   9020063 95.54 93.27 91.03;

약어 future, call, puto;

테이블 pdata(i,t,j,*) '포트폴리오 데이터'
* 표기법:
* 상품 유형(선물, 콜옵션, 풋옵션)
* 콜옵션과 풋옵션의 행사가격
* 공칭 명목 발행 단위(참조 매개변수 x, y 및 z)
* 선물이나 옵션의 가격 프리미엄
                      유형 행사 공칭 가격
   9000011.jun.1 미래 -35000 96.60
   9000011.oct.1 미래 15000 96.60
   9020063.jun.1 미래 74000 96.15
   9020063.oct.1 미래 20000 95.80
   9020063.oct.2 전화 95 -30000 3.00
   9020063.oct.3 전화 97 -30000 1.50
   9020063.oct.4 푸토 95 5000 0.25
   9020063.oct.5 푸토 97 15000 1.20
   9020063.jan.1 미래 -290000 95.80
   9020063.jan.2 전화 95 25000 0.90
   9020063.jan.3 전화 97 -50000 0.90
   9020063.jan.4 전화 99 25000 0.90
   9020063.jan.5 푸토 99 50000 0.90;

변수
   pval '포트폴리오 목적 함수 값'
   d1(i,t,j) '검은색 d1'
   d2(i,t,j) '검은색 d2';

양수 변수
    f(i,t) '선물 가격'
    c(i,j,t) '콜 가격'
    p(i,j,t) '가격 입력'
    r(t) '무위험이자율'
    q(t) '변동성';

r.lo(t) = tdata(t,"rmin");
r.up(t) = tdata(t,"rmax");
q.lo(t) = tdata(t,"qmin");
q.up(t) = tdata(t,"qmax");
f.lo(i,t) = .001;
f.l(i,t) = f0(i,t)*exp(tdata(t,"r0")*tdata(t,"term"));
r.l(t) = (r.lo(t) + r.up(t))/2;
q.l(t) = (q.lo(t) + q.up(t))/2;

방정식
   tpv '총 포트폴리오 가치'
   futval(i,t,j) '선물 가치'
   callval(i,t,j) '호출 값'
   putval(i,t,j) '값 입력'
   dd1(i,t,j) '검은색 모델의 d1'
   dd2(i,t,j) '검은색 모델의 d2';

티피..
   pval =e= sum((i,t,j)$pdata(i,t,j,"nom"),
                   (f(i,t) -pdata(i,t,j,"가격")
                            *pdata(i,t,j,"nom"))$(pdata(i,t,j,"type") = 미래)
                 + (c(i,j,t)*pdata(i,t,j,"nom"))$(pdata(i,t,j,"type") = 호출)
                 + (p(i,j,t)*pdata(i,t,j,"nom"))$(pdata(i,t,j,"type") = puto));

futval(i,t,j)$(pdata(i,t,j,"type") = 미래)..
   f(i,t) =e= f0(i,t)*exp(r(t)*tdata(t,"term"));

callval(i,t,j)$(pdata(i,t,j,"type") = 호출)..
   c(i,j,t) =e= exp(-r(t)*tdata(t,"term"))*(f(i,t)*errorf(d1(i,t,j))
              - pdata(i,t,j,"스트라이크")*errorf(d2(i,t,j)));

putval(i,t,j)$(pdata(i,t,j,"type") eq puto)..
   p(i,j,t) =e= exp(-r(t)*tdata(t,"term"))*(pdata(i,t,j,"strike")*errorf(-d2(i,t,j))
              - f(i,t)*errorf(-d1(i,t,j)));

dd1(i,t,j)$pdata(i,t,j,"스트라이크")..
   d1(i,t,j) =e= (log(f(i,t)/pdata(i,t,j,"스트라이크")) + 0.5*sqr(q(t))*tdata(t,"term"))
              / (q(t)*sqrt(tdata(t,"term")));

dd2(i,t,j)$pdata(i,t,j,"스트라이크")..
   d2(i,t,j) =e= d1(i,t,j) - q(t)*sqrt(tdata(t,"term"));

모델 위험모드 / 모두 /;

* 최악의 경우
pval을 최소화하는 nlp를 사용하여 Riskmod를 해결합니다.

* 최선의 경우
pval을 최대화하는 nlp를 사용하여 Riskmod를 해결합니다.