예스스탁
예스스탁 답변
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, "종료","======");                 
  } 
 }
}