커뮤니티

[질문]종목검색후 매매수식오류.조회대상아닙니다.

프로필 이미지
만들레영토
2015-10-13 11:08:25
2214
글번호 223689
답변완료
아래 수식은 "종목검색"이후 매매방식의 수식을 그대로 가져왔는데 Main.ReqChartEx(C1,S1); --> 여기서 오류가 나옵니다. TypeError: "undefined"는 조회대상이 아닙니다 1. 무엇이 잘못되었나요? 2. 종목검색후 --> 차트생성에서 차트가 화면에 팝업?으로 나오는건지요? 아니면 차트보기를 클릭해야만 차트를 볼 수 있는건지요? 3. 파워종목검색의 경우 실시간으로 종목이 신규로 나오는 것이 아닌지요? 검색을 클릭하면 그때 다시 종목이 신규로 업데이트 됩니다. 무엇이 문제인가요? 참고로 위 오류가 뜨지만, 차트보기 누르면 주식 매수/매도 매매가 진행됩니다.. var List; var ListCnt; var ReqCount; //스팟 첫 실행시 function Main_OnStart() { // 파워종목검색의 test Search라는 이름의 사용자검색조건 검색 요청 Main.ReqPowerSearch("test Search") } //종목검색 완료되어 리스트(검색된 종목코드) 수신 function Main_OnRcvItemList(aItemList, nCount) { //검색된 종목코드를 저장 List = aItemList; //검색된 종목수 저장 ListCnt = nCount; Main.SetTimer(1,2000);//2 타이머 ReqCount = 0; } function Main_OnTimer(nEventID) { //2초 단위로 한종목씩 차트 생성 if (nEventID == 1) { //요청이 검색된 종목수 만큼 되었으면 터이머 종료 if (ReqCount == ListCnt) Main.KillTimer(1); //ReqCount번째 종목요청 //종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청 //차트설정 : 연결선물,1분봉,5000개, 수정주가X, 갭보정X var C1 = new ReqChartItem(List[ReqCount],1,CHART_PERIOD_DAILY,5000,CHART_REQCOUNT_BAR,false,false); //시스템 설정 var S1 = new SystemInfo("Stochastics K_D"); //C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성 Main.ReqChartEx(C1,S1); ReqCount = ReqCount+1;//요청횟수 1증가 } } #생성된 차트에서 신호가 발생하면 function Main_OnRiseSignal(ChartEx, Signal) { //매수신호 발생하면 매수주문 if (Signal.signalKind == 1) { Account1.OrderBuy(Main.GetOrderCode(ChartEx.code),1,0,1); } //청산신호 발생하면 매도주문 if (Signal.signalKind == 2) { Account1.OrderSell(Main.GetOrderCode(ChartEx.code),1,0,1); } }
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-10-20 15:43:37

안녕하세요 예스스탁입니다. 1. 해당 오류메세지는 타이머 이벤트가 한번 더 수행되어서 검색된 모든 종목에 대해서 차트를 생성하고 더이상 생성할 종목이 없는데 1회 더 타이머 이벤트가 수행됨으로써 발생하는 메세지입니다. 아래와 같이 수정하시면 발생하지 않습니다. if (ReqCount == ListCnt) Main.KillTimer(1); 부분을 타이머 이벤트에서 가장 하단으로 옮기시면 발생하지 않습니다. if (ReqCount == ListCnt) Main.KillTimer(1); var List; var ListCnt; var ReqCount; //스팟 첫 실행시 function Main_OnStart() { // 파워종목검색의 test Search라는 이름의 사용자검색조건 검색 요청 Main.ReqPowerSearch("test Search") } //종목검색 완료되어 리스트(검색된 종목코드) 수신 function Main_OnRcvItemList(aItemList, nCount) { Main.MessageList(aItemList); //검색된 종목코드를 저장 List = aItemList; //검색된 종목수 저장 ListCnt = nCount; Main.SetTimer(1,2000);//2 타이머 ReqCount = 0; } function Main_OnTimer(nEventID) { //2초 단위로 한종목씩 차트 생성 if (nEventID == 1) { //ReqCount번째 종목요청 //종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청 //차트설정 : 연결선물,1분봉,5000개, 수정주가X, 갭보정X var C1 = new ReqChartItem(List[ReqCount],1,CHART_PERIOD_DAILY,5000,CHART_REQCOUNT_BAR,false,false); //시스템 설정 var S1 = new SystemInfo("Stochastics K_D"); //C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성 Main.ReqChartEx(C1,S1); ReqCount = ReqCount+1;//요청횟수 1증가 //요청이 검색된 종목수 만큼 되었으면 터이머 종료 if (ReqCount == ListCnt) Main.KillTimer(1); } } 2 차트를 생성하면 숨김상태로 차트가 생성됩니다. 보고자 하시면 차트보기를 클릭하시면 나타납니다. 3 첨부하신 식은 스팟이 적용되고 최초 시작시점에서 1회만 검색이 됩니다. 주기적으로 계속 자동으로 종목검색을 실행하는 것은 아닙니다. 즐거운 하루되세요 > 만들레영토 님이 쓴 글입니다. > 제목 : [질문]종목검색후 매매수식오류.조회대상아닙니다. > 아래 수식은 "종목검색"이후 매매방식의 수식을 그대로 가져왔는데 Main.ReqChartEx(C1,S1); --> 여기서 오류가 나옵니다. TypeError: "undefined"는 조회대상이 아닙니다 1. 무엇이 잘못되었나요? 2. 종목검색후 --> 차트생성에서 차트가 화면에 팝업?으로 나오는건지요? 아니면 차트보기를 클릭해야만 차트를 볼 수 있는건지요? 3. 파워종목검색의 경우 실시간으로 종목이 신규로 나오는 것이 아닌지요? 검색을 클릭하면 그때 다시 종목이 신규로 업데이트 됩니다. 무엇이 문제인가요? 참고로 위 오류가 뜨지만, 차트보기 누르면 주식 매수/매도 매매가 진행됩니다.. var List; var ListCnt; var ReqCount; //스팟 첫 실행시 function Main_OnStart() { // 파워종목검색의 test Search라는 이름의 사용자검색조건 검색 요청 Main.ReqPowerSearch("test Search") } //종목검색 완료되어 리스트(검색된 종목코드) 수신 function Main_OnRcvItemList(aItemList, nCount) { //검색된 종목코드를 저장 List = aItemList; //검색된 종목수 저장 ListCnt = nCount; Main.SetTimer(1,2000);//2 타이머 ReqCount = 0; } function Main_OnTimer(nEventID) { //2초 단위로 한종목씩 차트 생성 if (nEventID == 1) { //요청이 검색된 종목수 만큼 되었으면 터이머 종료 if (ReqCount == ListCnt) Main.KillTimer(1); //ReqCount번째 종목요청 //종목검색 후 종목코드가 aItemList에 배열로 담겨오는데 [0]번방 부터 요청 //차트설정 : 연결선물,1분봉,5000개, 수정주가X, 갭보정X var C1 = new ReqChartItem(List[ReqCount],1,CHART_PERIOD_DAILY,5000,CHART_REQCOUNT_BAR,false,false); //시스템 설정 var S1 = new SystemInfo("Stochastics K_D"); //C1차트설정, S1시스템설정으로 첫번째 종목 차트 생성 Main.ReqChartEx(C1,S1); ReqCount = ReqCount+1;//요청횟수 1증가 } } #생성된 차트에서 신호가 발생하면 function Main_OnRiseSignal(ChartEx, Signal) { //매수신호 발생하면 매수주문 if (Signal.signalKind == 1) { Account1.OrderBuy(Main.GetOrderCode(ChartEx.code),1,0,1); } //청산신호 발생하면 매도주문 if (Signal.signalKind == 2) { Account1.OrderSell(Main.GetOrderCode(ChartEx.code),1,0,1); } }