Python

파이썬으로 비트코인 가격 알림 봇 만들기 (바이낸스 API + 텔레그램)

그러게 말이에요? 2026. 9. 14. 14:33
반응형

차트를 계속 띄워놓고 보는 게 은근히 피곤하다. 특정 가격에 오면 알림만 오면 되는데, 거래소 앱 알림은 딱 원하는 조건으로 세팅하기가 애매해서 직접 만들어보기로 했다.

목표

BTC 가격이 내가 정한 값에 도달하면 텔레그램으로 메시지가 오게 만드는 것.

구조

  • 바이낸스 공개 API로 현재가 조회 (인증 필요 없음)
  • 일정 주기로 반복 체크
  • 조건 충족 시 텔레그램 봇으로 메시지 전송

코드

import requests
import time

BINANCE_URL = "https://api.binance.com/api/v3/ticker/price"
TELEGRAM_TOKEN = "봇_토큰"
CHAT_ID = "챗 아이디"
TARGET_PRICE = 65000
SYMBOL = "BTCUSDT"

def get_price():
    res = requests.get(BINANCE_URL, params={"symbol": SYMBOL})
    data = res.json()
    return float(data["price"])

def send_telegram(message):
    url = f"https://api.telegram.org/bot{TELEGRAM_TOKEN}/sendMessage"
    requests.post(url, data={"chat_id": CHAT_ID, "text": message})

def main():
    alerted = False
    while True:
        price = get_price()
        print(price)

        if price >= TARGET_PRICE and not alerted:
            send_telegram(f"BTC가 {TARGET_PRICE} 도달함. 현재가: {price}")
            alerted = True

        time.sleep(10)

main()

막힌 부분 1 — 텔레그램 chat_id를 몰랐다

봇 토큰은 바로 만들었는데, 메시지를 어디로 보내야 할지(CHAT_ID)를 몰라서 처음엔 계속 실패했다. 알고 보니 순서가 있었다.

  1. 텔레그램에서 내가 만든 봇한테 아무 메시지나 먼저 보낸다
  2. 브라우저로 https://api.telegram.org/bot<토큰>/getUpdates 접속
  3. 응답 json 안에 chat.id 값이 내 chat_id다

봇한테 먼저 말을 걸어야 getUpdates에 정보가 뜬다는 걸 몰라서 계속 빈 값만 받았다.

막힌 부분 2 — 알림이 계속 옴

처음엔 조건 체크할 때마다 알림을 보내게 짜서, 가격이 타겟 근처에서 왔다갔다 하니까 텔레그램이 도배됐다. alerted 플래그로 한 번 보내면 다시 안 보내게 막았다. 가격이 다시 타겟 아래로 내려가면 플래그를 초기화하는 로직을 추가하면 반복 알림용으로도 쓸 수 있을 것 같다.

정리

거래소 API는 공개 시세 조회는 인증 없이 바로 되니까 진입장벽이 낮다. 텔레그램 연동에서 chat_id 얻는 순서만 알면 나머지는 단순한 반복문 + 조건문 수준이라 금방 만들 수 있었다.

반응형