커뮤니티

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

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