[03:16:41] === market_open_sim_smoke START ===
[03:16:41] log=/home/hoon/kis_bot/logs/market_open_sim_smoke.log
[03:16:41] 📌 target_candidates_history 테이블 확인/생성
[03:16:41] 📌 ws_price_validation 테이블 확인/생성
[03:16:41] 📌 stock_share_meta 테이블 확인/생성
[03:16:41] 📊 DB 테이블 생성/확인 완료
[03:16:41] ✅ TradeDB 초기화 완료: MariaDB 192.168.0.141:3306/kis_quant_db
[03:16:41] ✅ 달력: today=2026-07-16 next_open=2026-07-17 prev_td=2026-07-16 web_defaults=2026-07-09~2026-07-16
[03:16:41] ✅ 전략 ON=['SCALP', 'SHORT', 'MOMENTUM', 'BREAKOUT'] OFF=['RANGE_BREAK', 'UPDOW', 'DBBAND']
[03:16:41] ✅ TAIL_SKIP_HTS_SCAN_DUPES=false
[03:16:41] ✅ SHORT_SKIP_HTS_SCAN_DUPES=false
[03:16:41] ✅ MOMENTUM_SKIP_HTS_SCAN_DUPES=false
[03:16:41] ✅ BREAKOUT_SKIP_HTS_SCAN_DUPES=false
[03:16:41] ✅ SCALP_SKIP_HTS_SCAN_DUPES=false
[03:16:41] ✅ 장시간 판정 (fake 2026-07-17 09:05:00): market=True buy=True guard=True
[03:16:41] ✅ 엔진 DB 기본값 로드: tail_keys=82 mom=49 scalp=41 bo=44
[03:16:41] ✅ active_trades HOLDING: (없음)
[03:16:41] 🔑 모의 토큰 유효 (10.9h 남음) → 재사용
[03:16:41] ✅ KISClient 생성 ok mock=True acct=***0245
[03:16:41] ✅ 잔고 조회 응답 type=dict
[03:16:41] ✅ 장시작 리포트 문자열 생성 OK (미전송)

=== 모멘텀 (MOMENTUM) ===
  필드                                canonical(실매/파서치)          web 왕복후  판정
  ------------------------------------------------------------------------------
  sl_pct(손절)                                     0.05             0.05  OK   비율
  tp_pct(익절)                                     0.03             0.03  OK   비율
  tp_max_pct(익절상한)                               0.05             0.05  OK   비율
  shoulder_min_high                              0.03             0.03  OK   비율
  shoulder_cut_pct                              0.004            0.004  OK   비율
  mom_rsi_min                                      52               52  OK   그대로
  mom_rsi_max                                     100              100  OK   그대로
  mom_vol_mult                                      3                3  OK   그대로
  mom_vol_win                                       5                5  OK   정수
  max_daily                                        30               30  OK   정수
[03:16:41] ✅ verify_momentum parity OK

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

=== 스캘핑 (SCALP) ===
  필드                                canonical(실매/파서치)          web 왕복후  판정
  ------------------------------------------------------------------------------
  sl_pct(손절)                                    0.035            0.035  OK   비율
  tp_pct(익절)                                     0.03             0.03  OK   비율
  tp_max_pct(익절상한)                               0.04             0.04  OK   비율
  drop_rate(낙폭)                                  0.01             0.01  OK   비율
  shoulder_min_high                              0.03             0.03  OK   비율
  shoulder_cut_pct                              0.001            0.001  OK   비율
  rsi_oversold                                     23               23  OK   그대로
  rsi_period                                        3                3  OK   정수
  max_daily                                       100              100  OK   정수
  use_macd_cross                                False            False  OK   bool
  skip_hts_scan_dupes                           False            False  OK   bool
  [B] param_search _ui_to_engine vs 실매 비율
  필드                                canonical(실매/파서치)          web 왕복후  판정
  ------------------------------------------------------------------------------
  sl_pct                                        0.035            0.035  OK   비율
  tp_pct                                         0.03             0.03  OK   비율
  tp_max_pct                                     0.04             0.04  OK   비율
  drop_rate                                      0.01             0.01  OK   비율
  shoulder_min_high                              0.03             0.03  OK   비율
  shoulder_cut_pct                              0.001            0.001  OK   비율
[03:16:41] ✅ verify_scalping parity OK

=== 꼬리 (TAIL/SHORT) ===
  필드                                canonical(실매/파서치)          web 왕복후  판정
  ------------------------------------------------------------------------------
  sl_pct                                         0.03             0.03  OK   비율
  tp_pct                                         0.05             0.05  OK   비율
  shoulder_min_high                             0.007            0.007  OK   비율
  shoulder_cut_pct                             0.0015           0.0015  OK   비율
  rsi_threshold                                    78               78  OK   그대로
  rsi_period                                       14               14  OK   정수
  max_daily                                        10               10  OK   정수
  stop_atr_mult                                     2                2  OK   그대로
  target_atr_mult                                 1.5              1.5  OK   그대로
[03:16:41] ✅ verify_tail parity OK
[03:16:41] ✅ 실매↔웹↔파람 변환 정합 스모크 통과
[03:16:41] 📊 orders 테이블 확인/생성 완료
[03:16:42] ✅ 꼬리 백테 2026-07-16: trades=0 pnl=0
[03:16:42] ⚠️ ws_ticks 데이터 없음 — B안 OHLC high 폴백 (틱 수집 후 재백테 권장)
[03:16:42] ✅ 돌파 백테 2026-07-16: trades=0 pnl=0
[03:16:42] === SUMMARY ok=20 err=0 ===
[03:16:42] RESULT: PASS
