파이썬으로 주식 거래 시스템 구축

CHAPTER 6. 보유한 종목, 미체결 종목, 분석된 종목 합치기

Dimas 2020. 7. 23. 20:00

저번 게시글에서는 가져온 데이터를 바탕으로 종목을 분석하는 과정을 살펴봤다.

이번 게시글에서는 보유 종목들과 미체결 종목, 분석된 종목을 유지 관리할 수 있도록 구성한다.

 

저번 게시글에서 분석한 종목들을 files 폴더 안의 condition_stock.txt 파일로 저장하였다. 이번에는 그 파일을 불러온다.

먼저 파일이 존재하는지 확인을 하고, 있으면 open해준다.

그 다음 한 줄씩 읽어와서 탭(\t)을 기준으로 문자열을 잘라준다.

또한 다음 줄로 띄어쓸 때 사용한 \n 또한 split()함수를 한 번 더 사용하여 문자를 제거하고 각 행을 구분한다.

다음으로 최종 결과를 딕셔너리에 담는다.

마지막으로 __init__() 함수에 관련 변수와 read_code() 함수를 추가한다.

read_code() 함수를 추가할 때 10초 뒤에 실행하도록 만든 이유는 이전 코드의 작업들이 안전하게 완료되도록 기다리기 위함이다.

지금까지 만들어진 딕셔너리는 총 3가지이다. 보유 종목을 담은 account_stock_dict, 미체결 종목을 담은 not_account_stock_dict, 방금 만든 portfolio_stock_dict다. 이를 유지 관리의 편의성을 위해 하나의 딕셔너리로 구성한다.

책에서는 각각의 딕셔너리에 저장하는 방법을 사용하지만 하나의 딕셔너리에 데이터를 담아 사용하는 방법을 선호하는 독자를 위해 하나의 딕셔너리에 모으는 과정도 추가하였다.

주의해야 할 점은 리스트, 딕셔너리와 같은 데이터를 저장하는 타입들은 새로운 변수로 데이터를 할당해도 데이터 주소가 공유된다는 것이다. 책에 관련 예제가 상세하게 적혀있으나 공부하기 싫으니까 난 적지 않겠다.

다음으로 종목별로 스크린 번호를 할당한다. 스크린 번호는 API 이용하는데 중요한 개념이다. 데이터의 과부하를 최적화하며, 키움 증권에 요청하는 데이터들을 편리하게 관리할 수 있게 해준다. 자세한 원리는 아마 다음? 아니면 그 다음 게시글쯤에 나올 것 같다. 나도 아직 책을 다 안읽어서 설명할 수가 없다. 아무튼 종목마다 스크린 번호를 할당한다.

스크린 번호는 주로 변화되는 데이터를 받는 요청 부분에서 사용한다. 스크린 번호는 원하는 4자리 숫자로 구성하면 된다.

__init__() 함수 안에 선언한다.

self.screen_real_stock 변수는 지정한 종목의 실시간 정보를 요청할 때 사용하고, screen_meme_stock 변수는 주문을 요청할 때 사용한다.

screen_overwrite 변수에는 계좌평가, 미체결, 포트폴리오에 담긴 종목코드들을 중복되지 않게 모은다. 미체결종목은 딕셔너리의 키 값이 주문번호로 되어 있어 직접 종목코드를 가져오고 screen_overwrite에 추가한다.

마지막으로 이제 스크린 번호를 할당한다.

 init 함수에 선언한 스크린 번호, 주문용 ㅅ크린 번호는 문자열 타입으로 되어있어 int 함수를 이용해 숫자 타입으로 변환하여 계산한다.

한 개의 스크린 번호로 요청할 수 있는건 100개까지여서 조금 여유분을 두고 50개로 지정한다. 그래서 50으로 나눈 값이 0일 때 스크린 번호를 카운트해준다.

모든 스크린 번호는 포트폴리오 딕셔너리에 추가한다. 이 포트폴리오 딕셔너리는 앞으로 실시간으로 변하는 종목의 데이터를 보관하고 업데이트 하는 용도로 사용할 것이다. 모든 딕셔너리에서 가장 중요한 딕셔너리로 볼 수 있다.

screen_number_setting() 함수를 다 만들었으니 init() 함수에서 실행을 시켜준다.

챕터 6이 그리 길지 않아서 다행이다. 다음 챕터에서는 실시간 종목 분석 및 매매를 진행한다. 스크린 번호에 대한 설명 또한 챕터7에 나온다고 예전부터 책에 적혀있었으니 기대해야겠다.

 

오늘은 여기까지.

 

 

이 카테고리 게시글들은 아래 책을 따라하는 후기로, 자세한 내용은 아래 책과 저자의 유튜브를 참고하시고, 예제소스는 저자의 깃헙에서 확인하실 수 있습니다.

책 정보 : 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개의 링크는 매 게시글마다 올라갈 예정입니다.