loading

꿀벌의 투자 블로그

 CopyRight: 조코딩

#3 삼성전자 주가 자동 알림 프로그램 만들기

이번 포스팅은 파이썬 주식 투자 자동 매매 프로그램 만들기 프로젝트 3번째 시간입니다. 지난 포스팅에 이어서 크레온 API를 이용해서 삼성전자 주가 정보를 받아오는 방법slack 이라는 메신저 어플로 알림을 보내보도록 하겠습니다.

 

 

먼저 slack을 처음 들어 보시는 분들도 계실 텐데, slack은 업무용 메신저로 많이 사용되는 소프트웨어로 쉽게 말해서 업무용 카카오톡이라고 보시면 되겠습니다.

 

slack의 장점으로는 자동화된 봇을 만들어서 다른 외부 프로그램과 연계하기 편리하게끔 되어 있습니다. 그래서 이번 시간에는 크레온 API와 연계하여 삼성전자의 현재 주가 정보를 slack 메시지를 통해서 전송하는 것을 구현해보겠습니다.

 

slack 로그인 및 워크스페이스 생성

 

1. 먼저 slack 공식 홈페이지, slack.com 으로 접속해 줍니다. 그리고 무료 체험 또는 로그인 버튼을 누릅니다.

Slack 다운로드

 

2. 그리고 사용하고자 하는 이메일 주소를 입력해 줍니다. 관련 이메일은 안받으셔도 됩니다. 그러면 입력하신 이메일로 6자리 코드가 발송되는데, 그 코드를 입력해 줍니다.  'Google로 계속' 으로 진행하실 경우에는 별도의 인증이 없습니다. 워크스페이스 생성을 눌러줍니다.

slack 설치 방법

 

3. 그리고 우리가 사용할 워크스페이스의 이름을 설정해 주겠습니다. 아무거나 지어주시면 됩니다. 저는 beestock으로 지어주겠습니다. 나머지는 아무렇게나 지어주시면 됩니다.

slack 설치

 

4. 이메일을 자주 보내는 대상은 건너뛰시면 됩니다. 이제 워크스페이스 생성이 완료되었습니다.

slack 워크스페이스

 

다음으로 우리가 만든 slack 워크스페이스에 알림을 보내줄 slack 봇을 만들어 보겠습니다.

 

slack api를 통한 slack 자동화 봇 생성

1. api.slack.com 으로 접속한 후 'Start Building' 버튼을 눌러줍니다. 그리고 이름을 정해줍니다. 저는 stock-bot으로 지었습니다. 그리고 워크스페이스를 지어야 되는데, 아까 제가 만들었던 beestock을 지정해 주겠습니다. Create App 버튼을 누르면 봇이 완성되었습니다.

slack api 봇 생성 방법

 

이제 slack api에서 필요한 설정들을 해주겠습니다.

 

1. 왼쪽에 OAuth & Permissions 라는 메뉴로 들어가 줍니다. 스크롤을 내려보면 Bot Token Scopes 메뉴에서 권한을 설정해 줍니다. 'Add an Oauth Scope > chat:write' 권한을 주어서 우리의 봇이 채팅방에 글을 쓸 수 있도록 만들어 주겠습니다.

slack api 봇 만드는 방법

 

2. 이렇게 등록하신 후에 위쪽에 Install to Workspace 버튼을 눌러주고, 허용 버튼을 눌러서 설정을 완료합니다.

slack api 봇 생성 방법

 

이제 설정이 완료되었고, 여기 나온 OAuth Token을 이용해서 우리가 만든 bot으로 워크스페이스에 메시지를 전송할 수 있습니다.

slack api 봇 생성 방법

 

추가로 이렇게 만든 bot을 워크스페이스에 우리가 사용할 채널을 선택해 주시고 세부정보 표시를 눌러 보시면 더보기>앱 추가 메뉴가 있습니다.

slack api 봇 생성 방법

 

이걸 누르셔서 우리가 만든 stock-bot을 추가 버튼을 눌러서 추가해 줍니다. 그러면 이렇게 stock-bot 추가가 완료됩니다.

slack api 봇 생성 방법

 

파이썬을 이용하여 slack 봇을 통해 메시지 보내보기

다음으로 파이썬을 이용해서 우리가 만든 bot을 통해 slack 메시지를 전송해 보겠습니다. 이때 'slacker'라는 라이브러리가 사용되는데, slacker GitHub github.com/os/slacker 로 접속합니다.

 

스크롤을 내리면 slacker 사용 방법에 아래에 나와 있습니다. 일단 설치를 먼저 해주겠습니다. 여기

 

pip install slacker

 

이 부분을 복사해서 지난 시간에 이어서 우리가 작업하던 폴더인 Visual Studio Code - stockauto 폴더로 들어와서 Termilnal 안쪽에 붙여넣겠습니다. 직접 입력해주셔도 됩니다. 그리고 엔터를 눌러주시면 자동으로 설치가 됩니다.

파이썬 주식 자동 매매

 

그리고 다시 GitHub로 와서 Examples(예제) 코드 중에 post_message가 있는 네 번째 줄까지 복사를 해줍니다.

 

지난 시간에 작성한 이 코드들은 모두 지우고, 여기에 그대로 붙여줍니다. 그리고 아까 만들었던 stock-bot에 OAuth Token을 복사해서 Slacker 괄호 안쪽에 따옴표 사이에 넣어줍니다. 마지막 코드는 메시지를 보내는 코드인데, 우리는 stock이라는 채널명으로 만들었기 때문에 stock으로 변경해 주시고 저장을 해줍니다.

주식 자동 매매

 

Terminal에

 

python test.py

 

를 입력하셔서 이 코드를 실행시켜보면, 그러면 알림과 함께 이러한 메시지가 잘 전송된 것을 확인할 수 있습니다.

주식 자동 거래

 

여기 나오는 이 메시지는 코드에 있던 'Hello fellow slackers!' 라는 내용이 그대로 전송된 것입니다. 여기에 주가 정보나 다른 정보를 집어넣게 되면 slack 메신저를 통해 그 정보를 확인할 수 있게 됩니다.

 

추가로 구글 플레이 스토어나 앱 스토어에서 slack 앱을 다운받을 수 있습니다. 그러면 스마트폰을 통해서도 알림과 메시지를 받을 수 있습니다.

주식 자동 매매 프로그램

 

삼성전자 주가, slack 알림으로 받아보기

그러면 이것을 응용해서 삼성전자의 현재 주가 정보를 크레온 API를 통해 받아서 여기에 담아주고, 그 정보를 slack 메신저를 통해 확인할 수 있도록 해보겠습니다.

 

먼저 지난 시간에 한 것처럼 크레온 API 공식 홈페이지로 접속해서 자료실 > 파이썬 > 3 번째 페이지에 있는 '주식 현재가 조회' 예제를 들어가 줍니다.

 

크레온 API 자료실 바로 이동

 

그러면 파이썬으로 구현된 '주식 현재가 조회' 예제가 나와 있을 겁니다. 이 코드를 그대로 복사해서 vscode에서 메시지를 보내는 코드는 잠시 #을 앞에 써서 주석(컴퓨터가 코드를 인식 못하게끔) 처리를 해줍니다. 맨 상단에 붙여놓고 저장을 해줍니다.

주식 자동 매매 코드

 

크레온 API를 사용하기 전에 꼭 확인할 것은 VsCode가 관리자 권한으로 실행되었는지 입니다. 상단에 Administrator라는 문구가 있어야 됩니다.

visual studio Code 오류 해결 방법

 

Creon Plus에 로그인을 해주시고, Creon Plus가 잘 실행되고 있는 것을 확인한 후에 이번에도

 

python test.py

 

를 입력해서 코드를 실행해 줍니다.

 

그러면 실행 결과가 이렇게 나오게 됩니다. 코드와 실행 결과를 비교해보면서 어떻게 이런 결과가 나왔는지 코드를 함께 살펴봅시다.

주식 자동매매 코드

 

코드 실행 결과 풀이과정

먼저 필요한 모듈을 가져와주고, Creon Plus에 연결이 잘 되었는지 확인을 합니다.

주식 자동매매 코드

 

그리고 삼성전자 종목코드를 이용해서 삼성전자의 현재가 객체를 가져와 줍니다.

주식 자동매매 코드

 

다음으로 통신상태를 확인하고 출력을 해줍니다.

주식 자동매매 코드

 

출력된 것을 보시면 통신이 잘 된 것을 확인하실 수 있습니다.

 

그리고 위에서 BlockRequest로 가져온 삼성전자의 현재가 객체를 이용해서 여기에 .GetHeaderValue라는 메소드를 이용해서 종목 코드, 종목명 등 이런 다양한 정보들을 가져와서 각각 변수들에 넣어 줍니다.

주식 자동매매 코드

 

그리고 아래에서 Print를 통해서 위에서 가져온 정보들을 출력해 줍니다.

주식 자동매매 코드

 

그러면 이렇게 삼성전자의 현재 정보가 쭉 출력되는 것을 확인할 수 있습니다.

 

(보충학습) 삼성전자 현재가'만' slack 알림 보내보기

그러면 여기서 우리가 주식을 바로 매수할 수 있는 시장가격인 매도호가만 남기고 나머지는 다 지워보겠습니다.

주식 자동매매 코드

 

매도호과와 같은 용어를 잘 모르시는 분들은 지난 포스팅들을 참고해주시면 됩니다.

 

그리고 아까 주석 처리해왔던 코드를 다시 주석을 해제하고, 이번에는 이 메시지 대신에 삼성전자 현재가 +매도호가 정보인 offer 변수를 복사해서 여기에 붙여넣어 줍니다.

 

그리고 얘는 문자열이고 얘는 숫자이기 때문에 str로 감싸주어 문자열로 만들고 저장을 해줍니다.

 

터미널에

 

python test.py

 

를 입력하여 코드를 실행합니다.

 

그러면 알람 소리와 함께 삼성전자의 현재가 정보가 slack 메시지를 통해 잘 들어온 것을 확인할 수 있습니다.

slack 알림 설정

 

스마트폰에서도 코드가 실행되면 이렇게 slack 알림이 오고, 알림을 눌러보면 이렇게 삼성전자 현재가 정보가 잘 나오는 것을 확인할 수 있습니다.

 

마무리

오늘은 지난 시간보다는 쉬웠지만, 처음 코딩을 접하시는 분들에게는 결코 만만한 과정이 아니었습니다. 여기까지 완벽하게 수행하셨다면 정말 수고많으셨습니다.

 

만약 여기까지 안되시는 분이 있다면 댓글로 질문 남겨주시면 최대한 도와드리겠습니다.

 

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

 

다시 한 번 수고하셨습니다.

 

 

 

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