리스크 알림 시스템과 손실 경고 기능 구현 – 코인 자동 거래 앱 개발기 (10)

2025. 7. 26. 05:17프로젝트 (Project)/바이낸스 코인 자동거래

반응형

10. 리스크 알림 시스템과 손실 경고 기능 구현 – 코인 자동 거래 앱 개발기 (10)

자동 거래 시스템이 실전 환경에서 작동되면, 예상치 못한 손실, 급격한 시세 변동, 시스템 오류 등이 발생할 수 있습니다. 이때 즉각적으로 인지하지 못하면 손실이 눈덩이처럼 커지게 됩니다. 이번 글에서는 리스크 상황을 실시간으로 감지하고, 경고 메시지를 보내는 기능을 구현합니다.


10-1. 어떤 위험을 감지해야 할까?

  • 누적 손실이 일정 수준 이상일 때
  • 한 번의 거래에서 손실이 과도할 때
  • 시세 급변동 (예: 5분 내 ±5% 이상)
  • API 응답 오류 또는 지연

리스크 이벤트 정의가 명확할수록 감지 로직이 효과적입니다.


10-2. 손실 감지 로직 구현


# 예시: 최근 누적 손익 리스트 기반 감지
pnl_history = [-10, -30, -50, -80]  # USDT 기준

def check_total_loss(pnl_history, threshold=-100):
    total = sum(pnl_history)
    return total < threshold

이처럼 누적 손실이 -100 USDT 이상이면 경고 메시지를 보내는 구조를 구성할 수 있습니다.


10-3. 실시간 시세 급변동 감지


def detect_price_spike(df, percentage=5):
    recent_close = df['close'].iloc[-1]
    prev_close = df['close'].iloc[-6]  # 5분 전 (1분봉 기준)
    change = (recent_close - prev_close) / prev_close * 100
    return abs(change) >= percentage

특정 종목이 급등/급락할 경우 자동 감지합니다.


10-4. 알림 방식: Telegram 연동

실시간 알림은 Telegram Bot을 통해 전송하는 것이 가장 간편하고 빠릅니다.


import requests

def send_telegram_alert(message):
    token = "YOUR_TELEGRAM_BOT_TOKEN"
    chat_id = "YOUR_CHAT_ID"
    url = f"https://api.telegram.org/bot{token}/sendMessage"
    payload = {"chat_id": chat_id, "text": message}
    requests.post(url, data=payload)

이제 조건이 감지되면 아래처럼 알림을 보낼 수 있습니다:


if check_total_loss(pnl_history):
    send_telegram_alert("⚠️ 누적 손실이 -100 USDT를 초과했습니다!")

if detect_price_spike(df):
    send_telegram_alert("📉 시세 급변동 감지! 가격 급등락 발생 중.")

10-5. 시스템 장애 감지 (API 오류)

Binance API가 응답하지 않거나 연결 지연 시에도 경고를 보내도록 합니다:


try:
    price = client.futures_mark_price(symbol="BTCUSDT")
except Exception as e:
    send_telegram_alert(f"🚨 API 오류 발생: {str(e)}")

10-6. 향후 확장 아이디어

  • 슬랙, 이메일, 카카오톡 등 다중 채널 알림 연동
  • 조건별 우선순위별 알림 (경고/주의/정보 등급)
  • 스냅샷 이미지 첨부로 상황 공유

10-7. 마무리 및 다음 편 예고

이제 자동매매 시스템이 위험 상황을 스스로 감지하고, 사용자에게 실시간으로 경고를 보낼 수 있게 되었습니다. 다음 편에서는 백테스트 기능을 구현하여, 전략의 과거 성과를 검증해봅니다.

 

반응형