답변완료
옵션 내재변동성 엑셀로 구현하기
안녕하세요.
다음과 같이 에러메시지가 뜨며 엑셀에 구동이 되질 않습니다.
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, "종료","======");
}
}
}
2020-09-01
1588
글번호 225311
답변완료
시스템 수식 수정 문의
0915시에 "분봉장중단타1.5" 파워검색 실시 후 나온 종목들에 대해 시스템을 실행하려고 합니다.
아래와 같이 코딩했는데... 어디가 문제인지 모르겠습니다. ㅜㅡ
var List;
var ListCnt;
var ReqCount;
var HHMMSS,HHMMSS1;
//스팟 첫 실행시
function Main_OnStart()
{
Main.MessageLog("시작"); //시작 메세지 출력
Main.SetTimer(1,60000);
}
function Main_OnTimer(nEventID)
{
if (nEventID == 1)
{
var d = new Date();
HHMMSS1 = HHMMSS;
HHMMSS = d.getHours()*10000+d.getMinutes()*100+d.getSeconds();
if (HHMMSS >= 093000 && HHMMSS1 < 0930) // 0930시 파워검색 실시
{
Main.ReqPowerSearch("분봉장중단타1.5");
Main.MessageLog("파워검색시작");
Main.KillTimer(1);
}
}
}
function Main_OnRcvItemList(aItemList, nCount) //종목검색 완료되어 리스트(검색된 종목코드) 수신
{
List = aItemList; //검색된 종목코드를 저장
ListCnt = nCount; //검색된 종목수 저장
Main.SetTimer(2,2000);//2초 타이머
ReqCount = 0;
}
function Main_OnTimer(nEventID)
{
if (nEventID == 2) //2초 단위로 한종목씩 차트 생성
{
if (ReqCount == ListCnt) //요청이 검색된 종목수 만큼 되었으면 터이머 종료
Main.KillTimer(2);
//ReqCount번째 종목요청
//종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청
//차트설정 :종목, 주기 분봉, 조회건수 1500
var C1 = new ReqChartItem(List[ReqCount], 1, CHART_PERIOD_MINUTE, 1500, CHART_REQCOUNT_BAR, false, false);
//시스템 설정
var S1 = new SystemInfo("feel29na_ver_1.0");
//C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성
Main.ReqChartEx(C1,S1);
ReqCount = ReqCount+1;//요청횟수 1증가
}
}
//생성된 차트에서 신호가 발생하면
function Main_OnRiseSignal(ChartEx, Signal)
{
//신호완성 출력
Main.MessageLog("신호발생");
//매수신호 발생하면 매수주문
if (Signal.signalKind == 1)
{
Account1.OrderBuy(Main.GetOrderCode(ChartEx.code),1,0,1);
Main.MessageLog("매수");
}
//청산신호 발생하면 매도주문
if (Signal.signalKind == 2)
{
Account1.OrderSell(Main.GetOrderCode(ChartEx.code),1,0,1);
Main.MessageLog("매수청산");
}
}
2020-08-17
2332
글번호 225298