CYBOS Plus

전체

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

작성일
2024-04-16 오후 4:11:51
조회수
36
파이썬
운영
권**
오류 메시지
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
위 코드는 일자별 데이터를 36개씩 데이터를 요청하는 방식으로 되어있습니다.
1. 30분봉 데이터를 가져오려면 어떻게 해야하나요?
2. 최근일자를 기준으로 36개씩 데이터를 한번 요청하는 방식이 아닌 특정일자를 지정해서 해당 기간의 데이터를 가져오려면 어떻게 해야하나요? 자료실에 찾아봤는데 없는거 같아 질문드립니다!
첨부파일
의견(0)

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

PDF뷰어 다운로드

인쇄