커뮤니티

수식부탁드립니다---------------------

프로필 이미지
leekss1
2017-12-31 14:49:38
201
글번호 115368
답변완료
//현재 기본차드를 옵션1종목,data2 를 kp200 으로놓고 민감도가 표시됨니다 //이걸 기본차트에 kp200, data2 에 콜종목, data3 에 풋종목 으로놓고 두종목의 평균 민감도 //를 표시하고 십슴니다 부탁드립니다 감사합니다 Input:역사적변동성(11.4); Var:cpFlag(""),S(0),X(0),T(0),r(0),BS(0),p(0),j(0), ImVol(0),Delta(0),Gamma(0),Vega(0),Theta(0),Rho(0),exit(0),만기일1단계(0),만기일2단계(0),만기일3단계(0); #================================================# p = C; //옵션가격, 옵션종목을 기본차트로 띄워놓아야 한다. S = Data2("C"); //기초자산이 보조차트가 되어야 한다. If CodeCategory <> 6 Then { Alert("Data1이 옵션종목이 아닙니다."); exit = 1; } If Data2(SymbolName) <> "KP200 종합" Then { Alert("Data2가 KP200 종합이 아닙니다."); exit = 1; } If exit == 0 Then { If CurrentBar == 1 Then { // SymbolName : 콜1801월 327.5kp (한글은 2자리로 계산) X = StrToNum(MidStr(SymbolName,10,5)); // 행사가격, 종목명에서 추출 만기일1단계 = 20000000 + StrToNum(MidStr(SymbolName,3,4))*100+8; // 만기년월 + 08일, 종목명에서 추출 만기일2단계 = DayOfWeek(만기일1단계); // 만기월의 8일의 요일 값 만기일3단계 = 만기일1단계 + (Iff(만기일2단계 > 4, 11, 4) - 만기일2단계); // 2번째 목요일을 계산해 낸다. cpFlag = LeftStr(SymbolName,2); // 콜,풋 구분. 종목명에서 추출 } If p > 0 then { T = (DateToJulian(만기일3단계) - DateToJulian(Date) + 1)/365; r = CD91Rate(Date)/100; ImVol = _ImVol(IFF(cpFlag=="콜",1,2), S, X, T, r, p); Value1 = _OptionGreeks(IFF(cpFlag=="콜",1,2),S,X,T,r,역사적변동성/100,BS,Delta,Gamma,Theta,Vega,Rho); If Value1 == 1 Then { Plot1(BS,"이론가"); Plot2(ImVol*100,"내재변동성"); Plot3(Delta,"델타"); Plot4(Gamma,"감마"); Plot5(Theta,"쎄타"); Plot6(Vega,"베가"); Plot7(Rho,"로"); } } }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-01-02 16:21:09

안녕하세요 예스스탁입니다. Input:역사적변동성(11.4); var : exit(0),C1(0),C2(0),C3(0); Var: cpFlag2(""),X2(0),T2(0),r2(0),BS2(0),j2(0), ImVol2(0),Delta2(0),Gamma2(0),Vega2(0),Theta2(0),Rho2(0), 만기일1단계2(0),만기일2단계2(0),만기일3단계2(0); Var: cpFlag3(""),X3(0),T3(0),r3(0),BS3(0),j3(0), ImVol3(0),Delta3(0),Gamma3(0),Vega3(0),Theta3(0),Rho3(0), 만기일1단계3(0),만기일2단계3(0),만기일3단계3(0); #================================================# C1 = Data1(C); //기초자산이 보조차트가 되어야 한다. C2 = data2(C); //옵션가격, 옵션종목을 기본차트로 띄워놓아야 한다. C3 = data3(c); If Data1(SymbolName) <> "KP200 종합" Then { Alert("Data1이 KP200 종합이 아닙니다."); exit = 1; } If data2(CodeCategory) <> 6 Then { Alert("Data2가 옵션종목이 아닙니다."); exit = 1; } If data3(CodeCategory) <> 6 Then { Alert("Data3이 옵션종목이 아닙니다."); exit = 1; } If exit == 0 Then { If CurrentBar == 1 Then { // SymbolName : 콜1801월 327.5kp (한글은 2자리로 계산) X2 = StrToNum(MidStr(data2(SymbolName),10,5)); // 행사가격, 종목명에서 추출 만기일1단계2 = 20000000 + StrToNum(MidStr(data2(SymbolName),3,4))*100+8; // 만기년월 + 08일, 종목명에서 추출 만기일2단계2 = DayOfWeek(만기일1단계2); // 만기월의 8일의 요일 값 만기일3단계2 = 만기일1단계2 + (Iff(만기일2단계2 > 4, 11, 4) - 만기일2단계2); // 2번째 목요일을 계산해 낸다. cpFlag2 = LeftStr(data2(SymbolName),2); // 콜,풋 구분. 종목명에서 추출 X3 = StrToNum(MidStr(data3(SymbolName),10,5)); // 행사가격, 종목명에서 추출 만기일1단계3 = 20000000 + StrToNum(MidStr(data3(SymbolName),3,4))*100+8; // 만기년월 + 08일, 종목명에서 추출 만기일2단계3 = DayOfWeek(만기일1단계3); // 만기월의 8일의 요일 값 만기일3단계3 = 만기일1단계3 + (Iff(만기일2단계3 > 4, 11, 4) - 만기일2단계3); // 2번째 목요일을 계산해 낸다. cpFlag3 = LeftStr(data3(SymbolName),2); // 콜,풋 구분. 종목명에서 추출 } If C2 > 0 then { T2 = (DateToJulian(만기일3단계2) - DateToJulian(Date) + 1)/365; r2 = data2(CD91Rate(Date)/100); ImVol2 = data2(_ImVol(IFF(cpFlag2=="콜",1,2), C1, X2, T2, r2, C2)); Value1 = data2(_OptionGreeks(IFF(cpFlag2=="콜",1,2),C1,X2,T2,r2,역사적변동성/100,BS2,Delta2,Gamma2,Theta2,Vega2,Rho2)); } If C3 > 0 then { T3 = (DateToJulian(만기일3단계3) - DateToJulian(Date) + 1)/365; r3 = data3(CD91Rate(Date)/100); ImVol3 = data3(_ImVol(IFF(cpFlag3=="풋",1,2), C1, X3, T3, r3, C3)); Value2 = data3(_OptionGreeks(IFF(cpFlag3=="풋",1,2),C1,X3,T3,r3,역사적변동성/100,BS3,Delta3,Gamma3,Theta3,Vega3,Rho3)); } If Value1 == 1 and value2 == 2 Then { Plot1((BS2+BS3)/2,"이론가"); Plot2((ImVol2*100 +ImVol3*100)/2,"내재변동성"); Plot3((Delta2+Delta3)/2,"델타"); Plot4((Gamma2+Gamma3)/2,"감마"); Plot5((Theta2+Theta3)/2,"쎄타"); Plot6((Vega2+Vega3)/2,"베가"); Plot7((Rho2+Rho3)/2,"로"); } } 새해 복 많이 받으세요 > leekss1 님이 쓴 글입니다. > 제목 : 수식부탁드립니다--------------------- > //현재 기본차드를 옵션1종목,data2 를 kp200 으로놓고 민감도가 표시됨니다 //이걸 기본차트에 kp200, data2 에 콜종목, data3 에 풋종목 으로놓고 두종목의 평균 민감도 //를 표시하고 십슴니다 부탁드립니다 감사합니다 Input:역사적변동성(11.4); Var:cpFlag(""),S(0),X(0),T(0),r(0),BS(0),p(0),j(0), ImVol(0),Delta(0),Gamma(0),Vega(0),Theta(0),Rho(0),exit(0),만기일1단계(0),만기일2단계(0),만기일3단계(0); #================================================# p = C; //옵션가격, 옵션종목을 기본차트로 띄워놓아야 한다. S = Data2("C"); //기초자산이 보조차트가 되어야 한다. If CodeCategory <> 6 Then { Alert("Data1이 옵션종목이 아닙니다."); exit = 1; } If Data2(SymbolName) <> "KP200 종합" Then { Alert("Data2가 KP200 종합이 아닙니다."); exit = 1; } If exit == 0 Then { If CurrentBar == 1 Then { // SymbolName : 콜1801월 327.5kp (한글은 2자리로 계산) X = StrToNum(MidStr(SymbolName,10,5)); // 행사가격, 종목명에서 추출 만기일1단계 = 20000000 + StrToNum(MidStr(SymbolName,3,4))*100+8; // 만기년월 + 08일, 종목명에서 추출 만기일2단계 = DayOfWeek(만기일1단계); // 만기월의 8일의 요일 값 만기일3단계 = 만기일1단계 + (Iff(만기일2단계 > 4, 11, 4) - 만기일2단계); // 2번째 목요일을 계산해 낸다. cpFlag = LeftStr(SymbolName,2); // 콜,풋 구분. 종목명에서 추출 } If p > 0 then { T = (DateToJulian(만기일3단계) - DateToJulian(Date) + 1)/365; r = CD91Rate(Date)/100; ImVol = _ImVol(IFF(cpFlag=="콜",1,2), S, X, T, r, p); Value1 = _OptionGreeks(IFF(cpFlag=="콜",1,2),S,X,T,r,역사적변동성/100,BS,Delta,Gamma,Theta,Vega,Rho); If Value1 == 1 Then { Plot1(BS,"이론가"); Plot2(ImVol*100,"내재변동성"); Plot3(Delta,"델타"); Plot4(Gamma,"감마"); Plot5(Theta,"쎄타"); Plot6(Vega,"베가"); Plot7(Rho,"로"); } } }