Commit Graph

15 Commits

Author SHA1 Message Date
ILSEON-RYU ffbc0da011 진입 신호 알림에 진입가/손절가 포함 + 차트 마커 표기와 일치
## 변경 사항
- 진입가를 차트 hover 마커가 보여주는 값과 동일하게 통일.
  - 롱: low * 0.9998
  - 숏: high * 1.0002
- 손절가는 진입가 * (1 ± STOP_LOSS_PCT) 로 계산되므로 reference 가격이
  10bps 차이나도 손절가 비율은 정확히 ±10% 로 유지됨.
- 텔레그램 진입 신호 메시지에 진입가/손절가 두 줄 추가.

## 메시지 예시
🔼 롱 진입 신호
BTCUSDT 5m
진입가: 76245.84
손절가: 68621.26

🛑 롱 손절가 도달 (-10%)
BTCUSDT 5m
진입가: 76245.84
손절가: 68621.26
현재가: 68500.00

## 영향 없는 시그널
short_caution_signal 은 진입 신호가 아니므로 가격 정보 없이 기존 형식 유지.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 10:29:19 +09:00
ILSEON-RYU 43a5c52ec5 10% 손절가 도달 알림 추가
## 동작
- 진입 신호(strong/일반/볼륨급등 × long/short)가 발화한 캔들의 close 가격을
  진입가로 기록.
- 롱 진입 → 손절가 = 진입가 * 0.90, 현재가가 손절가 이하로 내려가면 알림.
- 숏 진입 → 손절가 = 진입가 * 1.10, 현재가가 손절가 이상으로 올라가면 알림.
- 발화 시 해당 방향의 진입 상태를 클리어 → 새 진입 신호 전까지 같은 손절가
  알림은 재발송되지 않음.
- 기본 비율은 STOP_LOSS_PCT 상수(0.10)로 분리. 추후 조정 용이.

## 메시지 예시
🛑 롱 손절가 도달 (-10%)
BTCUSDT 5m
진입가: 76200.00
손절가: 68580.00
현재가: 68500.00

## 주의
- short_caution_signal 은 진입 신호가 아니므로 손절가 추적 대상에서 제외.
- 롱/숏 진입 상태는 독립 추적 — 한쪽 손절 도달이 다른 쪽 상태에 영향 없음.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 10:10:14 +09:00
ILSEON-RYU 2449c7766d .env 시크릿을 추적에서 제외하고 .env.example 패턴 도입
## 변경 사항
- git rm --cached .env  : 토큰/채팅ID 가 평문으로 git push 되지 않도록
  추적 해제. 로컬 파일은 그대로 유지.
- .env.example 추가     : 클론하는 사람이 어떤 환경변수가 필요한지 알 수
  있게 placeholder 만 담은 템플릿 커밋.
- .gitignore 에 .env    : 향후 실수로 추가되는 것 방지.

## 주의
- 이미 git history 에 들어간 옛날 토큰은 그대로 남아있음. 해당 토큰은
  이미 revoke 되어 무효화되었으므로 별도 history 재작성은 진행하지 않음.
- 새 환경(서버 등)에 배포할 때는 .env.example 을 .env 로 복사한 뒤
  실제 토큰/ID 를 채워 넣어야 함.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 10:09:59 +09:00
ILSEON-RYU b9bba95b55 같은 캔들에 대한 중복 알림 방지 (per-candle dedup)
## 문제
30s 폴링 × 3캔들 윈도우 × 600s 쿨다운이 맞물려, 동일 캔들에 대한 알림이
한 번 발송된 뒤 쿨다운(10분)이 풀리는 시점에 같은 캔들이 여전히 tail(3)
윈도우 안에 남아있으면(5m 기준 최대 15분 머무름) 두 번째 알림이 다시 발송
되는 현상.

## 변경 사항
- 시그널별로 마지막 발화 캔들의 open_time 을 추적하는 _last_fired_candle
  dict 추가.
- check_and_alert 에서 tail(3) 중 신호가 True 인 가장 최신 캔들의 open_time
  을 키로 잡고, 직전 발화와 동일하면 스킵.
- 기존 ALERT_COOLDOWN(시간 기반) 가드는 그대로 유지 — 다른 캔들로 신호가
  연속 발생할 때의 과다 알림은 여전히 차단.

결과적으로 한 캔들당 시그널 종류별로 1회만 알림이 발송됨.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 10:01:32 +09:00
ILSEON-RYU 6cd263f1f4 requirements.txt 실제 의존성과 일치하도록 정리
- streamlit / urllib3 추가: 코드에서 import 하지만 누락돼있어 새 환경에서
  서버 기동 자체가 실패하던 원인.
- ccxt / dash 제거: 어디에서도 import 되지 않음 (잔재).
- python-dotenv 버전 핀 추가, 파일 끝 개행 정리.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 10:01:15 +09:00
ILSEON-RYU 10944ae907 알림 신호 누락 버그 수정 (3건 묶음)
## 문제
대시보드 차트에는 진입 신호가 정상 표기되지만 텔레그램 알림이 전혀 발송되지
않거나 일부 신호 종류가 영구적으로 누락되는 현상.

## 변경 사항

1. 알림 스레드 캔들 50 -> 200
   - MA99(99 SMA) 가 50 캔들에서는 항상 NaN 이라 bull_ma / bear_ma 가
     False 가 되고, strong_long_signal / strong_short_signal 이 영원히
     발화하지 않던 문제. UI 와 동일한 200 캔들로 맞춰 신호 일관성 확보.
   - OI 도 50 -> 200 으로 정렬해 lookback 보강.

2. 알림 스레드에 fundingRate fetch + merge 추가
   - 기존 스레드 df 에 fundingRate 컬럼이 없어 short_caution_signal
     ('fundingRate' in df.columns 분기) 가 항상 False 였음.
   - UI 와 동일한 패턴(get_funding_rate -> floor('1h') merge -> ffill)
     으로 fundingRate 합류, short_caution_signal 정상 발화.

3. check_and_alert 1캔들 -> 3캔들 체크
   - df.iloc[-1] (현재 형성 중 캔들)만 보던 로직을 df.tail(3) 으로 확장.
   - 30s 폴링 사이 닫혀버린 캔들의 신호 누락 방지. cooldown 은 그대로
     유지되므로 중복 알림은 발생하지 않음.

## 부가
- streamlit.log / streamlit.err.log 를 .gitignore 에 추가
  (런타임 산출물 — 6.9MB까지 커지는 상황 발생).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 09:55:22 +09:00
ILSEON-RYU 790d4f1c83 서버 최신버전 동기화 2026-04-30 00:27:27 +09:00
ILSEON-RYU 28097da970 알림 쿨다운 600초로 통일 2026-04-29 23:21:07 +09:00
ILSEON-RYU 42b9199ed3 갱신시간 KST 우측상단 고정 + StochRSI K 빨간실선 2026-04-29 18:39:00 +09:00
ILSEON-RYU 1f551519fd StochRSI K선 빨간 실선으로 변경 2026-04-29 18:33:03 +09:00
ILSEON-RYU dfe3a2c19a 알림 3캔들 체크 + 시간/가격 추가 2026-04-29 18:00:20 +09:00
ILSEON-RYU 38db7cac09 갱신시간 위치 KST 수정 2026-04-29 17:37:36 +09:00
ILSEON-RYU 369aa4de00 first commit 2026-04-27 12:34:08 +09:00
ILSEON-RYU bd133ad2ae remove env 2026-04-25 21:20:08 +09:00
ILSEON-RYU 453b288a95 init 2026-04-25 21:19:25 +09:00