-
[비트코인] 가상화폐 자동투자 프로그램 개발하기(5) - slack 알람 봇프로젝트/가상화폐 자동투자 2021. 4. 28. 00:31
이번 포스트에서는 자동투자 프로그램이 매매를 진행할 때마다 메신저에서 알람을 보내주도록 해본다. 메신저는 API 및 다른 프로그램 연결이 용이한 Slack 을 사용하여 진행한다.
우선 slack 사용을 위한 기본 세팅을 해주자.
Slack 가입 및 워크스페이스 생성
우선 https://slack.com 아래 슬랙 홈페이지에 들어간다.
오른쪽 상단의 '로그인' 을 눌러서 계정을 생성하고 로그인을 해준다. 보유중인 이메일을 가지고 간편하게 회원가입 및 로그인이 가능하다. 로그인이 되면 워크스페이스를 생성할 수 있는 창이 나오는데, '워크스페이스 생성'을 클릭한 후 워크 스페이스 이름, 채널 이름 등을 입력하여 주면 새로운 워크 스페이스가 생성된다.
Slack API 발급
이제 slack 과 프로그램의 소통을 가능하게 해주는 slack API 를 발급받아야 한다. api.slack.com 에 접속하여 Create a custom app 이라는 초록색 버튼을 클릭하여 app 을 생성하여 주도록 하자.
아래와 같은 창이 나오는데, App Name 은 임의로 입력하여 주고 아래 Development Slack Workspace 창에서는 아까 우리가 만든 workspace 를 선택하여 준 후 Create App 버튼을 눌러 생성하여 준다.
생성이 완료되면 App 의 설정창이 나오는데, 왼쪽의 리스트에서 OAuth & Permission 메뉴에 들어가 준 후
Scopes 의 Bot Token Scopes 에서 Add an OAuth Scope 를 클릭 후 chat:write 기능을 추가해준다.
그 후 맨 위에서 Install to Workspace 버튼을 누르면 Bot User OAuth Token 라는 토큰이 발행된다. 이 값을 복사하여 보관하여 두자.
또한 이렇게 생성한 App 을 우리가 만든 채팅방에 연결해주어야 한다. 아까 만들었던 워크스페이스 채팅화면으로 들어가서 가장 오른쪽 상단에 세부정보(i) -> 더보기 -> 앱추가 -> api.slack 에서 생성한 app 추가 해준다.
파이썬 프로그램에 slack 연결
이제 파이썬에서 post request 를 slack 으로 보낼 것이다. 우선 pip install request 를 터미널에 쳐서 request 모듈을 설치하여 준다.
import requests def post_message(token, channel, text): response = requests.post("https://slack.com/api/chat.postMessage", headers={"Authorization": "Bearer "+token}, data={"channel": channel,"text": text} ) print(response)
이후 위와 같은 코드를 자동매매 코드에 추가한다. 발급받은 api token, 메세지를 발송할 channel 명, 보낼 text 를 slack api 에 post request 로 보내주는 함수이다. 편의를 위해 아래와 같이 발급받은 token 과 channel 명을 함수에 포함시켜도 된다.
import requests def post_message(text): myToken = `your token` channel = `your channel` response = requests.post("https://slack.com/api/chat.postMessage", headers={"Authorization": "Bearer "+myToken}, data={"channel": channel,"text": text} ) print(response)
이렇게 만들었으면 아래와 같이 post_message 함수에 전송할 메세지만을 담아서 사용할 수 있다.
post_message("Message Here!")
자동매매 프로그램에서 slack 메신저로 받고 싶은 메시지를 자유롭게 추가하여 주자.
필자는 이렇게 프로그램이 시작되었을 때 시작 금액을 전송하고, buy 와 sell 주문이 실행됐을 때 체결 및 단가 정보를 전송하도록 하였다.
실행하여 아래와 같이 메시지가 잘 전달되는 것을 확인하였다. (부끄러운 잔고..)
완성 코드는 github.com/poArlim/crypto-auto 의 cryptoAutoTrade_v3.py 에서 확인할 수 있다.
'프로젝트 > 가상화폐 자동투자' 카테고리의 다른 글
[비트코인] 가상화폐 자동투자 프로그램 개발하기(4) - 변동성 돌파 전략 보완(version 2) (16) 2021.04.27 [비트코인] 가상화폐 자동투자 프로그램 개발하기(3) - version 1 (1) 2021.04.26 [비트코인] 가상화폐 자동투자 프로그램 개발하기(2) - 변동성 돌파 전략 및 백테스팅 (9) 2021.04.24 [비트코인] 가상화폐 자동투자 프로그램 개발하기(1) - 업비트 API (6) 2021.04.17