콘텐츠 바로가기
본문 바로가기


블로그 전체검색
쉽게 따라 만드는 파이썬 주식 자동매매 시스템

[도서] 쉽게 따라 만드는 파이썬 주식 자동매매 시스템

박준성 저

내용 평점 4점

구성 평점 4점


리뷰어인 본인은 퀀트 투자에 관심이 오래전부터 있어 왔다

 

집에 있는 퀀트 책만 20여권에 달한다.

 

물론, 거의 다 읽어 보았고 개중엔 책 전체를 돌려 보기도 했으나

직장인 관계로 책읽어 보고 간단히 실행해보는걸로 만족해왔다.

 

그러나 2019년 말부터는 본격적으로 해봐야 겠다는 생각이 들어 준비중 

이책 또한 접하게 되었다.

 

이책은 다분히 기본기에 충실한 책이다

 

여타의 책처럼 인공지능을 도입하거나 리액트를 이용한 서버활용이나  투자전략등에 대다수인 일반인들이 이해하고 다루기엔 다분히 진입장벽이 만만치 않아 막상 책을 구입하여 공부하다 중도 포기하는경우가 대다수이지 않을까 한다.

이책은일명 

Back to the Basic !!! 에 해당한다 생각이 든다.

여타의 책에 들일 공력의 일부분의 의지만 있어도 전체적인 자동매매 시스템을 경험해볼수 있게 한다.



 

 자동매매의 기본기를 세새히 가르쳐 주는 방식으로 책을 전개 한다.

자동매매는 최근 비트코인 까지 넓혀가고 있다

 

아무리 코딩 책이라지만 주제가 주식이므로 주식을 잘모르는 주린이들을 위한

 

 






 

0. 기초/기본

파이썬으로 코딩을 하므로 파이썬 기초를 이책을 이해할정도의 수준으로 

상술되어 있다 충분하다 본다

거기다가 꿀팁까지..


 

기초도 이해하기 쉽게 서술되어 있다 주요 요점을 확실히..





이해 쉽지 않은 self 도 요점을 풀어서...설명한다.

 

자동매매 책의로써의 SPEC를 확인해보면

1. 사용언어: Python

2. 사용 Tool:

  a. Anaconda 3.0 32bit

     => 가상환경 개발에 대해 그 어떤 책보다 간단명료하게 

          기술이 되어 있다.


 

  b. Pycharm Community 버젼 64 bit

3. 개발 O/S : Windows

4.  사용 주식 API: 키움 증권 Open API +

   => 계정 개설부터 상세히 설명하며 


 


 

   주식에 초짜인 주린이들을 위한 용어 설명도 간간히 배치하여 두었다.

   계좌 개설, 증권인증서 만들기

   키움증권 Open Api +  내려받기, 모듈 다운로드 등 상세히 설명한다.

   물론, 다른 모든 프로그램들의 개발환경 구축이 그러하겠지만

   리눅스 계열, 안드로이드 계열, 윈도우의 파이썬 개발환경 구축은

   만만치 않다 , 책에 저술된 내용이 불과 몇달만에 바뀌어 

   예제 한번 실행해보기도 만만치 않은 경우가 종종있는데 이책도

   일일이 따라해본결과 , 스스로 해결해야 될 상황이 본 글쓴이는 

   몇번 맞닦뜨렸는데, 다른 책보단 그래도 낳았다.

 

   KOA Studio 에 대한 자세한 설명은 이책이 처음인듯 하다.

  아, 이렇게 API 함수 활용 도우미 전용 프로그램이 있고 이걸 활용하면 

   좋겟단 생각이 들엇다.

   나중에, 모의 투자 가입 절차도 설명이 되어 있고

 

  프로그램 코드 설명에선 주요 API 설명시

위 KOA Studio에서 찾을수 있는 내용으로 

그리고 위 설명이 KOA Studio어디에서 찾으면 되는지까지 간단명료 설명한다

그리고 코드를 설명한다


 

 

  책 말미에선 모의 투자 로 시험하다가 

  진짜 실전 투자로 넘어갈때 어떻게 해야 되는지도 설명을 하고 있다.

 

 책 이론으로만 끝나는 책이 아니라 

 실제 투자로 이어지도록 디딤돌 하나 하나 놓아주는 그런 느낌을 받았다.

 친절하신 저자님,

 

PyQT5 또한 설명하고 있다

단!

GUI 개발용이 아니고 키움 API Open +를 사용하기 위함이라고

분명히 밝혀둔다.


 

이 프로그램의 기본 구성도 그림으로 이해시켜준다



 

사용시 편의를 위한 꿀팁도


 

 

이 정도 까지는 여타의 책과 비슷하다.

5. 특이점

유니버스 라는 주제로 4장 실전 매매전략에서 나오는데

유니버스 용어가 사용되기 시작한거는 

Marvel Studio의 Avangers 시리즈 영화에서 또는

Animation에서 보통 세계관, 만화 시리즈물의 세계관이란 용어로 많이

사용해왔는데 

 

아, 오늘 2021년 11월 22일..... BTS가 American Music Awards 3관왕을 했네요

cold play와 collabo 한 곡명이 ㅎㅎ

My Universe 네요, ㅎㅎ 아미들 축하축하...ㅎ

그레미 어워드도 수상하시길 ㅎㅎ


전세계 아미들... BTS 축하축하 ㅎㅎㅎ

 

 

이 저자는 투자대상 집합을 유니버스라고 칭한다.

 

사실, 자동매매의 핵심을 꼽으라면 

당연,

 

매매 전략 알고리즘이다.

매매 전략에 대해 논하는 책만 써도 

최근엔 1100페이지 책도 봤다.. ㅎㅎ 

물론 인공지능 이론을 접목한 책들이 쏟아지면서 

자동매매 서적의 두께도 순식간에 늘어나기 시작하는 Trend이다.

 

여기에 서버 기술과 SNS 기술 등 접목을 시작하면 거의

백과수준의 서적을 집필해야 되는 , 거의 최신기술 총동원하여 

Variety 수준의 화려한 목차를 구성하게 되는데

 

이책은 온전히 기본기 기초에 충실한다.

 

왜나면 최신기술 늘어놓는 순간 따라하다 

중도 포기하는 사람들이 많아지는데 이책은

 

초심자들이 끝까지 따라오게끔 

친절히 구성이 되어있다.

 

추가기능, 최신기능은 다른 여타의 책들이 많이 있다

 

자동매매의 기본교과서로 시작하면 좋을듯한 책이다.

 

어떤책들은 개발환경 구축하다 

버젼이 않맞아 충돌이 생겨 책을 읽고 시작하기도 전에

열받게 만드는 책도 꽤 된다.

 

6. 사실 자동매매 책의 또 다른 한축은 back testing이다

이것을 진보시켜 미래를 예측가능하게 하는 기술이 

maching learning , deep learing  인데

ㅎㅎ

이쪽은 사실, 코딩수준이 아니다

수학을 그것도 일반 중학교 수준의 수학이 아니고 

고등하교 통계 이후를 알아야 되는 수준이라..ㅎㅎ

 

이때부턴 주객이 전도되기 시작한다.

 

주식투자 공부를 하는건지...인공지능 프로그램을 개발하는건지..ㅎㅎㅎ

 

이책에선 back testing 방법에 대해선 나와 있지 않다


 

저자가 이책에서 진행한 프로그램을 저자가 행한 back testing 결과만을 간단히

확인만 시켜준다. 쫌 ~ 아쉬운 부분이다 어찌보면 중요한 두축중 하나인데.

 

7. 이책은 전략은 간단하다.

RSI(Relative Strength Indwx)라는 역추세 전략을 사용한다.

기술적 분석의 보조지표중의 하나이다.

 

매수조건 : 20일 이동평균 > 60일 이동평균 => 통상 골든크로스라 한다.

RSI(2) < 5 => 하락 시점에 매수한다는 이야기

2일전 주가 대비 현재 주가 변화율 < -2%

   => 현재 주가가 2일전 보다 2% 이상 떨어지면 사겠다는...

 

매도조건: RSI(2) > 80 =>  상승 우세시점에 특히, 어깨에 팔겠다는....

현재가 > 매수가 => 장중에 조건만 되면 최우선 매도 호가로 팔겠다는 이야기..

 

매매전략만 다룬 심도 있는책의 두께만도 400여 페이지가 되는 책들도 많다

이책은 그중 가장 많이 사용되는 기본적인 전략 한개 가지고 진행한다.

물론, 이 전략 하나에 만족할 투자자도 있겠지만.

 

실제 모의 투자가 아니고 실전 투자에선 더 많은 다양한 전략을 

투자자 본인이 선택하고 개발해야 될것이다.

 

그런면에선 BACK Testing이 중요하고

능력만 되면 인공지능을 활용하면 더욱더 좋지 않을까 한다.

 

자동매매의 두축중 하나인 전략부분은 RSI 한개로 진행하여 몹시 아쉬우나

다른 많은 좋은 전략은 별도의 책이나 자료를 확인해야된다.

 

7. 프로젝트 

모든 코딩책의 구성이기도 하고 실용서 대다수의 포멧이기도 하다

이론을 배웠으면 뭔가 만들어야 되는데

이책도 마지막을 프로젝트로 마무리 한다.

 

이책은 앞에도 서술한것처럼 깊이 있지는 않지만

 

처음부터 끝까지 완주케 하는 묘한 매력이 있다.

상세하고 친절한 설명과 서술방식이 꽤 맘에 든다.



 

교사를 하셨으면 매우 잘하셨을듯하다.

중요한 개념들을 간단요약 정리를 잘하고 이를 도표나 그림으로 

잘표현한다.





 

특히, 데이타베이스가 빠질수 없는데 

데이타베이스의 개념만 떼고 오면 쉽게 이해할수 있게 데이타베이스 부분을 상당부분 설명하고있다.

8. Database :  SQLITE => 파이썬 sqlite3 모듈 사용, 별도 설치 필요 없음.

 중간 중간에 더욱더 깊게 알고 싶은 독자를 위해 link를 알려주는 친절함도 돋보인다.

 

DB Study용 프로그램 설명:  DB Browser for SQLite standard 64bit windows 버젼 사용

을 활용하여 database  프로그램 개발에 이해를 높이게 한다.

 

8. 투자 대상 선정

유니버스 :  Crawling, Dataframe 을 활용하여 선정된 투자 대상 집단이다.

ETF,  우선주 제외, 지주회사 제외,  

ROE >0  인 기업

ROE 순위와, 1/PER 순위 내림차순시 

양순위 의 평균 계산한후 

상위 200개 기업으로 선정.한다.


 

9.  매매대상 선정 기초 토대

NAVER  FINANCE 를 CRAWLING 한 데이타로 판단함.

 Crawling 시 beautifulsoup4 모듈을 사용함.

crawling부분은 사실 이책에서 초심자들이 가장 이해 하기 어려월 할 부분으로 여겨진다.

이부분을 읽다보면 주욱 글로 서술할게 아니라 보다 도표나 그림으로 설명을 보강했으면

하는 아쉬움이 든다. 그러나 설명만큼은 자세히 기술되어 있다.

 

전체적인 흐름이나 맥을 개념도 활용이 아쉬우나 코드에는 주석처리를 이해하기 쉽도록 

잘 정리되어 있는게 돋보였다.

 

간간히 note 코너를 두어 주의 사항을 친절히도 설명한다. 아낌없이 주려는 저자의 마음씀씀이가 느껴지는듯 하다.

 

이책의 전반적인 서술형식은 하얀 도화지에 하나 하나 추가 해가능 과정으로 전개 해 나가기에 초심자들의 부담이 덜 할듯 하다.

10. 키움 하면서 주의사항



특이점들을 잘알려준다...

진짜 사용키 위한 프로그램 작성시 뭐가 문제가 될수 있는지 집어준다'

 

 

11. 아쉬운점.

이 책에 나온 것만 가지고 투자하기엔 위험하다. 저자도 곳곳에 이 프로그램에 한계를 솔직히 말한다. 여기까지만 만들었으니 이부분 저부분은 추가로 만드셔야 된다 라고 

분명히 적시를 하고 있다.

제한된 페이지의 책에 처음부터 끝까지 담으려다 보면 페이지수가 기하급수적으로 늘텐데

이 저자는 중용을 지킨듯하다. 넘치지도 부족하지도 않게 적정선을 유지하며 내용분량을 설정하고 이에 따라 깊이와 심도를 조절한듯하다.

 

특히 이 프로그램은 장중에 최초 실행하면 않되고 장이 끝난이후에 해야 된다.

본 글을 쓰는 리뷰어 본인도 사실 작성시작 시간이 오전 9시 40분이어서 

프로그램 main.py를 실행시키다 말았다


 

리뷰를 하기 위해 새벽 2시까지 진행하다 오전에 다시 하려니.... 장이 개시가 되었다 ㅎㅎㅎ

 

 

12. 확장성

이 프로그램은 크게 3개의 파트로 구성이 되어 있다

실행부, 전략부, 유틸부 

추후 전략을 추가하거나 다른 기능을 추가 하기 쉽도록 뼈대를 만들어 둔거다

 

생각을 잘한듯하다.

 

이책의 프로그램만으론 완전치 않고 이책의 주 목적이 처음부터 끝까지 1회 주행이지

심도있고 완벽한 프로그램을 만들어 주려는 책이 아니므로 생각을 잘한듯 하다.

12. 실제 활용도

실제 활용도를 높이기 위해 

SNS 알림을 이책에선 독특하게 LINE APP 을 사용한다.

여타의 프로그램들의  TREND가 이전엔 SLACK, Telegram등이었고

최근 트랜드는 카카오톡인데 여긴 line으로 햇다

무척 독특했다.

특히 24시간 돌아가도록 하기 위한 방법도 서술했다.

bat 파일을 이용하는것인데 이전 트렌드는 작업스케쥴러 활용인데 여기선 배치 파일을 활용한다.

 

실제 투자시엔 돈이 왔다 갔다 함으로 

매우 중요한 프로그램이므로 

최후엔 원격을 위해 chrome 원격데스크톱을 소개 한다.

 

12 마침.

더 고민할 것들로 이책을 마무리 한다.

 

유니버스구성: 매매대상 선정을 어떻게 개선할것인지....

직접 ROE를 계산하는 방법을 추천한다.

기업실적이 발표되는 매분기별  생성해보자...

종목수 200개를 줄이던지 늘리던지...

분산투자를 위해 ROE, PER 기준으로 한쪽으로 편향되지않도록...

분할매매, 우선순위 매수, 일정기간후 무조건 매도 전략, 

지속적 손실시 System Stop rule등등...

 

마지막으로 유지보수를 위해 detail한 log 가 가능할수있도록

logging 시스템 보강에 대해 언급하며 책을 마친다.

 

장종료후 이책의 프로그램을 돌려볼것이다.

 

 => 실행시 궁금한점이 있어 Github 에 질의를 올리니


빠른 답변을 해주시는 저자...^^

 

 

YES24 리뷰어클럽 서평단 자격으로 작성한 리뷰입니다.

 

 

 

 

 

 

 


https://www.youtube.com/watch?v=HwRozlhZeIU
http://blog.yes24.com/blog/blogMain.aspx?blogid=reviewers
 
취소

댓글쓰기

저장
덧글 작성
0/1,000

댓글 수 0

댓글쓰기
첫 댓글을 작성해주세요.

PRIDE2