커뮤니티

수고하십니다.. ReqChartEx 문의드립니다.

프로필 이미지
dbals
2026-09-09 15:23:15
124
글번호 233560
답변완료

# 예스스팟 API 문의 — ReqChartEx 틱봉 데이터 불일치


## 확인된 현상


`ReqChartEx`로 30틱 주기 데이터를 요청했을 때 받는 (시각, 고가, 저가) 값이, 같은 종목·같은 시간대의 **HTS 화면 틱차트(30틱)와 일치하지 않습니다.**


## 실제 테스트 결과


- **대상**: E-mini NASDAQ100, 2026-09-08 23:25 ~ 2026-09-09 01:00 (약 95분)

- **비교 방법**: 같은 시간대를 HTS 화면에서 CSV로 내려받은 데이터와, `ReqChartEx(code, 30, CHART_PERIOD_TICK, ...)`로 API 요청해서 받은 데이터를 대조


| 항목 | HTS 화면(CSV) | API(ReqChartEx) |

|---|---|---|

| 같은 시간대 봉 개수 | **210개** | **168개** (약 20% 적음) |

| 봉 순서를 맞춰서 비교했을 때 고가/저가 일치율 | - | **최대 7%** |


## 문의하고 싶은 것


1. **`ReqChartEx`로 틱 주기 데이터를 요청할 때, 내부적으로 집계에 쓰는 틱 원본이 HTS 차트 화면이 쓰는 틱 원본과 동일합니까?** (예: 호가성 틱, 정정/취소성 틱 등을 API 응답에서는 제외하고 있는지)


2. 만약 다르다면, **API로 HTS 화면과 완전히 동일한 틱봉을 받을 수 있는 방법이 있습니까?** (다른 파라미터, 다른 함수 등)


3. **봉 시각(`GetSTime`)이 그 봉의 "시작 시각"입니까, "종료(마지막 체결) 시각"입니까?** (참고: 분봉의 경우 API 응답 시각이 HTS 화면보다 정확히 1분 앞서 있는 걸 확인했습니다 — 예를 들어 API가 "23:52"로 주는 봉이 HTS 화면에서는 "23:53"으로 표시됩니다. 봉 시작/종료 기준 차이로 추정됩니다.)


4. 실시간 구독(`Main_OnUpdateMarket`)으로 직접 집계한 틱봉도 API/HTS 화면과 다르게 나오는데, **실시간 시세구독이 HTS 화면·API와 동일한 틱을 실시간으로 전달하는 게 맞습니까?**


## 요청사항


가능하면 **HTS 화면과 100% 동일한 틱 데이터를 안정적으로 받을 수 있는 방법**을 안내 부탁드립니다.

답변 1
프로필 이미지

예스스탁 예스스탁 답변

2026-09-21 12:53:26

안녕하세요 예스스탁입니다. 1 저희 프로그램 내 차트와 스팟에서 생성하는 차트는 같습니다. 다만 증권사 자체 HTS에서 사용하는 데이터와 API로 제공하는 데이터는 다를수 있습니다. 2 해외선물은 데이터에 관련해서 증권사에서 직접 제공/관리하는 부분이라 저희쪽에서 처리를 할 방법이 없습니다. 증권사에서 처리해 주어야 하는 내용입니다. 3 예 시작시간입니다. GetSTime은 시작시간(start time)을 기준으로 리턴됩니다. 4 해당 부분도 증권사에서 부하등을 고려해서 실시간 시세가 다를 수 있습니다. 5 전화로 통화드린 수식입니다. 현재 차트가 어떤 주기인지 리턴하는 내용입니다. Plot1(DataCompress,"주기구분"); plot2(BarInterval,"세부주기"); //30틱이면 30리턴 차트 생성시에 위 지표를 추가를 적용해 차트를 생성합니다. 지표명은 #주기로 저장하시고 아래식 적용하시면 주기구분값과 세부주기값이 출력됩니다. var CT; function Main_OnStart() { //기본종목셋팅(연결선물 주간장,5분 5000개, 갭보정안함, 수정주가처리 안함) var ChartSet = new ReqChartItem("NQ.1",30,CHART_PERIOD_TICK, 1000, CHART_REQCOUNT_BAR, false, false); //지표 셋팅(지표는 복수로 지정이 가능흐므로 Array에 담아 지정) var IndSet = new Array(new IndicatorInfo("#주기")) Main.ReqChartEx(ChartSet, null, IndSet); } function Main_OnRcvChartEx(ChartEx) { CT = ChartEx; Main.MessageList("주기구분",CT.GetIndicatorData("#주기", 1,0)) // 0:틱, 1:초. 2:분, 3:일, 4: 주, 5:월 Main.MessageList("세부주기",CT.GetIndicatorData("#주기", 2,0)) // 30틱 차트이면 30리턴 } 즐거운 하루되세요