커뮤니티

조회대상종목이 아닙니다

프로필 이미지
재령
2021-04-16 17:20:21
2644
글번호 225465
답변완료
항상 수고 많으십니다. 기존에 매매한 종목을 엑셀이나 데이터베이스에 저장해서 장 시작전에 종목객체를 생성하고 있습니다 종목합병의 이슈에 의해서 기존의 종목코드가 없어지게 되는 경우가 있는데요 이러한 경우 종목객체의 생성이 되지 않습니다. 이를테면 동성화학 같은경우는 종목합병에 의해서 종목코드가 없어진 경우인데요. 다음과 같은 에러메세지가 생성되고 다른종목도 덩달아 종목객체 생성이 되지 않으며 수식이 먹통이 됩니다. TypeError : "005190"는 조회대상종목이 아닙니다. 이를 일일이 확인 할 수 없는 상황인데요 이를 피해갈 수 있는 수식을 부탁 드립니다.
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-05-06 16:44:00

안녕하세요 예스스탁입니다. 해당 오류메세지가 나오면 스크립트가 멈추게 됩니다. 그러므로 종목객체 요청전에 해당 종목이 유효한 종목인지 확인하고 종목검색을 요청하게 해주셔야 합니다. 유효한 종목인지는 Main.GetOrderCode로 확인할 수 있습니다. 해당 함수에 종목코드를 지정하면 해당종목이 거대대상종목이 아니면 ""를 리턴하게 됩니다. 그러므로 유효하지 않은 종목코드가 있는 리스트에서 각 종목코드를 해당 함수로 검사해서 ""가 리턴되면 해당 리스트에서 제외하고 제외후에 종목객체를 순서대로 요청하게 작성하시면 됩니다. //005191이 있는 종목리스트 var List = ["005930","017670","005191","090430","042660"]; var MK = []; var req; function Main_OnStart() { Main.MessageList("제외전:",List.length, List); for (var i = List.length-1 ; i >= 0; i--) { if (Main.GetOrderCode(List[i]) == "") { List.splice(i,1); } } Main.MessageList("제외후:",List.length, List); req = 0; Main.MessageList("종목객체요청:",List[req]); Main.ReqMarketData(List[req]); } function Main_OnRcvMarketData(MarketData) { if (MarketData.code == List[req]) { Main.MessageList("종목객체생성:",MarketData.code ); MK[req] = MarketData; req = req+1; if (req < List.length) { Main.MessageList("종목객체요청:",List[req]); var S = Main.ReqMarketData(List[req]); //종목객체생성제한시간에 걸리면 if (S == -1) { //15초 타이머 동작 Main.SetTimer(1, 15000); } } else { Main.MessageList("종목객체요청완료"); } } } function Main_OnTimer(nEventID) { //15초 후 if (nEventID == 1) { //타이머 종료 Main.KillTimer(1); //재요청 Main.MessageList("종목객체요청:",List[req]); Main.ReqMarketData(List[req]); } } 즐거운 하루되세요 > 재령 님이 쓴 글입니다. > 제목 : 조회대상종목이 아닙니다 > 항상 수고 많으십니다. 기존에 매매한 종목을 엑셀이나 데이터베이스에 저장해서 장 시작전에 종목객체를 생성하고 있습니다 종목합병의 이슈에 의해서 기존의 종목코드가 없어지게 되는 경우가 있는데요 이러한 경우 종목객체의 생성이 되지 않습니다. 이를테면 동성화학 같은경우는 종목합병에 의해서 종목코드가 없어진 경우인데요. 다음과 같은 에러메세지가 생성되고 다른종목도 덩달아 종목객체 생성이 되지 않으며 수식이 먹통이 됩니다. TypeError : "005190"는 조회대상종목이 아닙니다. 이를 일일이 확인 할 수 없는 상황인데요 이를 피해갈 수 있는 수식을 부탁 드립니다.