loading

꿀벌의 투자 블로그

CopyRight: 조코딩

파이썬 주식 투자 자동 매매 프로그램

오늘부터 파이썬(Phthon)을 이용한 '주식 투자 자동화'가 가능한 프로그램을 만들어보고자 합니다. 이번 포스팅은 가볍게 시작할 수 있는 포스팅으로, 주식 투자에 대해 어려움을 겪고 계시거나 초보 주린이분들도 휩게 따라 하실 수 있도록 주식 투자의 기본적인 개념을 간단하게 정리하고, 파이썬 주식 투자 자동화가 어떻게 이루어지는지 그 구조를 간단히 설명해드리겠습니다.

 

마지막으로 일주일간 파이썬을 이용한 주식 투자 자동화 프로그램을 가지고 그 결과가 어떻게 나왔는지 알아보도록 하겠습니다.

 

주식이란?

먼저 주식이 무엇인지 그 개념을 간단히 설명드리겠습니다. 주식이란 어떤 회사가 있을 때 그 회사의 지분을 나눠놓은 조각을 의미합니다. 주식을 가지고 있다면 이 회사를 일부 소유하고 있는 것이라고 생각하시면 됩니다.

 

그래서 내가 어떤 회사의 주식을 가지고 있다면 회사의 방향성에 대해서 입장을 표명할 수 있는 '의결권'을 가질 수 있고, 회사가 돈을 벌었을 때 그 돈의 일부를 배당금의 형태로 받아갈 수도 있습니다.

 

주식을 사고 팔 수 있는 곳, 증권사

그러면 주식을 어디서 살 수 있는지 알아보겠습니다. 주식은 일반적으로 우리가 당근마켓이나 중고나라에서 중고물품을 거래할 때처럼 어떤 사람이 특정 가격에 올려놓은 주식을 사야 됩니다. 하지만 아쉽게도 당근마켓이나 중고나라에서 주식을 구하기는 쉽지 않고, 이와 비슷한 증권사에서 주식을 사고팔 수 있도록 중계를 해주고 있습니다.

중고나라_당근마켓_증권사

 

실제로 주식을 거래하는 창을 보면 쉽게 말해서 판다는 사람도 있고, 산다는 사람도 있는데 여러분이 지금 당장 삼성전자 1주를 사야 된다면 어떤 선택지를 고르실건가요?

 

삼성전자 1주 5.7만원에 팝니다.

삼성전자 1주 5.6만원에 팝니다.

삼성전자 1주 5.5만원에 팝니다.

삼성전자 1주 5.4만원에 삽니다.

삼성전자 1주 5.3만원에 삽니다.

 

당연히 제일 저렴한거, 5.5만 원에 올라온 주식을 사고 싶으시겠죠. 여러분이 파는 사람이고, 지금 당장 팔아야 된다면 당연히 제일 비싸게 산다는 사람에게 팔아야겠죠. 그래서 이러한 가격들을 '호가'라고 부르는데, 파는 것 중에 가장 싼 것은 '매도호가', 사는 것 중에 가장 비싼 것은 '매수호가'라고 부르게 됩니다.

 

주식 호가, 봉차트

실제로 증권사 어플에 삼성전자 호가를 보시면 이런 식으로 다양한 가격에 판다고 내놓은 사람과 다양한 가격에 산다고 올려놓은 사람들이 있습니다. 수요와 공급에 의해서 산다는 사람이 많고, 옆에 있는 수량이 점점 줄어든다면 주가도 함께 올라가겠죠.

현대차 주가

 

반면에 반대로 판다는 사람이 많으면 계속 팔려서 주가가 떨어집니다. 그래서 이렇게 호가가 계속 왔다갔다 할텐데, 이렇게 호가가 오르락 내리락 하는 것을 일자별로 나타내게 되면 오르락 내리락하는 그래프가 생기게 됩니다. 그래프를 자세히 보시면 빨간 봉과 파란 봉으로 구성되어 있는 모습을 확인하실 수 있습니다.

카카오 주가

 

이렇게 봉들이 들어간 차트를 봉차트(캔들차트)라고 부릅니다. 봉은 빨간색인 양봉과 파란색인 음봉이 있습니다. 양봉부터 보면  Y축의 높이가 높을수록 가격이 높습니다. 주식 시장은 시간하는 시간과 끝나는 시간이 있는데, 시작하는 시간의 가격인 시가(장 시작할 때의 주가)보다 종가(장 끝날 때의 주가)가 더 높은 경우에 양봉을 그리게 됩니다.

 

나머지 얇은 꼬리들은 주식 가격에 계속 왔다 갔다 할 테니까 이게 최저로 내려갔을 때, 가장 저렴할 때가 '저가'이고 가장 높이까지 올라갔을 때가 '고가'라고 합니다.

 

음봉의 경우 반대로 시가(장 시작할 때의 주가)보다 종가(장 끝날 때의 주가)가 더 낮은 경우 입니다. 따라서 우리는 봉차트의 봉을 통해서 주가가 어떻게 변해왔는지 한 번에 알 수 있습니다.

 

주식으로 돈 버는 방법

주식 거래로 돈을 벌려면 당연합니다. 가격이 쌀 때 샀다가 가격이 비쌀 때 팔면 됩니다. 그러면 이제 파이썬으로 이런 주식 투자를 자동화하는 방법에 대해 알아보겠습니다. 먼저 파이썬으로 주식을 언제 사고, 언제 팔 것인지 투자 전략을 구현할 것이고 작업 스케줄러를 이용해서 매일 주식 시장이 열릴 때마다 증권사 API를 통해서 자동으로 매수, 매도가 이루어지도록 만들어보겠습니다.

 

그러면 쌀 때 사고 비쌀 때 팔고 할 수 있겠죠. 이런 거래가 발생하거나 어떤 특정 이벤트가 있을 때마다 'slack'이라는 메신저로 알림이 오도록 만들어 보겠습니다. 이렇게 구성하고 코드를 돌려 놓으면 우리는 아무것도 안해도 매일 slack 메신저를 통해 우리의 코드가 돈을 벌어오는 것을 확인할 수 있습니다.

이때 우리가 투자 전략을 어떻게 구현하느냐에 따라서 수익률은 굉장히 달라질 수 있습니다. 우리는 래리 윌리암스라는 인물의 '변동성 돌파 전략'을 사용해서 구현할 것입니다. 전략에 대해 간단히 소개해드리자면, 일정 수준 이상의 상승세를 돌파 신호로 판단하고 그 추세를 따라서 수익을 실현하는 단기 트레이딩 전략입니다.

변동성 돌파 전략

 

우리는 대신증권 크레온으로 시작

추후에는 이 전략 외에도 딥러닝을 사용하는 등 좀 더 다양한 전략을 이용하여 구현해볼 겁니다. 또 우리는 증권사를 이용해서 거래를 해야 되기 때문에 증권사 API를 사용해야 됩니다. API를 제공하는 대표적인 증권사로 키움증권, 대신증권 크레온, 이베스트 투자증권에서 API를 제공하고 있습니다.

키움증권_크레온_이베스트 투자증권

 

이중에서 우리는 사용성이 가장 좋다고 알려진 대신증권의 크레온 API를 사용해보겠습니다. 혹시 아직 대신증권의 증권 계좌가 없으시다면 따라해보시기려면 크레온 계좌를 미리 개설하는 것을 권장드립니다.

 

다음으로 위에서 설명드린 방법대로 일주일간 프로그램을 이용하여 투자한 결과에 대해 말씀드리겠습니다. 코드를 돌려 놓으면 매일 스마트폰으로 slack 메신저를 통해 무엇을 샀고, 얼마를 벌었다는 이런 정보들이 자동으로 들어오게 되어있습니다.

 

주식 투자 자동화 프로그램 실전 결과

slack_주식 손익

 

그래서 투자금을 넣고 일주일 간 돌려보았더니 총실현손익으로 9,743원이 벌린 것을 확인할 수 있었습니다. 그러면 52주, 1년으로 환산하면 65.5%, 약 66%의 연 수익률을 올릴 수 있었습니다. 요즘 은행 이자가 2%도 안되는 시점에 어마어마한 수익률을 보여주고 있습니다.

 

물론 이 추세가 계속 영원히 지속된다고 보장할 순 없고, 일자별로 보시면 아시겠지만 5원 벌었다가 1,000원 잃고, 1,300원 잃었다가, 7,000원 벌었다가 이런 식으로 매일매일 그 시장 상황에 따라서 전부 다르게 동작합니다.

 

마무리

막연한 수익률의 기대감만으로 하시는 것이라면, 그렇게 큰 기대는 하지 않으셨으면 좋겠습니다. 어디까지나 수익률이 궁극적인 목표가 아닌, 이런 방식으로 주식 투자 자동화가 가능하다는 것을 보여드리기 위함이기 때문입니다.

 

이번 포스팅을 통해 주식 투자 세계에 입문하게 되신 분들을 포함하여 주식 투자 자동화에 첫걸음을 디딘 분들, 모두 환영합니다. 주식 투자 자동화 관련 포스팅은 날마다 한 개씩 업로드 될 것이고, 크게는 이번편을 포함해서 총 4편을 끝으로 마칠 것이니 끝까지 함께 하시고 만족하실만한 프로그램을 만드셨으면 좋겠습니다. 앞에서도 언급했지만, '투자 전략'에 따라 수익률은 극대화 되기 때문입니다.

 

우측 하단 '꿀벌의 주식 블로그 구독'을 하시면 주식 투자 자동화 포스팅을 포함하여 주식 관련 포스팅 업데이트 알림을 바로 받으실 수 있습니다.

 

 

검색창에 "꿀벌의 주식 블로그"를 검색! 
반응형