저번 게시글에서는 보유 종목 정보를 가져오는 것까지 진행하였다.
이번 게시글에서는 미체결 종목을 가져오는 과정을 진행한다.
분량 조절을 잘못해서 짧은 게시글이 될 것 같다.
미체결에 대한 정보는 장이 종료되면 키움증권 자체에서 자동으로 취소되기 때문에 꼭 필요한 부분은 아니지만 프로그램을 중간에 다시 시작해야 할 때는 필요할 수 있다.
먼저 PyQt5.QtTest에 있는 것들을 임포트 해준다. (사실 아직 왜 하는지 모르겠다.)
그리고 not_concluded_account() 함수를 추가하고 미체결 종목에 대한 정보를 요청한다.
이 정보들 또한 받아올 슬롯 영역이 필요하다. 계좌평가잔고내역 정보를 불러올 때와 같다. 다만 미체결 종목은 100개까지 카운트한다고 한다. 이 카운트 수는 HTS상에서 한 번에 확인할 수 있는 수인 것 같다. 저번 게시글에서 본 보유 종목 수는 책에서는 좀 더 자세히 HTS 화면으로 보여주는데 HTS에서는 보유 종목을 볼 때 한 페이지에 20개가 출력되고 다음 버튼을 누르면 21번째 종목부터 표시된다고 한다. 나는 HTS를 다뤄본 적이 없어 따로 캡처하진 않았는데 아무튼 그렇다. 난 처음에 GetRepeatCnt함수 자체가 20개만 불러온다고 오해한 적이 있기 때문에 혹시나 하는 마음에 달아본다.
각 변수들 중 몇가지 책에 있는 설명을 보태자면,
주문상태는 접수, 확인, 체결 중에 어떤 상태인지 보여주고
주문구분은 신규매수, 신규매도, 정정매수, 정정매도, 매수취소, 매도취소 6가지의 주문 종류를 뜻한다.
이어서 위 변수들의 형을 변환한다.
미체결조회 결괏값은 " 결과 " 와 같이 앞뒤로 공백이 많이 붙어 데이터 처리가 안되기 때문에 파이썬의 내장 함수인 strip() 함수를 이용해 공백을 지워준다.
매매구분은 +매수, -매도, +매수정정, -매도정정 처럼 =, - 부호가 붙어서 반환될 수 있기 때문에 .lstrip('+'), .lstrip('-') 을 사용한다. .lstrip('+') 은 맨 앞에 + 가 있으면 + 를 지워주는 역할을 한다.
최종적으로 딕셔너리에 데이터를 업데이트한다.
미체결요청은 같은 종목을 여러 번 주문할 수 있어서 같은 종목에 대해서도 주문번호가 다르게 할당되고, 가격 형태, 주문 형태가 주문별로 다르기 때문에 같은 종목이어도 구분을 해야 하기 때문에 종목코드가 아닌 주문번호를 키값으로 정보를 업데이트한다. 그래서 주문번호가 딕셔너리에 이미 존재하는지 확인해야 한다.
그리고 딕셔너리 변수를 __init__()에 작성한다.
책에서는 지금까지 작성한 코드를 실행하면 미체결 종목 정보들이 나오는데, 나는 현재 미체결 종목이 없어서 확인할 수는 없지만 아마 안 나올 것 같다. 왜냐면 not_concluded_account() 함수를 실행하는 부분이 없기 때문이다. 일단 그렇다고 하고 넘어가자. 다음 부분에는 어차피 실행하는 부분도 포함해서 나온다.
위 코드는 5초 뒤에 not_concluded_account 함수를 실행하는 코드이다. TR요청을 키움 서버에 빠르게 여러 번 요청하면 과도한 조회로 명시적 에러가 발생한다. 여러 번 TR 조회를 계속하다 보면 과도한 조회로 연결이 끊길 위험이 있어 시간 간격을 두는 것이다.
QTimer.singleShot 타이머는 동시성 처리를 지원한다. 즉 5초 뒤에 not_concluded_account 함수를 실행하겠지만, 5초 동안 아무것도 안 하고 기다리는 게 아닌 다음 코드를 우선 실행하면서 5초를 기다린다.
장 시간이 아니기 때문에 내 계좌의 미체결 종목 정보를 불러올 수 없어 확인하지 못했다는 게 아쉽다.
챕터 4 계좌 정보 가져오기는 여기까지다. 파이썬도, 주식도 거의 접해보지 않았어서 너무 어려웠다. 코드는 작성했지만 아직 이해하지 못한 부분도 많다. 다음 챕터를 진행하면서 이해가 힘들어도 우선 익숙해졌으면 좋겠다.
오늘은 여기까지.
이 카테고리 게시글들은 아래 책을 따라하는 후기로, 자세한 내용은 아래 책과 저자의 유튜브를 참고하시고, 예제소스는 저자의 깃헙에서 확인하실 수 있습니다.
책 정보 : https://book.naver.com/bookdb/book_detail.nhn?bid=16330702
손가락 하나 까딱하지 않는 주식 거래 시스템 구축(위키북스 프로그래밍 & 프랙티스 시리즈 23)
매일 주식만 바라보던 일상에서 해방되어 가족 또는 친구들과 행복한 시간을 보내길 바랍니다!24시간 자동으로 주식을 분석하고 거래하는 시스템을 구축하는 방법을 배우고 나머지 시간은 더 ��
book.naver.com
저자 유튜브 : www.youtube.com/watch?v=1lHzaihEb48&list=PLDtzZPtOGenaSknTbsb6x6L39V0VPz_rS&index=2&t=0s
( 위 유튜브는 이 책을 설명해주는 재생목록의 첫 번째 영상입니다.)
저자 Github : https://github.com/programgarden
programgarden - Overview
책 : 24시간 운영 가능한 주식투자 시스템 구축하기[파이썬으로 만드는 자동 트레이딩 시스템] 유튜브: 프로그램 동산 학습코드 자료입니다. - programgarden
github.com
예제 소스는 저자의 깃허브에서 확인하실 수 있습니다.
위 3개의 링크는 매 게시글마다 올라갈 예정입니다.
'파이썬으로 주식 거래 시스템 구축' 카테고리의 다른 글
CHAPTER 5. API를 이용해 투자 방식에 맞는 종목 분석하기 두 번째 이야기 (0) | 2020.07.21 |
---|---|
CHAPTER 5. API를 이용해 투자 방식에 맞는 종목 분석하기 첫 번째 이야기 (0) | 2020.07.17 |
CHAPTER 4. 계좌 정보 가져오기 네 번째 이야기 (0) | 2020.07.13 |
CHAPTER 4. 계좌 정보 가져오기 세 번째 이야기 (0) | 2020.07.09 |
CHAPTER 4. 계좌 정보 가져오기 두 번째 이야기 (3) | 2020.07.06 |