CYBOS Plus

전체

Re : 30분봉 데이터를 가져오려면 코드를 어떻게 수정해야하나요?

작성일
2024-04-17 오후 4:04:59
조회수
32
파이썬
운영
관**
오류 메시지
import win32com.client
import pandas as pd

def ReqeustData(obj):
# 데이터 요청
obj.BlockRequest()

# 통신 결과 확인
rqStatus = obj.GetDibStatus()
rqRet = obj.GetDibMsg1()
print("통신상태", rqStatus, rqRet)
if rqStatus != 0:
return None

# 일자별 정보 데이터 처리
count = obj.GetHeaderValue(1) # 데이터 개수
data = []
for i in range(count):
date = obj.GetDataValue(0, i) # 일자
open_price = obj.GetDataValue(1, i) # 시가
high = obj.GetDataValue(2, i) # 고가
low = obj.GetDataValue(3, i) # 저가
close = obj.GetDataValue(4, i) # 종가
diff = obj.GetDataValue(5, i) # 전일대비
vol = obj.GetDataValue(6, i) # 거래량
data.append([date, open_price, high, low, close, diff, vol])

return data

# 일자별 object 구하기
objStockWeek = win32com.client.Dispatch("DsCbo1.StockWeek")
objStockWeek.SetInputValue(0, 'A005930') # 종목 코드 - 삼성전자

# 데이터 요청
data = ReqeustData(objStockWeek)
if data is None:
exit()

# 연속 데이터 요청
NextCount = 1
while objStockWeek.Continue: # 연속 조회처리
NextCount += 1
if (NextCount > 2):
break
ret = ReqeustData(objStockWeek)
if ret == False:
exit()

# 데이터 프레임 변환
columns = ['일자', '시가', '고가', '저가', '종가', '전일대비', '거래량']
df = pd.DataFrame(data + ret, columns=columns)
df
안녕하세요. Plus 담당자입니다.

1. 30분봉 데이터를 가져오려면 어떻게 해야하나요?
    => 본봉 데이터를 가져오려면 차트 API를 사용해야 합니다.
         [주식,업종,ELW 차트] CpSysDib.StockChart
2. 최근일자를 기준으로 36개씩 데이터를 한번 요청하는 방식이 아닌 특정일자를 지정해서 해당 기간의 데이터를 가져오려면 어떻게 해야하나요?
    => 일자별 데이터 API는 최근일자를 기준으로 다음 데이터가 있으면 조회되는 구조이며
         특정일자를 지정해서 해당 기간의 데이터를 가져오는 기능은 없습니다.
         이것은 위에 적은 차트 API 도움말로 들어가서 요청구분을 일봉으로 하면서 종료일자~시작일자로 입력하면
         조회 가능할 것 같습니다.


감사합니다. 오늘도 좋은 하루되세요.

==================================================
위 코드는 일자별 데이터를 36개씩 데이터를 요청하는 방식으로 되어있습니다.
1. 30분봉 데이터를 가져오려면 어떻게 해야하나요?
2. 최근일자를 기준으로 36개씩 데이터를 한번 요청하는 방식이 아닌 특정일자를 지정해서 해당 기간의 데이터를 가져오려면 어떻게 해야하나요? 자료실에 찾아봤는데 없는거 같아 질문드립니다!
첨부파일
의견(0)

첨부파일을 PDF뷰어로 확인 하실수 있으며, PDF뷰어 미설치 고객께서는 우측 다운로드를 통해 설치 후 이용 가능 합니다.

PDF뷰어 다운로드

인쇄