커뮤니티

부탁드립니다-------------

프로필 이미지
leekss1
2018-03-19 19:43:41
205
글번호 117525
답변완료
//내재변동성 iivv선을 부드럽게만들려면 이평이나 tema 말고 다른방법은 없나요? Input:역사적변동성(11.4),LENGTH1(3),최고저기준(0); var : exit(0),C1(0),C2(0),C3(0),iivv(0),hhh(0),lll(0),ii(0),hii(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),imvo(0),TEMAimvo(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 == 1 Then { Plot1((BS2+BS3)/2,"이론가"); iivv = (ImVol2*100 +ImVol3*100)/2; Plot2(iivv,"내재변동성"); // 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,"로"); imvo = (ImVol2*100 +ImVol3*100)/2; TEMAimvo = (3 * Ema(imvo,LENGTH1)) - (3 * Ema(Ema(imvo,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(imvo,LENGTH1),LENGTH1),LENGTH1)); Plot8(TEMAimvo,"내변테마"); } } //****************************************************************************** //최고저만들기 //****************************************************************************** if data2(bdate != bdate[1]) Then{ ii = 0; HHh = iivv; LlL = iivv; } else { ii = ii+1; if ii < 최고저기준 Then { if iivv > hhh Then hhh = iivv; if iivv < lll Then lll = iivv; } else{ hhh = data2(highest(iivv,최고저기준)); lll = data2(lowest(iivv,최고저기준)); } } hii = (hhh + lll)/2; plot21(HHh,"Data2 H" ); plot22(LLl,"Data2 L"); plot23(hii,"hii");
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-03-20 15:12:03

안녕하세요 예스스탁입니다. 예 이평이나 tema와 같이 평균을 하는방법 뿐이 없을 것 같습니다. 즐거운 하루되세요 > leekss1 님이 쓴 글입니다. > 제목 : 부탁드립니다------------- > //내재변동성 iivv선을 부드럽게만들려면 이평이나 tema 말고 다른방법은 없나요? Input:역사적변동성(11.4),LENGTH1(3),최고저기준(0); var : exit(0),C1(0),C2(0),C3(0),iivv(0),hhh(0),lll(0),ii(0),hii(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),imvo(0),TEMAimvo(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 == 1 Then { Plot1((BS2+BS3)/2,"이론가"); iivv = (ImVol2*100 +ImVol3*100)/2; Plot2(iivv,"내재변동성"); // 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,"로"); imvo = (ImVol2*100 +ImVol3*100)/2; TEMAimvo = (3 * Ema(imvo,LENGTH1)) - (3 * Ema(Ema(imvo,LENGTH1),LENGTH1)) + (Ema(Ema(Ema(imvo,LENGTH1),LENGTH1),LENGTH1)); Plot8(TEMAimvo,"내변테마"); } } //****************************************************************************** //최고저만들기 //****************************************************************************** if data2(bdate != bdate[1]) Then{ ii = 0; HHh = iivv; LlL = iivv; } else { ii = ii+1; if ii < 최고저기준 Then { if iivv > hhh Then hhh = iivv; if iivv < lll Then lll = iivv; } else{ hhh = data2(highest(iivv,최고저기준)); lll = data2(lowest(iivv,최고저기준)); } } hii = (hhh + lll)/2; plot21(HHh,"Data2 H" ); plot22(LLl,"Data2 L"); plot23(hii,"hii");