slack api를 이용한 매수 매도 신호 알림
2020년 09월 06일
트레이딩 봇이 당일 매매를 진행할 때, 혹은 마무리 한 후에 대략적인 정보를 전달받을 수 있으면 편리하다. 물론 자세한 부분은 로그로 남겨 분석할 수 있게 만들어야겠지만, 이 부분은 다음에 다루기로 하고, 이번에는 Slack api를 이용해 메세지를 전송받는 방법을 알아본다. 언어는 Python을 이용한다.
slack은 작업 단위인 workspace가 있고, 그 내부에 여러 개의 대화 공간인 channel이 있다. 설정 및 코딩 시 workspace와 channel을 헷갈리지 않게 조심하자.
Slack api 이용하기: api.slack.com
-
slack에 가입하고, 작업할 workspace를 생성한다.
-
slack api에 접속해 create app을 진행한다.
-
app(bot)의 이름을 정하고, 방금 만든 workspace를 지정한다. 이러면 기본적인 생성은 완료됐다.
-
Features > OAuth & Permission > Bot Token Scope에서 OAuth Scope 를 "chat:write"로 설정하고 Add an OAuth Scope를 진행하고, Install app to workspace를 활성화한다.
-
이 때 발급된 "Bot User OAuth Access Token" 토큰(xoxb-로 시작)을 확인하고 잘 저장해 둔다.
-
slack을 열고 해당 workspace로 이동 후 Details > More > Add apps 에서 방금 만든 bot을 추가한다.
여기까지 하면, slack api를 이용하여 메세지를 보낼 수 있게 된다.
Slack api coding
코드는 어렵지 않다. 아래 코드로 slack api를 설치해준다.
pip install slacker
아래는 샘플코드와 결과이다.
import slacker
token = "xoxb-...................." # 토근 입력
slk = slacker.Slacker(token)
channel = "alert_signals"
msg = """
2020년 09월 06일 매매 내역
매수 종목: 3
매도 종목: 3
보유 종목: 0
평균 수익률: 2.3%
최고 수익률: 5.2%
최저 수익률: -2.7%
"""
slk.chat.post_message(channel, msg)
시간이 생기면 slack api 이용 방법에 대해 공부하고 정리할 계획이다.