매일 주식만 바라보던 일상에서 해방되어 가족 또는 친구들과 행복한 시간을 보내길 바랍니다!
24시간 자동으로 주식을 분석하고 거래하는 시스템을 구축하는 방법을 배우고 나머지 시간은 더 멋지게 보내고 싶은 분들을 위한 책입니다. 프로그램을 처음 접하는 초보자부터 IT 업계에 종사하는 개발자까지 모두가 볼 수 있게 쉽게 구성하였으며, 저자가 실제로 사용 중인 주식 자동화 알고리즘을 기반으로 설명하고 있습니다.
★ 이 책에서 다루는 내용 ★
- 증권사에서 제공하는 API로 주식을 분석하고 24시간 자동으로 매매하는 프로그램을 구축한다.
- HTS의 조건검색식을 파이썬에서 사용하는 방법을 배운다.
- 주식을 처음 접하는 독자를 위해서 시스템 구축에 필요한 내용을 기초부터 살펴본다.
- 예제 코드와 함께 제공되는 동영상 강의를 통해서 빠르고 쉽게 학습할 수 있다
- 매수 신호를 포착하는 백테스팅 분석법도 다룬다.
도서 상세 이미지
장용준
국립한국교통대학교에서 정보처리통신공학을 전공했고, 창작의 세계에 관심이 많아서 프로그램으로 창작물 구현하는 것을 좋아한다. SQL/NOSQL DB, 웹/앱, 빅데이터 시각화, 자동화 시스템 설계 등을 다루며 유튜브 ‘프로그램 동산’을 운영하고 있다.
- ▣ 0장: 시작하기 전에
- 0.1 프로젝트 소개
- 0.2 프로젝트의 목표
- 0.3 프로그램에 진행에 필요한 사항
- 0.4 책의 구성
- 0.5 책에서 다루지 않는 내용
- ▣ 01장: 개발 환경 구성
- 1.1 아나콘다 설치 및 가상환경 설정
- 1.1.1. 64비트 버전의 아나콘다에서 32비트 가상환경 설정하기
- 1.2 파이참 설치 및 설정
- 1.2.1. 파이참 설치
- 1.2.2. 파이참과 아나콘다 연동
- 1.1 아나콘다 설치 및 가상환경 설정
- ▣ 02장: 파이썬 기초 배우기
- 2.1 파이참에서 폴더와 파일 생성하기
- 2.2 데이터 출력, 변수와 포맷, 산수 익히기
- 2.2.1. print로 데이터 출력하기
- 2.2.2. 변수
- 2.2.3. 산술 연산
- 2.2.4. 연습 문제
- 2.3 제어문
- 2.3.1. if 조건문
- 2.3.2. for 반복문
- 2.3.3. while 조건문
- 2.3.4. 연습 문제
- 2.4 여러 개의 데이터를 리스트로 관리하기
- 2.4.1. 튜플
- 2.4.2. 리스트
- 2.4.3. 딕셔너리
- 2.4.4. 연습 문제
- 2.5 클래스와 함수
- 2.5.1. 함수(define)
- 2.5.2. 클래스(Class)
- 2.5.3. 연습 문제
- 2.6 프로젝트 관리
- 2.6.1. 프로젝트 생성 및 폴더 관리
- ▣ 03장: 키움 API
- 3.1 키움 API 설치
- 3.2 API를 이용하는 데 필요한 PyQt5
- 3.2.1. PyQt5를 왜 사용할까?
- 3.2.2. 이벤트 루프가 만들어진 개념
- 3.2.3. 싱글 쓰레드의 이벤트 루프란?
- 3.2.4. PyQt5를 사용한 코드 구성 및 키움 API 사용하기
- 3.2.5. 24시간 자동화 시스템의 동작 원리
- ▣ 04장: 계좌 정보 가져오기
- 4.1 키움 API로 키움증권에 로그인하기
- 4.2 계좌번호 가져오기
- 4.3 예수금 정보 가져오기
- 4.3.1. KOA에서 예수금 싱글데이터 확인하기
- 4.3.2. 예수금 정보 가져오기
- 4.4 계좌에서 계좌평가잔고내역 가져오기
- 4.4.1. 싱글데이터로 정보 처리하기
- 4.4.2. 멀티데이터로 보유 종목 정보 처리하기
- 4.5 계좌에서 미체결 종목 가져오기
- 4.5.1. 미체결 종목 가져오기
- 4.5.2. 시간 간격 주기
- ▣ 05장: API를 이용해 투자 방식에 맞는 종목 분석하기
- 5.1 코스닥 종목 가져오기
- 5.2 일봉데이터 정보 가져오기
- 5.2.1. 이벤트 루프의 시간 간격 체크
- 5.2.2. 각 종목의 전체 정보 가져오기
- 5.3 포트폴리오로 종목 분석
- 5.3.1. 그랜빌의 매수 신호 제 4법칙으로 종목 분석
- 5.3.2. 조건을 통과한 종목을 파일로 저장
- ▣ 06장: 보유한 종목, 미체결 종목, 분석된 종목 합치기
- 6.1 분석한 종목 가져오기
- 6.2 보유 종목, 미체결 종목, 분석된 종목을 하나의 딕셔너리로 구성
- 6.2.1. 하나의 딕셔너리에 모든 종목 합치기
- 6.2.2. 종목별로 스크린 번호 할당하기
- ▣ 07장: 실시간 종목 분석 및 매매
- 7.1 자동으로 주식 시장의 시작과 종료 확인
- 7.1.1. 장 시간을 체크하기 위한 이벤트 등록
- 7.1.2. 장 시작과 종료 체크하기
- 7.1.3. 스크린 번호의 상세 원리
- 7.2 종목들을 실시간 등록할 때 스크린 번호 사용하기
- 7.3 종목정보 실시간 체크
- 7.3.1. 실시간 정보 데이터 가져오기
- 7.4 실시간 매매조건 구성
- 7.4.1. 지정가로 종목 매수하기
- 7.4.2. 미체결 수량 매수 취소하기
- 7.4.3. 시장가로 종목 매도하기
- 7.5 종목 주문 후에 체결상태 구성하기
- 7.5.1. 실시간 체결정보를 확인하기 위한 이벤트 등록
- 7.5.2. 체결정보 데이터 받기
- 7.5.3. 변경된 잔고내역 데이터 받기
- 7.5.4. 서버에서 메시지 받기
- 7.6 장 종료 후의 처리 구성하기
- 7.6.1. 실시간 연결 모두 끊기
- 7.6.2. 다음 날을 위한 종목 분석 들어가기
- 7.6.3. 프로그램 종료하기
- 7.1 자동으로 주식 시장의 시작과 종료 확인
- ▣ 08장: 문제해결 및 시스템 자동화
- 8.1 로깅
- 8.1.1. 로그의 기본 개념
- 8.1.2. 커스텀 로그(Custom Log) 설정하기
- 8.2 프로그램 운영 상황을 슬랙 메시지로 받기
- 8.3 프로그램 실행 파일 만들기
- 8.3.1. 파이썬 프로그램의 배치 파일 생성
- 8.3.2. 배치 파일이 자동으로 실행되게 만들기
- 8.4 프로그램 자동 실행 설정
- 8.5 컴퓨터가 자동으로 켜지게 만들기
- 8.1 로깅
- ▣ 09장: 조건검색 활용과 알고리즘 흐름도
- 9.1 파이썬에서 조건검색 활용하기
- 9.1.1. 조건검색에 필요한 함수 확인하기
- 9.1.2. 조건식을 위한 이벤트 모음
- 9.1.3. 조건검색 단일 조회 요청하기
- 9.1.4. 조건검색 실시간으로 사용하기
- 9.2 알고리즘 흐름도의 전체 모습 확인
- 9.2.1. 구간별 함수 흐름도 파악하기
- 9.2.2. 전체 도면 확인
- 9.1 파이썬에서 조건검색 활용하기
- ▣ 10장: 연습 문제 풀이
- GitHub 저장소: https://github.com/programgarden/book
- ZIP 형식으로 다운로드: https://github.com/programgarden/book/archive/master.zip
슬랙의 정책 변경으로 인한 내용 변경
이전까지는 슬랙에서 곧바로 토큰을 받아서 사용하도록 만들었는데, 해당 정책은 보안상의 이유로 더는 사용할 수 없습니다. 그래서 기존에 생성된 슬랙 채팅방에 슬랙 API를 연결하고 API에서 사용할 수 있는 권한을 직접 설정해서 토큰을 받아야 합니다. 다음은 기존에 봇을 생성하던 방식에서 여러 권한 가운데 메시지 전송 권한을 설정하는 방법으로 변경된 내용을 설명합니다.