바이비트 알트코인 알람봇 완전 개편 - 숏/롱 조건 최적화 & 버그 수정 (2026)
바이비트 알트코인 알람봇을 운영하면서 가장 답답했던 순간은, 차트를 보면 분명 숏/롱 진입 조건이 맞는데 텔레그램 알람이 오지 않을 때였습니다. 오늘은 알람봇에 누적된 버그 3가지를 수정하고, 조건 로직을 전면 개편한 내용을 정리합니다. 이 글을 읽으면 바이비트 알트코인 알람봇의 작동 원리와 최적화 방향을 명확히 이해할 수 있습니다.
알람봇이 알람을 보내지 않았던 진짜 이유
백테스트 결과 신호는 분명히 탐지되고 있었습니다. 그런데 텔레그램에는 아무것도 오지 않았습니다.
로그를 뒤지다 발견한 경고 메시지: no running event loop.
알람봇의 스캔 함수가 별도 스레드에서 실행되는데, 텔레그램 발송 코드가 asyncio.create_task()를 사용해
스레드에서 호출하면 이벤트 루프를 찾지 못해 예외가 발생했던 것입니다.
더 큰 문제는 이 예외가 try/except에 조용히 잡혀서 알람봇이 처음부터 단 한 번도 알람을 보내지 못하고 있었다는 점입니다.
버그 수정 3가지 — 알람봇 핵심 오류 교정
1. 텔레그램 알람 미발송 버그 (asyncio 이벤트 루프 문제)
알람봇의 스캔 루프는 run_in_executor로 별도 스레드에서 실행됩니다.
이 스레드 내부에서 asyncio.create_task()를 호출하면 메인 이벤트 루프가 없어 RuntimeError가 발생합니다.
수정: asyncio.run_coroutine_threadsafe(coro, loop)를 사용해 메인 루프에 안전하게 코루틴을 예약했습니다.
# 수정 전
asyncio.create_task(_send(msg))
# 수정 후
asyncio.run_coroutine_threadsafe(_send(msg), _loop)
2. StochRSI 파라미터 오설정 — 항상 0을 반환하던 문제
알람봇 설정 파일에서 StochRSI 파라미터 값이 반대로 입력돼 있었습니다.
| 파라미터 | 기존 (잘못됨) | 수정 후 |
|---|---|---|
| RSI 길이 | 1 | 100 |
| Stoch 길이 | 1 | 100 |
| K 스무딩 | 100 | 1 |
| D 스무딩 | 100 | 1 |
Stoch 길이 1이면 rolling(1).min() = rolling(1).max() = 현재값이 되어 항상 0을 반환합니다. 결과적으로 StochRSI 50 아래 조건이 항상 True로 통과되어 실질적 필터링이 불가능했습니다.
3. 스토캐스틱 조건 수정 — 교차 순간 → 상태 유지로
기존 1시간봉 스토캐스틱 조건은 K가 D 아래로 교차하는 단 1캔들만 감지했습니다. 1시간봉에서 교차 순간에 5분봉 MACD까지 동시에 맞는 경우는 거의 없어 신호가 0건이었습니다. 수정: K < D 상태이면 지속적으로 조건 통과하도록 변경했습니다.
알람봇 조건 변경 3가지
4. 5분봉 WAE 조건 제거
41시간 백테스트 결과, WAE 조건이 유효 신호의 27.5%를 추가 필터링하고 있었습니다. 5분봉 타점에서는 EMA + SRSI + MACD 조건으로도 충분히 노이즈 필터링이 가능하다고 판단해 제거했습니다.
5. 1H EMA 조건 — 이벤트 → 상태로 변경
기존: EMA5 데드크로스 EMA10 + 현재가 EMA60 아래 (이벤트성)
수정: EMA5 < EMA10 < EMA60 역배열 상태 유지 시 조건 통과
6. 하이킨아시 윗꼬리 허용 비율 확대
하이킨아시와 WAE를 활용한 실전 타점 찾기에서 다뤘듯, 하이킨아시는 추세 방향을 판단하는 강력한 도구입니다. 윗꼬리 5% 이하 조건이 너무 엄격해 유효한 음봉도 필터링하는 경우가 많았습니다. 허용 비율을 5% → 20%로 확대했습니다.
신규 기능: 롱 알람 & 계단식 필터 구조
롱 알람 추가 — 숏의 완전 반대 조건
기존 알람봇은 숏 방향만 감지했습니다. 이번 업데이트로 롱 타점 알람을 추가했습니다. 자동매매 봇 개발기 V1~V9에서 방향성 필터의 중요성을 강조했듯, 롱/숏 양방향 감지로 시장 상황에 맞는 알람을 받을 수 있습니다.
계단식 필터 구조 — 3개 타임프레임 모두 충족 시에만 발송
기존에는 1H/15M/5M이 각각 독립적으로 알람을 발송했습니다. 수정 후 구조:
- 1H 조건 통과 → 15M 조건 확인
- 15M 조건 통과 → 5M 조건 확인
- 5M MACD 조건 충족 → 🎯 타점 알람 발송
3개 타임프레임이 정렬된 고확률 타점만 알림받을 수 있습니다.
실시간 스캔 & 번들 발송
5분 간격 스케줄 → 60초 간격 연속 스캔으로 전환, 코인별 개별 메시지 → 번들 발송으로 변경했습니다.
최종 숏/롱 알람봇 조건 정리
🔴 숏 타점 조건
| 타임프레임 | 조건 |
|---|---|
| 1H | 하이킨아시 음봉(윗꼬리 20%이하) / EMA5<EMA10<EMA60 역배열 / WAE 주황·빨강 / MACD 0아래 빨강 / 스토캐스틱 K<D / SRSI 50↓ |
| 15M | EMA10<EMA20 역배열 / WAE 주황·빨강 / MACD 0아래 / SRSI 50↓ |
| 5M | EMA10<EMA20 역배열 / SRSI 50↓ / MACD Case A 또는 Case B |
🟢 롱 타점 조건
| 타임프레임 | 조건 |
|---|---|
| 1H | 하이킨아시 양봉(아랫꼬리 20%이하) / EMA5>EMA10>EMA60 정배열 / WAE 녹색 / MACD 0위 파랑 / 스토캐스틱 K>D / SRSI 50↑ |
| 15M | EMA10>EMA20 정배열 / WAE 녹색 / MACD 0위 / SRSI 50↑ |
| 5M | EMA10>EMA20 정배열 / SRSI 50↑ / MACD Case A 또는 Case B |
백테스트 결과 — 조건 최적화 효과 검증
상위 30개 알트코인, 최근 41시간 데이터 기준 백테스트 결과입니다.
| 구분 | 숏 | 롱 | 합계 |
|---|---|---|---|
| 최종 조건 (HA 윗꼬리 20%) | 13건 | 3건 | 16건 |
| HA 윗꼬리 조건 제거 시 | 20건 | 8건 | 28건 (+75%) |
신호 발생 주요 코인: XLMUSDT(롱 3건), WLDUSDT(숏 2건), ZECUSDT(숏 1건), LABUSDT(숏 1건), LINKUSDT(숏 1건). 코인 선물 자동매매 봇 개발기에서 경험했듯, 백테스트 신호 수가 너무 많으면 과최적화 위험이 있고, 너무 적으면 실전 진입 기회를 놓칩니다. 41시간 기준 16건은 적절한 수준으로 판단합니다.
마치며 — 알람봇 개선 다음 단계
이번 업데이트로 바이비트 알트코인 알람봇의 핵심 버그를 수정하고, 3개 타임프레임 계단식 필터로 신호 품질을 높였습니다. 앞으로는 하이킨아시 윗꼬리 비율 추가 조정과 백테스트 기간 확장을 통해 조건을 더 정교하게 다듬을 예정입니다.
알람봇 개발에 관심 있으시다면 아래 글도 함께 읽어보세요:
💬 이 글이 도움이 됐다면 댓글로 알려주세요. 알람봇 조건이나 바이비트 자동매매에 궁금한 점이 있으면 언제든 질문 남겨주시면 답변드리겠습니다.

댓글
댓글 쓰기