Forming candle 의 일시적 신호 깜빡임으로 인한 false alert 차단
## 사례 2026-05-04 09:38 KST 에 30분봉 [09:30, 10:00) 형성 중 캔들 기준으로 '일반 숏 진입 신호' 알림이 발사되었으나, 09:30 캔들이 close=78,504.90 으로 마감된 후 동일 캔들에 대해 모든 진입 신호가 False 로 확인됨. 즉, 캔들 형성 중 일시적으로 close 가 MA / BB 기준선 아래로 내려간 순간 short_signal 이 잠깐 True 로 떴다가 close 가 위로 회복되며 False 로 전환된 것을 알림 스레드가 그 순간 잡아 발사함. 이후 손절가 알림 ([손절가알림])까지 trail 되어 잘못된 시그널이 두 번 텔레그램에 도착. ## 수정 check_and_alert 의 검사 윈도우를 df.tail(3) 에서 df.iloc[:-1].tail(3) 로 변경. 마지막 행 (= 현재 형성 중 캔들) 을 제외하고 최근 3 개 닫힌 캔들만 검사. close 가 확정된 데이터만 보므로 forming 깜빡임에 속지 않음. 부작용: 알림이 캔들 마감 후 ~30s (다음 polling 주기) 이내로 자연 미뤄짐. accuracy / latency 트레이드오프에서 accuracy 우선이라고 판단. 손절가 도달 체크는 여전히 df.iloc[-1]['close'] (현재가) 사용해서 real-time 반응성 유지. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+3
-1
@@ -91,7 +91,9 @@ SIG_DEFS = [
|
|||||||
|
|
||||||
def check_and_alert(df, symbol, interval):
|
def check_and_alert(df, symbol, interval):
|
||||||
now = time.time()
|
now = time.time()
|
||||||
recent = df.tail(3)
|
# 마지막 행은 형성 중(forming) 캔들 — 지표가 close 변동에 따라 깜빡일 수 있어
|
||||||
|
# false alert 의 주범. 닫힌 캔들 (최근 3개) 만 신호 검사 대상으로 사용.
|
||||||
|
recent = df.iloc[:-1].tail(3)
|
||||||
|
|
||||||
eligible = []
|
eligible = []
|
||||||
for sig, key, sub_label, direction in SIG_DEFS:
|
for sig, key, sub_label, direction in SIG_DEFS:
|
||||||
|
|||||||
Reference in New Issue
Block a user