fix: VI 1h 매핑 실증 반영 — active=해제시각(1224) 유무로 판정
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>
This commit is contained in:
@@ -9464,7 +9464,8 @@ window.openPinModal = openPinModal;
|
||||
if(v.trigger_price) L.push('발동가: '+Number(v.trigger_price).toLocaleString()+'원');
|
||||
if(v.trigger_pct!=null&&v.trigger_pct!==0) L.push('발동 등락률: '+(v.trigger_pct>=0?'+':'')+v.trigger_pct+'%');
|
||||
if(v.count) L.push('당일 발동: '+v.count+'회');
|
||||
if(v.release_time) L.push('해제 예정: '+_fmtViTime(v.release_time));
|
||||
if(v.trigger_time&&v.trigger_time!=='000000') L.push('발동시각: '+_fmtViTime(v.trigger_time));
|
||||
if(v.release_time&&v.release_time!=='000000') L.push('해제: '+_fmtViTime(v.release_time));
|
||||
head=L.join('\n')+'\n\n─────\n';
|
||||
}
|
||||
var desc='⚡VI (변동성완화장치)\n\n주가가 짧은 시간에 급변하면 약 2분간\n단일가매매로 전환해 과열을 식히는 장치예요.\n\n• 동적VI: 직전 체결가 대비\n• 정적VI: 당일 기준가 대비\n(코스피200 3%·그 외 6% 등에서 발동)';
|
||||
|
||||
Reference in New Issue
Block a user