커뮤니티

옵션 내재변동성 엑셀로 구현하기

프로필 이미지
바둑이
2020-09-01 00:47:06
1560
글번호 225311
답변완료
안녕하세요. 다음과 같이 에러메시지가 뜨며 엑셀에 구동이 되질 않습니다. Excel-TypeError:Property 'HHMMSS' of object [object Obiect] is not a function 첨부파일 엑셀에 표현될 수 있도록 수정 부탁드립니다. 감사합니다. var cnt; var HHMMSS; function Main_OnStart() { var d = new Date();       HHMMSS = d.getHours()*10000 + d.getMinutes()*100 + d.getSeconds();   var temp_code = Option.GetATMCallRecent(0,0);       Excel.SetRowData(1, "O2", Option.GetRemainDays(temp_code));       Excel.SetRowData(1, "P2", Option.RiskFreeRate);           if(HHMMSS >= 090100 && HHMMSS < 154500)         {                 Main.MessageList("======",HHMMSS(), "IV_calc 시작","======");               Main.SetTimer(1, 5000); //5초 마다 실행               cnt = 2;                    } } function Main_OnTimer(nEventID){    if(nEventID ==1)       {             var d = new Date();           HHMMSS = d.getHours()*10000 + d.getMinutes()*100 + d.getSeconds(); var call_Code, put_Code,ksp_price ;                                        cnt = cnt+1;              var An = "A"+cnt; //시간             var Bn = "B"+cnt; //기초자산 var Cn = "C"+cnt; //Call  var Dn = "D"+cnt; //Call  var En = "E"+cnt; //Call bid var Fn = "F"+cnt; //Call ask             var In = "I"+cnt; //put iv             var jn = "j"+cnt; //put 행사가             var Kn = "K"+cnt; //put bid             var Ln = "L"+cnt; //put ask        Main.MessageList("======",HHMMSS, "To_Excel","======");          ksp_price = ksp.current;          call_Code = Option.GetATMCallRecent(0,0);          put_Code = Option.GetATMPutRecent(0,0);        Excel.SetRowData(l,An,get_date_time()); //시간       Excel.SetRowData(l,Bn,ksp_price); //기초자산              Excel.SetRowData(l,Cn,Option.GetImpliedVolatility(call_Code)); //Call iv       Excel.SetRowData(l,Dn,Option.GetExercisePrice(call_Code)); //Call 행사가       Excel.SetRowData(l,En,Option.GetBid(call_Code,1)); //Call bid       Excel.SetRowData(l,Fn,Option.GetAsk(call_Code,1)); //Call ask              Excel.SetRowData(l,In,Option.GetImpliedVolatility(put_Code)); //put iv       Excel.SetRowData(l,Jn,Option.GetExercisePrice(put_Code)); //put 행사가       Excel.SetRowData(l,Kn,Option.GetBid(put_Code,1)); //put bid       Excel.SetRowData(l,Ln,Option.GetAsk(put_Code,1)); //put ask        if(HHMMSS >= 154500)       {           Main.KillTimer(1);           Excel.Save();                 Main.MessageList("======",HHMMSS, "종료","======");                    }   } }  
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-10-06 17:43:40

안녕하세요 예스스탁입니다. Main.MessageList("======",HHMMSS(), "IV_calc 시작","======"); HHMMSS가 변수이므로 ()를 삭제하셔야 합니다. 즐거운 하루되세요 > 바둑이 님이 쓴 글입니다. > 제목 : 옵션 내재변동성 엑셀로 구현하기 > 안녕하세요. 다음과 같이 에러메시지가 뜨며 엑셀에 구동이 되질 않습니다. Excel-TypeError:Property 'HHMMSS' of object [object Obiect] is not a function 첨부파일 엑셀에 표현될 수 있도록 수정 부탁드립니다. 감사합니다. var cnt; var HHMMSS; function Main_OnStart() { var d = new Date();       HHMMSS = d.getHours()*10000 + d.getMinutes()*100 + d.getSeconds();   var temp_code = Option.GetATMCallRecent(0,0);       Excel.SetRowData(1, "O2", Option.GetRemainDays(temp_code));       Excel.SetRowData(1, "P2", Option.RiskFreeRate);           if(HHMMSS >= 090100 && HHMMSS < 154500)         {                 Main.MessageList("======",HHMMSS(), "IV_calc 시작","======");               Main.SetTimer(1, 5000); //5초 마다 실행               cnt = 2;                    } } function Main_OnTimer(nEventID){    if(nEventID ==1)       {             var d = new Date();           HHMMSS = d.getHours()*10000 + d.getMinutes()*100 + d.getSeconds(); var call_Code, put_Code,ksp_price ;                                        cnt = cnt+1;              var An = "A"+cnt; //시간             var Bn = "B"+cnt; //기초자산 var Cn = "C"+cnt; //Call  var Dn = "D"+cnt; //Call  var En = "E"+cnt; //Call bid var Fn = "F"+cnt; //Call ask             var In = "I"+cnt; //put iv             var jn = "j"+cnt; //put 행사가             var Kn = "K"+cnt; //put bid             var Ln = "L"+cnt; //put ask        Main.MessageList("======",HHMMSS, "To_Excel","======");          ksp_price = ksp.current;          call_Code = Option.GetATMCallRecent(0,0);          put_Code = Option.GetATMPutRecent(0,0);        Excel.SetRowData(l,An,get_date_time()); //시간       Excel.SetRowData(l,Bn,ksp_price); //기초자산              Excel.SetRowData(l,Cn,Option.GetImpliedVolatility(call_Code)); //Call iv       Excel.SetRowData(l,Dn,Option.GetExercisePrice(call_Code)); //Call 행사가       Excel.SetRowData(l,En,Option.GetBid(call_Code,1)); //Call bid       Excel.SetRowData(l,Fn,Option.GetAsk(call_Code,1)); //Call ask              Excel.SetRowData(l,In,Option.GetImpliedVolatility(put_Code)); //put iv       Excel.SetRowData(l,Jn,Option.GetExercisePrice(put_Code)); //put 행사가       Excel.SetRowData(l,Kn,Option.GetBid(put_Code,1)); //put bid       Excel.SetRowData(l,Ln,Option.GetAsk(put_Code,1)); //put ask        if(HHMMSS >= 154500)       {           Main.KillTimer(1);           Excel.Save();                 Main.MessageList("======",HHMMSS, "종료","======");                    }   } }