커뮤니티

확장차트객체 문의드립니다.

프로필 이미지
도비
2021-07-26 15:33:20.0
2531
글번호 225516
답변완료
확장차트객체의 최대 수 제한이 있는걸로 알고 있어서 다음과 같은 프로세스로 진행을 하려고합니다 1. ChartEx 요청 ReqChartItem 2. ChartEx 응답 Main_OnRcvChartEx에서 ChartEx 객체 응답 3. ChartEx 데이터 저장 4. ChartEx 삭제 Main.RemoveObject 이용 for문으로 500종목을 반복하려고하는데요 4번의 ChartEx 삭제 후에는 1번으로 돌아가 요청을 해도 2번 응답이 오지를 않습니다 시스템적으로 제한이 있는 부분일까요?
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-08-19 11:45:32.0

안녕하세요 예스스탁입니다. 차트객체에 별도로 갯수제한은 없습니다. 스팟은 사용하는 총 객체수가 1000개를 넘지 않게만 사용하시면 됩니다. RemoveObject(Object) 설 명 : 객체를 삭제합니다. 수식에서 ReqMarketData, ReqChartEx 등을 이용해 동적으로 생성한 객체만 삭제할 수 있습니다. (주의 : 차트객체 삭제의 경우, 차트객체 요청 후 function Main_OnRcvChartEx(ChartEx)에서 바로 삭제할 경우 오류가 발생 할 수 있습니다. 가급적 다른 이벤트에서 삭제를 권장합니다.) 반 환 값 : 정상적으로 삭제되면 1을 삭제되지 않으면 0을 반환합니다. 매개변수 : Object – 삭제할 객체 위내용은 해당 함수 설명입니다. 아마 Main.RemoveObject함수가 차트객체 생성이벤트안에서 동작하게 구현하신것 같습니다. 차트객체가 만들어지면 데이타로드등 작업으로 완료까지 일정시간이 소모될수 있습니다. 그러므로 Main.RemoveObject는 해당 객체가 생성하는 곳에서 삭제를 하시면 안되고 다른이벤트에서 삭제하게 작성하셔야 합니다. 아래는 간단한 예시입니다. 차트객체생성후 1초뒤에 차트를 삭제하고 다음종목의 차트객체 생성을 요청하게 됩니다. //500개의 종목코드가 저장된 배열변수 var item = []; var VV = []; function Main_OnStart() { req = 0; var ChartSet = new ReqChartItem(item[req],1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var SystemSet = new SystemInfo("Test"); //지정한 차트설정과 시스템 설정으로 차트객체 요청 Main.ReqChartEx(ChartSet, SystemSet); } function Main_OnRcvChartEx(ChartEx) { //변수에 객체저장 var CT = ChartEx; //차트의 특정값을 저장 VV[req] = ChartEx.GetClose(1,0); //1초 타이머 Main.SetTimer(1, 1000); } //타이머 동작 function Main_OnTimer(nEventID) { if(nEventID == 1) { //타이머종료 Main.KillTimer(1); //객체삭제 Main.RemoveObject(CT); //요청카운트 1증가 req = req+1; //다음 종목요청 요청 if (req < item.length) { Main.MessageList("다음차트객체생성요청") var ChartSet = new ReqChartItem(item[req],1,CHART_PERIOD_MINUTE,1000,CHART_REQCOUNT_BAR,false,false); var SystemSet = new SystemInfo("Test"); Main.ReqChartEx(ChartSet, SystemSet); } else { Main.MessageList("차트객체생성종료") } } } 즐거운 하루되세요 > 도비 님이 쓴 글입니다. > 제목 : 확장차트객체 문의드립니다. > 확장차트객체의 최대 수 제한이 있는걸로 알고 있어서 다음과 같은 프로세스로 진행을 하려고합니다 1. ChartEx 요청 ReqChartItem 2. ChartEx 응답 Main_OnRcvChartEx에서 ChartEx 객체 응답 3. ChartEx 데이터 저장 4. ChartEx 삭제 Main.RemoveObject 이용 for문으로 500종목을 반복하려고하는데요 4번의 ChartEx 삭제 후에는 1번으로 돌아가 요청을 해도 2번 응답이 오지를 않습니다 시스템적으로 제한이 있는 부분일까요?