[23:19:24] === market_open_sim_smoke START ===
[23:19:24] log=/home/hoon/kis_bot/logs/market_open_sim_smoke.log
[23:19:24] 📌 target_candidates_history 테이블 확인/생성
[23:19:24] 📌 ws_price_validation 테이블 확인/생성
[23:19:24] 📌 stock_share_meta 테이블 확인/생성
[23:19:24] 📊 DB 테이블 생성/확인 완료
[23:19:24] ✅ TradeDB 초기화 완료: MariaDB 192.168.0.141:3306/kis_quant_db
[23:19:24] ✅ 달력: today=2026-07-12 next_open=2026-07-13 prev_td=2026-07-10 web_defaults=2026-07-03~2026-07-10
[23:19:24] ✅ 전략 ON=['SCALP', 'SHORT', 'MOMENTUM', 'BREAKOUT'] OFF=['RANGE_BREAK', 'UPDOW', 'DBBAND']
[23:19:24] ✅ TAIL_SKIP_HTS_SCAN_DUPES=false
[23:19:24] ✅ SHORT_SKIP_HTS_SCAN_DUPES=false
[23:19:24] ✅ MOMENTUM_SKIP_HTS_SCAN_DUPES=false
[23:19:24] ✅ BREAKOUT_SKIP_HTS_SCAN_DUPES=false
[23:19:24] ✅ SCALP_SKIP_HTS_SCAN_DUPES=false
[23:19:24] ✅ 장시간 판정 (fake 2026-07-13 09:05:00): market=True buy=True guard=True
[23:19:24] ✅ 엔진 DB 기본값 로드: tail_keys=82 mom=45 scalp=41 bo=44
[23:19:24] ✅ active_trades HOLDING: BREAKOUT=1, MOMENTUM=10, SCALP=28
[23:19:24] 🔑 모의 토큰 유효 (15.1h 남음) → 재사용
[23:19:25] HTTP 500 on GET https://openapivts.koreainvestment.com:29443/uapi/domestic-stock/v1/trading/inquire-balance (1/5) → 백오프 후 재시도
[23:19:26] ✅ KISClient 생성 ok mock=True acct=***0245
[23:19:26] ✅ 잔고 조회 응답 type=dict
[23:19:26] ✅ 장시작 리포트 문자열 생성 OK (미전송)

=== 모멘텀 (MOMENTUM) ===
  필드                                canonical(실매/파서치)          web 왕복후  판정
  ------------------------------------------------------------------------------
  sl_pct(손절)                                     0.02             0.02  OK   비율
  tp_pct(익절)                                     0.03             0.03  OK   비율
  tp_max_pct(익절상한)                               0.05             0.05  OK   비율
  shoulder_min_high                             0.003            0.003  OK   비율
  shoulder_cut_pct                              0.001            0.001  OK   비율
  mom_rsi_min                                      50               50  OK   그대로
  mom_rsi_max                                      80               80  OK   그대로
  mom_vol_mult                                   1.05             1.05  OK   그대로
  mom_vol_win                                       5                5  OK   정수
  max_daily                                       100              100  OK   정수
[23:19:26] ✅ verify_momentum parity OK

=== 돌파 (BREAKOUT) ===
  [A] 웹 vs param_search (동일 함수여야 100% 일치)
    OK — 공통 42개 키 전부 일치
  [B] 웹 엔진비율 vs 실매 DB 비율
  필드                                canonical(실매/파서치)          web 왕복후  판정
  ------------------------------------------------------------------------------
  BREAKOUT_STOP_LOSS_PCT                        0.015            0.015  OK   비율
[23:19:26] ✅ verify_breakout parity OK

=== 꼬리 (TAIL/SHORT) ===
  필드                                canonical(실매/파서치)          web 왕복후  판정
  ------------------------------------------------------------------------------
  sl_pct                                         0.03             0.03  OK   비율
  tp_pct                                         0.05             0.05  OK   비율
  shoulder_min_high                             0.005            0.005  OK   비율
  shoulder_cut_pct                              0.002            0.002  OK   비율
  rsi_threshold                                    85               85  OK   그대로
  rsi_period                                       14               14  OK   정수
  max_daily                                        20               20  OK   정수
  stop_atr_mult                                     2                2  OK   그대로
  target_atr_mult                                 1.5              1.5  OK   그대로
[23:19:26] ✅ verify_tail parity OK
[23:19:26] ✅ 실매↔웹↔파람 변환 정합 스모크 통과
[23:19:27] 📊 orders 테이블 확인/생성 완료
[23:19:28] 🔧 [백테-합성] 1M→3M 구멍 보강 2312봉 (종목 264)
[23:19:36] ✅ 꼬리 백테 2026-07-10: trades=3 pnl=3077
[23:19:45] 🔑 모의 토큰 유효 (15.0h 남음) → 재사용
[23:19:45] 📂 [예수금캐시] kv_store 복원: 463,253,718원 (updated=2026-07-12 15:34:11)
[23:19:45] ⏰ 실전 토큰 만료/없음 → 갱신 시도 (남은시간: -4.7h)
[23:19:45] ✅ 실전 토큰 발급 완료 | 만료: 2026-07-13 23:19:45 | 앞12자: eyJ0eXAiOiJK…
[23:19:46] ✅ 돌파 백테 2026-07-10: trades=19 pnl=-57826
[23:19:46] === SUMMARY ok=19 err=0 ===
[23:19:46] RESULT: PASS
