CREON Plus

[파이썬] 주식 일자별 조회(다음)

상품종류
주식
언어종류
파이썬
작성일
2017/08/31
조회수
10711

파이썬으로 구현된 주식 일자별 데이터 구하는 예제입니다.

연속처리 부분 추가되었습니다. (하단 부분 참고)


- 샘플 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import win32com.client
 
def ReqeustData(obj):
    # 데이터 요청
    obj.BlockRequest()
 
    # 통신 결과 확인
    rqStatus = obj.GetDibStatus()
    rqRet = obj.GetDibMsg1()
    print("통신상태", rqStatus, rqRet)
    if rqStatus != 0:
        return False
 
    # 일자별 정보 데이터 처리
    count = obj.GetHeaderValue(1)  # 데이터 개수
    for i in range(count):
        date = obj.GetDataValue(0, i)  # 일자
        open = 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)  # 종가
        print(date, open, high, low, close, diff, vol)
 
    return True
 
 
 
# 연결 여부 체크
objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos")
bConnect = objCpCybos.IsConnect
if (bConnect == 0):
    print("PLUS가 정상적으로 연결되지 않음. ")
    exit()
 
 
# 일자별 object 구하기
objStockWeek = win32com.client.Dispatch("DsCbo1.StockWeek")
objStockWeek.SetInputValue(0'A005930')   #종목 코드 - 삼성전자
 
# 최초 데이터 요청
ret = ReqeustData(objStockWeek)
if ret == False:
    exit()
 
 
# 연속 데이터 요청
# 예제는 5번만 연속 통신 하도록 함.
NextCount = 1
while objStockWeek.Continue:  #연속 조회처리
    NextCount+=1;
    if (NextCount > 5):
        break
    ret = ReqeustData(objStockWeek)
    if ret == False:
        exit()
 
 
cs


- 실행 결과

첨부파일
의견(5)
이현우 먼저, CybosPlus라는 툴과 예제 소스를 함께 첨부해주신 것 너무 감사합니다.
댓글을 남긴 건 문의 사항을 드리고 싶어서인데요, 소스 주석 수정에 관한 건입니다.
RequestData 하단부에 데이터를 가져오는 부분의 주석문이 수정되어야 할 듯합니다.
close, diff, vol 모두 종가라고 적혀있는데요,
diff는 뭔지 모르겠으나 vol은 확실히 종가가 아닌 거래량을 뜻하는 데이터로 사려됩니다.

수정 반영 고려해주시면 감사하겠습니다. (2019.07.11)
이현우 또한 각 리턴값들의 단위 등에 대해 알고 싶으면 어떤 자료를 참고할 수 있는지도 궁금합니다. diff의 경우 어떤 의미인지가 살짝 감 잡기가 힘드네요. (2019.07.11)
이현우 질문이 조금 넌센스였네요. 사과드립니다.
GUI를 참고하면 대부분 유추할 수 있는 값들이로군요. 감사합니다. (2019.07.11)
이현우 연속 요청의 동작 매커니즘에 대해 여쭤보고 싶은 게 있습니다.
따로 객체의 카운터값을 변경해주는 코드 내용이 없는데,
연속처리되는 매커니즘이 궁금합니다. 요청을 할 때 객체의 상태를 대신증권 서버 쪽에서
체크를 하는 건가요?
감사합니다. (2019.07.11)
EX회원 안녕하세요 혹시 답변이 따로 오셨나요? 본인한테만 답변이 오는건지 궁금합니다. (2020.09.03)

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

PDF뷰어 다운로드

인쇄