- _render_holding_row: px badge를 px-dot 초록점으로 통일. 활성 시장 판정(mark)은
OHLC 미니테이블 컬럼 강조(active_market)용으로만 남겨 OHLC 표시는 그대로 유지
- 더 이상 쓰이지 않는 .px-mark/.px-nxt/.px-krx CSS 제거, CSS 주석 갱신
- 라이브 owner 패널 27개 보유행 전부 초록점 확인
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- _render_row: 가격 출처(NXT/KRX) 텍스트 배지 대신 '지금 거래시간 여부'로
초록점(.px-dot.tradable) / 점 없음. 정규장=전부, NXT시간대=NXT거래종목만
(_nxt_price>0), 장마감·휴장·주말=점 없음. 가격 None은 기존대로 점 없음
- 보유종목 상세행(_render_holding_row)의 NXT/KRX 텍스트는 그대로 유지
- CSS .px-dot 추가 (px-mark.px-nxt/krx는 보유행이 계속 사용)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 팝업 조건: 입력 수량 == 매도가능 전량(max_qty)일 때만 sell-choice 팝업,
일부매도는 팝업 없이 단일 진행. lastCheck 미수신 시에도 단일 진행
- 매도 정보영역: 같은 그룹 다른 계좌도 보유 시 '보유: 141주 / 전체 280주' 병기
(단독 보유면 기존 표시 유지). 팝업 문구도 양쪽 '매도가능 전량'으로 통일
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- CHART_RANGE_DAYS에 '3M': 63 추가 (stock_analysis)
- /api/chart_svg 탭·패널 순서를 분봉 우선으로 재배열, 3M 패널 신설
- 기본 활성 탭은 1개월 유지
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 일별 보기: ISO 주차가 바뀌는 첫 점에 세로 점선 (주 단위 구간 인지)
- 월별 보기: 연도가 바뀌는 첫 점에 세로 점선
- per_period 모드는 기존 period-sep과 중복이라 생략, week/year 단위 미표시
- 스타일 .grid-v — 가로 grid와 동일 톤 점선
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 사이드카 날 VI 폭주(~1,000건) 실증 결과:
- 9068은 발동/해제가 아니라 VI 종류(1=정적, 2=동적, 3=동적+정적)
→ 구 매핑은 동적 VI를 통째로 무시하고, 해제 이벤트도 active로 덮어썼음
- 발동 이벤트는 1224(해제시각)='000000', 해제 이벤트는 시각이 참
→ active = release_time in ('','000000') 으로 교체, 1223 발동시각 추가 저장
- 1h는 구독 무관 시장 전역 broadcast임을 확인 (주석 기록)
- 실증용 raw 로그 제거 (폭주 날 ~2,000줄 — 역할 완료)
- 토스트: 발동시각 표시 추가, '000000'은 해제 표시 생략
- TTL 백스톱(_vi_expired 180s)은 해제 메시지 유실 대비로 유지
라이브 검증: 002780 동적 VI 발동(09:09:08) → active=True 정상 포착
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- 관찰(2026-06-11): VI 발동 1h 이후 해제 메시지가 안 오고 1224(해제시각)도
발동시각과 동일 → active=true 박제, 배지가 안 사라짐
- get_vi/active_vis 읽기 시점에 발동 후 180초(2분+임의연장30s+여유) 경과 시
active=False 처리 (_vi_expired). 저장 원본은 유지
- 1h 원본 필드 stderr 로그 추가 — 9068/1224 매핑 실증용 (VI 드물어 부담 없음)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
각 탭의 개별 판단 박스 제거. 요약탭 최상단에 📌종합(가치 vs 성장·컨센서스
상충을 한 문장으로 화해: 고평가+긍정/저평가+부진/고평가+부진/저평가+긍정 4분기)
+ ✅좋은 점 / ⚠️주의할 점(두 영역 합산) 표시.
companyJudge/growthJudge → companyGC/growthGC({good,caution}) + synthNote 추가.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
기업정보·가치 탭: 밸류에이션(PER·PBR)+수익성(ROE 우수/양호/낮음/적자).
성장성·컨센서스 탭: 성장(매출·영익·EPS YoY)+목표주가/상승여력/투자의견+
리비전+서프라이즈. 규칙 기반(LLM 미경유), 표시 데이터 그대로 요약.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
⚡VI 탭 시 그 종목의 실시간 VI 정보(적용구분·방향·발동가·발동등락률·당일
발동횟수·해제시각)를 설명과 함께 표시. window.__rtState.vi[code] 사용.
허브에 발동횟수(1490) 캡처 추가.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
VI 배지를 누르면 VI 설명 토스트 표시(동적/정적VI·발동 기준·2분 단일가).
document 위임(배지는 동적 생성) + preventDefault/stopPropagation으로 행 토글 차단.
배지에 cursor:pointer 추가.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
기존 조건(d_pct_val != 0)으로 등락률이 0/None이면 .rt-daypct span을 아예
안 그렸는데, WS paintDay는 span이 있을 때만 갱신(if(sp))이라 한 번 0으로
렌더되면 실시간으로도 복구 안 돼 사라졌다. show_day_change 동안 항상 span을
그리도록 변경(값 0/None은 0.00% neutral) → WS가 라이브로 채움.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
기존엔 극값이 마지막 점이면 생략 → 저점이 현재값인 차트(가희 등)에서 저점 안 보임.
마지막 점 제외 조건 제거 → 장중가가 고/저점이어도 표시. 단 마지막 점이 신고가(ATH)면
신고가 링이 '고'를 대신(중복 방지).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
당일시가대비(vs 오늘 시가)는 갭하락 때 현재 등락율과 어긋남(예: 삼성전자
시가대비 -4.1% vs 전일대비 -7%대). 관리자 요청대로 그 봉 종가 vs 전일종가
기준으로 변경 → 마지막 봉이 현재 등락율(-7%대)과 일치.
- meta.dayOpen 제거, meta.prevClose(=ref_price) 주입
- _setOhlcText: '당일시가대비' → '전일대비' 라인
- day_open 캡처/파라미터 제거(불필요)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 당일시가(dayOpen)를 range 슬라이스 전 '오늘 첫 봉' 시가로 고정 → 1h/30min 등
구간을 좁혀도 baseline 동일. 마지막 봉 당일시가대비 = 현재가 등락율 일치.
(기존: candles[0]가 슬라이스된 구간 첫 봉이라 baseline이 틀렸음)
- 우상단 '전일대비 X%' 텍스트 제거(관리자 요청). 전일종가 기준선은 유지.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
분봉 차트 클릭(세로선) 시 OHLC 팝업에 그 봉 종가의 당일 시가(첫 봉) 대비
등락률을 표시 — 그 시점까지의 오늘 누적 등락을 한눈에. 일봉은 미표시(분봉만).
- render_svg_chart(intraday=) → meta.dayOpen(첫 봉 시가, 분봉만) 주입
- 분봉 엔드포인트 intraday=True
- _setOhlcText: 당일시가대비 라인 + 팝업 박스/닫기버튼 동적 리사이즈
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 분봉 차트(1/5/15m): prev_close를 일봉 캐시에서 못 찾으면 ka10095(현재가−전일대비)로
보강 → 모든 종목에 '전일대비 +X%'(오늘 하루 등락) 항상 표시.
- 보유종목 자세히 보기 상단에 종목명+코드(.detail-name) 추가.
- 차트 컨트롤 2번째 줄: 연도/월은 내용 크기, 유형은 기간과 동일 폭(글씨 크기 유지).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 1번째 줄: 기간/단위/차트타입(모드) 유지. 지정기간 선택 시 단위 일별 고정(비활성).
- 2번째 줄(지정기간일 때만 노출): 유형(연도별/월별) / 연도 / 월.
- 유형=연도별이면 월 드롭다운 '-' 표시·비활성, 월별이면 월 활성.
- 연도별도 단위 일별 → 그 해 전체 일별 차트(기존 월별집계에서 변경).
- CSS: .chart-controls 컬럼 레이아웃 + .cc-line 행, .cc-line-ym[hidden] 숨김.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
과거 기간(예: 4월)을 골라도 has_live 판정으로 오늘 순자산이 마지막 점·델타·
하단값으로 붙어 차트와 무관한 값이 나오던 문제. period가 이번달·올해가 아니면
(period_is_current=False) current_net/rt_owner를 None으로 → 라이브 점·라이브
갱신 모두 비활성. 과거 차트는 그 기간 끝점에서 마감, 델타·하단값이 차트와 일치.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
보유종목 표시 등락이 스냅샷(어제 NXT 종가) 기준이라 감시탭 미리보기(ka10095
실시간 전일종가)와 50원 차이로 어긋났다(예: SK이터닉스 23.83% vs 23.64%).
보유행 표시 등락(미리보기·당일등락·평가금액변동·data-rt-prevclose)과 NXT OHLC
전일종가를 마크된 시장의 ka10095(현재가−전일대비) 기준으로 통일.
원본 r은 copy로 보존(KPI·잔고 계산 영향 없음). 잔고 KPI는 prev_net 기반이라
개별 일손익 합과 50원×수량 수준 미세 괴리는 감수(관리자 승인).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- kt00018 pred_close_krx가 장 마감 후 현재가와 같은 값으로 채워지는 결함으로
KRX 당일종가/현재가 등락률이 0%로 깔리던 문제 수정 → KRX 전일종가를
ka10095(현재가−전일대비)로 산출(서버 계산값). 현재가·당일종가 등락 둘 다 정상화.
- 듀얼 OHLC 행 순서: 전일종가·현재가·시가·고가·저가·당일종가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 현재가 행: AL(통합) 현재가를 KRX·NXT 양 컬럼에 공통 표시(동일가).
등락률만 각 시장 전일종가 대비로 분리 → 가격 같고 % 다름.
- 당일종가 행 신설: 그 시장이 마감된 뒤에만(KRX 15:30·NXT 20:00 이후)
해당 시장 종가+등락 표시, 장중엔 '·'(미확정).
- _render_ohlc_mini_dual에 al_price·krx_closed·nxt_closed 파라미터 추가.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
이전 커밋에서 WS 연결 시 보유 가격보정 ka10095 2콜을 "순수 중복"으로 보고
skip했으나, 그 두 콜(KRX/NX)은 보유종목 행의 KRX·NXT 듀얼 OHLC 미니
(r['ohlc_krx']·['ohlc_nxt']) 데이터원이기도 했다. _AL 허브는 거래소별 단일
최신값만 들어 두 컬럼을 동시에 못 주므로 skip 불가 → 게이팅 제거(항상 호출).
관심·감시(단일 OHLC) 허브 충당은 그대로 유효.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
장중 차트의 오늘 값은 foot 라벨만 1초 라이브였고 점 위치는 페치 때만
갱신돼 둘이 어긋나 보였다. WS 틱마다 서버와 동일 스케일로 y를 재계산해
last-dot·live-halo·신고가 마커·라이브 점선 끝점·마지막 pt-dot을 함께 이동.
렌더 범위 밖이면 차트 가장자리로 클램프(다음 페치가 스케일 재계산).
- net-chart-last에 스케일 노출(data-rt-nw-ylo/span/top/ih/x)
- 라이브 점선에 live-seg 클래스로 baseline 점선과 구분
- rt-nw 페인트에 점·선분 이동 로직 추가
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- realtime_hub: 0B/1h 구독을 _AL(통합/SOR)로 전환 → 정규장 KRX + NXT 시간대
NXT 체결을 한 구독으로 수신(수신 시 거래소 접미사 제거 후 bare 저장).
NXT 당일평가손익 실시간 갱신 미동작 근본 수정. 0B 시/고/저(16/17/18) 캡처
- behive_web: WS 연결 시 보유 가격보정 ka10095 2콜 skip(완전 중복),
관심·감시 시세도 허브 메모리 우선 충당(OHLC·마크는 서버 렌더 유지, mark는
exchange 필드로 판정) → 시세성 키움 호출 중복 제거
- VI 배지: 자동갱신 swap 직후 마지막 WS 상태 즉시 재적용(깜빡임 제거),
codesOnPage가 보유행(:held)·영문 6자리 코드도 수집 → 보유종목까지 VI 표시
- 상단바 WS 연결 상태 점(초록/빨강/회색) 추가 + 탭 시 상태 토스트
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
load()에 추가했던 .refresh spinning(빨강) 제거 — 자동갱신마다 빨간 깜빡임 거슬림.
내용은 여전히 클리어 없이 swap. 수동 새로고침(↻)의 빨간 스핀은 manualRefresh가 그대로 유지.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>