## 변경 사항
- 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>
## 문제
대시보드 차트에는 진입 신호가 정상 표기되지만 텔레그램 알림이 전혀 발송되지
않거나 일부 신호 종류가 영구적으로 누락되는 현상.
## 변경 사항
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>