From a57941e1eff0d64be19c08b59983d09d676c8ec0 Mon Sep 17 00:00:00 2001 From: ILSEON-RYU Date: Mon, 4 May 2026 23:25:45 +0900 Subject: [PATCH] =?UTF-8?q?15m/30m/1h=20=EC=A7=84=EC=9E=85=20=EC=95=8C?= =?UTF-8?q?=EB=A6=BC=EC=9D=84=20closed=20candle=20=EC=A0=84=EC=9A=A9?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD=20(forming=20=EC=B0=A8?= =?UTF-8?q?=EB=8B=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 사례 2026-05-04 23:02 KST 1시간봉 일반 숏 진입 알림 발사. 그러나 23:00 캔들은 forming 중이고 그 시점 close 가 일시적으로 open 아래로 내려가 short_signal=True 깜빡 발화. 이후 close=79,203 으로 회복 (open 78,747 위) -> 마감 시점 short_signal=False. 사용자 입장에서는 "숏 마커도 없는데 1시간봉에 숏 알림 오는 지랄". ## 수정 forming candle 깜빡임은 두 가지 방법으로 대응: 1. 5분봉 - forming 발사 허용 + 깜빡 시 a9ad52f 의 즉시 취소(30s) (반응성 우선, 사용자 5분 단타용) 2. 15m / 30m / 1h - forming 자체 제외, closed candle 만 신호 검사 (가짜 알림 차단. 발사는 캔들 마감 후 다음 polling = ~30초 이내) recent = df.iloc[:-1].tail(3) if interval in (15m, 30m, 1h) 장기 시간봉은 1캔들 늦은 알림 (15~60분 지연) 보다 가짜 알림 차단이 더 가치 있음 — 사용자 손익에 큰 영향. 5분봉은 깜빡 후 30초 취소로 충분. Co-Authored-By: Claude Opus 4.7 (1M context) --- app_streamlit.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app_streamlit.py b/app_streamlit.py index 692f0ae..a965f9f 100644 --- a/app_streamlit.py +++ b/app_streamlit.py @@ -124,8 +124,14 @@ def check_and_alert(df, symbol, interval): alert_state.short_entry[interval] = None alert_state.pending_groups = new_pending - # Phase 2 — 신호 검사 + 알림 발사 (forming candle 포함) - recent = df.tail(3) + # Phase 2 — 신호 검사 + 알림 발사. + # 5분봉: forming candle 포함 (반응성 우선, 깜빡임은 a9ad52f 의 즉시 취소로 대응) + # 15m / 30m / 1h: forming candle 제외 (forming 동안 신호 깜빡으로 인한 가짜 + # 알림 자체를 차단. 알림은 캔들 마감 후 ~30초 이내 발사 — 신뢰성 우선) + if interval in ("15m", "30m", "1h"): + recent = df.iloc[:-1].tail(3) + else: + recent = df.tail(3) eligible = [] for sig, key, sub_label, direction in SIG_DEFS: