커뮤니티
예스스팟 Q&A
dmp 파일 문의드립니다.
[문의] 나스닥/SP500/골드 분·틱 6개 스크립트 동시 실행 시 약 30분 경과 지점 다운 - 크래시 덤프 분석 결과 첨부■ 증상ReqChartEx 요청 → 응답 → RemoveObject 지연삭제 → 다음 타임프레임 요청, 이 루프를분봉(1~110분) / 틱봉(30~1000틱) 전체 타임프레임에 대해 페이싱 0~1000ms로 끝없이 순환.나스닥(NQU26), SP500(ESU26), Gold(GCZ26) 종목마다 분/틱 파일로 나눠 총 6개 파일을 동시실행하면 약 30분 경과 시점에 프로그램이 다운됩니다.■ 크래시 덤프(.dmp) 분석 결과 (직접 파싱해서 확인한 사실)- 예외 코드: 0xC0000005 (ACCESS_VIOLATION)- 접근 종류: 읽기(read) 시도, 대상 주소 = 0x0 (널 포인터)- 크래시 발생 위치: SystemTrading.dll 모듈 내부, 오프셋 0x3D65D- 크래시 순간 레지스터: EAX=0, EBX=0, ECX=0, EDX=0 (ECX는 x86 MSVC에서 보통 this 포인터를 담는 레지스터라, 이미 유효하지 않은 객체에 대해 멤버함수를 호출하려다 발생한 크래시로 보입니다.)- 크래시 지점 직전 스택(리턴주소 후보): YesChartLibrary.dll, YesSystemChart.dll (둘 다 차트 관련 DLL로, 차트 객체 처리 도중 SystemTrading.dll로 진입해 크래시)■ 저희 쪽에서 자체 점검한 내용- ReqChartEx 응답을 받은 뒤 RemoveObject로 삭제하는 구조에서, 삭제 타이머와 다음 요청 타이머가 동시에 도는 구간이 있어 이론상 삭제 전에 객체가 재할당될 수 있는 구조적 문제를 발견하여 큐(대기열) 방식으로 수정, 삭제 성공/실패 여부와 누적 생성-삭제 카운트를 로그로 추적하도록 진단 스크립트를 개선해 재현 테스트 중입니다.- 다운 직전 로그에서 특정 응답이 7초 이상 지연되는 현상(SLOW_RESPONSE)도 함께 확인되어, 응답 지연과 크래시 사이의 연관 가능성도 의심하고 있습니다.■ 문의드리고 싶은 부분1. SystemTrading.dll+0x3D65D 부근에서 차트 객체(ChartEx)를 참조하는 코드 중, 객체가 삭제되었거나 유효하지 않을 때 널 체크 없이 접근하는 구간이 있는지 내부적으로 확인 가능하신지요.2. 다중 종목(6개 파일)에서 ReqChartEx를 짧은 주기로 반복 호출할 때, 엔진 내부에 차트 객체 핸들 개수 제한이나 동시 요청 제한이 있는지, 있다면 권장 상한값을 안내해주실 수 있는지요.3. RemoveObject 호출 시 이벤트 핸들러(OnRcvChartEx) 내부가 아닌 별도 타이머에서 지연 삭제하는 저희 방식 자체가 엔진 설계상 안전한지, 혹은 권장되는 다른 삭제 시점/방식이 있는지 안내 부탁드립니다.첨부: eBestYesTraderRun_26_08_10_20_30_11.dmp
2026-08-10
8
글번호 233205
프로그램 다운 문의 2
약간 다른 방식의 실행파일입니다. 마찬가지로 3개 정도는 잘 다운이 안되는데 4개부터는 30분정도 되면 다운됩니다.방식 : 워밍업이 끝나면 최대 208개 차트객체를 세션 내내 동시 보유하고, Main_OnBarAppended로 실시간 봉을 받는 구조입니다. 여기에 3종목을 동시에 돌리면 최대 624개 객체가 동시에 떠 있게 됩니다. 뭐가 문제가 있는건지 확인 부탁드립니다.// [2안 진단본 - 예스스팟 문의용 최소 구조]function Main_OnStart(){ // 타임프레임 목록(분봉110+틱봉98=208개) 순서대로 워밍업 요청 시작 processNext();}function processNext(){ var ChartSet = new ReqChartItem(MARKET_DATA_CODE); ChartSet.code = MARKET_DATA_CODE; ChartSet.period = CHART_PERIOD_MINUTE; // 또는 CHART_PERIOD_TICK ChartSet.cycle = 현재타임프레임; ChartSet.count = 워밍업봉수; // 큰 창(최대 4000) Main.ReqChartEx(ChartSet);}function Main_OnRcvChartEx(ChartEx){ // [1안과의 핵심 차이] 여기서 삭제하지 않고 계속 들고 있음 chartObjs[현재타임프레임라벨] = ChartEx; processNext(); // 다음 타임프레임 워밍업으로. 208개 끝나면 워밍업 종료.}function Main_OnBarAppended(ChartEx, nData){ // [2안 핵심] 보유중인 208개 차트객체 중 하나에서 새 봉이 완성될 때마다 // 예스스팟이 자동으로 호출 - 별도 재요청/폴링 없이 실시간 감지 var 라벨 = ChartEx에 매칭되는 타임프레임 찾기; var high = ChartEx.GetHigh(nData, 1); var low = ChartEx.GetLow(nData, 1); // (신호계산 없이 수신만 확인)}// [부가기능] 30분마다 "임시" 차트객체를 하나 더 받아서(원본은 안 건드림)// 최신 데이터로 대조하고, 그 임시객체만 지연삭제 - 온/오프 가능function attemptRefresh(){ var TempChartSet = new ReqChartItem(MARKET_DATA_CODE); TempChartSet.code = MARKET_DATA_CODE; TempChartSet.cycle = 대상타임프레임; Main.ReqChartEx(TempChartSet); // 응답 오면 대조 후 임시객체만 RemoveObject}
2026-08-10
10
글번호 233203
프로그램 다운 문의 1
안녕하세요.. 항상 감사합니다..// [1단계 진단본 - 예스스팟 문의용 최소 구조]function Main_OnStart(){ // 타임프레임 목록(분봉 1~110, 총 110개) 순서대로 하나씩 처리 시작 processNext();}function processNext(){ // 목록의 현재 타임프레임 하나에 대해 차트 요청 var ChartSet = new ReqChartItem(MARKET_DATA_CODE); ChartSet.code = MARKET_DATA_CODE; ChartSet.period = CHART_PERIOD_MINUTE; ChartSet.cycle = 현재타임프레임; // 1, 2, 3 ... 110분 순환 ChartSet.count = 요청봉수; // 처음엔 고정(최대 4000), 두번째 순환부터는 유동적(최소 82~) Main.ReqChartEx(ChartSet);}function Main_OnRcvChartEx(ChartEx){ // 받은 데이터는 보지 않고(신호계산 없음), 바로 다음 순서로 CH = ChartEx; Main.SetTimer(5, 300); // 300ms 뒤 삭제 Main.SetTimer(1, 0~1000); // 다음 타임프레임 요청까지 페이싱(0~1000ms)}function Main_OnTimer(nEventID){ if (nEventID == 5) Main.RemoveObject(CH); // 지연삭제 if (nEventID == 1) processNext(); // 다음 타임프레임으로 - 110개 끝나면 처음부터 무한반복}증상: 위 구조로 분봉 110개(또는 틱봉 98개)를 페이싱 0~1000ms로 끝없이 순환 — ReqChartEx → 응답 → 300ms 뒤 RemoveObject → 다음. 이렇게 반복하는 나스닥, sp500, gold 종목마다 분/틱 파일 이렇게 6개 파일(3종목×분/틱) 동시 실행 시 약 30분 경과 지점에서 다운됩니다.위 방식에 어떤 문제가 있는건지 확인 부탁드립니다..
2026-08-10
12
글번호 233202
수식 부탁드립니다.
스팟 디버깅창에 실시간 메세지 로그를 뿌려주는데 그것을 밖으로 실시간 모니터링 하려면 어떻게 하나요메모창을 열러두면 그곳에 자료를 실시간으로 볼수 있나요
2026-08-10
14
글번호 233201
문의 드립니다
안녕하세요예스스팟 시스템 적용 설정을 하려고하는데 몇가지 문의 사항이 있습니다1. 예스스팟에서 시스템식의 ExitLong·ExitShort 신호를 감지하여 주문할 때, 신호 감지 가능 시간은 몇 시까지인가요?2. 15:40 이후에는 예스랭귀지 주문이 취소되거나 주문 불가한 것으로 알고 있는데, 예스스팟의 동시호가 청산 설정은 이 제한과 별도로 작동하나요?3. 예스스팟 자체 동시호가 청산 기능을 설정한 경우 시스템식에는 SetStopEndOfDay나 별도 시간청산 신호를 넣지 않아도 되는지 확인 부탁드립니다.4. 15:35~15:40 사이에 시스템식에서 청산신호가 발생하면 예스스팟이 이를 주문으로 처리하는지도 알려주세요.감사합니
2026-08-05
29
글번호 233128
답변완료
예스스팟 매도주문
// 3. 1차 익절 : 매수가 대비 설정된 비율(익절) 상승 시 설정된 비율(익절매도비율) 매도 if (unfillQty == 0 && curPrice >= avgCost * (1 + 익절 / 100) && ProfitTaken[code] == false) { var sellQty = Math.floor(qty * (익절매도비율 / 100)); if (sellQty > 0) { Main.MessageList(HHMMSS, "|1차익절|" + 익절매도비율 + "%최유리매도", code, curPrice); // 매도 가격 0 -> curPrice 적용 Account1.OrderSell(code, sellQty, curPrice, 3); ProfitTaken[code] = true; HighPrices[code] = curPrice; 1차 익절을 매도주문을 작성해서 실행하면 주문을 넣고 바로 주문취소 상태가 됩니다.예스스팟 미체결 내용에는주문번호, 주문가격, 호가유형(지정가), 주문수량 까지 다 작성되어 있고 주문상태가 주문취소로 되어 있습니다.날씨가 많이 덥네요.. 건강 조심하세요.
2026-08-05
37
글번호 233115
답변완료
RemoveObject
번거롭고 바쁘실텐데 매번 고맙습니다..RemoveObject 가 추가되면 따로 공지가 있나요? 어떻게 확인해야하나요?수고하세요..
2026-08-04
28
글번호 233106
dbals 님에 의해서 삭제되었습니다.
2026-08-04
4
글번호 233098
답변완료
14시 PUT 옵션 매수
데이트레이딩PUT 옵션 매수 수식 요청 드립니다.1. PUT 옵션 매수 - 진입시작 시간 : 140000 - 진입제한 시간 : 150000 - 행사가 선정 방법 1) 옵션시세표에서 현재가격이 0.02인 행사가가 1개인 경우는 그 행사가를 선택합니다. ex) 1502.50 0.05 1500.00 0.04 1497.50 0.03 1495.00 0.02 *******선택 1492.50 0.01 2) 옵션시세표에서 현재가격이 0.02인 행사가가 2개 이상인 경우는 내가격쪽 행사가를 선택합니다. ex) 1502.50 0.03 1500.00 0.02 *******선택 1497.50 0.02 1495.00 0.01 1492.50 0.01 - 선정된 행사가에서 0.02 체결이 발생하면 상대 매도1호가에 매수주문합니다. 수량4개. - 익절은 0.50 1개, 1.00 1개, 1.50 1개, 2.00 1개 입니다. - 익절하지 않은 수량은 151800에 모두 청산합니다.항상 고맙습니다.
2026-07-31
40
글번호 233064
답변완료
14시 call 옵션 매수
데이트레이딩call 옵션 매수 수식 요청 드립니다.1. call 옵션 매수 - 진입시작 시간 : 140000 - 진입제한 시간 : 150000 - 행사가 선정 방법 1) 옵션시세표에서 현재가격이 0.02인 행사가가 1개인 경우는 그 행사가를 선택합니다. ex) 1502.50 0.01 1500.00 0.02 ******* 선택 1497.50 0.03 1495.00 0.04 1492.50 0.05 2) 옵션시세표에서 현재가격이 0.02인 행사가가 2개 이상인 경우는 내가격쪽 행사가를 선택합니다. ex) 1502.50 0.01 1500.00 0.01 1497.50 0.02 1495.00 0.02 ******* 선택 1492.50 0.03 - 선정된 행사가에서 0.02 체결이 발생하면 상대 매도1호가에 매수주문합니다. 수량4개. - 익절은 0.50 1개, 1.00 1개, 1.50 1개, 2.00 1개 입니다. - 익절하지 않은 수량은 151800에 모두 청산합니다.항상 고맙습니다.
2026-07-31
51
글번호 233063