-- AUTO-GENERATED: config_*/env_config 전 컬럼 COMMENT (타입·값 불변)
-- 생성: scripts/sql/fill_all_config_env_column_comments.py

-- ── config_us_momentum (73 cols) ──
ALTER TABLE `config_us_momentum`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `STRATEGY_US_MOMENTUM_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀 ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함. 기동시OFF→켜려면재시작',
  MODIFY COLUMN `US_MOMENTUM_TIME_START`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 매수시작 (US_MOMENTUM_TIME_START)',
  MODIFY COLUMN `US_MOMENTUM_TIME_END`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 매수종료 (US_MOMENTUM_TIME_END)',
  MODIFY COLUMN `US_MOMENTUM_SELL_TIME_END`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 매도세션종료 (US_MOMENTUM_SELL_TIME_END)',
  MODIFY COLUMN `US_MOMENTUM_DRY_RUN`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 모의/페이퍼전용 (US_MOMENTUM_DRY_RUN)',
  MODIFY COLUMN `US_MOMENTUM_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 동시보유상한 (US_MOMENTUM_MAX_STOCKS)',
  MODIFY COLUMN `US_MOMENTUM_SLOT_MONEY`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 슬롯금액 (US_MOMENTUM_SLOT_MONEY)',
  MODIFY COLUMN `US_MOMENTUM_FEE_RATE`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 수수료율 (US_MOMENTUM_FEE_RATE)',
  MODIFY COLUMN `US_MOMENTUM_SELL_TAX`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 매도세금 (US_MOMENTUM_SELL_TAX)',
  MODIFY COLUMN `US_MOMENTUM_MIN_PRICE`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 최소가격 (US_MOMENTUM_MIN_PRICE)',
  MODIFY COLUMN `US_MOMENTUM_LIVE_MIN_CANDLES`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 실매최소봉수 (US_MOMENTUM_LIVE_MIN_CANDLES)',
  MODIFY COLUMN `US_MOMENTUM_EOD_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 장마감청산ON (US_MOMENTUM_EOD_ENABLED)',
  MODIFY COLUMN `US_MOMENTUM_EOD_HM`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 장마감시각HHMM (US_MOMENTUM_EOD_HM)',
  MODIFY COLUMN `US_MOMENTUM_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 1회최대매수금액 (US_MOMENTUM_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `US_MOMENTUM_TOTAL_BUDGET`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 총운용한도 (US_MOMENTUM_TOTAL_BUDGET)',
  MODIFY COLUMN `US_MOMENTUM_RSI_MIN`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: RSI하한 (US_MOMENTUM_RSI_MIN)',
  MODIFY COLUMN `US_MOMENTUM_RSI_MAX`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: RSI상한 (US_MOMENTUM_RSI_MAX)',
  MODIFY COLUMN `US_MOMENTUM_VOL_MULT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 거래량배수 (US_MOMENTUM_VOL_MULT)',
  MODIFY COLUMN `US_MOMENTUM_VOL_WIN`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 거래량윈도우 (US_MOMENTUM_VOL_WIN)',
  MODIFY COLUMN `US_MOMENTUM_MAX_FROM_OPEN_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 최대 시가대비 %% (US_MOMENTUM_MAX_FROM_OPEN_PCT)',
  MODIFY COLUMN `US_MOMENTUM_MIN_FROM_OPEN_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 최소 시가대비 %% (US_MOMENTUM_MIN_FROM_OPEN_PCT)',
  MODIFY COLUMN `US_MOMENTUM_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 손절 %% (US_MOMENTUM_STOP_LOSS_PCT)',
  MODIFY COLUMN `US_MOMENTUM_TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 익절 %% (US_MOMENTUM_TAKE_PROFIT_PCT)',
  MODIFY COLUMN `US_MOMENTUM_TP_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: TP 최대 %% (US_MOMENTUM_TP_MAX_PCT)',
  MODIFY COLUMN `US_MOMENTUM_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 어깨무장고점 %% (US_MOMENTUM_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `US_MOMENTUM_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 어깨컷 %% (US_MOMENTUM_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `US_MOMENTUM_RATCHET_TIERS`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 다단래칫 (US_MOMENTUM_RATCHET_TIERS)',
  MODIFY COLUMN `US_MOMENTUM_TRAIL_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 트레일 %% (US_MOMENTUM_TRAIL_PCT)',
  MODIFY COLUMN `US_MOMENTUM_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 트레일무장 %% (US_MOMENTUM_TRAIL_ARM_PCT)',
  MODIFY COLUMN `US_MOMENTUM_MAX_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 최대보유봉 (US_MOMENTUM_MAX_HOLD_BARS)',
  MODIFY COLUMN `US_MOMENTUM_MAX_DAILY`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 일일매수횟수상한 (US_MOMENTUM_MAX_DAILY)',
  MODIFY COLUMN `US_MOMENTUM_MAX_DAILY_CHG`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 당일등락상한 (US_MOMENTUM_MAX_DAILY_CHG)',
  MODIFY COLUMN `US_MOMENTUM_HIGH_CHASE_THR`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 고점추격 THR (US_MOMENTUM_HIGH_CHASE_THR)',
  MODIFY COLUMN `US_MOMENTUM_USE_DEFENSE_FILTERS`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 사용_ 방어필터 필터 S (US_MOMENTUM_USE_DEFENSE_FILTERS)',
  MODIFY COLUMN `US_MOMENTUM_USE_HIGH_CHASE_FILTER`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 사용_ 고점추격 필터 (US_MOMENTUM_USE_HIGH_CHASE_FILTER)',
  MODIFY COLUMN `US_MOMENTUM_USE_DAILY_RANGE_FILTER`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 사용_ DAILY RANGE 필터 (US_MOMENTUM_USE_DAILY_RANGE_FILTER)',
  MODIFY COLUMN `US_MOMENTUM_USE_EMA_FILTER`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 사용_ EMA 필터 (US_MOMENTUM_USE_EMA_FILTER)',
  MODIFY COLUMN `US_MOMENTUM_EMA_FAST_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: EMA단기 기간 (US_MOMENTUM_EMA_FAST_PERIOD)',
  MODIFY COLUMN `US_MOMENTUM_EMA_SLOW_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: EMA장기 기간 (US_MOMENTUM_EMA_SLOW_PERIOD)',
  MODIFY COLUMN `US_MOMENTUM_USE_RSI_MAX_FILTER`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 사용_ RSI상한 필터 (US_MOMENTUM_USE_RSI_MAX_FILTER)',
  MODIFY COLUMN `US_MOMENTUM_PATTERN_BREAKOUT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 패턴 돌파 (US_MOMENTUM_PATTERN_BREAKOUT)',
  MODIFY COLUMN `US_MOMENTUM_PATTERN_PULLBACK`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 패턴 되돌림 (US_MOMENTUM_PATTERN_PULLBACK)',
  MODIFY COLUMN `US_MOMENTUM_CHASE_LOOKBACK_MIN`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: CHASE LOOKBACK 최소 (US_MOMENTUM_CHASE_LOOKBACK_MIN)',
  MODIFY COLUMN `US_MOMENTUM_PULLBACK_LOOKBACK_MIN`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 되돌림 LOOKBACK 최소 (US_MOMENTUM_PULLBACK_LOOKBACK_MIN)',
  MODIFY COLUMN `US_MOMENTUM_PULLBACK_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 되돌림 최소 %% (US_MOMENTUM_PULLBACK_MIN_PCT)',
  MODIFY COLUMN `US_MOMENTUM_PULLBACK_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 되돌림 최대 %% (US_MOMENTUM_PULLBACK_MAX_PCT)',
  MODIFY COLUMN `US_MOMENTUM_SETUP_VOL_MAX_MULT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: SETUP 거래량 최대 배수 (US_MOMENTUM_SETUP_VOL_MAX_MULT)',
  MODIFY COLUMN `US_MOMENTUM_SETUP_BEAR_BARS_MIN`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: SETUP BEAR 봉수 최소 (US_MOMENTUM_SETUP_BEAR_BARS_MIN)',
  MODIFY COLUMN `US_MOMENTUM_MAX_LOSS_PER_TRADE`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 최대 LOSS PER TRADE (US_MOMENTUM_MAX_LOSS_PER_TRADE)',
  MODIFY COLUMN `US_MOMENTUM_MIN_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 최소 PROFIT %% (US_MOMENTUM_MIN_PROFIT_PCT)',
  MODIFY COLUMN `US_MOMENTUM_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 쿨다운 초 (US_MOMENTUM_COOLDOWN_SEC)',
  MODIFY COLUMN `US_MOMENTUM_DAILY_PROFIT_TARGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 일일익절 목표 ON/OFF (US_MOMENTUM_DAILY_PROFIT_TARGET_ENABLED)',
  MODIFY COLUMN `US_MOMENTUM_DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 일일익절 트레일 다단 (US_MOMENTUM_DAILY_PROFIT_TRAIL_TIERS)',
  MODIFY COLUMN `US_MOMENTUM_DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 일일익절 모드 (US_MOMENTUM_DAILY_PROFIT_MODE)',
  MODIFY COLUMN `US_MOMENTUM_MAX_ORDER_QTY`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 주문수량상한 (US_MOMENTUM_MAX_ORDER_QTY)',
  MODIFY COLUMN `US_MOMENTUM_ORDER_FAIL_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: ORDER FAIL 쿨다운 초 (US_MOMENTUM_ORDER_FAIL_COOLDOWN_SEC)',
  MODIFY COLUMN `US_MOMENTUM_RELOAD_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 설정리로드주기 초 (US_MOMENTUM_RELOAD_INTERVAL_SEC)',
  MODIFY COLUMN `US_MOMENTUM_PSAMOUNT_CACHE_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 매수가능수량 CACHE 초 (US_MOMENTUM_PSAMOUNT_CACHE_SEC)',
  MODIFY COLUMN `US_MOMENTUM_LOOP_SLEEP_MIN`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 루프대기 최소 (US_MOMENTUM_LOOP_SLEEP_MIN)',
  MODIFY COLUMN `US_MOMENTUM_LOOP_SLEEP_MAX`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 루프대기 최대 (US_MOMENTUM_LOOP_SLEEP_MAX)',
  MODIFY COLUMN `US_MOMENTUM_SCAN_REJECT_SLEEP_MIN`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 스캔탈락대기 SLEEP 최소 (US_MOMENTUM_SCAN_REJECT_SLEEP_MIN)',
  MODIFY COLUMN `US_MOMENTUM_SCAN_REJECT_SLEEP_MAX`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 스캔탈락대기 SLEEP 최대 (US_MOMENTUM_SCAN_REJECT_SLEEP_MAX)',
  MODIFY COLUMN `US_MOMENTUM_PROFILE_BUY_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: PROFILE BUY 초 (US_MOMENTUM_PROFILE_BUY_SEC)',
  MODIFY COLUMN `US_MOMENTUM_TRADES_CACHE_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: TRADES CACHE 초 (US_MOMENTUM_TRADES_CACHE_SEC)',
  MODIFY COLUMN `US_MOMENTUM_CANDLE_LOCK_WAIT_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: CANDLE LOCK WAIT 초 (US_MOMENTUM_CANDLE_LOCK_WAIT_SEC)',
  MODIFY COLUMN `US_MOMENTUM_DAILY_PROFIT_RISK_BUDGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 일일익절 RISK 한도 ON/OFF (US_MOMENTUM_DAILY_PROFIT_RISK_BUDGET_ENABLED)',
  MODIFY COLUMN `US_MOMENTUM_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 일일익절 RISK 한도 쿨다운 초 (US_MOMENTUM_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC)',
  MODIFY COLUMN `US_MOMENTUM_FORCE_BUY_QTY`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 강제매수테스트 QTY (US_MOMENTUM_FORCE_BUY_QTY)',
  MODIFY COLUMN `US_MOMENTUM_SESSION_START`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 세션시작 (US_MOMENTUM_SESSION_START)',
  MODIFY COLUMN `US_MOMENTUM_BUY_WAIT_LOG_SEC`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 매수대기로그 초 (US_MOMENTUM_BUY_WAIT_LOG_SEC)',
  MODIFY COLUMN `US_MOMENTUM_FX_FEE_RATE`
    text NULL DEFAULT NULL
    COMMENT '해외모멘텀: 환전수수료 RATE (US_MOMENTUM_FX_FEE_RATE)'
;

-- ── config_momentum (145 cols) ──
ALTER TABLE `config_momentum`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `MOMENTUM_LIVE_BACKTEST_ALIGN`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: LIVE BACKTEST ALIGN (MOMENTUM_LIVE_BACKTEST_ALIGN)',
  MODIFY COLUMN `MOMENTUM_LIVE_SIGNAL_LOOKBACK_BARS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: LIVE SIGNAL LOOKBACK 봉수 (MOMENTUM_LIVE_SIGNAL_LOOKBACK_BARS)',
  MODIFY COLUMN `STRATEGY_MOMENTUM_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '국내모멘텀 ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함. 기동시OFF→켜려면재시작',
  MODIFY COLUMN `MOMENTUM_UNIVERSE_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 유니버스 · ls_condition=LS 동명 AFR · 시세는 키움/한투 유지 · 매니저 최초 기동은 봇 재시작 필요할 수 있음 · 키움으로 자동 폴백 안 함',
  MODIFY COLUMN `RANK_MOMENTUM_SORT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: RANK MOMENTUM SORT (RANK_MOMENTUM_SORT)',
  MODIFY COLUMN `RANK_MOMENTUM_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: RANK MOMENTUM LIMIT (RANK_MOMENTUM_LIMIT)',
  MODIFY COLUMN `CONDITION_MOMENTUM_NAME`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: CONDITION MOMENTUM NAME (CONDITION_MOMENTUM_NAME)',
  MODIFY COLUMN `CONDITION_MOMENTUM_SEQ`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: CONDITION MOMENTUM SEQ (CONDITION_MOMENTUM_SEQ)',
  MODIFY COLUMN `MOMENTUM_CAND_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 후보 상한 · 0=무제한 · 조건검색/랭킹이 N개 줘도 상위 N개만 매수체크·WS구독 · 전 전략 합산이 키움 WS 100종 한도를 넘지 않게 조절',
  MODIFY COLUMN `MOMENTUM_TIME_START`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 매수시작 (MOMENTUM_TIME_START)',
  MODIFY COLUMN `MOMENTUM_TIME_END`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 매수종료 (MOMENTUM_TIME_END)',
  MODIFY COLUMN `MOMENTUM_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 동시 종목',
  MODIFY COLUMN `MOMENTUM_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 1회최대매수금액 (MOMENTUM_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `MOMENTUM_MAX_DAILY`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 일일매수횟수상한 (MOMENTUM_MAX_DAILY)',
  MODIFY COLUMN `MOMENTUM_RSI_MIN`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: RSI하한 (MOMENTUM_RSI_MIN)',
  MODIFY COLUMN `MOMENTUM_RSI_MAX`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: RSI상한 (MOMENTUM_RSI_MAX)',
  MODIFY COLUMN `MOMENTUM_VOL_MULT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 거래량배수 (MOMENTUM_VOL_MULT)',
  MODIFY COLUMN `MOMENTUM_VOL_WIN`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 거래량윈도우 (MOMENTUM_VOL_WIN)',
  MODIFY COLUMN `MOMENTUM_TIME_END_HM`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 매수종료 HHMM (MOMENTUM_TIME_END_HM)',
  MODIFY COLUMN `MOMENTUM_MAX_FROM_OPEN_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최대 시가대비 %% (MOMENTUM_MAX_FROM_OPEN_PCT)',
  MODIFY COLUMN `MOMENTUM_MIN_FROM_OPEN_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최소 시가대비 %% (MOMENTUM_MIN_FROM_OPEN_PCT)',
  MODIFY COLUMN `MOMENTUM_SKIP_HTS_SCAN_DUPES`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: HTS스캔중복스킵 (MOMENTUM_SKIP_HTS_SCAN_DUPES)',
  MODIFY COLUMN `MOMENTUM_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 손절 %% (MOMENTUM_STOP_LOSS_PCT)',
  MODIFY COLUMN `MOMENTUM_TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 익절 %% (MOMENTUM_TAKE_PROFIT_PCT)',
  MODIFY COLUMN `MOMENTUM_MIN_DROP_RATE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최소 되돌림/하락 RATE (MOMENTUM_MIN_DROP_RATE)',
  MODIFY COLUMN `MOMENTUM_SLOT_MONEY`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 슬롯(원)',
  MODIFY COLUMN `MOMENTUM_MIN_PRICE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최소가격 (MOMENTUM_MIN_PRICE)',
  MODIFY COLUMN `MOMENTUM_MAX_LOSS_PER_TRADE_KRW`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최대 LOSS PER TRADE 원 (MOMENTUM_MAX_LOSS_PER_TRADE_KRW)',
  MODIFY COLUMN `MOMENTUM_MIN_DROP_PCT_FOR_LOSS_CUT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최소 되돌림/하락 %% FOR LOSS CUT (MOMENTUM_MIN_DROP_PCT_FOR_LOSS_CUT)',
  MODIFY COLUMN `MOMENTUM_MIN_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최소 PROFIT %% (MOMENTUM_MIN_PROFIT_PCT)',
  MODIFY COLUMN `MOMENTUM_TP_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: TP 최대 %% (MOMENTUM_TP_MAX_PCT)',
  MODIFY COLUMN `MOMENTUM_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 어깨무장고점 %% (MOMENTUM_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `MOMENTUM_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 어깨컷 %% (MOMENTUM_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `MOMENTUM_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 총 한도(원)',
  MODIFY COLUMN `KIS_MOMENTUM_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: KIS MOMENTUM MM CHANNEL (KIS_MOMENTUM_MM_CHANNEL)',
  MODIFY COLUMN `MOMENTUM_RATCHET_TIERS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 다단래칫 (MOMENTUM_RATCHET_TIERS)',
  MODIFY COLUMN `MOMENTUM_TRAIL_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 트레일 %% (MOMENTUM_TRAIL_PCT)',
  MODIFY COLUMN `MOMENTUM_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 트레일무장 %% (MOMENTUM_TRAIL_ARM_PCT)',
  MODIFY COLUMN `MOMENTUM_MAX_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최대보유봉 (MOMENTUM_MAX_HOLD_BARS)',
  MODIFY COLUMN `MOMENTUM_USE_DEFENSE_FILTERS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 사용_ 방어필터 필터 S (MOMENTUM_USE_DEFENSE_FILTERS)',
  MODIFY COLUMN `MOMENTUM_USE_HIGH_CHASE_FILTER`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 사용_ 고점추격 필터 (MOMENTUM_USE_HIGH_CHASE_FILTER)',
  MODIFY COLUMN `MOMENTUM_USE_DAILY_RANGE_FILTER`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 사용_ DAILY RANGE 필터 (MOMENTUM_USE_DAILY_RANGE_FILTER)',
  MODIFY COLUMN `MOMENTUM_HIGH_CHASE_THR`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 고점추격 THR (MOMENTUM_HIGH_CHASE_THR)',
  MODIFY COLUMN `MOMENTUM_RSI_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: RSI 기간 (MOMENTUM_RSI_PERIOD)',
  MODIFY COLUMN `MOMENTUM_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 쿨다운 초 (MOMENTUM_COOLDOWN_SEC)',
  MODIFY COLUMN `MOMENTUM_MIN_HOLD_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 최소보유 초 (MOMENTUM_MIN_HOLD_SEC)',
  MODIFY COLUMN `MOMENTUM_FORCE_EOD_EXIT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: FORCE 장마감 EXIT (MOMENTUM_FORCE_EOD_EXIT)',
  MODIFY COLUMN `MOMENTUM_USE_EMA_FILTER`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 사용_ EMA 필터 (MOMENTUM_USE_EMA_FILTER)',
  MODIFY COLUMN `MOMENTUM_EMA_FAST_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: EMA단기 기간 (MOMENTUM_EMA_FAST_PERIOD)',
  MODIFY COLUMN `MOMENTUM_EMA_SLOW_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: EMA장기 기간 (MOMENTUM_EMA_SLOW_PERIOD)',
  MODIFY COLUMN `MOMENTUM_USE_RSI_MAX_FILTER`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 사용_ RSI상한 필터 (MOMENTUM_USE_RSI_MAX_FILTER)',
  MODIFY COLUMN `MOMENTUM_PATTERN_BREAKOUT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 패턴 돌파 (MOMENTUM_PATTERN_BREAKOUT)',
  MODIFY COLUMN `MOMENTUM_PATTERN_PULLBACK`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 패턴 되돌림 (MOMENTUM_PATTERN_PULLBACK)',
  MODIFY COLUMN `MOMENTUM_CHASE_LOOKBACK_MIN`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: CHASE LOOKBACK 최소 (MOMENTUM_CHASE_LOOKBACK_MIN)',
  MODIFY COLUMN `MOMENTUM_PULLBACK_LOOKBACK_MIN`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 되돌림 LOOKBACK 최소 (MOMENTUM_PULLBACK_LOOKBACK_MIN)',
  MODIFY COLUMN `MOMENTUM_PULLBACK_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 되돌림 최소 %% (MOMENTUM_PULLBACK_MIN_PCT)',
  MODIFY COLUMN `MOMENTUM_PULLBACK_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 되돌림 최대 %% (MOMENTUM_PULLBACK_MAX_PCT)',
  MODIFY COLUMN `MOMENTUM_SETUP_VOL_MAX_MULT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: SETUP 거래량 최대 배수 (MOMENTUM_SETUP_VOL_MAX_MULT)',
  MODIFY COLUMN `MOMENTUM_SETUP_BEAR_BARS_MIN`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: SETUP BEAR 봉수 최소 (MOMENTUM_SETUP_BEAR_BARS_MIN)',
  MODIFY COLUMN `MOMENTUM_ORDERBOOK_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 호가필터 ON · ON=스프레드·잔량비·얇은호가·매도벽으로 매수 차단 · OFF=저장만',
  MODIFY COLUMN `MOMENTUM_ORDERBOOK_MAX_SPREAD_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 스프레드상한(%%) · 0.45=0.45%% · 그리드 max_spread_pct 앵커',
  MODIFY COLUMN `MOMENTUM_ORDERBOOK_ENTRY_BID_LEVELS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 호가단계(N호가)',
  MODIFY COLUMN `MOMENTUM_ORDERBOOK_ENTRY_BID_DEPTH_MULT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 매수호가깊이 배수 · 얇은호가 탈락 · 필요수량×N',
  MODIFY COLUMN `MOMENTUM_ORDERBOOK_ENTRY_ASK_MAX_MULT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 매도벽 허용배수 · 필요수량×N · 그리드 ask_max_mult',
  MODIFY COLUMN `MOMENTUM_ORDERBOOK_MIN_BID_ASK_RATIO`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 매수/매도잔량비 하한 · 그리드 min_bid_ask_ratio',
  MODIFY COLUMN `MOMENTUM_PROGRAM_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 프로그램매매 필터 ON/OFF (MOMENTUM_PROGRAM_FILTER_ENABLED)',
  MODIFY COLUMN `MOMENTUM_PROGRAM_MIN_NET_BUY_QTY`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 프로그램매매 최소 NET BUY QTY (MOMENTUM_PROGRAM_MIN_NET_BUY_QTY)',
  MODIFY COLUMN `MOMENTUM_PROGRAM_MIN_NET_BUY_AMT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 프로그램매매 최소 NET BUY AMT (MOMENTUM_PROGRAM_MIN_NET_BUY_AMT)',
  MODIFY COLUMN `MOMENTUM_PROGRAM_MAX_SELL_BUY_QTY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 프로그램매매 최대 SELL BUY QTY RATIO (MOMENTUM_PROGRAM_MAX_SELL_BUY_QTY_RATIO)',
  MODIFY COLUMN `MOMENTUM_PROGRAM_MIN_NET_DELTA_QTY`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 프로그램매매 최소 NET DELTA QTY (MOMENTUM_PROGRAM_MIN_NET_DELTA_QTY)',
  MODIFY COLUMN `MOMENTUM_PROGRAM_SNAPSHOT_MAX_AGE_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 프로그램매매 SNAPSHOT 최대 AGE 초 (MOMENTUM_PROGRAM_SNAPSHOT_MAX_AGE_SEC)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_USE_TRIGGER_SNAPSHOT_DB`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST 사용_ TRIGGER SNAPSHOT DB (MOMENTUM_BACKTEST_USE_TRIGGER_SNAPSHOT_DB)',
  MODIFY COLUMN `MOMENTUM_WHIPSAW_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 휩쏘 필터',
  MODIFY COLUMN `MOMENTUM_WHIPSAW_MODE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 휩쏘 모드 (MOMENTUM_WHIPSAW_MODE)',
  MODIFY COLUMN `MOMENTUM_WHIPSAW_SUBBAR_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 휩쏘 SUBBAR 초 (MOMENTUM_WHIPSAW_SUBBAR_SEC)',
  MODIFY COLUMN `MOMENTUM_WHIPSAW_LOOKBACK_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 휩쏘 LOOKBACK 초 (MOMENTUM_WHIPSAW_LOOKBACK_SEC)',
  MODIFY COLUMN `MOMENTUM_WHIPSAW_DIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 휩쏘 DIP %% (MOMENTUM_WHIPSAW_DIP_PCT)',
  MODIFY COLUMN `MOMENTUM_WHIPSAW_RECOVERY_TOL_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 휩쏘 RECOVERY TOL %% (MOMENTUM_WHIPSAW_RECOVERY_TOL_PCT)',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_TARGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 손익 감시 켜기 · OFF = 해당 전략 일일익절 비활성 (매수 차단 없음)',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_TARGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 목표(원)',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_TARGET_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 목표(%%) · 퍼센트 그대로 (예: 2.5 = 2.5%%) · 0=미사용',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_HALT_NEW_BUYS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 신규매수 수동 중단 · 목표 무관 수동 잠금 · 비우면 마스터 상속 · OFF=정상',
  MODIFY COLUMN `MOMENTUM_BACKTEST_USE_TICK_EXIT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST 사용_ TICK EXIT (MOMENTUM_BACKTEST_USE_TICK_EXIT)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_TICK_FALLBACK_OHLC`
    text NULL DEFAULT NULL
    COMMENT '⚠ 모멘텀 OHLC 폴백 (정합위험·금지) · 절대금지 — 틱 청산 ON 시 엔진 무시 · Optuna 강제 OFF',
  MODIFY COLUMN `MOMENTUM_BACKTEST_POLL_MS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 틱청산 폴링(ms) · 실매 STRATEGY_LOOP_SLEEP≈0.1초 정합 · 틱 사이 청산 검사 간격 · 하한 50ms',
  MODIFY COLUMN `MOMENTUM_BACKTEST_SELL_SLIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST SELL SLIP %% (MOMENTUM_BACKTEST_SELL_SLIP_PCT)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_USE_TICK_ENTRY`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST 사용_ TICK ENTRY (MOMENTUM_BACKTEST_USE_TICK_ENTRY)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_BUY_SLIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST BUY SLIP %% (MOMENTUM_BACKTEST_BUY_SLIP_PCT)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_UNIVERSE_STRICT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST 유니버스 STRICT (MOMENTUM_BACKTEST_UNIVERSE_STRICT)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_UNIVERSE_STRICT_LAG_MIN`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST 유니버스 STRICT LAG 최소 (MOMENTUM_BACKTEST_UNIVERSE_STRICT_LAG_MIN)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_LIVE_SCAN_QUEUE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST LIVE SCAN QUEUE (MOMENTUM_BACKTEST_LIVE_SCAN_QUEUE)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_SCAN_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST SCAN 초 (MOMENTUM_BACKTEST_SCAN_SEC)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_UNIVERSE_SCAN_AT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST 유니버스 SCAN AT (MOMENTUM_BACKTEST_UNIVERSE_SCAN_AT)',
  MODIFY COLUMN `MOMENTUM_UNIVERSE_EXIT_DEBOUNCE_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 유니버스 EXIT DEBOUNCE 초 (MOMENTUM_UNIVERSE_EXIT_DEBOUNCE_SEC)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_CANDLE_WARMUP_BARS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST CANDLE WARMUP 봉수 (MOMENTUM_BACKTEST_CANDLE_WARMUP_BARS)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_USE_TRIGGER_EVAL_SNAPSHOT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST 사용_ TRIGGER EVAL SNAPSHOT (MOMENTUM_BACKTEST_USE_TRIGGER_EVAL_SNAPSHOT)',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 익절방식 · 비우면 마스터 상속 · fixed/trailing/both',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 다단 트레일 · 수익원:컷%%,… · 비우면 마스터 상속 · 예: 30000:50,100000:35,300000:25',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_TRAIL_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 단일 트레일 되돌림(%%) · 다단 비었을 때만 · 고점 대비 %% · 비우면 마스터 상속 · 0=미사용',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_TRAIL_ARM_KRW`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 트레일 발동수익(원) · 이 이상 벌어야 트레일 감시 · 비우면 마스터 상속',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 일일익절 트레일무장 %% (MOMENTUM_DAILY_PROFIT_TRAIL_ARM_PCT)',
  MODIFY COLUMN `CONDITION_MOMENTUM_KIWOOM_NAME`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: CONDITION MOMENTUM KIWOOM NAME (CONDITION_MOMENTUM_KIWOOM_NAME)',
  MODIFY COLUMN `CONDITION_MOMENTUM_KIWOOM_SEQ`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: CONDITION MOMENTUM KIWOOM SEQ (CONDITION_MOMENTUM_KIWOOM_SEQ)',
  MODIFY COLUMN `MOMENTUM_KIWOOM_UNIVERSE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: KIWOOM 유니버스 (MOMENTUM_KIWOOM_UNIVERSE)',
  MODIFY COLUMN `MOMENTUM_EOD_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'EOD 당일청산 사용 · ON=설정 시각 이후 보유 전량 장마감청산 · OFF=익절·손절·시간컷만',
  MODIFY COLUMN `MOMENTUM_EOD_HM`
    text NULL DEFAULT NULL
    COMMENT 'EOD 시각 (HH:MM) · 정규장 15:30 마감 기준 최소 10분 전 · 순차매도 여유',
  MODIFY COLUMN `MOMENTUM_TRIGGER_E_CONFIRM`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: TRIGGER E CONFIRM (MOMENTUM_TRIGGER_E_CONFIRM)',
  MODIFY COLUMN `MOMENTUM_TRIGGER_REQUIRE_BULL_BAR`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: TRIGGER REQUIRE BULL BAR (MOMENTUM_TRIGGER_REQUIRE_BULL_BAR)',
  MODIFY COLUMN `MOMENTUM_USE_VOL_TRIGGER`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 사용_ 거래량 TRIGGER (MOMENTUM_USE_VOL_TRIGGER)',
  MODIFY COLUMN `MOMENTUM_USE_RSI_FILTER`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 사용_ RSI 필터 (MOMENTUM_USE_RSI_FILTER)',
  MODIFY COLUMN `MOMENTUM_LIVE_MIN_CANDLES`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 실매최소봉수 (MOMENTUM_LIVE_MIN_CANDLES)',
  MODIFY COLUMN `MOMENTUM_GAP_FILL_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: GAP FILL LIMIT (MOMENTUM_GAP_FILL_LIMIT)',
  MODIFY COLUMN `MOMENTUM_GRID_FAST_SKIP_HTS_SCAN_DUPES`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: GRID FAST HTS스캔중복스킵 (MOMENTUM_GRID_FAST_SKIP_HTS_SCAN_DUPES)',
  MODIFY COLUMN `MOMENTUM_LIVE_ALIGN_USE_FORMING_BAR`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: LIVE ALIGN 사용_ FORMING BAR (MOMENTUM_LIVE_ALIGN_USE_FORMING_BAR)',
  MODIFY COLUMN `MOMENTUM_COOLDOWN_USE_CANDLE_FLOOR`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 쿨다운 사용_ CANDLE FLOOR (MOMENTUM_COOLDOWN_USE_CANDLE_FLOOR)',
  MODIFY COLUMN `MOMENTUM_COOLDOWN_ENGINE_ONLY`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 쿨다운 ENGINE ONLY (MOMENTUM_COOLDOWN_ENGINE_ONLY)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_SKIP_PRE_SUBSCRIBE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST SKIP PRE SUBSCRIBE (MOMENTUM_BACKTEST_SKIP_PRE_SUBSCRIBE)',
  MODIFY COLUMN `MOMENTUM_MAX_DAILY_CHG`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: 당일등락상한 (MOMENTUM_MAX_DAILY_CHG)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_WALLCLOCK_LAST_PRICE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST WALLCLOCK LAST PRICE (MOMENTUM_BACKTEST_WALLCLOCK_LAST_PRICE)',
  MODIFY COLUMN `MOMENTUM_PREV_DAY_OPEN_HM_MAX`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: PREV DAY OPEN HHMM 최대 (MOMENTUM_PREV_DAY_OPEN_HM_MAX)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_REST_WARMUP`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST REST WARMUP (MOMENTUM_BACKTEST_REST_WARMUP)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_REST_WARMUP_BARS`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST REST WARMUP 봉수 (MOMENTUM_BACKTEST_REST_WARMUP_BARS)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_REST_WARMUP_BARS_RETRY`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST REST WARMUP 봉수 RETRY (MOMENTUM_BACKTEST_REST_WARMUP_BARS_RETRY)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_REST_MAX_CODES`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST REST 최대 CODES (MOMENTUM_BACKTEST_REST_MAX_CODES)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_REST_SLEEP_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST REST SLEEP 초 (MOMENTUM_BACKTEST_REST_SLEEP_SEC)',
  MODIFY COLUMN `MOMENTUM_BACKTEST_REST_KIWOOM_MOCK`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: BACKTEST REST KIWOOM MOCK (MOMENTUM_BACKTEST_REST_KIWOOM_MOCK)',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_RISK_BUDGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 리스크버짓(B) · ON=일일익절 hit 후 보유최악손절합>cushion 이면 전량정리 · 기본 OFF · 마스터 없음',
  MODIFY COLUMN `MOMENTUM_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 리스크버짓 쿨다운(초) · 같은 날 재평가 최소 간격 · 0=당일 1회만',
  MODIFY COLUMN `MOMENTUM_TICK_SELL_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '모멘텀 틱매도 · 비우면 공통 TICK_SELL_ENABLED · true/false 명시 시 전략만 덮어씀 · 기본 false',
  MODIFY COLUMN `CONDITION_MOMENTUM_LS_NAME`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: CONDITION MOMENTUM LS NAME (CONDITION_MOMENTUM_LS_NAME)',
  MODIFY COLUMN `MOMENTUM_LIVE_UNIVERSE_HISTORY_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: LIVE 유니버스 HISTORY SOURCE (MOMENTUM_LIVE_UNIVERSE_HISTORY_SOURCE)',
  MODIFY COLUMN `MOMENTUM_E_MIN_CHG_PCT`
    text NULL DEFAULT NULL
    COMMENT '모멘텀: E 최소 CHG %% (MOMENTUM_E_MIN_CHG_PCT)',
  MODIFY COLUMN `MOMENTUM_EXIT_OB_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '수익구간 호가매도 ON/OFF. true=이미 이익일 때 OR붕괴면 호가컷. 기본 false. 진입필터와 무관',
  MODIFY COLUMN `MOMENTUM_EXIT_OB_RATIO_MIN`
    text NULL DEFAULT NULL
    COMMENT '수익구간: 총사겠음÷총팔겠음(OR) 이동평균이 이 값 미만이면 붕괴. 시드 0.4',
  MODIFY COLUMN `MOMENTUM_EXIT_OB_MA_WINDOW`
    text NULL DEFAULT NULL
    COMMENT '수익구간: OR 이동평균에 쓰는 최근 호가 스냅 개수. 시드 5',
  MODIFY COLUMN `MOMENTUM_EXIT_OB_MIN_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '수익구간: 최소 이익(분율). 0.005=+0.5%%. 미달이면 호가컷 안 함',
  MODIFY COLUMN `MOMENTUM_EXIT_OB_MIN_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '수익구간: 산 뒤 최소 보유 분(1분봉≈1). 시드 3. 미달이면 안 함',
  MODIFY COLUMN `MOMENTUM_STOP_OB_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '손절호가 ON/OFF. true=이미 손해+OR붕괴면 하드손절 전에 손절호가. 기본 false',
  MODIFY COLUMN `MOMENTUM_STOP_OB_RATIO_MIN`
    text NULL DEFAULT NULL
    COMMENT '손절호가: OR 이동평균이 이 값 미만이면 붕괴. 시드 0.4',
  MODIFY COLUMN `MOMENTUM_STOP_OB_MA_WINDOW`
    text NULL DEFAULT NULL
    COMMENT '손절호가: OR 이동평균 스냅 개수. 시드 5. 수익구간과 히스토리 공유 가능',
  MODIFY COLUMN `MOMENTUM_STOP_OB_MIN_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '손절호가: 최소 손실 밴드(분율). 0.003=−0.3%%. 이만큼 이상 손해일 때만',
  MODIFY COLUMN `MOMENTUM_STOP_OB_MIN_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '손절호가: 산 뒤 최소 보유 분. 시드 2. 미달이면 안 함',
  MODIFY COLUMN `MOMENTUM_LIVE_UNIVERSE_SLOT_ALIGN`
    text NULL DEFAULT NULL
    COMMENT 'config_momentum: MOMENTUM LIVE UNIVERSE SLOT ALIGN (MOMENTUM_LIVE_UNIVERSE_SLOT_ALIGN)'
;

-- ── config_short (171 cols) ──
ALTER TABLE `config_short`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 손절 %% (STOP_LOSS_PCT)',
  MODIFY COLUMN `SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 어깨컷 %% (SHOULDER_CUT_PCT)',
  MODIFY COLUMN `SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 어깨무장고점 %% (SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `SHOULDER_MIN_NET_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 어깨 최소 NET %% (SHOULDER_MIN_NET_PCT)',
  MODIFY COLUMN `STOP_ATR_MULTIPLIER_TAIL`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: STOP ATR 배수 IPLIER TAIL (STOP_ATR_MULTIPLIER_TAIL)',
  MODIFY COLUMN `TARGET_ATR_MULTIPLIER_TAIL`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 목표 ATR 배수 IPLIER TAIL (TARGET_ATR_MULTIPLIER_TAIL)',
  MODIFY COLUMN `TAIL_ATR_SL_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: ATR손절 최소 %% (TAIL_ATR_SL_MIN_PCT)',
  MODIFY COLUMN `TAIL_ATR_SL_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: ATR손절 최대 %% (TAIL_ATR_SL_MAX_PCT)',
  MODIFY COLUMN `TAIL_ATR_TP_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: ATR익절 최소 %% (TAIL_ATR_TP_MIN_PCT)',
  MODIFY COLUMN `TAIL_ATR_TP_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: ATR익절 최대 %% (TAIL_ATR_TP_MAX_PCT)',
  MODIFY COLUMN `MIN_CANDLE_LEN_TAIL`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소 CANDLE LEN TAIL (MIN_CANDLE_LEN_TAIL)',
  MODIFY COLUMN `MIN_PRICE_TAIL`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소가격 TAIL (MIN_PRICE_TAIL)',
  MODIFY COLUMN `TAIL_SCORE_BASE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: SCORE BASE (TAIL_SCORE_BASE)',
  MODIFY COLUMN `TAIL_SCORE_RATIO_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: SCORE RATIO 배수 (TAIL_SCORE_RATIO_MULT)',
  MODIFY COLUMN `TAIL_RATIO_MIN`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: RATIO 최소 (TAIL_RATIO_MIN)',
  MODIFY COLUMN `TAIL_PCT_MIN`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: %% 최소 (TAIL_PCT_MIN)',
  MODIFY COLUMN `TAIL_SKIP_HTS_SCAN_DUPES`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: HTS스캔중복스킵 (TAIL_SKIP_HTS_SCAN_DUPES)',
  MODIFY COLUMN `TAIL_USE_INTRADAY_DROP`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 사용_ INTRADAY 되돌림/하락 (TAIL_USE_INTRADAY_DROP)',
  MODIFY COLUMN `TAIL_USE_MA20_FILTER`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 사용_ MA20 필터 (TAIL_USE_MA20_FILTER)',
  MODIFY COLUMN `TAIL_USE_RSI_FILTER`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 사용_ RSI 필터 (TAIL_USE_RSI_FILTER)',
  MODIFY COLUMN `TAIL_USE_DAILY_RANGE_FILTER`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 사용_ DAILY RANGE 필터 (TAIL_USE_DAILY_RANGE_FILTER)',
  MODIFY COLUMN `TAIL_USE_HIGH_CHASE_FILTER`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 사용_ 고점추격 필터 (TAIL_USE_HIGH_CHASE_FILTER)',
  MODIFY COLUMN `TAIL_BAR_CHG_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BAR CHG 최소 %% (TAIL_BAR_CHG_MIN_PCT)',
  MODIFY COLUMN `TAIL_BAR_CHG_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BAR CHG 최대 %% (TAIL_BAR_CHG_MAX_PCT)',
  MODIFY COLUMN `TAIL_RSI_THRESHOLD`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: RSI THRESHOLD (TAIL_RSI_THRESHOLD)',
  MODIFY COLUMN `MIN_DROP_PCT_FOR_LOSS_CUT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소 되돌림/하락 %% FOR LOSS CUT (MIN_DROP_PCT_FOR_LOSS_CUT)',
  MODIFY COLUMN `TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 익절 %% (TAKE_PROFIT_PCT)',
  MODIFY COLUMN `MIN_DROP_RATE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소 되돌림/하락 RATE (MIN_DROP_RATE)',
  MODIFY COLUMN `MIN_RECOVERY_RATIO_SHORT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소 RECOVERY RATIO SHORT (MIN_RECOVERY_RATIO_SHORT)',
  MODIFY COLUMN `KIS_SHORT_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: KIS SHORT MM CHANNEL (KIS_SHORT_MM_CHANNEL)',
  MODIFY COLUMN `SHORT_GAP_FILL_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: GAP FILL LIMIT (SHORT_GAP_FILL_LIMIT)',
  MODIFY COLUMN `MAX_RECOVERY_RATIO_3M`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최대 RECOVERY RATIO 3M (MAX_RECOVERY_RATIO_3M)',
  MODIFY COLUMN `TAIL_CANDLE_LOOKBACK`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: CANDLE LOOKBACK (TAIL_CANDLE_LOOKBACK)',
  MODIFY COLUMN `SHORT_LIVE_BACKTEST_ALIGN`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: LIVE BACKTEST ALIGN (SHORT_LIVE_BACKTEST_ALIGN)',
  MODIFY COLUMN `SHORT_LIVE_SIGNAL_LOOKBACK_BARS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: LIVE SIGNAL LOOKBACK 봉수 (SHORT_LIVE_SIGNAL_LOOKBACK_BARS)',
  MODIFY COLUMN `SHORT_UNIVERSE_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 유니버스 · ls_condition=LS 동명 AFR · 시세는 키움/한투 유지 · 매니저 최초 기동은 봇 재시작 필요할 수 있음 · 키움으로 자동 폴백 안 함',
  MODIFY COLUMN `RANK_SHORT_SORT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: RANK SHORT SORT (RANK_SHORT_SORT)',
  MODIFY COLUMN `RANK_SHORT_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: RANK SHORT LIMIT (RANK_SHORT_LIMIT)',
  MODIFY COLUMN `CONDITION_SHORT_NAME`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: CONDITION SHORT NAME (CONDITION_SHORT_NAME)',
  MODIFY COLUMN `CONDITION_SHORT_SEQ`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: CONDITION SHORT SEQ (CONDITION_SHORT_SEQ)',
  MODIFY COLUMN `SHORT_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 1회최대매수금액 (SHORT_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `TAIL_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 1회최대매수금액 (TAIL_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `SHORT_CAND_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 후보 상한 · 0=무제한 · 조건검색/랭킹이 N개 줘도 상위 N개만 매수체크·WS구독 · 전 전략 합산이 키움 WS 100종 한도를 넘지 않게 조절',
  MODIFY COLUMN `SHORT_TIME_START`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 매수시작 (SHORT_TIME_START)',
  MODIFY COLUMN `SHORT_TIME_END`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 매수종료 (SHORT_TIME_END)',
  MODIFY COLUMN `SHORT_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 동시보유상한 (SHORT_MAX_STOCKS)',
  MODIFY COLUMN `SELL_USE_ORDERBOOK_ON_PROFIT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: SELL 사용_ 호가 ON PROFIT (SELL_USE_ORDERBOOK_ON_PROFIT)',
  MODIFY COLUMN `SELL_ORDERBOOK_BID_LEVELS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: SELL 호가 BID LEVELS (SELL_ORDERBOOK_BID_LEVELS)',
  MODIFY COLUMN `SELL_ORDERBOOK_DEPTH_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: SELL 호가 DEPTH 배수 (SELL_ORDERBOOK_DEPTH_MULT)',
  MODIFY COLUMN `SHORT_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 총운용한도 원 (SHORT_TOTAL_BUDGET_KRW)',
  MODIFY COLUMN `STRATEGY_SHORT_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함. 기동시OFF→켜려면재시작',
  MODIFY COLUMN `TAIL_MIN_DROP_RATE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소 되돌림/하락 RATE (TAIL_MIN_DROP_RATE)',
  MODIFY COLUMN `TAIL_MIN_RECOVERY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소 RECOVERY RATIO (TAIL_MIN_RECOVERY_RATIO)',
  MODIFY COLUMN `TAIL_MAX_RECOVERY_3M`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최대 RECOVERY 3M (TAIL_MAX_RECOVERY_3M)',
  MODIFY COLUMN `TAIL_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 손절 %% (TAIL_STOP_LOSS_PCT)',
  MODIFY COLUMN `TAIL_TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 익절 %% (TAIL_TAKE_PROFIT_PCT)',
  MODIFY COLUMN `TAIL_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 어깨무장고점 %% (TAIL_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `TAIL_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 어깨컷 %% (TAIL_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `TAIL_STOP_ATR_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: STOP ATR 배수 (TAIL_STOP_ATR_MULT)',
  MODIFY COLUMN `TAIL_TARGET_ATR_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 목표 ATR 배수 (TAIL_TARGET_ATR_MULT)',
  MODIFY COLUMN `TAIL_MIN_PRICE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소가격 (TAIL_MIN_PRICE)',
  MODIFY COLUMN `TAIL_MAX_DAILY_CHG`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 당일등락상한 (TAIL_MAX_DAILY_CHG)',
  MODIFY COLUMN `TAIL_MA20_MAX_ABOVE_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: MA20 최대 ABOVE %% (TAIL_MA20_MAX_ABOVE_PCT)',
  MODIFY COLUMN `TAIL_MAX_LOSS_KRW`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최대 LOSS 원 (TAIL_MAX_LOSS_KRW)',
  MODIFY COLUMN `TAIL_MIN_DROP_FOR_LOSS_CUT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소 되돌림/하락 FOR LOSS CUT (TAIL_MIN_DROP_FOR_LOSS_CUT)',
  MODIFY COLUMN `TAIL_RSI_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: RSI 기간 (TAIL_RSI_PERIOD)',
  MODIFY COLUMN `TAIL_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 쿨다운 초 (TAIL_COOLDOWN_SEC)',
  MODIFY COLUMN `TAIL_MAX_DAILY`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 일일매수횟수상한 (TAIL_MAX_DAILY)',
  MODIFY COLUMN `TAIL_HIGH_CHASE_THR`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 고점추격 THR (TAIL_HIGH_CHASE_THR)',
  MODIFY COLUMN `TAIL_TIME_START`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 매수시작 (TAIL_TIME_START)',
  MODIFY COLUMN `TAIL_TIME_END`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 매수종료 (TAIL_TIME_END)',
  MODIFY COLUMN `TAIL_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 동시 종목',
  MODIFY COLUMN `TAIL_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 총 한도(원)',
  MODIFY COLUMN `TAIL_SLOT_MONEY`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 슬롯(원)',
  MODIFY COLUMN `TAIL_ENTRY_MODE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: ENTRY 모드 (TAIL_ENTRY_MODE)',
  MODIFY COLUMN `TAIL_LIMIT_ATR_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: LIMIT ATR 배수 (TAIL_LIMIT_ATR_MULT)',
  MODIFY COLUMN `TAIL_LIMIT_ANCHOR`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: LIMIT ANCHOR (TAIL_LIMIT_ANCHOR)',
  MODIFY COLUMN `TAIL_LIMIT_VALID_BARS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: LIMIT VALID 봉수 (TAIL_LIMIT_VALID_BARS)',
  MODIFY COLUMN `TAIL_LIMIT_FILL_SLIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: LIMIT FILL SLIP %% (TAIL_LIMIT_FILL_SLIP_PCT)',
  MODIFY COLUMN `TAIL_MIN_INVEST_RATIO_OF_SLOT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최소 INVEST RATIO OF SLOT (TAIL_MIN_INVEST_RATIO_OF_SLOT)',
  MODIFY COLUMN `TAIL_PARAM_SEARCH_ENTRY_MODE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: PARAM SEARCH ENTRY 모드 (TAIL_PARAM_SEARCH_ENTRY_MODE)',
  MODIFY COLUMN `TAIL_GRID_FAST_MAX_DAILY_CHG`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: GRID FAST 당일등락상한 (TAIL_GRID_FAST_MAX_DAILY_CHG)',
  MODIFY COLUMN `TAIL_GRID_COARSE_MAX_DAILY_CHG`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: GRID COARSE 당일등락상한 (TAIL_GRID_COARSE_MAX_DAILY_CHG)',
  MODIFY COLUMN `TAIL_GRID_FAST_LIMIT_ATR_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: GRID FAST LIMIT ATR 배수 (TAIL_GRID_FAST_LIMIT_ATR_MULT)',
  MODIFY COLUMN `TAIL_GRID_COARSE_LIMIT_ATR_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: GRID COARSE LIMIT ATR 배수 (TAIL_GRID_COARSE_LIMIT_ATR_MULT)',
  MODIFY COLUMN `TAIL_RATCHET_TIERS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 다단래칫 (TAIL_RATCHET_TIERS)',
  MODIFY COLUMN `TAIL_MAX_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 최대보유봉 (TAIL_MAX_HOLD_BARS)',
  MODIFY COLUMN `TAIL_BACKTEST_USE_TICK_DB`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST 사용_ TICK DB (TAIL_BACKTEST_USE_TICK_DB)',
  MODIFY COLUMN `TAIL_BACKTEST_TICK_FALLBACK_OHLC`
    text NULL DEFAULT NULL
    COMMENT '⚠ 꼬리 OHLC 폴백 (정합위험·금지) · 절대금지: 틱 모드에서 OHLC로 체결·고점 변조. 엔진은 틱 청산 ON 시 무시. Optuna/파람 강제 OFF',
  MODIFY COLUMN `TAIL_TRAIL_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 트레일 %% (TAIL_TRAIL_PCT)',
  MODIFY COLUMN `TAIL_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 트레일무장 %% (TAIL_TRAIL_ARM_PCT)',
  MODIFY COLUMN `TAIL_PATTERN_HAMMER`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 패턴 HAMMER (TAIL_PATTERN_HAMMER)',
  MODIFY COLUMN `TAIL_PATTERN_PIN`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 패턴 PIN (TAIL_PATTERN_PIN)',
  MODIFY COLUMN `TAIL_PATTERN_ENGULFING`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 패턴 ENGULFING (TAIL_PATTERN_ENGULFING)',
  MODIFY COLUMN `TAIL_PATTERN_PIERCING`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 패턴 PIERCING (TAIL_PATTERN_PIERCING)',
  MODIFY COLUMN `TAIL_PATTERN_HARAMI`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 패턴 HARAMI (TAIL_PATTERN_HARAMI)',
  MODIFY COLUMN `TAIL_PATTERN_DOJI`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 패턴 DOJI (TAIL_PATTERN_DOJI)',
  MODIFY COLUMN `TAIL_PATTERN_MORNING_STAR`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 패턴 MORNING STAR (TAIL_PATTERN_MORNING_STAR)',
  MODIFY COLUMN `TAIL_PIN_CLOSE_UPPER_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: PIN CLOSE UPPER RATIO (TAIL_PIN_CLOSE_UPPER_RATIO)',
  MODIFY COLUMN `TAIL_PIN_MAX_UPPER_TAIL_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: PIN 최대 UPPER TAIL RATIO (TAIL_PIN_MAX_UPPER_TAIL_RATIO)',
  MODIFY COLUMN `TAIL_ENGULF_MIN_BODY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: ENGULF 최소 BODY RATIO (TAIL_ENGULF_MIN_BODY_RATIO)',
  MODIFY COLUMN `TAIL_PIERCING_PENETRATE_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: PIERCING PENETRATE RATIO (TAIL_PIERCING_PENETRATE_RATIO)',
  MODIFY COLUMN `TAIL_HARAMI_MAX_BODY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: HARAMI 최대 BODY RATIO (TAIL_HARAMI_MAX_BODY_RATIO)',
  MODIFY COLUMN `TAIL_DOJI_BODY_MAX_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: DOJI BODY 최대 RATIO (TAIL_DOJI_BODY_MAX_RATIO)',
  MODIFY COLUMN `TAIL_MORNING_STAR_BODY_MAX_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: MORNING STAR BODY 최대 RATIO (TAIL_MORNING_STAR_BODY_MAX_RATIO)',
  MODIFY COLUMN `TAIL_ORDERBOOK_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 호가필터 ON · ON=스프레드·잔량비·얇은호가·매도벽으로 매수 차단 · OFF=저장만',
  MODIFY COLUMN `TAIL_ORDERBOOK_MAX_SPREAD_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 스프레드상한(%%) · 0.45=0.45%% · 그리드 max_spread_pct 앵커',
  MODIFY COLUMN `TAIL_ORDERBOOK_ENTRY_BID_LEVELS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 호가단계(N호가)',
  MODIFY COLUMN `TAIL_ORDERBOOK_ENTRY_BID_DEPTH_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 매수호가깊이 배수 · 얇은호가 탈락 · 필요수량×N',
  MODIFY COLUMN `TAIL_ORDERBOOK_ENTRY_ASK_MAX_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 매도벽 허용배수 · 필요수량×N · 그리드 ask_max_mult',
  MODIFY COLUMN `TAIL_ORDERBOOK_MIN_BID_ASK_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 매수/매도잔량비 하한 · 그리드 min_bid_ask_ratio',
  MODIFY COLUMN `TAIL_PROGRAM_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 프로그램매매 필터 ON/OFF (TAIL_PROGRAM_FILTER_ENABLED)',
  MODIFY COLUMN `TAIL_PROGRAM_MIN_NET_BUY_QTY`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 프로그램매매 최소 NET BUY QTY (TAIL_PROGRAM_MIN_NET_BUY_QTY)',
  MODIFY COLUMN `TAIL_PROGRAM_MIN_NET_BUY_AMT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 프로그램매매 최소 NET BUY AMT (TAIL_PROGRAM_MIN_NET_BUY_AMT)',
  MODIFY COLUMN `TAIL_PROGRAM_MAX_SELL_BUY_QTY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 프로그램매매 최대 SELL BUY QTY RATIO (TAIL_PROGRAM_MAX_SELL_BUY_QTY_RATIO)',
  MODIFY COLUMN `TAIL_PROGRAM_MIN_NET_DELTA_QTY`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 프로그램매매 최소 NET DELTA QTY (TAIL_PROGRAM_MIN_NET_DELTA_QTY)',
  MODIFY COLUMN `TAIL_PROGRAM_SNAPSHOT_MAX_AGE_SEC`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 프로그램매매 SNAPSHOT 최대 AGE 초 (TAIL_PROGRAM_SNAPSHOT_MAX_AGE_SEC)',
  MODIFY COLUMN `TAIL_BACKTEST_USE_TRIGGER_SNAPSHOT_DB`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST 사용_ TRIGGER SNAPSHOT DB (TAIL_BACKTEST_USE_TRIGGER_SNAPSHOT_DB)',
  MODIFY COLUMN `TAIL_WHIPSAW_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 휩쏘 필터',
  MODIFY COLUMN `TAIL_WHIPSAW_MODE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 휩쏘 모드 (TAIL_WHIPSAW_MODE)',
  MODIFY COLUMN `TAIL_WHIPSAW_SUBBAR_SEC`
    text NULL DEFAULT NULL
    COMMENT '꼬리 휩쏘 미니봉(초) · 비우면 글로벌 WHIPSAW_SUBBAR_SEC · Optuna 꼬리 TPE 축',
  MODIFY COLUMN `TAIL_WHIPSAW_LOOKBACK_SEC`
    text NULL DEFAULT NULL
    COMMENT '꼬리 휩쏘 룩백(초) · 비우면 글로벌 WHIPSAW_LOOKBACK_SEC',
  MODIFY COLUMN `TAIL_WHIPSAW_DIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리 휩쏘 하락폭(분율) · 0.003=0.3%% · 비우면 글로벌',
  MODIFY COLUMN `TAIL_WHIPSAW_RECOVERY_TOL_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리 휩쏘 회복허용(분율) · 0.001=0.1%% · 비우면 글로벌',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_TARGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 손익 감시 켜기 · OFF = 해당 전략 일일익절 비활성 (매수 차단 없음)',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_TARGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 목표(원)',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_TARGET_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 목표(%%) · 퍼센트 그대로 (예: 2.5 = 2.5%%) · 0=미사용',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_HALT_NEW_BUYS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 신규매수 수동 중단 · 목표 무관 수동 잠금 · 비우면 마스터 상속 · OFF=정상',
  MODIFY COLUMN `TAIL_BACKTEST_USE_TRIGGER_EVAL_SNAPSHOT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST 사용_ TRIGGER EVAL SNAPSHOT (TAIL_BACKTEST_USE_TRIGGER_EVAL_SNAPSHOT)',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 익절방식 · 비우면 마스터 상속 · fixed/trailing/both',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 다단 트레일 · 수익원:컷%%,… · 비우면 마스터 상속 · 예: 30000:50,100000:35,300000:25',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_TRAIL_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 단일 트레일 되돌림(%%) · 다단 비었을 때만 · 고점 대비 %% · 비우면 마스터 상속 · 0=미사용',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_TRAIL_ARM_KRW`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 트레일 발동수익(원) · 이 이상 벌어야 트레일 감시 · 비우면 마스터 상속',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 일일익절 트레일무장 %% (SHORT_DAILY_PROFIT_TRAIL_ARM_PCT)',
  MODIFY COLUMN `CONDITION_SHORT_KIWOOM_NAME`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: CONDITION SHORT KIWOOM NAME (CONDITION_SHORT_KIWOOM_NAME)',
  MODIFY COLUMN `CONDITION_SHORT_KIWOOM_SEQ`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: CONDITION SHORT KIWOOM SEQ (CONDITION_SHORT_KIWOOM_SEQ)',
  MODIFY COLUMN `TAIL_EOD_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'EOD 당일청산 사용 · ON=설정 시각 이후 보유 전량 장마감 청산 · OFF=익절·손절·시간컷만',
  MODIFY COLUMN `TAIL_EOD_HM`
    text NULL DEFAULT NULL
    COMMENT 'EOD 시각 (HH:MM) · 정규장 15:30 마감 기준 최소 10분 전 · 순차매도 여유',
  MODIFY COLUMN `TAIL_PARAM_SEARCH_MIN_START`
    text NULL DEFAULT NULL
    COMMENT '꼬리 파라서치 최소 시작일 · 조건식 변경일 이후만 탐색 (YYYY-MM-DD) · CLI --start 와 max 적용',
  MODIFY COLUMN `TAIL_SYMBOL_DAILY_LOSS_LIMIT_KRW`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: SYMBOL DAILY LOSS LIMIT 원 (TAIL_SYMBOL_DAILY_LOSS_LIMIT_KRW)',
  MODIFY COLUMN `TAIL_SYMBOL_DAILY_LOSS_LIMIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: SYMBOL DAILY LOSS LIMIT %% (TAIL_SYMBOL_DAILY_LOSS_LIMIT_PCT)',
  MODIFY COLUMN `TAIL_REENTRY_MIN_EDGE_KRW`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: REENTRY 최소 EDGE 원 (TAIL_REENTRY_MIN_EDGE_KRW)',
  MODIFY COLUMN `TAIL_REENTRY_REQUIRE_NONNEG`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: REENTRY REQUIRE NONNEG (TAIL_REENTRY_REQUIRE_NONNEG)',
  MODIFY COLUMN `TAIL_GRID_FAST_SYMBOL_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: GRID FAST SYMBOL LOSS %% (TAIL_GRID_FAST_SYMBOL_LOSS_PCT)',
  MODIFY COLUMN `TAIL_GRID_FAST_SYMBOL_LOSS_KRW`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: GRID FAST SYMBOL LOSS 원 (TAIL_GRID_FAST_SYMBOL_LOSS_KRW)',
  MODIFY COLUMN `TAIL_GRID_FAST_REENTRY_MIN_EDGE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: GRID FAST REENTRY 최소 EDGE (TAIL_GRID_FAST_REENTRY_MIN_EDGE)',
  MODIFY COLUMN `TAIL_BACKTEST_USE_TICK_EXIT`
    text NULL DEFAULT NULL
    COMMENT '꼬리 틱 청산 · ON=ws_ticks 시간순 청산(실매 폴링 정합) · OFF=OHLC intrabar',
  MODIFY COLUMN `TAIL_BACKTEST_POLL_MS`
    text NULL DEFAULT NULL
    COMMENT '꼬리 틱청산 폴링(ms) · 실매 STRATEGY_LOOP_SLEEP≈0.1초 정합 · 하한 50ms',
  MODIFY COLUMN `TAIL_BACKTEST_SELL_SLIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST SELL SLIP %% (TAIL_BACKTEST_SELL_SLIP_PCT)',
  MODIFY COLUMN `TAIL_BT_SYNTH_3M_FROM_1M`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BT SYNTH 3M FROM 1M (TAIL_BT_SYNTH_3M_FROM_1M)',
  MODIFY COLUMN `TAIL_BACKTEST_UNIVERSE_SCAN_AT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST 유니버스 SCAN AT (TAIL_BACKTEST_UNIVERSE_SCAN_AT)',
  MODIFY COLUMN `TAIL_BT_INCLUSION_LOOKBACK`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BT INCLUSION LOOKBACK (TAIL_BT_INCLUSION_LOOKBACK)',
  MODIFY COLUMN `TAIL_VOL_MULT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 거래량배수 (TAIL_VOL_MULT)',
  MODIFY COLUMN `TAIL_VOL_WIN`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 거래량윈도우 (TAIL_VOL_WIN)',
  MODIFY COLUMN `TAIL_BACKTEST_CANDLE_WARMUP_BARS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST CANDLE WARMUP 봉수 (TAIL_BACKTEST_CANDLE_WARMUP_BARS)',
  MODIFY COLUMN `TAIL_BACKTEST_REST_WARMUP`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST REST WARMUP (TAIL_BACKTEST_REST_WARMUP)',
  MODIFY COLUMN `TAIL_BACKTEST_REST_WARMUP_BARS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST REST WARMUP 봉수 (TAIL_BACKTEST_REST_WARMUP_BARS)',
  MODIFY COLUMN `TAIL_BACKTEST_REST_SLEEP_SEC`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST REST SLEEP 초 (TAIL_BACKTEST_REST_SLEEP_SEC)',
  MODIFY COLUMN `TAIL_BACKTEST_REST_MAX_CODES`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: BACKTEST REST 최대 CODES (TAIL_BACKTEST_REST_MAX_CODES)',
  MODIFY COLUMN `TAIL_VOL_SPIKE_LOOKBACK`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 거래량 SPIKE LOOKBACK (TAIL_VOL_SPIKE_LOOKBACK)',
  MODIFY COLUMN `TAIL_UNIVERSE_EXIT_DEBOUNCE_SEC`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 유니버스 EXIT DEBOUNCE 초 (TAIL_UNIVERSE_EXIT_DEBOUNCE_SEC)',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_RISK_BUDGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 리스크버짓(B) · ON=일일익절 hit 후 보유최악손절합>cushion 이면 전량정리 · 기본 OFF · 마스터 없음',
  MODIFY COLUMN `SHORT_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 리스크버짓 쿨다운(초) · 같은 날 재평가 최소 간격 · 0=당일 1회만',
  MODIFY COLUMN `SHORT_TICK_SELL_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기 틱매도 · 비우면 공통 TICK_SELL_ENABLED · true/false 명시 시 전략만 덮어씀 · 기본 false',
  MODIFY COLUMN `TAIL_WHIPSAW_MIN_SUBBARS`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 휩쏘 최소 SUBBARS (TAIL_WHIPSAW_MIN_SUBBARS)',
  MODIFY COLUMN `TAIL_WHIPSAW_TICK_BUFFER_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: 휩쏘 TICK BUFFER LIMIT (TAIL_WHIPSAW_TICK_BUFFER_LIMIT)',
  MODIFY COLUMN `CONDITION_SHORT_LS_NAME`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: CONDITION SHORT LS NAME (CONDITION_SHORT_LS_NAME)',
  MODIFY COLUMN `SHORT_LIVE_UNIVERSE_HISTORY_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '꼬리잡기: LIVE 유니버스 HISTORY SOURCE (SHORT_LIVE_UNIVERSE_HISTORY_SOURCE)',
  MODIFY COLUMN `SHORT_LIVE_UNIVERSE_SLOT_ALIGN`
    text NULL DEFAULT NULL
    COMMENT 'config_short: SHORT LIVE UNIVERSE SLOT ALIGN (SHORT_LIVE_UNIVERSE_SLOT_ALIGN)'
;

-- ── config_breakout (121 cols) ──
ALTER TABLE `config_breakout`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `BREAKOUT_LIVE_BACKTEST_ALIGN`
    text NULL DEFAULT NULL
    COMMENT '돌파: LIVE BACKTEST ALIGN (BREAKOUT_LIVE_BACKTEST_ALIGN)',
  MODIFY COLUMN `BREAKOUT_LIVE_SIGNAL_LOOKBACK_BARS`
    text NULL DEFAULT NULL
    COMMENT '돌파: LIVE SIGNAL LOOKBACK 봉수 (BREAKOUT_LIVE_SIGNAL_LOOKBACK_BARS)',
  MODIFY COLUMN `BREAKOUT_UNIVERSE_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '돌파 유니버스 · ls_condition=LS 동명 AFR · 시세는 키움/한투 유지 · 매니저 최초 기동은 봇 재시작 필요할 수 있음 · 키움으로 자동 폴백 안 함',
  MODIFY COLUMN `RANK_BREAKOUT_SORT`
    text NULL DEFAULT NULL
    COMMENT 'RANK 돌파 SORT (RANK_BREAKOUT_SORT)',
  MODIFY COLUMN `RANK_BREAKOUT_LIMIT`
    text NULL DEFAULT NULL
    COMMENT 'RANK 돌파 LIMIT (RANK_BREAKOUT_LIMIT)',
  MODIFY COLUMN `CONDITION_BREAKOUT_NAME`
    text NULL DEFAULT NULL
    COMMENT 'CONDITION 돌파 NAME (CONDITION_BREAKOUT_NAME)',
  MODIFY COLUMN `CONDITION_BREAKOUT_SEQ`
    text NULL DEFAULT NULL
    COMMENT 'CONDITION 돌파 SEQ (CONDITION_BREAKOUT_SEQ)',
  MODIFY COLUMN `BREAKOUT_CAND_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '돌파 후보 상한 · 0=무제한 · 조건검색/랭킹이 N개 줘도 상위 N개만 매수체크·WS구독 · 전 전략 합산이 키움 WS 100종 한도를 넘지 않게 조절',
  MODIFY COLUMN `BREAKOUT_TIME_START`
    text NULL DEFAULT NULL
    COMMENT '돌파: 매수시작 (BREAKOUT_TIME_START)',
  MODIFY COLUMN `BREAKOUT_TIME_END`
    text NULL DEFAULT NULL
    COMMENT '돌파: 매수종료 (BREAKOUT_TIME_END)',
  MODIFY COLUMN `BREAKOUT_LOOKBACK_MIN`
    text NULL DEFAULT NULL
    COMMENT '돌파: LOOKBACK 최소 (BREAKOUT_LOOKBACK_MIN)',
  MODIFY COLUMN `BREAKOUT_VOL_WIN`
    text NULL DEFAULT NULL
    COMMENT '돌파: 거래량윈도우 (BREAKOUT_VOL_WIN)',
  MODIFY COLUMN `BREAKOUT_VOL_MULT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 거래량배수 (BREAKOUT_VOL_MULT)',
  MODIFY COLUMN `BREAKOUT_PREV_CHG_MIN`
    text NULL DEFAULT NULL
    COMMENT '돌파: PREV CHG 최소 (BREAKOUT_PREV_CHG_MIN)',
  MODIFY COLUMN `BREAKOUT_PREV_CHG_MAX`
    text NULL DEFAULT NULL
    COMMENT '돌파: PREV CHG 최대 (BREAKOUT_PREV_CHG_MAX)',
  MODIFY COLUMN `BREAKOUT_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 손절 %% (BREAKOUT_STOP_LOSS_PCT)',
  MODIFY COLUMN `BREAKOUT_TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 익절 %% (BREAKOUT_TAKE_PROFIT_PCT)',
  MODIFY COLUMN `BREAKOUT_TRAIL_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 트레일 %% (BREAKOUT_TRAIL_PCT)',
  MODIFY COLUMN `BREAKOUT_GOLDEN_END_HM`
    text NULL DEFAULT NULL
    COMMENT '돌파: GOLDEN END HHMM (BREAKOUT_GOLDEN_END_HM)',
  MODIFY COLUMN `BREAKOUT_MAX_DAILY_CHG`
    text NULL DEFAULT NULL
    COMMENT '돌파: 당일등락상한 (BREAKOUT_MAX_DAILY_CHG)',
  MODIFY COLUMN `BREAKOUT_MIN_PRICE`
    text NULL DEFAULT NULL
    COMMENT '돌파: 최소가격 (BREAKOUT_MIN_PRICE)',
  MODIFY COLUMN `BREAKOUT_MAX_LOSS_PER_TRADE_KRW`
    text NULL DEFAULT NULL
    COMMENT '돌파: 최대 LOSS PER TRADE 원 (BREAKOUT_MAX_LOSS_PER_TRADE_KRW)',
  MODIFY COLUMN `BREAKOUT_SLOT_MONEY`
    text NULL DEFAULT NULL
    COMMENT '돌파 슬롯(원)',
  MODIFY COLUMN `BREAKOUT_MAX_DAILY`
    text NULL DEFAULT NULL
    COMMENT '돌파: 일일매수횟수상한 (BREAKOUT_MAX_DAILY)',
  MODIFY COLUMN `BREAKOUT_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '돌파: 쿨다운 초 (BREAKOUT_COOLDOWN_SEC)',
  MODIFY COLUMN `BREAKOUT_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '돌파 동시 종목',
  MODIFY COLUMN `BREAKOUT_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 어깨무장고점 %% (BREAKOUT_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `BREAKOUT_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 어깨컷 %% (BREAKOUT_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `BREAKOUT_GRID_COARSE_SHOULDER_SMIN`
    text NULL DEFAULT NULL
    COMMENT '돌파: GRID COARSE 어깨 SMIN (BREAKOUT_GRID_COARSE_SHOULDER_SMIN)',
  MODIFY COLUMN `BREAKOUT_GRID_COARSE_SHOULDER_CUT`
    text NULL DEFAULT NULL
    COMMENT '돌파: GRID COARSE 어깨컷 (BREAKOUT_GRID_COARSE_SHOULDER_CUT)',
  MODIFY COLUMN `BREAKOUT_GRID_FINE_SHOULDER_SMIN`
    text NULL DEFAULT NULL
    COMMENT '돌파: GRID FINE 어깨 SMIN (BREAKOUT_GRID_FINE_SHOULDER_SMIN)',
  MODIFY COLUMN `BREAKOUT_GRID_FINE_SHOULDER_CUT`
    text NULL DEFAULT NULL
    COMMENT '돌파: GRID FINE 어깨컷 (BREAKOUT_GRID_FINE_SHOULDER_CUT)',
  MODIFY COLUMN `BREAKOUT_GRID_FULL_SHOULDER_SMIN`
    text NULL DEFAULT NULL
    COMMENT '돌파: GRID FULL 어깨 SMIN (BREAKOUT_GRID_FULL_SHOULDER_SMIN)',
  MODIFY COLUMN `BREAKOUT_GRID_FULL_SHOULDER_CUT`
    text NULL DEFAULT NULL
    COMMENT '돌파: GRID FULL 어깨컷 (BREAKOUT_GRID_FULL_SHOULDER_CUT)',
  MODIFY COLUMN `BREAKOUT_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '돌파 총 한도(원)',
  MODIFY COLUMN `STRATEGY_BREAKOUT_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '돌파 ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함. 기동시OFF→켜려면재시작',
  MODIFY COLUMN `KIS_BREAKOUT_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT 'KIS 돌파 MM CHANNEL (KIS_BREAKOUT_MM_CHANNEL)',
  MODIFY COLUMN `BREAKOUT_ENTRY_MODE`
    text NULL DEFAULT NULL
    COMMENT '돌파: ENTRY 모드 (BREAKOUT_ENTRY_MODE)',
  MODIFY COLUMN `BREAKOUT_INTRABAR_SLIPPAGE_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: INTRABAR SLIPPAGE %% (BREAKOUT_INTRABAR_SLIPPAGE_PCT)',
  MODIFY COLUMN `BREAKOUT_RATCHET_TIERS`
    text NULL DEFAULT NULL
    COMMENT '돌파: 다단래칫 (BREAKOUT_RATCHET_TIERS)',
  MODIFY COLUMN `BREAKOUT_MAX_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '최대보유(분) · 0=OFF · 진입 후 N분 경과 시 max_hold 청산',
  MODIFY COLUMN `BREAKOUT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 트레일무장 %% (BREAKOUT_TRAIL_ARM_PCT)',
  MODIFY COLUMN `BREAKOUT_USE_EMA_FILTER`
    text NULL DEFAULT NULL
    COMMENT '돌파: 사용_ EMA 필터 (BREAKOUT_USE_EMA_FILTER)',
  MODIFY COLUMN `BREAKOUT_EMA_FAST_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '돌파: EMA단기 기간 (BREAKOUT_EMA_FAST_PERIOD)',
  MODIFY COLUMN `BREAKOUT_EMA_SLOW_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '돌파: EMA장기 기간 (BREAKOUT_EMA_SLOW_PERIOD)',
  MODIFY COLUMN `BREAKOUT_MIN_BAR_TRADE_VALUE_KRW`
    text NULL DEFAULT NULL
    COMMENT '돌파: 최소 BAR TRADE VALUE 원 (BREAKOUT_MIN_BAR_TRADE_VALUE_KRW)',
  MODIFY COLUMN `BREAKOUT_MIN_TURNOVER_1M_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 최소 TURNOVER 1M %% (BREAKOUT_MIN_TURNOVER_1M_PCT)',
  MODIFY COLUMN `BREAKOUT_SHARE_DENOM`
    text NULL DEFAULT NULL
    COMMENT '돌파: SHARE DENOM (BREAKOUT_SHARE_DENOM)',
  MODIFY COLUMN `BREAKOUT_ORDERBOOK_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '돌파 호가필터 ON · ON=스프레드·잔량비·얇은호가·매도벽으로 매수 차단 · OFF=저장만',
  MODIFY COLUMN `BREAKOUT_ORDERBOOK_MAX_SPREAD_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파 스프레드상한(%%) · 0.45=0.45%% · 그리드 max_spread_pct 앵커',
  MODIFY COLUMN `BREAKOUT_ORDERBOOK_ENTRY_BID_LEVELS`
    text NULL DEFAULT NULL
    COMMENT '돌파 호가단계(N호가)',
  MODIFY COLUMN `BREAKOUT_ORDERBOOK_ENTRY_BID_DEPTH_MULT`
    text NULL DEFAULT NULL
    COMMENT '돌파 매수호가깊이 배수 · 얇은호가 탈락 · 필요수량×N',
  MODIFY COLUMN `BREAKOUT_ORDERBOOK_ENTRY_ASK_MAX_MULT`
    text NULL DEFAULT NULL
    COMMENT '돌파 매도벽 허용배수 · 필요수량×N · 그리드 ask_max_mult',
  MODIFY COLUMN `BREAKOUT_ORDERBOOK_MIN_BID_ASK_RATIO`
    text NULL DEFAULT NULL
    COMMENT '돌파 매수/매도잔량비 하한 · 그리드 min_bid_ask_ratio',
  MODIFY COLUMN `BREAKOUT_ORDERBOOK_ASK_WALL_MAX_QTY`
    text NULL DEFAULT NULL
    COMMENT '돌파 매도벽 상한(주) · 그리드 ask_wall_max_qty',
  MODIFY COLUMN `BREAKOUT_PROGRAM_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '돌파: 프로그램매매 필터 ON/OFF (BREAKOUT_PROGRAM_FILTER_ENABLED)',
  MODIFY COLUMN `BREAKOUT_PROGRAM_MIN_NET_BUY_QTY`
    text NULL DEFAULT NULL
    COMMENT '돌파: 프로그램매매 최소 NET BUY QTY (BREAKOUT_PROGRAM_MIN_NET_BUY_QTY)',
  MODIFY COLUMN `BREAKOUT_PROGRAM_MIN_NET_BUY_AMT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 프로그램매매 최소 NET BUY AMT (BREAKOUT_PROGRAM_MIN_NET_BUY_AMT)',
  MODIFY COLUMN `BREAKOUT_PROGRAM_MAX_SELL_BUY_QTY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '돌파: 프로그램매매 최대 SELL BUY QTY RATIO (BREAKOUT_PROGRAM_MAX_SELL_BUY_QTY_RATIO)',
  MODIFY COLUMN `BREAKOUT_PROGRAM_MIN_NET_DELTA_QTY`
    text NULL DEFAULT NULL
    COMMENT '돌파: 프로그램매매 최소 NET DELTA QTY (BREAKOUT_PROGRAM_MIN_NET_DELTA_QTY)',
  MODIFY COLUMN `BREAKOUT_PROGRAM_SNAPSHOT_MAX_AGE_SEC`
    text NULL DEFAULT NULL
    COMMENT '돌파: 프로그램매매 SNAPSHOT 최대 AGE 초 (BREAKOUT_PROGRAM_SNAPSHOT_MAX_AGE_SEC)',
  MODIFY COLUMN `BREAKOUT_BACKTEST_USE_TRIGGER_SNAPSHOT_DB`
    text NULL DEFAULT NULL
    COMMENT '돌파: BACKTEST 사용_ TRIGGER SNAPSHOT DB (BREAKOUT_BACKTEST_USE_TRIGGER_SNAPSHOT_DB)',
  MODIFY COLUMN `BREAKOUT_WHIPSAW_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '돌파 휩쏘 필터',
  MODIFY COLUMN `BREAKOUT_WHIPSAW_MODE`
    text NULL DEFAULT NULL
    COMMENT '돌파: 휩쏘 모드 (BREAKOUT_WHIPSAW_MODE)',
  MODIFY COLUMN `BREAKOUT_WHIPSAW_SUBBAR_SEC`
    text NULL DEFAULT NULL
    COMMENT '돌파: 휩쏘 SUBBAR 초 (BREAKOUT_WHIPSAW_SUBBAR_SEC)',
  MODIFY COLUMN `BREAKOUT_WHIPSAW_LOOKBACK_SEC`
    text NULL DEFAULT NULL
    COMMENT '돌파: 휩쏘 LOOKBACK 초 (BREAKOUT_WHIPSAW_LOOKBACK_SEC)',
  MODIFY COLUMN `BREAKOUT_WHIPSAW_DIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 휩쏘 DIP %% (BREAKOUT_WHIPSAW_DIP_PCT)',
  MODIFY COLUMN `BREAKOUT_WHIPSAW_RECOVERY_TOL_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 휩쏘 RECOVERY TOL %% (BREAKOUT_WHIPSAW_RECOVERY_TOL_PCT)',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_TARGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '돌파 손익 감시 켜기 · OFF = 해당 전략 일일익절 비활성 (매수 차단 없음)',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_TARGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '돌파 목표(원)',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_TARGET_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파 목표(%%) · 퍼센트 그대로 (예: 2.5 = 2.5%%) · 0=미사용',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_HALT_NEW_BUYS`
    text NULL DEFAULT NULL
    COMMENT '돌파 신규매수 수동 중단 · 목표 무관 수동 잠금 · 비우면 마스터 상속 · OFF=정상',
  MODIFY COLUMN `BREAKOUT_BACKTEST_USE_TRIGGER_EVAL_SNAPSHOT`
    text NULL DEFAULT NULL
    COMMENT '돌파: BACKTEST 사용_ TRIGGER EVAL SNAPSHOT (BREAKOUT_BACKTEST_USE_TRIGGER_EVAL_SNAPSHOT)',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '돌파 익절방식 · 비우면 마스터 상속 · fixed/trailing/both',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT '돌파 다단 트레일 · 수익원:컷%%,… · 비우면 마스터 상속 · 예: 30000:50,100000:35,300000:25',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_TRAIL_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파 단일 트레일 되돌림(%%) · 다단 비었을 때만 · 고점 대비 %% · 비우면 마스터 상속 · 0=미사용',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_TRAIL_ARM_KRW`
    text NULL DEFAULT NULL
    COMMENT '돌파 트레일 발동수익(원) · 이 이상 벌어야 트레일 감시 · 비우면 마스터 상속',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 일일익절 트레일무장 %% (BREAKOUT_DAILY_PROFIT_TRAIL_ARM_PCT)',
  MODIFY COLUMN `BREAKOUT_SL_MODE`
    text NULL DEFAULT NULL
    COMMENT '돌파: SL 모드 (BREAKOUT_SL_MODE)',
  MODIFY COLUMN `BREAKOUT_ATR_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '돌파: ATR 기간 (BREAKOUT_ATR_PERIOD)',
  MODIFY COLUMN `BREAKOUT_ATR_SL_MULT`
    text NULL DEFAULT NULL
    COMMENT '돌파: ATR손절 배수 (BREAKOUT_ATR_SL_MULT)',
  MODIFY COLUMN `BREAKOUT_ATR_SL_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: ATR손절 최소 %% (BREAKOUT_ATR_SL_MIN_PCT)',
  MODIFY COLUMN `BREAKOUT_ATR_SL_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: ATR손절 최대 %% (BREAKOUT_ATR_SL_MAX_PCT)',
  MODIFY COLUMN `CONDITION_BREAKOUT_KIWOOM_NAME`
    text NULL DEFAULT NULL
    COMMENT 'CONDITION 돌파 KIWOOM NAME (CONDITION_BREAKOUT_KIWOOM_NAME)',
  MODIFY COLUMN `CONDITION_BREAKOUT_KIWOOM_SEQ`
    text NULL DEFAULT NULL
    COMMENT 'CONDITION 돌파 KIWOOM SEQ (CONDITION_BREAKOUT_KIWOOM_SEQ)',
  MODIFY COLUMN `BREAKOUT_EOD_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'EOD 당일청산 사용 · ON=설정 시각 이후 보유 전량 eod 청산 · OFF=익절·손절·시간컷만',
  MODIFY COLUMN `BREAKOUT_EOD_HM`
    text NULL DEFAULT NULL
    COMMENT 'EOD 시각 (HH:MM) · 이 시각 이후 보유 전량 청산 · 예: 15:15',
  MODIFY COLUMN `BREAKOUT_SKIP_HTS_SCAN_DUPES`
    text NULL DEFAULT NULL
    COMMENT '돌파: HTS스캔중복스킵 (BREAKOUT_SKIP_HTS_SCAN_DUPES)',
  MODIFY COLUMN `BREAKOUT_GRID_FAST_SKIP_HTS_SCAN_DUPES`
    text NULL DEFAULT NULL
    COMMENT '돌파: GRID FAST HTS스캔중복스킵 (BREAKOUT_GRID_FAST_SKIP_HTS_SCAN_DUPES)',
  MODIFY COLUMN `BREAKOUT_BACKTEST_TICK_FALLBACK_OHLC`
    text NULL DEFAULT NULL
    COMMENT '⚠ 돌파 OHLC 폴백 (정합위험·금지) · 절대금지 — 틱 진입 ON 시 봉 high 폴백 안 함',
  MODIFY COLUMN `BREAKOUT_BACKTEST_USE_TICK_DB`
    text NULL DEFAULT NULL
    COMMENT '돌파: BACKTEST 사용_ TICK DB (BREAKOUT_BACKTEST_USE_TICK_DB)',
  MODIFY COLUMN `BREAKOUT_BACKTEST_USE_TICK_EXIT`
    text NULL DEFAULT NULL
    COMMENT '돌파 틱 청산 · ON=ws_ticks 시간순 청산 · OFF=OHLC intrabar',
  MODIFY COLUMN `BREAKOUT_BACKTEST_POLL_MS`
    text NULL DEFAULT NULL
    COMMENT '돌파 틱청산 폴링(ms) · 실매 폴링 정합 · 하한 50ms',
  MODIFY COLUMN `BREAKOUT_BACKTEST_SELL_SLIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: BACKTEST SELL SLIP %% (BREAKOUT_BACKTEST_SELL_SLIP_PCT)',
  MODIFY COLUMN `BREAKOUT_CONFIRM_MARGIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: CONFIRM MARGIN %% (BREAKOUT_CONFIRM_MARGIN_PCT)',
  MODIFY COLUMN `BREAKOUT_BODY_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '돌파: BODY 최소 %% (BREAKOUT_BODY_MIN_PCT)',
  MODIFY COLUMN `BREAKOUT_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 1회최대매수금액 (BREAKOUT_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `BREAKOUT_MIN_INVEST_RATIO_OF_SLOT`
    text NULL DEFAULT NULL
    COMMENT '돌파: 최소 INVEST RATIO OF SLOT (BREAKOUT_MIN_INVEST_RATIO_OF_SLOT)',
  MODIFY COLUMN `BREAKOUT_BACKTEST_CANDLE_WARMUP_BARS`
    text NULL DEFAULT NULL
    COMMENT '돌파: BACKTEST CANDLE WARMUP 봉수 (BREAKOUT_BACKTEST_CANDLE_WARMUP_BARS)',
  MODIFY COLUMN `BREAKOUT_BACKTEST_UNIVERSE_SCAN_AT`
    text NULL DEFAULT NULL
    COMMENT '돌파: BACKTEST 유니버스 SCAN AT (BREAKOUT_BACKTEST_UNIVERSE_SCAN_AT)',
  MODIFY COLUMN `BREAKOUT_UNIVERSE_EXIT_DEBOUNCE_SEC`
    text NULL DEFAULT NULL
    COMMENT '돌파: 유니버스 EXIT DEBOUNCE 초 (BREAKOUT_UNIVERSE_EXIT_DEBOUNCE_SEC)',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_RISK_BUDGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '돌파 리스크버짓(B) · ON=일일익절 hit 후 보유최악손절합>cushion 이면 전량정리 · 기본 OFF · 마스터 없음',
  MODIFY COLUMN `BREAKOUT_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '돌파 리스크버짓 쿨다운(초) · 같은 날 재평가 최소 간격 · 0=당일 1회만',
  MODIFY COLUMN `BREAKOUT_TICK_SELL_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '돌파 틱매도 · 비우면 공통 TICK_SELL_ENABLED · true/false 명시 시 전략만 덮어씀 · 기본 false',
  MODIFY COLUMN `CONDITION_BREAKOUT_LS_NAME`
    text NULL DEFAULT NULL
    COMMENT 'CONDITION 돌파 LS NAME (CONDITION_BREAKOUT_LS_NAME)',
  MODIFY COLUMN `BREAKOUT_LIVE_UNIVERSE_HISTORY_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '돌파: LIVE 유니버스 HISTORY SOURCE (BREAKOUT_LIVE_UNIVERSE_HISTORY_SOURCE)',
  MODIFY COLUMN `BREAKOUT_CANDLE_GAP_FORCE_SEC`
    text NULL DEFAULT NULL
    COMMENT '돌파: CANDLE GAP FORCE 초 (BREAKOUT_CANDLE_GAP_FORCE_SEC)',
  MODIFY COLUMN `BREAKOUT_CANDLE_SHORT_LOG_SEC`
    text NULL DEFAULT NULL
    COMMENT '돌파: CANDLE SHORT LOG 초 (BREAKOUT_CANDLE_SHORT_LOG_SEC)',
  MODIFY COLUMN `BREAKOUT_EXIT_OB_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '수익구간 호가매도 ON/OFF. true=이미 이익일 때 OR붕괴면 호가컷. 기본 false. LS호가. 진입필터와 무관',
  MODIFY COLUMN `BREAKOUT_EXIT_OB_RATIO_MIN`
    text NULL DEFAULT NULL
    COMMENT '수익구간: 총사겠음÷총팔겠음(OR) 이동평균이 이 값 미만이면 붕괴. 시드 0.4',
  MODIFY COLUMN `BREAKOUT_EXIT_OB_MA_WINDOW`
    text NULL DEFAULT NULL
    COMMENT '수익구간: OR 이동평균에 쓰는 최근 호가 스냅 개수. 시드 5',
  MODIFY COLUMN `BREAKOUT_EXIT_OB_MIN_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '수익구간: 최소 이익(분율). 0.005=+0.5%%. 미달이면 호가컷 안 함',
  MODIFY COLUMN `BREAKOUT_EXIT_OB_MIN_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '수익구간: 산 뒤 최소 보유 분(1분봉≈1). 시드 3. 미달이면 안 함',
  MODIFY COLUMN `BREAKOUT_STOP_OB_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '손절호가 ON/OFF. true=이미 손해+OR붕괴면 하드손절 전에 손절호가. 기본 false. LS호가',
  MODIFY COLUMN `BREAKOUT_STOP_OB_RATIO_MIN`
    text NULL DEFAULT NULL
    COMMENT '손절호가: OR 이동평균이 이 값 미만이면 붕괴. 시드 0.4',
  MODIFY COLUMN `BREAKOUT_STOP_OB_MA_WINDOW`
    text NULL DEFAULT NULL
    COMMENT '손절호가: OR 이동평균 스냅 개수. 시드 5',
  MODIFY COLUMN `BREAKOUT_STOP_OB_MIN_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '손절호가: 최소 손실 밴드(분율). 0.003=−0.3%%. 이만큼 이상 손해일 때만',
  MODIFY COLUMN `BREAKOUT_STOP_OB_MIN_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '손절호가: 산 뒤 최소 보유 분. 시드 2. 미달이면 안 함',
  MODIFY COLUMN `BREAKOUT_LIVE_UNIVERSE_SLOT_ALIGN`
    text NULL DEFAULT NULL
    COMMENT 'config_breakout: BREAKOUT LIVE UNIVERSE SLOT ALIGN (BREAKOUT_LIVE_UNIVERSE_SLOT_ALIGN)'
;

-- ── config_updow (87 cols) ──
ALTER TABLE `config_updow`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `UPDOW_UNIVERSE_SOURCE`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 유니버스 · ls_condition=LS 동명 AFR · 시세는 키움/한투 유지 · 매니저 최초 기동은 봇 재시작 필요할 수 있음 · 키움으로 자동 폴백 안 함',
  MODIFY COLUMN `RANK_UPDOW_SORT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: RANK UPDOW SORT (RANK_UPDOW_SORT)',
  MODIFY COLUMN `RANK_UPDOW_LIMIT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: RANK UPDOW LIMIT (RANK_UPDOW_LIMIT)',
  MODIFY COLUMN `CONDITION_UPDOW_NAME`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: CONDITION UPDOW NAME (CONDITION_UPDOW_NAME)',
  MODIFY COLUMN `CONDITION_UPDOW_SEQ`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: CONDITION UPDOW SEQ (CONDITION_UPDOW_SEQ)',
  MODIFY COLUMN `UPDOW_CAND_LIMIT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 후보 상한 · 0=무제한 · 조건검색/랭킹이 N개 줘도 상위 N개만 매수체크·WS구독 · 전 전략 합산이 키움 WS 100종 한도를 넘지 않게 조절',
  MODIFY COLUMN `UPDOW_TIME_START`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 매수시작 (UPDOW_TIME_START)',
  MODIFY COLUMN `UPDOW_TIME_END`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 매수종료 (UPDOW_TIME_END)',
  MODIFY COLUMN `UPDOW_REENTRY_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: REENTRY 쿨다운 초 (UPDOW_REENTRY_COOLDOWN_SEC)',
  MODIFY COLUMN `UPDOW_MIN_CANDLE_LEN`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 최소 CANDLE LEN (UPDOW_MIN_CANDLE_LEN)',
  MODIFY COLUMN `MIN_CANDLE_LEN_UPDOW`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 최소 CANDLE LEN UPDOW (MIN_CANDLE_LEN_UPDOW)',
  MODIFY COLUMN `UPDOW_CANDLE_FETCH_N`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: CANDLE FETCH N (UPDOW_CANDLE_FETCH_N)',
  MODIFY COLUMN `UPDOW_LIVE_MIN_CANDLES`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 실매최소봉수 (UPDOW_LIVE_MIN_CANDLES)',
  MODIFY COLUMN `UPDOW_MAX_LOSS_PER_TRADE_KRW`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 최대 LOSS PER TRADE 원 (UPDOW_MAX_LOSS_PER_TRADE_KRW)',
  MODIFY COLUMN `UPDOW_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 1회최대매수금액 (UPDOW_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `UPDOW_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 동시 종목',
  MODIFY COLUMN `UPDOW_BODY_DROP_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: BODY 되돌림/하락 최소 %% (UPDOW_BODY_DROP_MIN_PCT)',
  MODIFY COLUMN `UPDOW_TP_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: TP %% (UPDOW_TP_PCT)',
  MODIFY COLUMN `UPDOW_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 손절 %% (UPDOW_STOP_LOSS_PCT)',
  MODIFY COLUMN `UPDOW_ATR_USE_DYNAMIC`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR 사용_ DYNAMIC (UPDOW_ATR_USE_DYNAMIC)',
  MODIFY COLUMN `UPDOW_ATR_PERIOD`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR 기간 (UPDOW_ATR_PERIOD)',
  MODIFY COLUMN `UPDOW_ATR_SL_MULT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR손절 배수 (UPDOW_ATR_SL_MULT)',
  MODIFY COLUMN `UPDOW_ATR_TP_MULT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR익절 배수 (UPDOW_ATR_TP_MULT)',
  MODIFY COLUMN `UPDOW_ATR_SL_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR손절 최소 %% (UPDOW_ATR_SL_MIN_PCT)',
  MODIFY COLUMN `UPDOW_ATR_SL_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR손절 최대 %% (UPDOW_ATR_SL_MAX_PCT)',
  MODIFY COLUMN `UPDOW_ATR_TP_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR익절 최소 %% (UPDOW_ATR_TP_MIN_PCT)',
  MODIFY COLUMN `UPDOW_ATR_TP_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR익절 최대 %% (UPDOW_ATR_TP_MAX_PCT)',
  MODIFY COLUMN `UPDOW_ATR_MULT_FLOOR`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR 배수 FLOOR (UPDOW_ATR_MULT_FLOOR)',
  MODIFY COLUMN `UPDOW_ATR_PCT_FLOOR`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: ATR %% FLOOR (UPDOW_ATR_PCT_FLOOR)',
  MODIFY COLUMN `UPDOW_EXIT_PCT_FLOOR`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: EXIT %% FLOOR (UPDOW_EXIT_PCT_FLOOR)',
  MODIFY COLUMN `UPDOW_MAX_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 최대보유봉 (UPDOW_MAX_HOLD_BARS)',
  MODIFY COLUMN `UPDOW_EXIT_ON_GREEN`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: EXIT ON GREEN (UPDOW_EXIT_ON_GREEN)',
  MODIFY COLUMN `UPDOW_SLOT_MONEY`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 슬롯(원)',
  MODIFY COLUMN `UPDOW_TF_MIN`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: TF 최소 (UPDOW_TF_MIN)',
  MODIFY COLUMN `UPDOW_GRID_BODY0`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID BODY0 (UPDOW_GRID_BODY0)',
  MODIFY COLUMN `UPDOW_GRID_BODY1`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID BODY1 (UPDOW_GRID_BODY1)',
  MODIFY COLUMN `UPDOW_GRID_BODY2`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID BODY2 (UPDOW_GRID_BODY2)',
  MODIFY COLUMN `UPDOW_GRID_BODY3`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID BODY3 (UPDOW_GRID_BODY3)',
  MODIFY COLUMN `UPDOW_GRID_TP0`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID TP0 (UPDOW_GRID_TP0)',
  MODIFY COLUMN `UPDOW_GRID_TP1`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID TP1 (UPDOW_GRID_TP1)',
  MODIFY COLUMN `UPDOW_GRID_TP2`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID TP2 (UPDOW_GRID_TP2)',
  MODIFY COLUMN `UPDOW_GRID_TP3`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID TP3 (UPDOW_GRID_TP3)',
  MODIFY COLUMN `UPDOW_GRID_TP4`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID TP4 (UPDOW_GRID_TP4)',
  MODIFY COLUMN `UPDOW_GRID_SL0`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID SL0 (UPDOW_GRID_SL0)',
  MODIFY COLUMN `UPDOW_GRID_SL1`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID SL1 (UPDOW_GRID_SL1)',
  MODIFY COLUMN `UPDOW_GRID_SL2`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID SL2 (UPDOW_GRID_SL2)',
  MODIFY COLUMN `UPDOW_GRID_SL3`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID SL3 (UPDOW_GRID_SL3)',
  MODIFY COLUMN `UPDOW_GRID_HOLD0`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID HOLD0 (UPDOW_GRID_HOLD0)',
  MODIFY COLUMN `UPDOW_GRID_HOLD1`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID HOLD1 (UPDOW_GRID_HOLD1)',
  MODIFY COLUMN `UPDOW_GRID_HOLD2`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID HOLD2 (UPDOW_GRID_HOLD2)',
  MODIFY COLUMN `UPDOW_GRID_HOLD3`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID HOLD3 (UPDOW_GRID_HOLD3)',
  MODIFY COLUMN `UPDOW_GRID_HOLD4`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID HOLD4 (UPDOW_GRID_HOLD4)',
  MODIFY COLUMN `UPDOW_GRID_REGIME0`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID REGIME0 (UPDOW_GRID_REGIME0)',
  MODIFY COLUMN `UPDOW_GRID_REGIME1`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID REGIME1 (UPDOW_GRID_REGIME1)',
  MODIFY COLUMN `UPDOW_REGIME_MA_BARS`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: REGIME MA 봉수 (UPDOW_REGIME_MA_BARS)',
  MODIFY COLUMN `UPDOW_REGIME_MA_EASE_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: REGIME MA EASE %% (UPDOW_REGIME_MA_EASE_PCT)',
  MODIFY COLUMN `UPDOW_REGIME_MA_EASE_CAP`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: REGIME MA EASE CAP (UPDOW_REGIME_MA_EASE_CAP)',
  MODIFY COLUMN `UPDOW_GRID_REGIME_EASE0`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID REGIME EASE0 (UPDOW_GRID_REGIME_EASE0)',
  MODIFY COLUMN `UPDOW_GRID_REGIME_EASE1`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID REGIME EASE1 (UPDOW_GRID_REGIME_EASE1)',
  MODIFY COLUMN `UPDOW_KOSPI_1MIN_PROXY_CODE`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: KOSPI 1MIN PROXY CODE (UPDOW_KOSPI_1MIN_PROXY_CODE)',
  MODIFY COLUMN `UPDOW_REGIME_PREFER_WS_CANDLES`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: REGIME PREFER WS CANDLES (UPDOW_REGIME_PREFER_WS_CANDLES)',
  MODIFY COLUMN `UPDOW_REGIME_WS_CANDLE_MIN`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: REGIME WS CANDLE 최소 (UPDOW_REGIME_WS_CANDLE_MIN)',
  MODIFY COLUMN `UPDOW_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 어깨무장고점 %% (UPDOW_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `UPDOW_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 어깨컷 %% (UPDOW_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `UPDOW_GRID_SHOULDER_SMIN0`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID 어깨 SMIN0 (UPDOW_GRID_SHOULDER_SMIN0)',
  MODIFY COLUMN `UPDOW_GRID_SHOULDER_SMIN1`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID 어깨 SMIN1 (UPDOW_GRID_SHOULDER_SMIN1)',
  MODIFY COLUMN `UPDOW_GRID_SHOULDER_SMIN2`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID 어깨 SMIN2 (UPDOW_GRID_SHOULDER_SMIN2)',
  MODIFY COLUMN `UPDOW_GRID_SHOULDER_CUT0`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID 어깨컷 0 (UPDOW_GRID_SHOULDER_CUT0)',
  MODIFY COLUMN `UPDOW_GRID_SHOULDER_CUT1`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID 어깨컷 1 (UPDOW_GRID_SHOULDER_CUT1)',
  MODIFY COLUMN `UPDOW_GRID_SHOULDER_CUT2`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: GRID 어깨컷 2 (UPDOW_GRID_SHOULDER_CUT2)',
  MODIFY COLUMN `UPDOW_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 총 한도(원)',
  MODIFY COLUMN `STRATEGY_UPDOW_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN박스 ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함. 기동시OFF→켜려면재시작',
  MODIFY COLUMN `KIS_UPDOW_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: KIS UPDOW MM CHANNEL (KIS_UPDOW_MM_CHANNEL)',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_TARGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 손익 감시 켜기 · OFF = 해당 전략 일일익절 비활성 (매수 차단 없음)',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_TARGET_KRW`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 목표(원)',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_TARGET_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 목표(%%) · 퍼센트 그대로 (예: 2.5 = 2.5%%) · 0=미사용',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_HALT_NEW_BUYS`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 신규매수 수동 중단 · 목표 무관 수동 잠금 · 비우면 마스터 상속 · OFF=정상',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 익절방식 · 비우면 마스터 상속 · fixed/trailing/both',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 다단 트레일 · 수익원:컷%%,… · 비우면 마스터 상속 · 예: 30000:50,100000:35,300000:25',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_TRAIL_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 단일 트레일 되돌림(%%) · 다단 비었을 때만 · 고점 대비 %% · 비우면 마스터 상속 · 0=미사용',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_TRAIL_ARM_KRW`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 트레일 발동수익(원) · 이 이상 벌어야 트레일 감시 · 비우면 마스터 상속',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN: 일일익절 트레일무장 %% (UPDOW_DAILY_PROFIT_TRAIL_ARM_PCT)',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_RISK_BUDGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 리스크버짓(B) · ON=일일익절 hit 후 보유최악손절합>cushion 이면 전량정리 · 기본 OFF · 마스터 없음',
  MODIFY COLUMN `UPDOW_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 리스크버짓 쿨다운(초) · 같은 날 재평가 최소 간격 · 0=당일 1회만',
  MODIFY COLUMN `UPDOW_TICK_SELL_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'UPDOWN 박스 틱매도 · 비우면 공통 TICK_SELL_ENABLED · true/false 명시 시 전략만 덮어씀 · 기본 false'
;

-- ── config_scalp (109 cols) ──
ALTER TABLE `config_scalp`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `SCALP_ATR_UP_MULT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: ATR UP 배수 (SCALP_ATR_UP_MULT)',
  MODIFY COLUMN `SCALP_ATR_DOWN_MULT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: ATR DOWN 배수 (SCALP_ATR_DOWN_MULT)',
  MODIFY COLUMN `SCALP_ATR_DROP_MULT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: ATR 되돌림/하락 배수 (SCALP_ATR_DROP_MULT)',
  MODIFY COLUMN `SCALP_RSI_OVERSOLD`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: RSI과매도 (SCALP_RSI_OVERSOLD)',
  MODIFY COLUMN `SCALP_RSI_OVERBOUGHT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: RSI과매수 (SCALP_RSI_OVERBOUGHT)',
  MODIFY COLUMN `SCALP_CANDLE_TIMEFRAME`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CANDLE TIMEFRAME (SCALP_CANDLE_TIMEFRAME)',
  MODIFY COLUMN `SCALP_MARKET_OPEN_WAIT_MIN`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MARKET OPEN WAIT 최소 (SCALP_MARKET_OPEN_WAIT_MIN)',
  MODIFY COLUMN `SCALP_GAP_FILL_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GAP FILL LIMIT (SCALP_GAP_FILL_LIMIT)',
  MODIFY COLUMN `SCALP_MIN_VOLUME`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 최소 거래량 UME (SCALP_MIN_VOLUME)',
  MODIFY COLUMN `KIS_SCALP_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: KIS SCALP MM CHANNEL (KIS_SCALP_MM_CHANNEL)',
  MODIFY COLUMN `SCALP_CANDLE_KEEP_DAYS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CANDLE KEEP DAYS (SCALP_CANDLE_KEEP_DAYS)',
  MODIFY COLUMN `SCALP_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 손절 %% (SCALP_STOP_LOSS_PCT)',
  MODIFY COLUMN `SCALP_TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 익절 %% (SCALP_TAKE_PROFIT_PCT)',
  MODIFY COLUMN `SCALP_MIN_DROP_RATE`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 최소 되돌림/하락 RATE (SCALP_MIN_DROP_RATE)',
  MODIFY COLUMN `SCALP_GAP_RETRY_SEC`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GAP RETRY 초 (SCALP_GAP_RETRY_SEC)',
  MODIFY COLUMN `SCALP_REQUIRE_REVERSAL_CANDLE`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: REQUIRE REVERSAL CANDLE (SCALP_REQUIRE_REVERSAL_CANDLE)',
  MODIFY COLUMN `SCALP_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 쿨다운 초 (SCALP_COOLDOWN_SEC)',
  MODIFY COLUMN `SCALP_TRAIL_TRIGGER_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 트레일 TRIGGER %% (SCALP_TRAIL_TRIGGER_PCT)',
  MODIFY COLUMN `SCALP_MIN_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 최소 PROFIT %% (SCALP_MIN_PROFIT_PCT)',
  MODIFY COLUMN `SCALP_HIGH_PRICE_CHASE_THRESHOLD`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: HIGH PRICE CHASE THRESHOLD (SCALP_HIGH_PRICE_CHASE_THRESHOLD)',
  MODIFY COLUMN `SCALP_MAX_DAILY_CHANGE_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일매수횟수상한 CHANGE %% (SCALP_MAX_DAILY_CHANGE_PCT)',
  MODIFY COLUMN `SCALP_MIN_PRICE`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 최소가격 (SCALP_MIN_PRICE)',
  MODIFY COLUMN `SCALP_MAX_LOSS_PER_TRADE_KRW`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 최대 LOSS PER TRADE 원 (SCALP_MAX_LOSS_PER_TRADE_KRW)',
  MODIFY COLUMN `SCALP_MIN_DROP_PCT_FOR_LOSS_CUT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 최소 되돌림/하락 %% FOR LOSS CUT (SCALP_MIN_DROP_PCT_FOR_LOSS_CUT)',
  MODIFY COLUMN `SCALP_USE_DEFENSE_FILTERS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 사용_ 방어필터 필터 S (SCALP_USE_DEFENSE_FILTERS)',
  MODIFY COLUMN `SCALP_USE_MACD_CROSS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 사용_ MACD CROSS (SCALP_USE_MACD_CROSS)',
  MODIFY COLUMN `SCALP_MACD_FAST`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MACD FAST (SCALP_MACD_FAST)',
  MODIFY COLUMN `SCALP_MACD_SLOW`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MACD SLOW (SCALP_MACD_SLOW)',
  MODIFY COLUMN `SCALP_MACD_SIGNAL`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MACD SIGNAL (SCALP_MACD_SIGNAL)',
  MODIFY COLUMN `SCALP_STOCH_K_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: STOCH K 기간 (SCALP_STOCH_K_PERIOD)',
  MODIFY COLUMN `SCALP_STOCH_D_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: STOCH D 기간 (SCALP_STOCH_D_PERIOD)',
  MODIFY COLUMN `SCALP_STOCH_SLOW`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: STOCH SLOW (SCALP_STOCH_SLOW)',
  MODIFY COLUMN `SCALP_LIVE_BACKTEST_ALIGN`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: LIVE BACKTEST ALIGN (SCALP_LIVE_BACKTEST_ALIGN)',
  MODIFY COLUMN `SCALP_LIVE_SIGNAL_LOOKBACK_BARS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: LIVE SIGNAL LOOKBACK 봉수 (SCALP_LIVE_SIGNAL_LOOKBACK_BARS)',
  MODIFY COLUMN `SCALP_UNIVERSE_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 유니버스소스 (SCALP_UNIVERSE_SOURCE)',
  MODIFY COLUMN `RANK_SCALP_SORT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: RANK SCALP SORT (RANK_SCALP_SORT)',
  MODIFY COLUMN `RANK_SCALP_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: RANK SCALP LIMIT (RANK_SCALP_LIMIT)',
  MODIFY COLUMN `CONDITION_SCALP_NAME`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CONDITION SCALP NAME (CONDITION_SCALP_NAME)',
  MODIFY COLUMN `CONDITION_SCALP_SEQ`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CONDITION SCALP SEQ (CONDITION_SCALP_SEQ)',
  MODIFY COLUMN `SCALP_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 1회최대매수금액 (SCALP_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `SCALP_CAND_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 후보상한 (SCALP_CAND_LIMIT)',
  MODIFY COLUMN `SCALP_TIME_START`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 매수시작 (SCALP_TIME_START)',
  MODIFY COLUMN `SCALP_TIME_END`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 매수종료 (SCALP_TIME_END)',
  MODIFY COLUMN `SCALP_MODE`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 모드 (SCALP_MODE)',
  MODIFY COLUMN `SCALP_MOM_RSI_MIN`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MOM RSI하한 (SCALP_MOM_RSI_MIN)',
  MODIFY COLUMN `SCALP_MOM_RSI_MAX`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MOM RSI상한 (SCALP_MOM_RSI_MAX)',
  MODIFY COLUMN `SCALP_MOM_VOL_MULT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MOM 거래량배수 (SCALP_MOM_VOL_MULT)',
  MODIFY COLUMN `SCALP_MOM_VOL_WIN`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MOM 거래량윈도우 (SCALP_MOM_VOL_WIN)',
  MODIFY COLUMN `SCALP_MOM_TIME_END_HM`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: MOM 매수종료 HHMM (SCALP_MOM_TIME_END_HM)',
  MODIFY COLUMN `SCALP_MAX_DAILY`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일매수횟수상한 (SCALP_MAX_DAILY)',
  MODIFY COLUMN `SCALP_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 동시보유상한 (SCALP_MAX_STOCKS)',
  MODIFY COLUMN `SCALP_TP_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: TP 최대 %% (SCALP_TP_MAX_PCT)',
  MODIFY COLUMN `SCALP_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 어깨무장고점 %% (SCALP_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `SCALP_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 어깨컷 %% (SCALP_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `SCALP_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 총운용한도 원 (SCALP_TOTAL_BUDGET_KRW)',
  MODIFY COLUMN `STRATEGY_SCALP_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함. 기동시OFF→켜려면재시작',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_TARGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 목표 ON/OFF (SCALP_DAILY_PROFIT_TARGET_ENABLED)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_TARGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 목표 원 (SCALP_DAILY_PROFIT_TARGET_KRW)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_TARGET_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 목표 %% (SCALP_DAILY_PROFIT_TARGET_PCT)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_HALT_NEW_BUYS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 중단 NEW BUYS (SCALP_DAILY_PROFIT_HALT_NEW_BUYS)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 모드 (SCALP_DAILY_PROFIT_MODE)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 트레일 다단 (SCALP_DAILY_PROFIT_TRAIL_TIERS)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_TRAIL_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 트레일 되돌림/하락 %% (SCALP_DAILY_PROFIT_TRAIL_DROP_PCT)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_TRAIL_ARM_KRW`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 트레일무장 원 (SCALP_DAILY_PROFIT_TRAIL_ARM_KRW)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 트레일무장 %% (SCALP_DAILY_PROFIT_TRAIL_ARM_PCT)',
  MODIFY COLUMN `SCALP_RSI_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: RSI 기간 (SCALP_RSI_PERIOD)',
  MODIFY COLUMN `SCALP_GRID_TRIGGER_RSI_OVERSOLD`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID TRIGGER RSI과매도 (SCALP_GRID_TRIGGER_RSI_OVERSOLD)',
  MODIFY COLUMN `SCALP_GRID_TRIGGER_DROP_RATE`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID TRIGGER 되돌림/하락 RATE (SCALP_GRID_TRIGGER_DROP_RATE)',
  MODIFY COLUMN `SCALP_GRID_TRIGGER_HIGH_CHASE_THR`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID TRIGGER 고점추격 THR (SCALP_GRID_TRIGGER_HIGH_CHASE_THR)',
  MODIFY COLUMN `SCALP_GRID_TRIGGER_VOL_MULT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID TRIGGER 거래량배수 (SCALP_GRID_TRIGGER_VOL_MULT)',
  MODIFY COLUMN `SCALP_GRID_TRIGGER_REQUIRE_REVERSAL`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID TRIGGER REQUIRE REVERSAL (SCALP_GRID_TRIGGER_REQUIRE_REVERSAL)',
  MODIFY COLUMN `SCALP_GRID_EXIT_SL_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID EXIT SL %% (SCALP_GRID_EXIT_SL_PCT)',
  MODIFY COLUMN `SCALP_GRID_EXIT_TP_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID EXIT TP %% (SCALP_GRID_EXIT_TP_PCT)',
  MODIFY COLUMN `SCALP_GRID_EXIT_TP_MAX_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID EXIT TP 최대 %% (SCALP_GRID_EXIT_TP_MAX_PCT)',
  MODIFY COLUMN `SCALP_GRID_EXIT_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID EXIT 어깨무장고점 %% (SCALP_GRID_EXIT_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `SCALP_GRID_EXIT_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID EXIT 어깨컷 %% (SCALP_GRID_EXIT_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `SCALP_GRID_EXIT_MIN_HOLD_SEC`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID EXIT 최소보유 초 (SCALP_GRID_EXIT_MIN_HOLD_SEC)',
  MODIFY COLUMN `SCALP_SCORE_MDD_FLOOR`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: SCORE MDD FLOOR (SCALP_SCORE_MDD_FLOOR)',
  MODIFY COLUMN `CONDITION_SCALP_KIWOOM_SEQ`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CONDITION SCALP KIWOOM SEQ (CONDITION_SCALP_KIWOOM_SEQ)',
  MODIFY COLUMN `CONDITION_SCALP_KIWOOM_NAME`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CONDITION SCALP KIWOOM NAME (CONDITION_SCALP_KIWOOM_NAME)',
  MODIFY COLUMN `SCALP_SKIP_HTS_SCAN_DUPES`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: HTS스캔중복스킵 (SCALP_SKIP_HTS_SCAN_DUPES)',
  MODIFY COLUMN `SCALP_GRID_SKIP_HTS_SCAN_DUPES`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: GRID HTS스캔중복스킵 (SCALP_GRID_SKIP_HTS_SCAN_DUPES)',
  MODIFY COLUMN `SCALP_BACKTEST_USE_TICK_EXIT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 틱 청산 · ON=ws_ticks 시간순 청산(실매 폴링 정합) · OFF=OHLC intrabar',
  MODIFY COLUMN `SCALP_BACKTEST_USE_TICK_ENTRY`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 틱 진입 · ON=예약 체결 시 해당 분 첫 틱가 · OFF=분봉 시가',
  MODIFY COLUMN `SCALP_BACKTEST_TICK_FALLBACK_OHLC`
    text NULL DEFAULT NULL
    COMMENT '⚠ 스캘핑 OHLC 폴백 (정합위험·금지) · 절대금지 — 틱 청산 ON 시 엔진 무시',
  MODIFY COLUMN `SCALP_BACKTEST_POLL_MS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 틱청산 폴링(ms) · 실매 STRATEGY_LOOP_SLEEP≈0.1초 정합 · 하한 50ms',
  MODIFY COLUMN `SCALP_BACKTEST_SELL_SLIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: BACKTEST SELL SLIP %% (SCALP_BACKTEST_SELL_SLIP_PCT)',
  MODIFY COLUMN `SCALP_MIN_HOLD_SEC`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 최소보유 초 (SCALP_MIN_HOLD_SEC)',
  MODIFY COLUMN `SCALP_ORDERBOOK_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 호가필터 ON · ON=스프레드·잔량비·얇은호가·매도벽으로 매수 차단 · OFF=저장만',
  MODIFY COLUMN `SCALP_ORDERBOOK_MAX_SPREAD_PCT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 스프레드상한(%%) · 0.45=0.45%% · 그리드 max_spread_pct 앵커',
  MODIFY COLUMN `SCALP_ORDERBOOK_ENTRY_BID_LEVELS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 호가단계(N호가)',
  MODIFY COLUMN `SCALP_ORDERBOOK_ENTRY_BID_DEPTH_MULT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 매수호가깊이 배수 · 얇은호가 탈락 · 필요수량×N',
  MODIFY COLUMN `SCALP_ORDERBOOK_ENTRY_ASK_MAX_MULT`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 매도벽 허용배수 · 필요수량×N · 그리드 ask_max_mult',
  MODIFY COLUMN `SCALP_ORDERBOOK_MIN_BID_ASK_RATIO`
    text NULL DEFAULT NULL
    COMMENT '스캘핑 매수/매도잔량비 하한 · 그리드 min_bid_ask_ratio',
  MODIFY COLUMN `SCALP_BACKTEST_CANDLE_WARMUP_BARS`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: BACKTEST CANDLE WARMUP 봉수 (SCALP_BACKTEST_CANDLE_WARMUP_BARS)',
  MODIFY COLUMN `SCALP_UNIVERSE_EXIT_DEBOUNCE_SEC`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 유니버스 EXIT DEBOUNCE 초 (SCALP_UNIVERSE_EXIT_DEBOUNCE_SEC)',
  MODIFY COLUMN `SCALP_EOD_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'EOD 당일청산 사용 · ON=설정 시각 이후 보유 전량 장마감청산 · OFF=익절·손절·어깨만',
  MODIFY COLUMN `SCALP_EOD_HM`
    text NULL DEFAULT NULL
    COMMENT 'EOD 시각 (HH:MM) · 실매 기존 15:25 · 정규장 15:30 마감 직전 순차매도',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_RISK_BUDGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 RISK 한도 ON/OFF (SCALP_DAILY_PROFIT_RISK_BUDGET_ENABLED)',
  MODIFY COLUMN `SCALP_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 일일익절 RISK 한도 쿨다운 초 (SCALP_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC)',
  MODIFY COLUMN `SCALP_TICK_SELL_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: 틱매도 ON/OFF (SCALP_TICK_SELL_ENABLED)',
  MODIFY COLUMN `SCALP_LIVE_ALIGN_USE_FORMING_BAR`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: LIVE ALIGN 사용_ FORMING BAR (SCALP_LIVE_ALIGN_USE_FORMING_BAR)',
  MODIFY COLUMN `CONDITION_SCALP_LS_NAME`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CONDITION SCALP LS NAME (CONDITION_SCALP_LS_NAME)',
  MODIFY COLUMN `SCALP_LIVE_UNIVERSE_HISTORY_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: LIVE 유니버스 HISTORY SOURCE (SCALP_LIVE_UNIVERSE_HISTORY_SOURCE)',
  MODIFY COLUMN `SCALP_CANDLE_GAP_FORCE_SEC`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CANDLE GAP FORCE 초 (SCALP_CANDLE_GAP_FORCE_SEC)',
  MODIFY COLUMN `SCALP_CANDLE_SHORT_LOG_SEC`
    text NULL DEFAULT NULL
    COMMENT '스캘핑: CANDLE SHORT LOG 초 (SCALP_CANDLE_SHORT_LOG_SEC)',
  MODIFY COLUMN `SCALP_LIVE_UNIVERSE_SLOT_ALIGN`
    text NULL DEFAULT NULL
    COMMENT 'config_scalp: SCALP LIVE UNIVERSE SLOT ALIGN (SCALP_LIVE_UNIVERSE_SLOT_ALIGN)'
;

-- ── config_range_break (60 cols) ──
ALTER TABLE `config_range_break`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `STRATEGY_RANGE_BREAK_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파 ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함',
  MODIFY COLUMN `RANGE_BREAK_LIVE_BACKTEST_ALIGN`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: LIVE BACKTEST ALIGN (RANGE_BREAK_LIVE_BACKTEST_ALIGN)',
  MODIFY COLUMN `RANGE_BREAK_LIVE_SIGNAL_LOOKBACK_BARS`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: LIVE SIGNAL LOOKBACK 봉수 (RANGE_BREAK_LIVE_SIGNAL_LOOKBACK_BARS)',
  MODIFY COLUMN `RANGE_BREAK_UNIVERSE_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 유니버스소스 (RANGE_BREAK_UNIVERSE_SOURCE)',
  MODIFY COLUMN `RANK_RANGE_BREAK_SORT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: RANK RANGE BREAK SORT (RANK_RANGE_BREAK_SORT)',
  MODIFY COLUMN `RANK_RANGE_BREAK_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: RANK RANGE BREAK LIMIT (RANK_RANGE_BREAK_LIMIT)',
  MODIFY COLUMN `CONDITION_RANGE_BREAK_NAME`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: CONDITION RANGE BREAK NAME (CONDITION_RANGE_BREAK_NAME)',
  MODIFY COLUMN `CONDITION_RANGE_BREAK_SEQ`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: CONDITION RANGE BREAK SEQ (CONDITION_RANGE_BREAK_SEQ)',
  MODIFY COLUMN `RANGE_BREAK_CAND_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 후보상한 (RANGE_BREAK_CAND_LIMIT)',
  MODIFY COLUMN `RANGE_BREAK_BOX_LOOKBACK_MIN`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: BOX LOOKBACK 최소 (RANGE_BREAK_BOX_LOOKBACK_MIN)',
  MODIFY COLUMN `RANGE_BREAK_BOX_MAX_WIDTH_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: BOX 최대 WIDTH %% (RANGE_BREAK_BOX_MAX_WIDTH_PCT)',
  MODIFY COLUMN `RANGE_BREAK_BOX_MIN_WIDTH_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: BOX 최소 WIDTH %% (RANGE_BREAK_BOX_MIN_WIDTH_PCT)',
  MODIFY COLUMN `RANGE_BREAK_SETUP_VOL_MAX_MULT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: SETUP 거래량 최대 배수 (RANGE_BREAK_SETUP_VOL_MAX_MULT)',
  MODIFY COLUMN `RANGE_BREAK_SETUP_BEAR_BARS_MIN`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: SETUP BEAR 봉수 최소 (RANGE_BREAK_SETUP_BEAR_BARS_MIN)',
  MODIFY COLUMN `RANGE_BREAK_VOL_MULT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 거래량배수 (RANGE_BREAK_VOL_MULT)',
  MODIFY COLUMN `RANGE_BREAK_VOL_WIN`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 거래량윈도우 (RANGE_BREAK_VOL_WIN)',
  MODIFY COLUMN `RANGE_BREAK_VOL_BASELINE_WIN`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 거래량 BASELINE WIN (RANGE_BREAK_VOL_BASELINE_WIN)',
  MODIFY COLUMN `RANGE_BREAK_BREAK_MARGIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: BREAK MARGIN %% (RANGE_BREAK_BREAK_MARGIN_PCT)',
  MODIFY COLUMN `RANGE_BREAK_BODY_MIN_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: BODY 최소 %% (RANGE_BREAK_BODY_MIN_PCT)',
  MODIFY COLUMN `RANGE_BREAK_TIME_START`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 매수시작 (RANGE_BREAK_TIME_START)',
  MODIFY COLUMN `RANGE_BREAK_TIME_END_HM`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 매수종료 HHMM (RANGE_BREAK_TIME_END_HM)',
  MODIFY COLUMN `RANGE_BREAK_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 손절 %% (RANGE_BREAK_STOP_LOSS_PCT)',
  MODIFY COLUMN `RANGE_BREAK_TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 익절 %% (RANGE_BREAK_TAKE_PROFIT_PCT)',
  MODIFY COLUMN `RANGE_BREAK_TRAIL_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 트레일 %% (RANGE_BREAK_TRAIL_PCT)',
  MODIFY COLUMN `RANGE_BREAK_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 트레일무장 %% (RANGE_BREAK_TRAIL_ARM_PCT)',
  MODIFY COLUMN `RANGE_BREAK_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 어깨무장고점 %% (RANGE_BREAK_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `RANGE_BREAK_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 어깨컷 %% (RANGE_BREAK_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `RANGE_BREAK_MAX_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 최대보유봉 (RANGE_BREAK_MAX_HOLD_BARS)',
  MODIFY COLUMN `RANGE_BREAK_MAX_DAILY`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일매수횟수상한 (RANGE_BREAK_MAX_DAILY)',
  MODIFY COLUMN `RANGE_BREAK_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 쿨다운 초 (RANGE_BREAK_COOLDOWN_SEC)',
  MODIFY COLUMN `RANGE_BREAK_MAX_DAILY_CHG`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 당일등락상한 (RANGE_BREAK_MAX_DAILY_CHG)',
  MODIFY COLUMN `RANGE_BREAK_MIN_PRICE`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 최소가격 (RANGE_BREAK_MIN_PRICE)',
  MODIFY COLUMN `RANGE_BREAK_HIGH_CHASE_THR`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 고점추격 THR (RANGE_BREAK_HIGH_CHASE_THR)',
  MODIFY COLUMN `RANGE_BREAK_USE_HIGH_CHASE_FILTER`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 사용_ 고점추격 필터 (RANGE_BREAK_USE_HIGH_CHASE_FILTER)',
  MODIFY COLUMN `RANGE_BREAK_MAX_LOSS_PER_TRADE_KRW`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 최대 LOSS PER TRADE 원 (RANGE_BREAK_MAX_LOSS_PER_TRADE_KRW)',
  MODIFY COLUMN `RANGE_BREAK_SLOT_MONEY`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 슬롯금액 (RANGE_BREAK_SLOT_MONEY)',
  MODIFY COLUMN `RANGE_BREAK_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 1회최대매수금액 (RANGE_BREAK_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `RANGE_BREAK_MIN_INVEST_RATIO_OF_SLOT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 최소 INVEST RATIO OF SLOT (RANGE_BREAK_MIN_INVEST_RATIO_OF_SLOT)',
  MODIFY COLUMN `RANGE_BREAK_FORCE_EOD_EXIT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: FORCE 장마감 EXIT (RANGE_BREAK_FORCE_EOD_EXIT)',
  MODIFY COLUMN `KIS_RANGE_BREAK_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: KIS RANGE BREAK MM CHANNEL (KIS_RANGE_BREAK_MM_CHANNEL)',
  MODIFY COLUMN `RANGE_BREAK_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 동시보유상한 (RANGE_BREAK_MAX_STOCKS)',
  MODIFY COLUMN `RANGE_BREAK_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 총운용한도 원 (RANGE_BREAK_TOTAL_BUDGET_KRW)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_TARGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 목표 ON/OFF (RANGE_BREAK_DAILY_PROFIT_TARGET_ENABLED)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_TARGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 목표 원 (RANGE_BREAK_DAILY_PROFIT_TARGET_KRW)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_TARGET_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 목표 %% (RANGE_BREAK_DAILY_PROFIT_TARGET_PCT)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_HALT_NEW_BUYS`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 중단 NEW BUYS (RANGE_BREAK_DAILY_PROFIT_HALT_NEW_BUYS)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 모드 (RANGE_BREAK_DAILY_PROFIT_MODE)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 트레일 다단 (RANGE_BREAK_DAILY_PROFIT_TRAIL_TIERS)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_TRAIL_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 트레일 되돌림/하락 %% (RANGE_BREAK_DAILY_PROFIT_TRAIL_DROP_PCT)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_TRAIL_ARM_KRW`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 트레일무장 원 (RANGE_BREAK_DAILY_PROFIT_TRAIL_ARM_KRW)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 트레일무장 %% (RANGE_BREAK_DAILY_PROFIT_TRAIL_ARM_PCT)',
  MODIFY COLUMN `RANGE_BREAK_BACKTEST_USE_TICK_EXIT`
    text NULL DEFAULT NULL
    COMMENT '박스돌파 틱 청산 · ON=ws_ticks 시간순 청산 · OFF=OHLC intrabar',
  MODIFY COLUMN `RANGE_BREAK_BACKTEST_TICK_FALLBACK_OHLC`
    text NULL DEFAULT NULL
    COMMENT '⚠ 박스돌파 OHLC 폴백 (정합위험·금지) · 절대금지 — 틱 청산 ON 시 엔진 무시',
  MODIFY COLUMN `RANGE_BREAK_BACKTEST_POLL_MS`
    text NULL DEFAULT NULL
    COMMENT '박스돌파 틱청산 폴링(ms) · 실매 폴링 정합 · 하한 50ms',
  MODIFY COLUMN `RANGE_BREAK_BACKTEST_SELL_SLIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: BACKTEST SELL SLIP %% (RANGE_BREAK_BACKTEST_SELL_SLIP_PCT)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_RISK_BUDGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 RISK 한도 ON/OFF (RANGE_BREAK_DAILY_PROFIT_RISK_BUDGET_ENABLED)',
  MODIFY COLUMN `RANGE_BREAK_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 일일익절 RISK 한도 쿨다운 초 (RANGE_BREAK_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC)',
  MODIFY COLUMN `RANGE_BREAK_TICK_SELL_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '박스권돌파: 틱매도 ON/OFF (RANGE_BREAK_TICK_SELL_ENABLED)'
;

-- ── config_dbband (74 cols) ──
ALTER TABLE `config_dbband`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `DBBAND_BB_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '더블BB: BB 기간 (DBBAND_BB_PERIOD)',
  MODIFY COLUMN `DBBAND_BB_INNER_STD`
    text NULL DEFAULT NULL
    COMMENT '더블BB: BB INNER STD (DBBAND_BB_INNER_STD)',
  MODIFY COLUMN `DBBAND_BB_OUTER_STD`
    text NULL DEFAULT NULL
    COMMENT '더블BB: BB OUTER STD (DBBAND_BB_OUTER_STD)',
  MODIFY COLUMN `DBBAND_TREND_MA_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '더블BB: TREND MA 기간 (DBBAND_TREND_MA_PERIOD)',
  MODIFY COLUMN `DBBAND_USE_TREND_FILTER`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 사용_ TREND 필터 (DBBAND_USE_TREND_FILTER)',
  MODIFY COLUMN `DBBAND_SIDE_MODE`
    text NULL DEFAULT NULL
    COMMENT '더블BB: SIDE 모드 (DBBAND_SIDE_MODE)',
  MODIFY COLUMN `DBBAND_ENTRY_VALID_BARS`
    text NULL DEFAULT NULL
    COMMENT '더블BB: ENTRY VALID 봉수 (DBBAND_ENTRY_VALID_BARS)',
  MODIFY COLUMN `DBBAND_ENTRY_MODE`
    text NULL DEFAULT NULL
    COMMENT '더블BB: ENTRY 모드 (DBBAND_ENTRY_MODE)',
  MODIFY COLUMN `DBBAND_STOP_MODE`
    text NULL DEFAULT NULL
    COMMENT '더블BB: STOP 모드 (DBBAND_STOP_MODE)',
  MODIFY COLUMN `DBBAND_STOP_BUFFER_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: STOP BUFFER %% (DBBAND_STOP_BUFFER_PCT)',
  MODIFY COLUMN `DBBAND_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 손절 %% (DBBAND_STOP_LOSS_PCT)',
  MODIFY COLUMN `DBBAND_TP_MODE`
    text NULL DEFAULT NULL
    COMMENT '더블BB: TP 모드 (DBBAND_TP_MODE)',
  MODIFY COLUMN `DBBAND_TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 익절 %% (DBBAND_TAKE_PROFIT_PCT)',
  MODIFY COLUMN `DBBAND_RR_RATIO`
    text NULL DEFAULT NULL
    COMMENT '더블BB: RR RATIO (DBBAND_RR_RATIO)',
  MODIFY COLUMN `DBBAND_SHOULDER_MIN_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 어깨무장고점 %% (DBBAND_SHOULDER_MIN_HIGH_PCT)',
  MODIFY COLUMN `DBBAND_SHOULDER_CUT_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 어깨컷 %% (DBBAND_SHOULDER_CUT_PCT)',
  MODIFY COLUMN `DBBAND_TRAIL_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 트레일 %% (DBBAND_TRAIL_PCT)',
  MODIFY COLUMN `DBBAND_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 트레일무장 %% (DBBAND_TRAIL_ARM_PCT)',
  MODIFY COLUMN `DBBAND_TIME_START`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 매수시작 (DBBAND_TIME_START)',
  MODIFY COLUMN `DBBAND_TIME_END`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 매수종료 (DBBAND_TIME_END)',
  MODIFY COLUMN `DBBAND_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 쿨다운 초 (DBBAND_COOLDOWN_SEC)',
  MODIFY COLUMN `DBBAND_MAX_DAILY`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일매수횟수상한 (DBBAND_MAX_DAILY)',
  MODIFY COLUMN `DBBAND_MIN_PRICE`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 최소가격 (DBBAND_MIN_PRICE)',
  MODIFY COLUMN `DBBAND_SLOT_MONEY`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 슬롯금액 (DBBAND_SLOT_MONEY)',
  MODIFY COLUMN `DBBAND_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 동시보유상한 (DBBAND_MAX_STOCKS)',
  MODIFY COLUMN `DBBAND_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 총운용한도 원 (DBBAND_TOTAL_BUDGET_KRW)',
  MODIFY COLUMN `DBBAND_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 1회최대매수금액 (DBBAND_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `DBBAND_MAX_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 최대보유봉 (DBBAND_MAX_HOLD_BARS)',
  MODIFY COLUMN `DBBAND_TIMEFRAME`
    text NULL DEFAULT NULL
    COMMENT '더블BB: TIMEFRAME (DBBAND_TIMEFRAME)',
  MODIFY COLUMN `DBBAND_MIN_INVEST_RATIO_OF_SLOT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 최소 INVEST RATIO OF SLOT (DBBAND_MIN_INVEST_RATIO_OF_SLOT)',
  MODIFY COLUMN `DBBAND_FORCE_EOD_EXIT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: FORCE 장마감 EXIT (DBBAND_FORCE_EOD_EXIT)',
  MODIFY COLUMN `DBBAND_LIVE_MIN_CANDLES`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 실매최소봉수 (DBBAND_LIVE_MIN_CANDLES)',
  MODIFY COLUMN `DBBAND_LIVE_SIGNAL_LOOKBACK_BARS`
    text NULL DEFAULT NULL
    COMMENT '더블BB: LIVE SIGNAL LOOKBACK 봉수 (DBBAND_LIVE_SIGNAL_LOOKBACK_BARS)',
  MODIFY COLUMN `DBBAND_UNIVERSE_SOURCE`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 유니버스소스 (DBBAND_UNIVERSE_SOURCE)',
  MODIFY COLUMN `DBBAND_CANDLE_FETCH_N`
    text NULL DEFAULT NULL
    COMMENT '더블BB: CANDLE FETCH N (DBBAND_CANDLE_FETCH_N)',
  MODIFY COLUMN `STRATEGY_DBBAND_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '더블BB ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함',
  MODIFY COLUMN `KIS_DBBAND_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '더블BB: KIS DBBAND MM CHANNEL (KIS_DBBAND_MM_CHANNEL)',
  MODIFY COLUMN `RANK_DBBAND_SORT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: RANK DBBAND SORT (RANK_DBBAND_SORT)',
  MODIFY COLUMN `RANK_DBBAND_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: RANK DBBAND LIMIT (RANK_DBBAND_LIMIT)',
  MODIFY COLUMN `CONDITION_DBBAND_NAME`
    text NULL DEFAULT NULL
    COMMENT '더블BB: CONDITION DBBAND NAME (CONDITION_DBBAND_NAME)',
  MODIFY COLUMN `CONDITION_DBBAND_SEQ`
    text NULL DEFAULT NULL
    COMMENT '더블BB: CONDITION DBBAND SEQ (CONDITION_DBBAND_SEQ)',
  MODIFY COLUMN `DBBAND_GRID_BB_PERIOD0`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID BB 기간 0 (DBBAND_GRID_BB_PERIOD0)',
  MODIFY COLUMN `DBBAND_GRID_BB_PERIOD1`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID BB 기간 1 (DBBAND_GRID_BB_PERIOD1)',
  MODIFY COLUMN `DBBAND_GRID_INNER_STD0`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID INNER STD0 (DBBAND_GRID_INNER_STD0)',
  MODIFY COLUMN `DBBAND_GRID_INNER_STD1`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID INNER STD1 (DBBAND_GRID_INNER_STD1)',
  MODIFY COLUMN `DBBAND_GRID_OUTER_STD0`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID OUTER STD0 (DBBAND_GRID_OUTER_STD0)',
  MODIFY COLUMN `DBBAND_GRID_OUTER_STD1`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID OUTER STD1 (DBBAND_GRID_OUTER_STD1)',
  MODIFY COLUMN `DBBAND_GRID_TREND_MA0`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID TREND MA0 (DBBAND_GRID_TREND_MA0)',
  MODIFY COLUMN `DBBAND_GRID_TREND_MA1`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID TREND MA1 (DBBAND_GRID_TREND_MA1)',
  MODIFY COLUMN `DBBAND_GRID_SL0`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID SL0 (DBBAND_GRID_SL0)',
  MODIFY COLUMN `DBBAND_GRID_SL1`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID SL1 (DBBAND_GRID_SL1)',
  MODIFY COLUMN `DBBAND_GRID_TP0`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID TP0 (DBBAND_GRID_TP0)',
  MODIFY COLUMN `DBBAND_GRID_TP1`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID TP1 (DBBAND_GRID_TP1)',
  MODIFY COLUMN `DBBAND_GRID_RR0`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID RR0 (DBBAND_GRID_RR0)',
  MODIFY COLUMN `DBBAND_GRID_RR1`
    text NULL DEFAULT NULL
    COMMENT '더블BB: GRID RR1 (DBBAND_GRID_RR1)',
  MODIFY COLUMN `DBBAND_EXIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '더블BB: EXIT 모드 (DBBAND_EXIT_MODE)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_TARGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 목표 ON/OFF (DBBAND_DAILY_PROFIT_TARGET_ENABLED)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_TARGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 목표 원 (DBBAND_DAILY_PROFIT_TARGET_KRW)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_TARGET_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 목표 %% (DBBAND_DAILY_PROFIT_TARGET_PCT)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_HALT_NEW_BUYS`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 중단 NEW BUYS (DBBAND_DAILY_PROFIT_HALT_NEW_BUYS)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 모드 (DBBAND_DAILY_PROFIT_MODE)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 트레일 다단 (DBBAND_DAILY_PROFIT_TRAIL_TIERS)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_TRAIL_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 트레일 되돌림/하락 %% (DBBAND_DAILY_PROFIT_TRAIL_DROP_PCT)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_TRAIL_ARM_KRW`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 트레일무장 원 (DBBAND_DAILY_PROFIT_TRAIL_ARM_KRW)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 트레일무장 %% (DBBAND_DAILY_PROFIT_TRAIL_ARM_PCT)',
  MODIFY COLUMN `DBBAND_BACKTEST_USE_TICK_EXIT`
    text NULL DEFAULT NULL
    COMMENT '더블BB 틱 청산 · ON=ws_ticks 시간순 청산 · OFF=봉 OHLC 1회',
  MODIFY COLUMN `DBBAND_BACKTEST_TICK_FALLBACK_OHLC`
    text NULL DEFAULT NULL
    COMMENT '⚠ 더블BB OHLC 폴백 (정합위험·금지) · 절대금지 — 틱 청산 ON 시 엔진 무시',
  MODIFY COLUMN `DBBAND_BACKTEST_POLL_MS`
    text NULL DEFAULT NULL
    COMMENT '더블BB 틱청산 폴링(ms) · 실매 폴링 정합 · 하한 50ms',
  MODIFY COLUMN `DBBAND_BACKTEST_SELL_SLIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '더블BB: BACKTEST SELL SLIP %% (DBBAND_BACKTEST_SELL_SLIP_PCT)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_RISK_BUDGET_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 RISK 한도 ON/OFF (DBBAND_DAILY_PROFIT_RISK_BUDGET_ENABLED)',
  MODIFY COLUMN `DBBAND_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 일일익절 RISK 한도 쿨다운 초 (DBBAND_DAILY_PROFIT_RISK_BUDGET_COOLDOWN_SEC)',
  MODIFY COLUMN `DBBAND_TICK_SELL_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '더블BB: 틱매도 ON/OFF (DBBAND_TICK_SELL_ENABLED)'
;

-- ── config_dart (50 cols) ──
ALTER TABLE `config_dart`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `STRATEGY_DART_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'DART수주 ON/OFF. 다음루프 신규매수중단(보유청산유지). WS구독해제 안함',
  MODIFY COLUMN `KIS_DART_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT 'KIS DART MM CHANNEL (KIS_DART_MM_CHANNEL)',
  MODIFY COLUMN `DART_SCAN_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'DART: SCAN ON/OFF (DART_SCAN_ENABLED)',
  MODIFY COLUMN `DART_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'DART: ON/OFF (DART_ENABLED)',
  MODIFY COLUMN `DART_POLL_SEC`
    text NULL DEFAULT NULL
    COMMENT 'DART: POLL 초 (DART_POLL_SEC)',
  MODIFY COLUMN `DART_LOOKBACK_DAYS`
    text NULL DEFAULT NULL
    COMMENT 'DART: LOOKBACK DAYS (DART_LOOKBACK_DAYS)',
  MODIFY COLUMN `DART_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT 'DART: MM CHANNEL (DART_MM_CHANNEL)',
  MODIFY COLUMN `DART_SAVE_CANDIDATES`
    text NULL DEFAULT NULL
    COMMENT 'DART: SAVE CANDIDATES (DART_SAVE_CANDIDATES)',
  MODIFY COLUMN `DART_REPORT_NAME_KEYWORDS`
    text NULL DEFAULT NULL
    COMMENT 'DART: REPORT NAME KEYWORDS (DART_REPORT_NAME_KEYWORDS)',
  MODIFY COLUMN `DART_SKIP_CORRECTION`
    text NULL DEFAULT NULL
    COMMENT 'DART: SKIP CORRECTION (DART_SKIP_CORRECTION)',
  MODIFY COLUMN `DART_LISTED_ONLY`
    text NULL DEFAULT NULL
    COMMENT 'DART: LISTED ONLY (DART_LISTED_ONLY)',
  MODIFY COLUMN `DART_LIST_MAX_PAGES`
    text NULL DEFAULT NULL
    COMMENT 'DART: LIST 최대 PAGES (DART_LIST_MAX_PAGES)',
  MODIFY COLUMN `DART_SUBSCRIBE_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'DART: SUBSCRIBE ON/OFF (DART_SUBSCRIBE_ENABLED)',
  MODIFY COLUMN `DART_WATCH_TTL_HOURS`
    text NULL DEFAULT NULL
    COMMENT 'DART: WATCH TTL HOURS (DART_WATCH_TTL_HOURS)',
  MODIFY COLUMN `DART_WATCH_MAX`
    text NULL DEFAULT NULL
    COMMENT 'DART: WATCH 최대 (DART_WATCH_MAX)',
  MODIFY COLUMN `DART_TRADE_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'DART: TRADE ON/OFF (DART_TRADE_ENABLED)',
  MODIFY COLUMN `DART_SLOT_MONEY`
    text NULL DEFAULT NULL
    COMMENT 'DART: 슬롯금액 (DART_SLOT_MONEY)',
  MODIFY COLUMN `DART_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT 'DART: 동시보유상한 (DART_MAX_STOCKS)',
  MODIFY COLUMN `DART_TOTAL_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT 'DART: 총운용한도 원 (DART_TOTAL_BUDGET_KRW)',
  MODIFY COLUMN `DART_MAX_BUY_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 1회최대매수금액 (DART_MAX_BUY_AMOUNT)',
  MODIFY COLUMN `DART_MIN_INVEST_RATIO_OF_SLOT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 최소 INVEST RATIO OF SLOT (DART_MIN_INVEST_RATIO_OF_SLOT)',
  MODIFY COLUMN `DART_CAND_LIMIT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 후보상한 (DART_CAND_LIMIT)',
  MODIFY COLUMN `DART_TIME_START`
    text NULL DEFAULT NULL
    COMMENT 'DART: 매수시작 (DART_TIME_START)',
  MODIFY COLUMN `DART_TIME_END`
    text NULL DEFAULT NULL
    COMMENT 'DART: 매수종료 (DART_TIME_END)',
  MODIFY COLUMN `DART_RSI_PERIOD`
    text NULL DEFAULT NULL
    COMMENT 'DART: RSI 기간 (DART_RSI_PERIOD)',
  MODIFY COLUMN `DART_RSI_OVERSOLD`
    text NULL DEFAULT NULL
    COMMENT 'DART: RSI과매도 (DART_RSI_OVERSOLD)',
  MODIFY COLUMN `DART_RSI_RECLAIM`
    text NULL DEFAULT NULL
    COMMENT 'DART: RSI RECLAIM (DART_RSI_RECLAIM)',
  MODIFY COLUMN `DART_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 손절 %% (DART_STOP_LOSS_PCT)',
  MODIFY COLUMN `DART_TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 익절 %% (DART_TAKE_PROFIT_PCT)',
  MODIFY COLUMN `DART_TRAIL_PCT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 트레일 %% (DART_TRAIL_PCT)',
  MODIFY COLUMN `DART_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 트레일무장 %% (DART_TRAIL_ARM_PCT)',
  MODIFY COLUMN `DART_MAX_HOLD_BARS`
    text NULL DEFAULT NULL
    COMMENT 'DART: 최대보유봉 (DART_MAX_HOLD_BARS)',
  MODIFY COLUMN `DART_EVENT_WINDOW_BARS`
    text NULL DEFAULT NULL
    COMMENT 'DART: EVENT 윈도우 봉수 (DART_EVENT_WINDOW_BARS)',
  MODIFY COLUMN `DART_MIN_PRICE`
    text NULL DEFAULT NULL
    COMMENT 'DART: 최소가격 (DART_MIN_PRICE)',
  MODIFY COLUMN `DART_VOL_MULT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 거래량배수 (DART_VOL_MULT)',
  MODIFY COLUMN `DART_VOL_WINDOW`
    text NULL DEFAULT NULL
    COMMENT 'DART: 거래량윈도우 DOW (DART_VOL_WINDOW)',
  MODIFY COLUMN `DART_MAX_LOSS_PER_TRADE_KRW`
    text NULL DEFAULT NULL
    COMMENT 'DART: 최대 LOSS PER TRADE 원 (DART_MAX_LOSS_PER_TRADE_KRW)',
  MODIFY COLUMN `DART_FORCE_EOD_EXIT`
    text NULL DEFAULT NULL
    COMMENT 'DART: FORCE 장마감 EXIT (DART_FORCE_EOD_EXIT)',
  MODIFY COLUMN `DART_BACKTEST_USE_TICK_EXIT`
    text NULL DEFAULT NULL
    COMMENT 'DART: BACKTEST 사용_ TICK EXIT (DART_BACKTEST_USE_TICK_EXIT)',
  MODIFY COLUMN `DART_BACKTEST_TICK_FALLBACK_OHLC`
    text NULL DEFAULT NULL
    COMMENT 'DART: BACKTEST 틱없을때OHLC폴백(위험) (DART_BACKTEST_TICK_FALLBACK_OHLC)',
  MODIFY COLUMN `DART_QUALITY_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'DART: QUALITY 필터 ON/OFF (DART_QUALITY_FILTER_ENABLED)',
  MODIFY COLUMN `DART_EXCLUDE_CORP_KEYWORDS`
    text NULL DEFAULT NULL
    COMMENT 'DART: EXCLUDE CORP KEYWORDS (DART_EXCLUDE_CORP_KEYWORDS)',
  MODIFY COLUMN `DART_EXCLUDE_CONTENT_KEYWORDS`
    text NULL DEFAULT NULL
    COMMENT 'DART: EXCLUDE CONTENT KEYWORDS (DART_EXCLUDE_CONTENT_KEYWORDS)',
  MODIFY COLUMN `DART_MIN_SALES_PCT`
    text NULL DEFAULT NULL
    COMMENT 'DART: 최소 SALES %% (DART_MIN_SALES_PCT)',
  MODIFY COLUMN `DART_SKIP_IF_SALES_PCT_UNKNOWN`
    text NULL DEFAULT NULL
    COMMENT 'DART: SKIP IF SALES %% UNKNOWN (DART_SKIP_IF_SALES_PCT_UNKNOWN)',
  MODIFY COLUMN `DART_THEME_KEYWORDS`
    text NULL DEFAULT NULL
    COMMENT 'DART: THEME KEYWORDS (DART_THEME_KEYWORDS)',
  MODIFY COLUMN `DART_REQUIRE_THEME`
    text NULL DEFAULT NULL
    COMMENT 'DART: REQUIRE THEME (DART_REQUIRE_THEME)',
  MODIFY COLUMN `DART_FETCH_DOCUMENT`
    text NULL DEFAULT NULL
    COMMENT 'DART: FETCH DOCUMENT (DART_FETCH_DOCUMENT)'
;

-- ── env_config (380 cols) ──
ALTER TABLE `env_config`
  MODIFY COLUMN `id`
    int(11) NOT NULL AUTO_INCREMENT
    COMMENT 'PK · AUTO_INCREMENT',
  MODIFY COLUMN `created_at`
    varchar(30) NOT NULL
    COMMENT '설정행 생성시각',
  MODIFY COLUMN `STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 손절 %% (STOP_LOSS_PCT)',
  MODIFY COLUMN `MAX_POSITION_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최대 POSITION %% (MAX_POSITION_PCT)',
  MODIFY COLUMN `USE_SLOT_CAP`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ SLOT CAP (USE_SLOT_CAP)',
  MODIFY COLUMN `SLOT_CAP_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: SLOT CAP %% (SLOT_CAP_PCT)',
  MODIFY COLUMN `MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '공통env: 동시보유상한 (MAX_STOCKS)',
  MODIFY COLUMN `USE_KELLY`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ KELLY (USE_KELLY)',
  MODIFY COLUMN `RISK_PCT_PER_TRADE`
    text NULL DEFAULT NULL
    COMMENT '공통env: RISK %% PER TRADE (RISK_PCT_PER_TRADE)',
  MODIFY COLUMN `MIN_POSITION_AMOUNT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소 POSITION AMOUNT (MIN_POSITION_AMOUNT)',
  MODIFY COLUMN `USE_RISK_CHECK`
    text NULL DEFAULT NULL
    COMMENT '리스크 체크 사용',
  MODIFY COLUMN `DAILY_STOP_LOSS_PCT`
    text NULL DEFAULT NULL
    COMMENT '일일 손실 한도(분율, -0.05=-5%%)',
  MODIFY COLUMN `CONSECUTIVE_LOSS_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '연속 손실 제한(회)',
  MODIFY COLUMN `DAILY_PROFIT_TARGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '목표 금액(원)',
  MODIFY COLUMN `DAILY_PROFIT_TARGET_PCT`
    text NULL DEFAULT NULL
    COMMENT '목표 수익률(%%) · 퍼센트 그대로 (예: 2.5 = 2.5%%) · 0=미사용',
  MODIFY COLUMN `DAILY_PROFIT_TARGET_BUDGET_KRW`
    text NULL DEFAULT NULL
    COMMENT '분모 운용한도(원) · 0 = ON 전략 TOTAL_BUDGET 합 자동',
  MODIFY COLUMN `DAILY_PROFIT_HALT_NEW_BUYS`
    text NULL DEFAULT NULL
    COMMENT '신규매수 수동 중단 · 목표·손익과 무관한 수동 매수 잠금. ON=즉시 신규매수 전면 차단 / OFF=정상 (기본)',
  MODIFY COLUMN `DAILY_PROFIT_NOTIFY_MM`
    text NULL DEFAULT NULL
    COMMENT '달성 시 MM 알림',
  MODIFY COLUMN `USE_BAN_SYSTEM`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ BAN SYSTEM (USE_BAN_SYSTEM)',
  MODIFY COLUMN `BAN_HOURS`
    text NULL DEFAULT NULL
    COMMENT '공통env: BAN HOURS (BAN_HOURS)',
  MODIFY COLUMN `USE_STOCK_FILTER`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ STOCK 필터 (USE_STOCK_FILTER)',
  MODIFY COLUMN `RSI_OVERHEAT_THRESHOLD`
    text NULL DEFAULT NULL
    COMMENT '공통env: RSI OVERHEAT THRESHOLD (RSI_OVERHEAT_THRESHOLD)',
  MODIFY COLUMN `MIN_RECOVERY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소 RECOVERY RATIO (MIN_RECOVERY_RATIO)',
  MODIFY COLUMN `MAX_RECOVERY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최대 RECOVERY RATIO (MAX_RECOVERY_RATIO)',
  MODIFY COLUMN `USE_TWAP`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ TWAP (USE_TWAP)',
  MODIFY COLUMN `TWAP_MIN_SPLIT`
    text NULL DEFAULT NULL
    COMMENT '공통env: TWAP 최소 SPLIT (TWAP_MIN_SPLIT)',
  MODIFY COLUMN `TWAP_MAX_SPLIT`
    text NULL DEFAULT NULL
    COMMENT '공통env: TWAP 최대 SPLIT (TWAP_MAX_SPLIT)',
  MODIFY COLUMN `TWAP_MIN_DELAY`
    text NULL DEFAULT NULL
    COMMENT '공통env: TWAP 최소 DELAY (TWAP_MIN_DELAY)',
  MODIFY COLUMN `TWAP_MAX_DELAY`
    text NULL DEFAULT NULL
    COMMENT '공통env: TWAP 최대 DELAY (TWAP_MAX_DELAY)',
  MODIFY COLUMN `USE_ML_SIGNAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ ML SIGNAL (USE_ML_SIGNAL)',
  MODIFY COLUMN `ML_MIN_PROBABILITY`
    text NULL DEFAULT NULL
    COMMENT '공통env: ML 최소 PROBABILITY (ML_MIN_PROBABILITY)',
  MODIFY COLUMN `USE_NEWS_ANALYSIS`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ NEWS ANALYSIS (USE_NEWS_ANALYSIS)',
  MODIFY COLUMN `NEWS_ANALYSIS_HOUR`
    text NULL DEFAULT NULL
    COMMENT '공통env: NEWS ANALYSIS HOUR (NEWS_ANALYSIS_HOUR)',
  MODIFY COLUMN `NEWS_MAX_COUNT`
    text NULL DEFAULT NULL
    COMMENT '공통env: NEWS 최대 COUNT (NEWS_MAX_COUNT)',
  MODIFY COLUMN `USE_QUICK_PROFIT_PROTECTION`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ QUICK PROFIT PROTECTION (USE_QUICK_PROFIT_PROTECTION)',
  MODIFY COLUMN `HIGH_PRICE_CHASE_THRESHOLD`
    text NULL DEFAULT NULL
    COMMENT '공통env: HIGH PRICE CHASE THRESHOLD (HIGH_PRICE_CHASE_THRESHOLD)',
  MODIFY COLUMN `MAX_DAILY_CHANGE_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 일일매수횟수상한 CHANGE %% (MAX_DAILY_CHANGE_PCT)',
  MODIFY COLUMN `MA20_MAX_ABOVE_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: MA20 최대 ABOVE %% (MA20_MAX_ABOVE_PCT)',
  MODIFY COLUMN `VOLUME_AVG_MULTIPLIER`
    text NULL DEFAULT NULL
    COMMENT '공통env: 거래량 UME 평균 배수 IPLIER (VOLUME_AVG_MULTIPLIER)',
  MODIFY COLUMN `CANDLE_OPEN_PRICE_BUFFER`
    text NULL DEFAULT NULL
    COMMENT '공통env: CANDLE OPEN PRICE BUFFER (CANDLE_OPEN_PRICE_BUFFER)',
  MODIFY COLUMN `MIN_CANDLE_LEN_TAIL`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소 CANDLE LEN TAIL (MIN_CANDLE_LEN_TAIL)',
  MODIFY COLUMN `MIN_PRICE_TAIL`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소가격 TAIL (MIN_PRICE_TAIL)',
  MODIFY COLUMN `INTRADAY_INVESTOR_NET_BUY_THRESHOLD`
    text NULL DEFAULT NULL
    COMMENT '공통env: INTRADAY INVESTOR NET BUY THRESHOLD (INTRADAY_INVESTOR_NET_BUY_THRESHOLD)',
  MODIFY COLUMN `SIZE_CLASS_LARGE_MIN`
    text NULL DEFAULT NULL
    COMMENT '공통env: SIZE CLASS LARGE 최소 (SIZE_CLASS_LARGE_MIN)',
  MODIFY COLUMN `SIZE_CLASS_MID_MIN`
    text NULL DEFAULT NULL
    COMMENT '공통env: SIZE CLASS MID 최소 (SIZE_CLASS_MID_MIN)',
  MODIFY COLUMN `SCAN_INVESTOR_NET_STRONG`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN INVESTOR NET STRONG (SCAN_INVESTOR_NET_STRONG)',
  MODIFY COLUMN `SCAN_INVESTOR_SCORE_STRONG`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN INVESTOR SCORE STRONG (SCAN_INVESTOR_SCORE_STRONG)',
  MODIFY COLUMN `SCAN_INVESTOR_SCORE_WEAK`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN INVESTOR SCORE WEAK (SCAN_INVESTOR_SCORE_WEAK)',
  MODIFY COLUMN `SCAN_INVESTOR_BONUS_STRONG`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN INVESTOR BONUS STRONG (SCAN_INVESTOR_BONUS_STRONG)',
  MODIFY COLUMN `SCAN_INVESTOR_BONUS_WEAK`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN INVESTOR BONUS WEAK (SCAN_INVESTOR_BONUS_WEAK)',
  MODIFY COLUMN `SCAN_VOLUME_BONUS_MIN`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN 거래량 UME BONUS 최소 (SCAN_VOLUME_BONUS_MIN)',
  MODIFY COLUMN `SCAN_VOLUME_BONUS_POINT`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN 거래량 UME BONUS POINT (SCAN_VOLUME_BONUS_POINT)',
  MODIFY COLUMN `SCAN_EXEC_STRENGTH_HIGH`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN EXEC STRENGTH HIGH (SCAN_EXEC_STRENGTH_HIGH)',
  MODIFY COLUMN `SCAN_EXEC_STRENGTH_MID`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN EXEC STRENGTH MID (SCAN_EXEC_STRENGTH_MID)',
  MODIFY COLUMN `SCAN_EXEC_BONUS_HIGH`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN EXEC BONUS HIGH (SCAN_EXEC_BONUS_HIGH)',
  MODIFY COLUMN `SCAN_EXEC_BONUS_MID`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN EXEC BONUS MID (SCAN_EXEC_BONUS_MID)',
  MODIFY COLUMN `SCAN_SCORE_DROP_WEIGHT`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN SCORE 되돌림/하락 WEIGHT (SCAN_SCORE_DROP_WEIGHT)',
  MODIFY COLUMN `SCAN_SCORE_RECOVERY_WEIGHT`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN SCORE RECOVERY WEIGHT (SCAN_SCORE_RECOVERY_WEIGHT)',
  MODIFY COLUMN `MIN_SCORE_DISPLAY`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소 SCORE DISPLAY (MIN_SCORE_DISPLAY)',
  MODIFY COLUMN `MM_TOP_N`
    text NULL DEFAULT NULL
    COMMENT '공통env: MM TOP N (MM_TOP_N)',
  MODIFY COLUMN `SLOT_MONEY_DEFAULT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 슬롯금액 DEFAULT (SLOT_MONEY_DEFAULT)',
  MODIFY COLUMN `SLOT_BASE_AMOUNT_CAP`
    text NULL DEFAULT NULL
    COMMENT '공통env: SLOT BASE AMOUNT CAP (SLOT_BASE_AMOUNT_CAP)',
  MODIFY COLUMN `SIZE_CLASS_SMALL_RATIO`
    text NULL DEFAULT NULL
    COMMENT '공통env: SIZE CLASS SMALL RATIO (SIZE_CLASS_SMALL_RATIO)',
  MODIFY COLUMN `SIZE_CLASS_MID_RATIO`
    text NULL DEFAULT NULL
    COMMENT '공통env: SIZE CLASS MID RATIO (SIZE_CLASS_MID_RATIO)',
  MODIFY COLUMN `SCAN_MIN_PREV_DAY_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN 최소 PREV DAY %% (SCAN_MIN_PREV_DAY_PCT)',
  MODIFY COLUMN `UPDATE_UNIVERSE_MIN_CANDIDATES`
    text NULL DEFAULT NULL
    COMMENT '공통env: UPDATE 유니버스 최소 CANDIDATES (UPDATE_UNIVERSE_MIN_CANDIDATES)',
  MODIFY COLUMN `UPDATE_UNIVERSE_MIN_SCORE`
    text NULL DEFAULT NULL
    COMMENT '공통env: UPDATE 유니버스 최소 SCORE (UPDATE_UNIVERSE_MIN_SCORE)',
  MODIFY COLUMN `UPDATE_UNIVERSE_FALLBACK_TOP_N`
    text NULL DEFAULT NULL
    COMMENT '공통env: UPDATE 유니버스 FALLBACK TOP N (UPDATE_UNIVERSE_FALLBACK_TOP_N)',
  MODIFY COLUMN `UPDATE_UNIVERSE_TOP_LOG`
    text NULL DEFAULT NULL
    COMMENT '공통env: UPDATE 유니버스 TOP LOG (UPDATE_UNIVERSE_TOP_LOG)',
  MODIFY COLUMN `UPDATE_UNIVERSE_TOP_N`
    text NULL DEFAULT NULL
    COMMENT '공통env: UPDATE 유니버스 TOP N (UPDATE_UNIVERSE_TOP_N)',
  MODIFY COLUMN `SCAN_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN INTERVAL 초 (SCAN_INTERVAL_SEC)',
  MODIFY COLUMN `USE_RANDOM_SPLIT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ RANDOM SPLIT (USE_RANDOM_SPLIT)',
  MODIFY COLUMN `FORCE_MARKET_OPEN`
    text NULL DEFAULT NULL
    COMMENT '공통env: FORCE MARKET OPEN (FORCE_MARKET_OPEN)',
  MODIFY COLUMN `FORCE_BUY_TEST`
    text NULL DEFAULT NULL
    COMMENT '공통env: 강제매수테스트 TEST (FORCE_BUY_TEST)',
  MODIFY COLUMN `TOTAL_DEPOSIT`
    text NULL DEFAULT NULL
    COMMENT '공통env: TOTAL DEPOSIT (TOTAL_DEPOSIT)',
  MODIFY COLUMN `ROUND_TRIP_COST_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: ROUND TRIP COST %% (ROUND_TRIP_COST_PCT)',
  MODIFY COLUMN `POP_NET_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: POP NET %% (POP_NET_PCT)',
  MODIFY COLUMN `LOCK_NET_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: LOCK NET %% (LOCK_NET_PCT)',
  MODIFY COLUMN `MAX_LOSS_PER_TRADE_KRW`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최대 LOSS PER TRADE 원 (MAX_LOSS_PER_TRADE_KRW)',
  MODIFY COLUMN `MIN_DROP_PCT_FOR_LOSS_CUT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소 되돌림/하락 %% FOR LOSS CUT (MIN_DROP_PCT_FOR_LOSS_CUT)',
  MODIFY COLUMN `KIS_APP_KEY_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS APP KEY REAL (KIS_APP_KEY_REAL)',
  MODIFY COLUMN `KIS_APP_SECRET_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS APP 초 RET REAL (KIS_APP_SECRET_REAL)',
  MODIFY COLUMN `KIS_APP_KEY_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS APP KEY MOCK (KIS_APP_KEY_MOCK)',
  MODIFY COLUMN `KIS_APP_SECRET_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS APP 초 RET MOCK (KIS_APP_SECRET_MOCK)',
  MODIFY COLUMN `KIS_ACCOUNT_NO_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS ACCOUNT NO REAL (KIS_ACCOUNT_NO_REAL)',
  MODIFY COLUMN `KIS_ACCOUNT_CODE_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS ACCOUNT CODE REAL (KIS_ACCOUNT_CODE_REAL)',
  MODIFY COLUMN `KIS_ACCOUNT_NO_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS ACCOUNT NO MOCK (KIS_ACCOUNT_NO_MOCK)',
  MODIFY COLUMN `KIS_ACCOUNT_CODE_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS ACCOUNT CODE MOCK (KIS_ACCOUNT_CODE_MOCK)',
  MODIFY COLUMN `KIS_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS MOCK (KIS_MOCK)',
  MODIFY COLUMN `TAKE_PROFIT_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 익절 %% (TAKE_PROFIT_PCT)',
  MODIFY COLUMN `MIN_DROP_RATE`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소 되돌림/하락 RATE (MIN_DROP_RATE)',
  MODIFY COLUMN `MIN_RECOVERY_RATIO_SHORT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소 RECOVERY RATIO SHORT (MIN_RECOVERY_RATIO_SHORT)',
  MODIFY COLUMN `QUICK_PROFIT_PROTECT_HOURS`
    text NULL DEFAULT NULL
    COMMENT '공통env: QUICK PROFIT PROTECT HOURS (QUICK_PROFIT_PROTECT_HOURS)',
  MODIFY COLUMN `QUICK_PROFIT_MAX_RATIO`
    text NULL DEFAULT NULL
    COMMENT '공통env: QUICK PROFIT 최대 RATIO (QUICK_PROFIT_MAX_RATIO)',
  MODIFY COLUMN `QUICK_PROFIT_CURRENT_MIN`
    text NULL DEFAULT NULL
    COMMENT '공통env: QUICK PROFIT CURRENT 최소 (QUICK_PROFIT_CURRENT_MIN)',
  MODIFY COLUMN `MIN_HOLD_EARLY_TAKE_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소보유 EARLY TAKE %% (MIN_HOLD_EARLY_TAKE_PCT)',
  MODIFY COLUMN `MIN_HOLD_HIGH_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소보유 HIGH %% (MIN_HOLD_HIGH_PCT)',
  MODIFY COLUMN `MIN_HOLD_DROP_FROM_HIGH`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소보유 되돌림/하락 FROM HIGH (MIN_HOLD_DROP_FROM_HIGH)',
  MODIFY COLUMN `POST_HOLD_TAKE_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: POST HOLD TAKE %% (POST_HOLD_TAKE_PCT)',
  MODIFY COLUMN `POST_HOLD_DROP_FROM_HIGH`
    text NULL DEFAULT NULL
    COMMENT '공통env: POST HOLD 되돌림/하락 FROM HIGH (POST_HOLD_DROP_FROM_HIGH)',
  MODIFY COLUMN `MAX_PER`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최대 PER (MAX_PER)',
  MODIFY COLUMN `MAX_PEG`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최대 PEG (MAX_PEG)',
  MODIFY COLUMN `MIN_GROWTH_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소 GROWTH %% (MIN_GROWTH_PCT)',
  MODIFY COLUMN `DCA_INTERVALS`
    text NULL DEFAULT NULL
    COMMENT '공통env: DCA INTERVALS (DCA_INTERVALS)',
  MODIFY COLUMN `DCA_AMOUNTS`
    text NULL DEFAULT NULL
    COMMENT '공통env: DCA AMOUNTS (DCA_AMOUNTS)',
  MODIFY COLUMN `MM_SERVER_URL`
    text NULL DEFAULT NULL
    COMMENT '공통env: MM SERVER URL (MM_SERVER_URL)',
  MODIFY COLUMN `MM_BOT_TOKEN_`
    text NULL DEFAULT NULL
    COMMENT '공통env: MM BOT TOKEN (MM_BOT_TOKEN_)',
  MODIFY COLUMN `MATTERMOST_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '공통env: MATTERMOST CHANNEL (MATTERMOST_CHANNEL)',
  MODIFY COLUMN `GEMINI_API_KEY`
    text NULL DEFAULT NULL
    COMMENT '공통env: GEMINI API KEY (GEMINI_API_KEY)',
  MODIFY COLUMN `AI_JOURNAL_LINES`
    text NULL DEFAULT NULL
    COMMENT '공통env: AI JOURNAL LINES (AI_JOURNAL_LINES)',
  MODIFY COLUMN `ANTHROPIC_API_KEY`
    text NULL DEFAULT NULL
    COMMENT '공통env: ANTHROPIC API KEY (ANTHROPIC_API_KEY)',
  MODIFY COLUMN `CLAUDE_MODEL_ID`
    text NULL DEFAULT NULL
    COMMENT '공통env: CLAUDE 모드 L ID (CLAUDE_MODEL_ID)',
  MODIFY COLUMN `CLAUDE_MAX_TOKENS`
    text NULL DEFAULT NULL
    COMMENT '공통env: CLAUDE 최대 TOKENS (CLAUDE_MAX_TOKENS)',
  MODIFY COLUMN `MM_BUTLER_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '공통env: MM BUTLER CHANNEL (MM_BUTLER_CHANNEL)',
  MODIFY COLUMN `MM_DUAL_CHANNEL_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '공통env: MM DUAL CHANNEL ON/OFF (MM_DUAL_CHANNEL_ENABLED)',
  MODIFY COLUMN `OPENROUTER_API_KEY`
    text NULL DEFAULT NULL
    COMMENT '공통env: OPENROUTER API KEY (OPENROUTER_API_KEY)',
  MODIFY COLUMN `OPENROUTER_MODEL_ID`
    text NULL DEFAULT NULL
    COMMENT '공통env: OPENROUTER 모드 L ID (OPENROUTER_MODEL_ID)',
  MODIFY COLUMN `KIS_LONG_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS LONG MM CHANNEL (KIS_LONG_MM_CHANNEL)',
  MODIFY COLUMN `LONG_DAILY_LOOKBACK_DAYS`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG DAILY LOOKBACK DAYS (LONG_DAILY_LOOKBACK_DAYS)',
  MODIFY COLUMN `LONG_MA_SHORT_DAYS`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG MA SHORT DAYS (LONG_MA_SHORT_DAYS)',
  MODIFY COLUMN `LONG_MA_LONG_DAYS`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG MA LONG DAYS (LONG_MA_LONG_DAYS)',
  MODIFY COLUMN `LONG_REPORT_AM_HOUR`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG REPORT AM HOUR (LONG_REPORT_AM_HOUR)',
  MODIFY COLUMN `LONG_REPORT_AM_MIN`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG REPORT AM 최소 (LONG_REPORT_AM_MIN)',
  MODIFY COLUMN `LONG_REPORT_PM_HOUR`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG REPORT PM HOUR (LONG_REPORT_PM_HOUR)',
  MODIFY COLUMN `LONG_REPORT_PM_MIN`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG REPORT PM 최소 (LONG_REPORT_PM_MIN)',
  MODIFY COLUMN `LONG_NEWS_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG NEWS ON/OFF (LONG_NEWS_ENABLED)',
  MODIFY COLUMN `LONG_NEWS_INTERVAL_MIN`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG NEWS INTERVAL 최소 (LONG_NEWS_INTERVAL_MIN)',
  MODIFY COLUMN `LONG_NEWS_ACTIVE_START_HOUR`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG NEWS ACTIVE START HOUR (LONG_NEWS_ACTIVE_START_HOUR)',
  MODIFY COLUMN `LONG_NEWS_ACTIVE_END_HOUR`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG NEWS ACTIVE END HOUR (LONG_NEWS_ACTIVE_END_HOUR)',
  MODIFY COLUMN `LONG_ANALYSIS_DELAY_MIN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG ANALYSIS DELAY 최소 초 (LONG_ANALYSIS_DELAY_MIN_SEC)',
  MODIFY COLUMN `LONG_ANALYSIS_DELAY_MAX_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: LONG ANALYSIS DELAY 최대 초 (LONG_ANALYSIS_DELAY_MAX_SEC)',
  MODIFY COLUMN `RSI_PERIOD`
    text NULL DEFAULT NULL
    COMMENT '공통env: RSI 기간 (RSI_PERIOD)',
  MODIFY COLUMN `KIS_WS_URL_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: URL REAL (KIS_WS_URL_REAL)',
  MODIFY COLUMN `KIS_WS_URL_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: URL MOCK (KIS_WS_URL_MOCK)',
  MODIFY COLUMN `KIS_WS_MOCK_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '공통env: MOCK ON/OFF (KIS_WS_MOCK_ENABLED)',
  MODIFY COLUMN `REENTRY_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: REENTRY 쿨다운 초 (REENTRY_COOLDOWN_SEC)',
  MODIFY COLUMN `TIME_START`
    text NULL DEFAULT NULL
    COMMENT '공통env: 매수시작 (TIME_START)',
  MODIFY COLUMN `TIME_END`
    text NULL DEFAULT NULL
    COMMENT '공통env: 매수종료 (TIME_END)',
  MODIFY COLUMN `SELL_FAILURE_BACKOFF_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: SELL FAILURE BACKOFF 초 (SELL_FAILURE_BACKOFF_SEC)',
  MODIFY COLUMN `BROKER_HOLDINGS_CACHE_TTL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: BROKER HOLDINGS CACHE TTL 초 (BROKER_HOLDINGS_CACHE_TTL_SEC)',
  MODIFY COLUMN `GHOST_POSITION_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: GHOST POSITION 쿨다운 초 (GHOST_POSITION_COOLDOWN_SEC)',
  MODIFY COLUMN `WS_TICK_SAVE_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK SAVE ON/OFF (WS_TICK_SAVE_ENABLED)',
  MODIFY COLUMN `WS_TICK_BUFFER_MAX_PER_CODE`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK BUFFER 최대 PER CODE (WS_TICK_BUFFER_MAX_PER_CODE)',
  MODIFY COLUMN `WS_TICK_DB_BATCH_SIZE`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK DB BATCH SIZE (WS_TICK_DB_BATCH_SIZE)',
  MODIFY COLUMN `WS_TICK_DB_FLUSH_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK DB FLUSH 초 (WS_TICK_DB_FLUSH_SEC)',
  MODIFY COLUMN `WS_TICK_WRITE_QUEUE_MAX`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK WRITE QUEUE 최대 (WS_TICK_WRITE_QUEUE_MAX)',
  MODIFY COLUMN `WS_TICK_KEEP_DAYS`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK KEEP DAYS (WS_TICK_KEEP_DAYS)',
  MODIFY COLUMN `WS_TICK_RECORD_SCOPE`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK RECORD SCOPE (WS_TICK_RECORD_SCOPE)',
  MODIFY COLUMN `WS_TICK_DEFAULT_MARKET`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK DEFAULT MARKET (WS_TICK_DEFAULT_MARKET)',
  MODIFY COLUMN `WS_TICK_DEFAULT_EXCHANGE`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK DEFAULT EXCHANGE (WS_TICK_DEFAULT_EXCHANGE)',
  MODIFY COLUMN `WS_TICK_DEFAULT_CURRENCY`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK DEFAULT CURRENCY (WS_TICK_DEFAULT_CURRENCY)',
  MODIFY COLUMN `WS_ORDERBOOK_SAVE_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '호가 시계열(KIWOOM_0D) — 구독후보 ~3초 덤프 · 틱처럼 후보·보유만 연속 저장(source=kiwoom_0d) · 파람서치 호가축용 · 봇 재시작 필요 · 필터와 무관',
  MODIFY COLUMN `WS_PROGRAM_SAVE_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '프로그램 시계열 — 구독후보 ~3초 덤프 · SAVE와 동일 Recorder · 봇 재시작 필요 · 필터와 무관',
  MODIFY COLUMN `WS_TRIGGER_SNAPSHOT_DB_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '호가/프로그램 시계열 간격(초) · SAVE ON일 때만 · 종목당 최소 저장 간격 · 봇 재시작 필요',
  MODIFY COLUMN `WS_TRIGGER_SNAPSHOT_DB_BATCH_SIZE`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TRIGGER SNAPSHOT DB BATCH SIZE (WS_TRIGGER_SNAPSHOT_DB_BATCH_SIZE)',
  MODIFY COLUMN `WS_TRIGGER_SNAPSHOT_DB_FLUSH_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TRIGGER SNAPSHOT DB FLUSH 초 (WS_TRIGGER_SNAPSHOT_DB_FLUSH_SEC)',
  MODIFY COLUMN `WS_TRIGGER_SNAPSHOT_WRITE_QUEUE_MAX`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TRIGGER SNAPSHOT WRITE QUEUE 최대 (WS_TRIGGER_SNAPSHOT_WRITE_QUEUE_MAX)',
  MODIFY COLUMN `WS_ORDERBOOK_KEEP_DAYS`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS 호가 KEEP DAYS (WS_ORDERBOOK_KEEP_DAYS)',
  MODIFY COLUMN `WS_PROGRAM_KEEP_DAYS`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS 프로그램매매 KEEP DAYS (WS_PROGRAM_KEEP_DAYS)',
  MODIFY COLUMN `BACKTEST_USE_TRIGGER_SNAPSHOT_DB`
    text NULL DEFAULT NULL
    COMMENT '공통env: BACKTEST 사용_ TRIGGER SNAPSHOT DB (BACKTEST_USE_TRIGGER_SNAPSHOT_DB)',
  MODIFY COLUMN `WHIPSAW_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '휩쏘 필터(글로벌)',
  MODIFY COLUMN `WHIPSAW_BACKTEST_OHLC_FALLBACK`
    text NULL DEFAULT NULL
    COMMENT '공통env: 휩쏘 BACKTEST OHLC FALLBACK (WHIPSAW_BACKTEST_OHLC_FALLBACK)',
  MODIFY COLUMN `WHIPSAW_MODE`
    text NULL DEFAULT NULL
    COMMENT '공통env: 휩쏘 모드 (WHIPSAW_MODE)',
  MODIFY COLUMN `WHIPSAW_SUBBAR_SEC`
    text NULL DEFAULT NULL
    COMMENT '휩쏘 미니봉(초) · 틱을 N초 봉으로 묶음 · 실매 기본 30 · Optuna 꼬리 TPE 탐색',
  MODIFY COLUMN `WHIPSAW_LOOKBACK_SEC`
    text NULL DEFAULT NULL
    COMMENT '휩쏘 룩백(초) · 신호 직전 몇 초를 볼지 · 실매 기본 90',
  MODIFY COLUMN `WHIPSAW_DIP_PCT`
    text NULL DEFAULT NULL
    COMMENT '휩쏘 하락폭(분율, 0.003=0.3%%)',
  MODIFY COLUMN `WHIPSAW_RECOVERY_TOL_PCT`
    text NULL DEFAULT NULL
    COMMENT '휩쏘 회복 허용(분율, 0.001=0.1%%)',
  MODIFY COLUMN `WHIPSAW_MIN_SUBBARS`
    text NULL DEFAULT NULL
    COMMENT '공통env: 휩쏘 최소 SUBBARS (WHIPSAW_MIN_SUBBARS)',
  MODIFY COLUMN `WHIPSAW_TICK_BUFFER_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 휩쏘 TICK BUFFER LIMIT (WHIPSAW_TICK_BUFFER_LIMIT)',
  MODIFY COLUMN `USE_KELLY_FORMULA`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ KELLY FORMULA (USE_KELLY_FORMULA)',
  MODIFY COLUMN `KELLY_MULTIPLIER`
    text NULL DEFAULT NULL
    COMMENT '공통env: KELLY 배수 IPLIER (KELLY_MULTIPLIER)',
  MODIFY COLUMN `USE_MARKET_IOC`
    text NULL DEFAULT NULL
    COMMENT '매수 시장가 IOC · 실전 매수 ORD_DVSN=13(IOC) · OFF=01 · 모의는 01 고정',
  MODIFY COLUMN `KIS_PRICE_CACHE_TTL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS PRICE CACHE TTL 초 (KIS_PRICE_CACHE_TTL_SEC)',
  MODIFY COLUMN `MIN_HOLD_AFTER_BUY_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소보유 AFTER BUY 초 (MIN_HOLD_AFTER_BUY_SEC)',
  MODIFY COLUMN `MIN_HOLD_HOURS`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최소보유 HOURS (MIN_HOLD_HOURS)',
  MODIFY COLUMN `MAX_RECOVERY_RATIO_3M`
    text NULL DEFAULT NULL
    COMMENT '공통env: 최대 RECOVERY RATIO 3M (MAX_RECOVERY_RATIO_3M)',
  MODIFY COLUMN `CANDIDATE_LIST_TOP_N_LIGHT`
    text NULL DEFAULT NULL
    COMMENT '공통env: CANDIDATE LIST TOP N LIGHT (CANDIDATE_LIST_TOP_N_LIGHT)',
  MODIFY COLUMN `SCAN_UNIVERSE_MAX_CODES`
    text NULL DEFAULT NULL
    COMMENT '공통env: SCAN 유니버스 최대 CODES (SCAN_UNIVERSE_MAX_CODES)',
  MODIFY COLUMN `KIS_APP_KEY`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS APP KEY (KIS_APP_KEY)',
  MODIFY COLUMN `KIS_APP_SECRET`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS APP 초 RET (KIS_APP_SECRET)',
  MODIFY COLUMN `KIS_ACCOUNT_NO`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS ACCOUNT NO (KIS_ACCOUNT_NO)',
  MODIFY COLUMN `KIS_ACCOUNT_CODE`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS ACCOUNT CODE (KIS_ACCOUNT_CODE)',
  MODIFY COLUMN `GEMINI_MODEL_ID`
    text NULL DEFAULT NULL
    COMMENT '공통env: GEMINI 모드 L ID (GEMINI_MODEL_ID)',
  MODIFY COLUMN `MM_BUTLER_POLL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: MM BUTLER POLL 초 (MM_BUTLER_POLL_SEC)',
  MODIFY COLUMN `AI_SOURCE_MAX_CHARS`
    text NULL DEFAULT NULL
    COMMENT '공통env: AI SOURCE 최대 CHARS (AI_SOURCE_MAX_CHARS)',
  MODIFY COLUMN `FEE_RATE_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 수수료율 %% (FEE_RATE_PCT)',
  MODIFY COLUMN `SELL_TAX_RATE_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 매도세금 RATE %% (SELL_TAX_RATE_PCT)',
  MODIFY COLUMN `KIWOOM_APP_KEY_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM APP KEY REAL (KIWOOM_APP_KEY_REAL)',
  MODIFY COLUMN `KIWOOM_APP_SECRET_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM APP 초 RET REAL (KIWOOM_APP_SECRET_REAL)',
  MODIFY COLUMN `KIWOOM_APP_KEY_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM APP KEY MOCK (KIWOOM_APP_KEY_MOCK)',
  MODIFY COLUMN `KIWOOM_APP_SECRET_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM APP 초 RET MOCK (KIWOOM_APP_SECRET_MOCK)',
  MODIFY COLUMN `KIWOOM_APP_KEY`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM APP KEY (KIWOOM_APP_KEY)',
  MODIFY COLUMN `KIWOOM_APP_SECRET`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM APP 초 RET (KIWOOM_APP_SECRET)',
  MODIFY COLUMN `PERMANENT_WS_CODES`
    text NULL DEFAULT NULL
    COMMENT '공통env: PERMANENT WS CODES (PERMANENT_WS_CODES)',
  MODIFY COLUMN `USE_MARKET_REGIME_FILTER`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ MARKET REGIME 필터 (USE_MARKET_REGIME_FILTER)',
  MODIFY COLUMN `MARKET_REGIME_MIN_RSI`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET REGIME 최소 RSI (MARKET_REGIME_MIN_RSI)',
  MODIFY COLUMN `USE_THEME_HEAT_FILTER`
    text NULL DEFAULT NULL
    COMMENT '공통env: 사용_ THEME HEAT 필터 (USE_THEME_HEAT_FILTER)',
  MODIFY COLUMN `THEME_HEAT_RSI_MAX`
    text NULL DEFAULT NULL
    COMMENT '공통env: THEME HEAT RSI상한 (THEME_HEAT_RSI_MAX)',
  MODIFY COLUMN `STRATEGY_SAME_CODE_POLICY`
    text NULL DEFAULT NULL
    COMMENT '공통env: 전략 SAME CODE POLICY (STRATEGY_SAME_CODE_POLICY)',
  MODIFY COLUMN `ORDER_CASH_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: ORDER CASH %% (ORDER_CASH_PCT)',
  MODIFY COLUMN `ORDER_CASH_FEE_BUFFER`
    text NULL DEFAULT NULL
    COMMENT '공통env: ORDER CASH FEE BUFFER (ORDER_CASH_FEE_BUFFER)',
  MODIFY COLUMN `ORDER_CASH_DIVIDE_BY_MAX_STOCKS`
    text NULL DEFAULT NULL
    COMMENT '공통env: ORDER CASH DIVIDE BY 동시보유상한 (ORDER_CASH_DIVIDE_BY_MAX_STOCKS)',
  MODIFY COLUMN `ACCOUNT_CASH_PERSIST_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: ACCOUNT CASH PERSIST 초 (ACCOUNT_CASH_PERSIST_SEC)',
  MODIFY COLUMN `BACKTEST_EXIT_CHECKS_PER_BAR`
    text NULL DEFAULT NULL
    COMMENT '공통env: BACKTEST EXIT CHECKS PER BAR (BACKTEST_EXIT_CHECKS_PER_BAR)',
  MODIFY COLUMN `RANKING_POLL_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: RANKING POLL INTERVAL 초 (RANKING_POLL_INTERVAL_SEC)',
  MODIFY COLUMN `KIS_HTS_ID`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS HTS ID (KIS_HTS_ID)',
  MODIFY COLUMN `CONDITION_POLL_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: CONDITION POLL INTERVAL 초 (CONDITION_POLL_INTERVAL_SEC)',
  MODIFY COLUMN `CONDITION_EXIT_GRACE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: CONDITION EXIT GRACE 초 (CONDITION_EXIT_GRACE_SEC)',
  MODIFY COLUMN `UNIVERSE_HISTORY_SAVE`
    text NULL DEFAULT NULL
    COMMENT '공통env: 유니버스 HISTORY SAVE (UNIVERSE_HISTORY_SAVE)',
  MODIFY COLUMN `WS_GAP_FILL_OFF_HOURS`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL OFF HOURS (WS_GAP_FILL_OFF_HOURS)',
  MODIFY COLUMN `WS_GAP_FILL_LIMIT`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL LIMIT (WS_GAP_FILL_LIMIT)',
  MODIFY COLUMN `WS_TIMEFRAMES`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TIMEFRAMES (WS_TIMEFRAMES)',
  MODIFY COLUMN `WS_GAP_FILL_KIS_FALLBACK`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL KIS FALLBACK (WS_GAP_FILL_KIS_FALLBACK)',
  MODIFY COLUMN `MAX_BUY_AMOUNT_PER_STOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: 1회최대매수금액 PER STOCK (MAX_BUY_AMOUNT_PER_STOCK)',
  MODIFY COLUMN `KIS_MIN_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통 폴백 최소간격(초) · 위 도메인별 키 미설정 시 폴백',
  MODIFY COLUMN `KIS_REST_MAX_RETRIES`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS REST 최대 RETRIES (KIS_REST_MAX_RETRIES)',
  MODIFY COLUMN `KIS_REST_BACKOFF_CAP_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS REST BACKOFF CAP 초 (KIS_REST_BACKOFF_CAP_SEC)',
  MODIFY COLUMN `KIS_REST_TIMEOUT_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS REST TIMEOUT 초 (KIS_REST_TIMEOUT_SEC)',
  MODIFY COLUMN `MARKET_GUARD_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET GUARD ON/OFF (MARKET_GUARD_ENABLED)',
  MODIFY COLUMN `MARKET_GUARD_5MIN_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET GUARD 5MIN 되돌림/하락 %% (MARKET_GUARD_5MIN_DROP_PCT)',
  MODIFY COLUMN `MARKET_GUARD_DAILY_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET GUARD DAILY 되돌림/하락 %% (MARKET_GUARD_DAILY_DROP_PCT)',
  MODIFY COLUMN `MARKET_GUARD_RECOVERY_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET GUARD RECOVERY %% (MARKET_GUARD_RECOVERY_PCT)',
  MODIFY COLUMN `MARKET_GUARD_INDEX_CODE`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET GUARD INDEX CODE (MARKET_GUARD_INDEX_CODE)',
  MODIFY COLUMN `MARKET_GUARD_POLL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET GUARD POLL 초 (MARKET_GUARD_POLL_SEC)',
  MODIFY COLUMN `MARKET_GUARD_INDEX_CANDLE_KEEP_MIN`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET GUARD INDEX CANDLE KEEP 최소 (MARKET_GUARD_INDEX_CANDLE_KEEP_MIN)',
  MODIFY COLUMN `MARKET_GUARD_PERSIST_STATE`
    text NULL DEFAULT NULL
    COMMENT '공통env: MARKET GUARD PERSIST STATE (MARKET_GUARD_PERSIST_STATE)',
  MODIFY COLUMN `STOCK_SHARE_DENOM`
    text NULL DEFAULT NULL
    COMMENT '공통env: STOCK SHARE DENOM (STOCK_SHARE_DENOM)',
  MODIFY COLUMN `EXCLUDE_NON_STOCK`
    text NULL DEFAULT NULL
    COMMENT '비본주(우선주·ETF·ETN) 매수 제외 · 후보 name==code 여도 코드 끝 5/7/9·K/L… 로 우선주 차단',
  MODIFY COLUMN `WS_PROVIDER`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS PROVIDER (WS_PROVIDER)',
  MODIFY COLUMN `WS_SUBSCRIBE_KIS_MINIMAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS SUBSCRIBE KIS 최소 IMAL (WS_SUBSCRIBE_KIS_MINIMAL)',
  MODIFY COLUMN `WS_VALIDATION_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS VALIDATION INTERVAL 초 (WS_VALIDATION_INTERVAL_SEC)',
  MODIFY COLUMN `WS_VALIDATION_DIFF_WARN_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS VALIDATION DIFF WARN %% (WS_VALIDATION_DIFF_WARN_PCT)',
  MODIFY COLUMN `KIWOOM_WS_FORCE_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: FORCE REAL (KIWOOM_WS_FORCE_REAL)',
  MODIFY COLUMN `KIWOOM_WS_MAX_SUBSCRIPTIONS`
    text NULL DEFAULT NULL
    COMMENT '키움WS 그룹당최대구독. 기본100. 0B체결·0D호가·0w프로그램. 한투41과별개',
  MODIFY COLUMN `KIWOOM_WS_REG_CHUNK_SIZE`
    text NULL DEFAULT NULL
    COMMENT '공통env: REG CHUNK SIZE (KIWOOM_WS_REG_CHUNK_SIZE)',
  MODIFY COLUMN `KIWOOM_WS_REG_GAP_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: REG GAP 초 (KIWOOM_WS_REG_GAP_SEC)',
  MODIFY COLUMN `KIWOOM_WS_REG_DEBOUNCE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: REG DEBOUNCE 초 (KIWOOM_WS_REG_DEBOUNCE_SEC)',
  MODIFY COLUMN `KIWOOM_WS_ORDERBOOK_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '호가 WS(0D) 구독 · 키움 실시간 호가 수신(RAM) · 꺼면 필터·수집·시계열 모두 불가',
  MODIFY COLUMN `KIWOOM_WS_PROGRAM_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '프로그램 WS(0w) 구독 · 키움 프로그램매매 수신(RAM)',
  MODIFY COLUMN `ORDERBOOK_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '공통env: 호가 필터 ON/OFF (ORDERBOOK_FILTER_ENABLED)',
  MODIFY COLUMN `ORDERBOOK_MAX_SPREAD_PCT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 호가 최대 SPREAD %% (ORDERBOOK_MAX_SPREAD_PCT)',
  MODIFY COLUMN `ORDERBOOK_ENTRY_BID_LEVELS`
    text NULL DEFAULT NULL
    COMMENT '공통env: 호가 ENTRY BID LEVELS (ORDERBOOK_ENTRY_BID_LEVELS)',
  MODIFY COLUMN `ORDERBOOK_ENTRY_BID_DEPTH_MULT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 호가 ENTRY BID DEPTH 배수 (ORDERBOOK_ENTRY_BID_DEPTH_MULT)',
  MODIFY COLUMN `ORDERBOOK_ENTRY_ASK_MAX_MULT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 호가 ENTRY ASK 최대 배수 (ORDERBOOK_ENTRY_ASK_MAX_MULT)',
  MODIFY COLUMN `ORDERBOOK_MIN_BID_ASK_RATIO`
    text NULL DEFAULT NULL
    COMMENT '공통env: 호가 최소 BID ASK RATIO (ORDERBOOK_MIN_BID_ASK_RATIO)',
  MODIFY COLUMN `ORDERBOOK_BREAKOUT_ASK_WALL_MAX_QTY`
    text NULL DEFAULT NULL
    COMMENT '공통env: 호가 돌파 ASK WALL 최대 QTY (ORDERBOOK_BREAKOUT_ASK_WALL_MAX_QTY)',
  MODIFY COLUMN `PROGRAM_FILTER_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '프로그램 필터(TRIGGER) — 실매 탈락',
  MODIFY COLUMN `PROGRAM_MIN_NET_BUY_QTY`
    text NULL DEFAULT NULL
    COMMENT '공통env: 프로그램매매 최소 NET BUY QTY (PROGRAM_MIN_NET_BUY_QTY)',
  MODIFY COLUMN `PROGRAM_MIN_NET_BUY_AMT`
    text NULL DEFAULT NULL
    COMMENT '공통env: 프로그램매매 최소 NET BUY AMT (PROGRAM_MIN_NET_BUY_AMT)',
  MODIFY COLUMN `PROGRAM_MAX_SELL_BUY_QTY_RATIO`
    text NULL DEFAULT NULL
    COMMENT '공통env: 프로그램매매 최대 SELL BUY QTY RATIO (PROGRAM_MAX_SELL_BUY_QTY_RATIO)',
  MODIFY COLUMN `PROGRAM_MIN_NET_DELTA_QTY`
    text NULL DEFAULT NULL
    COMMENT '공통env: 프로그램매매 최소 NET DELTA QTY (PROGRAM_MIN_NET_DELTA_QTY)',
  MODIFY COLUMN `PROGRAM_SNAPSHOT_MAX_AGE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: 프로그램매매 SNAPSHOT 최대 AGE 초 (PROGRAM_SNAPSHOT_MAX_AGE_SEC)',
  MODIFY COLUMN `STRICT_FILL_VERIFY`
    text NULL DEFAULT NULL
    COMMENT '모의 엄격 체결 검증 · 모의 실매매만 영향 · ON=체결 API 필수(모의 API 한계로 매수 0건 가능) · 실전은 항상 엄격',
  MODIFY COLUMN `ORDER_FILL_WAIT_SEC`
    text NULL DEFAULT NULL
    COMMENT '시장가 체결 대기(초)',
  MODIFY COLUMN `LIMIT_ORDER_FILL_WAIT_SEC`
    text NULL DEFAULT NULL
    COMMENT '지정가 체결 대기(초)',
  MODIFY COLUMN `PENDING_FILL_POLL_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '미체결 재조회 주기(초)',
  MODIFY COLUMN `PENDING_FILL_POLL_SEC`
    text NULL DEFAULT NULL
    COMMENT '재조회 1회 대기(초)',
  MODIFY COLUMN `PENDING_FILL_MAX_AGE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: PENDING FILL 최대 AGE 초 (PENDING_FILL_MAX_AGE_SEC)',
  MODIFY COLUMN `PENDING_BUY_MAX_AGE_SEC`
    text NULL DEFAULT NULL
    COMMENT '매수 미체결 만료(초)',
  MODIFY COLUMN `PENDING_SELL_MAX_AGE_SEC`
    text NULL DEFAULT NULL
    COMMENT '익절 매도 미체결 만료(초)',
  MODIFY COLUMN `PENDING_SELL_STOP_MAX_AGE_SEC`
    text NULL DEFAULT NULL
    COMMENT '손절 매도 미체결 만료(초)',
  MODIFY COLUMN `SELL_PENDING_REORDER_ON_EXPIRE`
    text NULL DEFAULT NULL
    COMMENT '손절 만료 후 즉시 재매도',
  MODIFY COLUMN `AUTO_CANCEL_PARTIAL_BUY_REMAINDER`
    text NULL DEFAULT NULL
    COMMENT '부분체결 잔량 자동취소',
  MODIFY COLUMN `WS_TRIGGER_EVAL_SAVE_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'TRIGGER 판정 DB 저장(마스터) · OFF면 아래 COLLECT(판정 스냅) 전부 안 씀 · SAVE(시계열)와 무관',
  MODIFY COLUMN `WS_TRIGGER_EVAL_DB_BATCH_SIZE`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TRIGGER EVAL DB BATCH SIZE (WS_TRIGGER_EVAL_DB_BATCH_SIZE)',
  MODIFY COLUMN `WS_TRIGGER_EVAL_DB_FLUSH_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TRIGGER EVAL DB FLUSH 초 (WS_TRIGGER_EVAL_DB_FLUSH_SEC)',
  MODIFY COLUMN `WS_TRIGGER_EVAL_WRITE_QUEUE_MAX`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TRIGGER EVAL WRITE QUEUE 최대 (WS_TRIGGER_EVAL_WRITE_QUEUE_MAX)',
  MODIFY COLUMN `BACKTEST_USE_TRIGGER_EVAL_SNAPSHOT`
    text NULL DEFAULT NULL
    COMMENT '공통env: BACKTEST 사용_ TRIGGER EVAL SNAPSHOT (BACKTEST_USE_TRIGGER_EVAL_SNAPSHOT)',
  MODIFY COLUMN `DAILY_PROFIT_MODE`
    text NULL DEFAULT NULL
    COMMENT '익절 방식 · fixed=고정목표 / trailing=고점대비 되돌림 / both=둘 중 먼저',
  MODIFY COLUMN `DAILY_PROFIT_TRAIL_TIERS`
    text NULL DEFAULT NULL
    COMMENT '다단 트레일(수익원:컷%%,…) · 벌수록 타이트하게 사수 · 예: 30000:50,100000:35,300000:25 · 비우면 단일 되돌림 사용',
  MODIFY COLUMN `DAILY_PROFIT_TRAIL_DROP_PCT`
    text NULL DEFAULT NULL
    COMMENT '단일 트레일 되돌림(%%, 고점대비) · 다단 비었을 때만 · 예: 35 = 고점 대비 -35%% 꺾이면 중단 · 0=미사용',
  MODIFY COLUMN `DAILY_PROFIT_TRAIL_ARM_KRW`
    text NULL DEFAULT NULL
    COMMENT '트레일 발동 최소수익(원) · 이 이상 벌어야 트레일 감시 시작 · 0=트레일 비활성(과민발동 방지)',
  MODIFY COLUMN `DAILY_PROFIT_TRAIL_ARM_PCT`
    text NULL DEFAULT NULL
    COMMENT '트레일 발동 최소수익(%%) · 운용한도 대비 %% · KRW와 둘 중 큰 값',
  MODIFY COLUMN `BUY_DEDUP_PENDING`
    text NULL DEFAULT NULL
    COMMENT '매수 미체결 중복주문 방지 · 동일 전략·종목 PENDING_FILL 있으면 재주문 스킵',
  MODIFY COLUMN `KIS_MIN_INTERVAL_SEC_MOCK`
    text NULL DEFAULT NULL
    COMMENT '모의 REST 최소간격(초) · 모의 도메인(거래: 주문·체결·잔고) · 조회·랭킹·조건은 실키라 무관 · 429 로그 없으면 0.22 유지 · 한투 공지 1건/초 엄수 필요 시 1.0 · 재시작 없이 반영(1초 TTL)',
  MODIFY COLUMN `KIS_MIN_INTERVAL_SEC_REAL`
    text NULL DEFAULT NULL
    COMMENT '실전 REST 최소간격(초) · 실전 도메인(시세 · 운영 시 거래+조회+취소+재주문 통합 한 앱키) · 18건/초 한도 → 0.12=약8건/초 · 신규앱키 첫 3일은 0.34(3건/초) · 재시작 없이 반영',
  MODIFY COLUMN `PENDING_POLL_BATCH_FETCH`
    text NULL DEFAULT NULL
    COMMENT '미체결 체결 일괄조회 · 실매 heartbeat 전용 · ON=poll 1회당 inquire-daily-ccld 1건(미체결 N건) · OFF=건별 조회 · 백테 무관',
  MODIFY COLUMN `SCAN_REJECT_SLEEP_MIN`
    text NULL DEFAULT NULL
    COMMENT '탈락 후 sleep 최소(초) · check_buy 탈락 종목마다 · REST 0건 · 0.05~0.1 로 낮추면 한 바퀴 대폭 단축',
  MODIFY COLUMN `SCAN_REJECT_SLEEP_MAX`
    text NULL DEFAULT NULL
    COMMENT '탈락 후 sleep 최대(초)',
  MODIFY COLUMN `SCAN_BUY_OK_SLEEP_MIN`
    text NULL DEFAULT NULL
    COMMENT '매수성공 후 sleep 최소(초) · 1루프 1매수 후 대기 · 포지션 과집중 방지',
  MODIFY COLUMN `SCAN_BUY_OK_SLEEP_MAX`
    text NULL DEFAULT NULL
    COMMENT '매수성공 후 sleep 최대(초)',
  MODIFY COLUMN `SCAN_BUY_FAIL_SLEEP_MIN`
    text NULL DEFAULT NULL
    COMMENT '주문실패 후 sleep 최소(초)',
  MODIFY COLUMN `SCAN_BUY_FAIL_SLEEP_MAX`
    text NULL DEFAULT NULL
    COMMENT '주문실패 후 sleep 최대(초)',
  MODIFY COLUMN `STRATEGY_LOOP_SLEEP_MIN`
    text NULL DEFAULT NULL
    COMMENT '루프 끝 sleep 최소(초) · 한 바퀴 끝 대기 · WS 구독 캐시 폴링 · 0.1=실매 반응 빠르게',
  MODIFY COLUMN `STRATEGY_LOOP_SLEEP_MAX`
    text NULL DEFAULT NULL
    COMMENT '루프 끝 sleep 최대(초)',
  MODIFY COLUMN `BALANCE_MAX_PAGES`
    text NULL DEFAULT NULL
    COMMENT '잔고 연속조회 최대 페이지 · 잔고조회는 1페이지에 실전 50종목/모의 20종목만 내려옴. 보유가 많으면 다음 페이지를 이어 조회(누적 병합). 20p=최대 약 1000종목. 보유 종목이 50개를 넘으면 필수 — 부족하면 51번째부터 매도 검증에서 누락됨',
  MODIFY COLUMN `KIS_SYSTEM_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS SYSTEM MM CHANNEL (KIS_SYSTEM_MM_CHANNEL)',
  MODIFY COLUMN `KIS_LIFECYCLE_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIS LIFECYCLE MM CHANNEL (KIS_LIFECYCLE_MM_CHANNEL)',
  MODIFY COLUMN `BULK_SELL_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '일괄매도 종목 간격(초) · 미등록 봇고아 일괄 시장가매도 시 REST 429 방지 · 종목마다 sleep',
  MODIFY COLUMN `MANUAL_HOLD_CODES`
    text NULL DEFAULT NULL
    COMMENT '수동 보유 보호 종목 · 쉼표(,) 구분 종목코드 예: 005930,000660 · HTS 직접 매수·장기 보유분 보호 · 일괄매도·고아복구 제외',
  MODIFY COLUMN `ORPHAN_RECONCILE_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '장마감 고아복구 · 매일 15:36~16:00 1회 · 실계좌 잔고↔active_trades 대조 · orders BUY 있는 미기록분만 복구 · 수동·MANUAL_HOLD 제외',
  MODIFY COLUMN `WS_GAP_FILL_MAX_RETRIES`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL 최대 RETRIES (WS_GAP_FILL_MAX_RETRIES)',
  MODIFY COLUMN `WS_GAP_FILL_RETRY_DELAY_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL RETRY DELAY 초 (WS_GAP_FILL_RETRY_DELAY_SEC)',
  MODIFY COLUMN `WS_GAP_BULK_REFILL_DEBOUNCE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP BULK REFILL DEBOUNCE 초 (WS_GAP_BULK_REFILL_DEBOUNCE_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_PRIORITY_TFS`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL PRIORITY TFS (WS_GAP_FILL_PRIORITY_TFS)',
  MODIFY COLUMN `WS_GAP_FILL_TF_SLEEP_MIN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL TF SLEEP 최소 초 (WS_GAP_FILL_TF_SLEEP_MIN_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_TF_SLEEP_MAX_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL TF SLEEP 최대 초 (WS_GAP_FILL_TF_SLEEP_MAX_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_CODE_SLEEP_MIN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL CODE SLEEP 최소 초 (WS_GAP_FILL_CODE_SLEEP_MIN_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_CODE_SLEEP_MAX_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL CODE SLEEP 최대 초 (WS_GAP_FILL_CODE_SLEEP_MAX_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_PHASE_PAUSE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL PHASE PAUSE 초 (WS_GAP_FILL_PHASE_PAUSE_SEC)',
  MODIFY COLUMN `KIWOOM_CNSRREQ_GAP_MIN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM CNSRREQ GAP 최소 초 (KIWOOM_CNSRREQ_GAP_MIN_SEC)',
  MODIFY COLUMN `KIWOOM_CNSRREQ_GAP_MAX_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM CNSRREQ GAP 최대 초 (KIWOOM_CNSRREQ_GAP_MAX_SEC)',
  MODIFY COLUMN `KIWOOM_CNSRREQ_MAX_RETRIES`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM CNSRREQ 최대 RETRIES (KIWOOM_CNSRREQ_MAX_RETRIES)',
  MODIFY COLUMN `KIWOOM_CNSRREQ_RETRY_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM CNSRREQ RETRY 초 (KIWOOM_CNSRREQ_RETRY_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_WORKERS`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL WORKERS (WS_GAP_FILL_WORKERS)',
  MODIFY COLUMN `KIS_WS_SUBSCRIBE_GAP_MIN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: SUBSCRIBE GAP 최소 초 (KIS_WS_SUBSCRIBE_GAP_MIN_SEC)',
  MODIFY COLUMN `KIS_WS_SUBSCRIBE_GAP_MAX_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: SUBSCRIBE GAP 최대 초 (KIS_WS_SUBSCRIBE_GAP_MAX_SEC)',
  MODIFY COLUMN `KIS_WS_RECONNECT_SESSION_WAIT_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: RECONNECT SESSION WAIT 초 (KIS_WS_RECONNECT_SESSION_WAIT_SEC)',
  MODIFY COLUMN `KIS_WS_RECONNECT_REFRESH_KEY`
    text NULL DEFAULT NULL
    COMMENT '공통env: RECONNECT REFRESH KEY (KIS_WS_RECONNECT_REFRESH_KEY)',
  MODIFY COLUMN `KIS_WS_APPROVAL_MIN_REISSUE_SEC`
    text NULL DEFAULT NULL
    COMMENT 'approval_key 최소재발급간격(초). 기본21600=6h. REST재발급은기존키무효화',
  MODIFY COLUMN `KIS_WS_INSTANT_DROP_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: INSTANT 되돌림/하락 초 (KIS_WS_INSTANT_DROP_SEC)',
  MODIFY COLUMN `KIS_WS_INSTANT_DROP_MAX`
    text NULL DEFAULT NULL
    COMMENT '공통env: INSTANT 되돌림/하락 최대 (KIS_WS_INSTANT_DROP_MAX)',
  MODIFY COLUMN `KIS_WS_INSTANT_DROP_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: INSTANT 되돌림/하락 쿨다운 초 (KIS_WS_INSTANT_DROP_COOLDOWN_SEC)',
  MODIFY COLUMN `WS_CANDLE_RAM_BUFFER`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS CANDLE RAM BUFFER (WS_CANDLE_RAM_BUFFER)',
  MODIFY COLUMN `KIS_WS_APPROVAL_MAX_VALID_SEC`
    text NULL DEFAULT NULL
    COMMENT 'approval_key 최대유효(초). 기본82800≈23h. 파일캐시 kis_approval_manager',
  MODIFY COLUMN `ENV_MERGED_CACHE_TTL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: ENV MERGED CACHE TTL 초 (ENV_MERGED_CACHE_TTL_SEC)',
  MODIFY COLUMN `WS_ORDERBOOK_COLLECT_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '호가 판정스냅(FILTER_EVAL) — 매수체크 순간 1장 · ≠ 연속시계열. TRIGGER 판정 때만 ws_orderbook source=filter_eval · 필터 OFF여도 저장 가능',
  MODIFY COLUMN `WS_PROGRAM_COLLECT_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '프로그램 판정스냅 — 매수체크 순간 1장 · ≠ 연속시계열. 판정 때만 ws_program · 필터 OFF여도 가능',
  MODIFY COLUMN `WS_CANDLE_FORCE_CONFIRM_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS CANDLE FORCE CONFIRM ON/OFF (WS_CANDLE_FORCE_CONFIRM_ENABLED)',
  MODIFY COLUMN `WS_CANDLE_FORCE_CONFIRM_GRACE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS CANDLE FORCE CONFIRM GRACE 초 (WS_CANDLE_FORCE_CONFIRM_GRACE_SEC)',
  MODIFY COLUMN `WS_CANDLE_STALE_CHECK_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS CANDLE STALE CHECK INTERVAL 초 (WS_CANDLE_STALE_CHECK_INTERVAL_SEC)',
  MODIFY COLUMN `ORPHAN_RECONCILE_PRE_EOD_ENABLED`
    text NULL DEFAULT NULL
    COMMENT 'Pre-EOD 고아복구 · 활성 전략 중 가장 이른 EOD − N분 1회 · EOD 청산 전 active_trades 반영',
  MODIFY COLUMN `ORPHAN_RECONCILE_PRE_EOD_LEAD_MIN`
    text NULL DEFAULT NULL
    COMMENT 'Pre-EOD 선행(분) · 예: BREAKOUT EOD 15:15 → 15:08 실행 · REST 잔고 1회/일',
  MODIFY COLUMN `DUPLICATE_ORDER_FILL_RECOVERY_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '주문DB중복 체결복구 · insert 실패(주문DB중복) 시 inquire-daily-ccld 1회 → active_trades 복구 · 실패 시에만 REST',
  MODIFY COLUMN `DUPLICATE_ORDER_RECOVERY_WAIT_SEC`
    text NULL DEFAULT NULL
    COMMENT '중복복구 체결대기(초) · 주문DB중복 복구 전용 · 미설정 시 ORDER_FILL_WAIT_SEC 사용',
  MODIFY COLUMN `INTRADAY_HOLDINGS_DRIFT_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '장중 qty 드리프트 감시 · 기본 OFF · ON=N분마다 잔고 REST · 알림/자동복구는 별도 키',
  MODIFY COLUMN `INTRADAY_HOLDINGS_DRIFT_INTERVAL_SEC`
    text NULL DEFAULT NULL
    COMMENT '드리프트 조회주기(초) · INTRADAY_HOLDINGS_DRIFT_ENABLED=ON 일 때만',
  MODIFY COLUMN `INTRADAY_HOLDINGS_DRIFT_AUTO_RECOVER`
    text NULL DEFAULT NULL
    COMMENT '드리프트 자동복구 · OFF=알림만 · ON=active_trades qty 보정(기본 OFF)',
  MODIFY COLUMN `GHOST_PURGE_ON_RECONCILE`
    text NULL DEFAULT NULL
    COMMENT '고아복구 시 유령잔고 삭제 · ON=브로커 0주인데 active_trades 남은 종목 삭제(수동보호 제외) · Pre/Post EOD 동일 잔고조회에서 처리',
  MODIFY COLUMN `WS_GAP_ROLLUP_3M_FROM_1M`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP ROLLUP 3M FROM 1M (WS_GAP_ROLLUP_3M_FROM_1M)',
  MODIFY COLUMN `WS_GAP_FILL_CANDIDATE_MODE`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL CANDIDATE 모드 (WS_GAP_FILL_CANDIDATE_MODE)',
  MODIFY COLUMN `WS_TICK_GRACE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK GRACE 초 (WS_TICK_GRACE_SEC)',
  MODIFY COLUMN `WS_TICK_GRACE_HEADROOM`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK GRACE HEADROOM (WS_TICK_GRACE_HEADROOM)',
  MODIFY COLUMN `WS_TICK_PREFER_KIWOOM`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS TICK PREFER KIWOOM (WS_TICK_PREFER_KIWOOM)',
  MODIFY COLUMN `VOL_MULTIPLIER`
    text NULL DEFAULT NULL
    COMMENT '공통env: 거래량배수 IPLIER (VOL_MULTIPLIER)',
  MODIFY COLUMN `KIWOOM_CNSRCLR_BEFORE_REQ`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM CNSRCLR BEFORE REQ (KIWOOM_CNSRCLR_BEFORE_REQ)',
  MODIFY COLUMN `KIWOOM_CNSRCLR_GAP_MIN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM CNSRCLR GAP 최소 초 (KIWOOM_CNSRCLR_GAP_MIN_SEC)',
  MODIFY COLUMN `KIWOOM_CNSRCLR_GAP_MAX_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM CNSRCLR GAP 최대 초 (KIWOOM_CNSRCLR_GAP_MAX_SEC)',
  MODIFY COLUMN `KIWOOM_CNSRCLR_SETTLE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: KIWOOM CNSRCLR SETTLE 초 (KIWOOM_CNSRCLR_SETTLE_SEC)',
  MODIFY COLUMN `NON_STOCK_PREF_CODE_SUFFIXES`
    text NULL DEFAULT NULL
    COMMENT '우선주 코드 끝자리(숫자) · KRX 구형 우선주. 콤마 구분',
  MODIFY COLUMN `NON_STOCK_EXCLUDE_ALPHA_SUFFIX`
    text NULL DEFAULT NULL
    COMMENT '코드 끝 알파벳=우선주 제외 · 00088K·00781K 등',
  MODIFY COLUMN `NON_STOCK_NAME_KEYWORDS`
    text NULL DEFAULT NULL
    COMMENT '공통env: NON STOCK NAME KEYWORDS (NON_STOCK_NAME_KEYWORDS)',
  MODIFY COLUMN `ERROR_WATCH_ENABLED`
    text NULL DEFAULT NULL
    COMMENT '오류감시 ON · 감시 프로세스 시작 시 읽음 · OFF면 감시자 즉시 종료',
  MODIFY COLUMN `ERROR_WATCH_UNIT`
    text NULL DEFAULT NULL
    COMMENT '감시 systemd 유닛 · journalctl -u 대상',
  MODIFY COLUMN `ERROR_WATCH_MM_CHANNEL`
    text NULL DEFAULT NULL
    COMMENT '알림 MM alias · 비우면 KIS_SYSTEM_MM_CHANNEL(default=키스명령봇)',
  MODIFY COLUMN `ERROR_WATCH_COOLDOWN_SEC`
    text NULL DEFAULT NULL
    COMMENT '동일오류 쿨다운(초) · 같은 Traceback 지문 재알림 간격',
  MODIFY COLUMN `ERROR_WATCH_CONTEXT_LINES`
    text NULL DEFAULT NULL
    COMMENT '공통env: ERROR WATCH CONTEXT LINES (ERROR_WATCH_CONTEXT_LINES)',
  MODIFY COLUMN `ERROR_WATCH_TRACEBACK_EXTRA_LINES`
    text NULL DEFAULT NULL
    COMMENT 'Traceback 추가줄 · Traceback 이후 스택 수집 줄 수',
  MODIFY COLUMN `ERROR_WATCH_HEALTH_CHECK_SEC`
    text NULL DEFAULT NULL
    COMMENT '유닛생존 점검(초) · systemctl is-active 주기',
  MODIFY COLUMN `ERROR_WATCH_GLOBAL_MIN_GAP_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: ERROR WATCH GLOBAL 최소 GAP 초 (ERROR_WATCH_GLOBAL_MIN_GAP_SEC)',
  MODIFY COLUMN `ERROR_WATCH_MATCH_REGEX`
    text NULL DEFAULT NULL
    COMMENT '공통env: ERROR WATCH MATCH REGEX (ERROR_WATCH_MATCH_REGEX)',
  MODIFY COLUMN `ERROR_WATCH_IGNORE_REGEX`
    text NULL DEFAULT NULL
    COMMENT '공통env: ERROR WATCH IGNORE REGEX (ERROR_WATCH_IGNORE_REGEX)',
  MODIFY COLUMN `ERROR_WATCH_MM_JITTER`
    text NULL DEFAULT NULL
    COMMENT 'MM jitter · 오류 알림은 즉시 권장(OFF)',
  MODIFY COLUMN `ERROR_WATCH_STARTUP_NOTIFY`
    text NULL DEFAULT NULL
    COMMENT '감시자 기동 MM · 감시 프로세스 시작 시 1회 알림',
  MODIFY COLUMN `POST_SELL_CANDLE_BACKFILL`
    text NULL DEFAULT NULL
    COMMENT '공통env: POST SELL CANDLE BACKFILL (POST_SELL_CANDLE_BACKFILL)',
  MODIFY COLUMN `POST_SELL_CANDLE_ROLLUP_3M`
    text NULL DEFAULT NULL
    COMMENT '공통env: POST SELL CANDLE ROLLUP 3M (POST_SELL_CANDLE_ROLLUP_3M)',
  MODIFY COLUMN `POST_SELL_CANDLE_MAX_BARS`
    text NULL DEFAULT NULL
    COMMENT '공통env: POST SELL CANDLE 최대 봉수 (POST_SELL_CANDLE_MAX_BARS)',
  MODIFY COLUMN `POST_SELL_CANDLE_SLEEP_MIN_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: POST SELL CANDLE SLEEP 최소 초 (POST_SELL_CANDLE_SLEEP_MIN_SEC)',
  MODIFY COLUMN `POST_SELL_CANDLE_SLEEP_MAX_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: POST SELL CANDLE SLEEP 최대 초 (POST_SELL_CANDLE_SLEEP_MAX_SEC)',
  MODIFY COLUMN `POST_SELL_CANDLE_FORCE_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: POST SELL CANDLE FORCE MOCK (POST_SELL_CANDLE_FORCE_MOCK)',
  MODIFY COLUMN `WS_GAP_FILL_SKIP_INCOMPLETE_BUCKET`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL SKIP INCOMPLETE BUCKET (WS_GAP_FILL_SKIP_INCOMPLETE_BUCKET)',
  MODIFY COLUMN `WS_CANDLE_FREEZE_ON_CONFIRM`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS CANDLE FREEZE ON CONFIRM (WS_CANDLE_FREEZE_ON_CONFIRM)',
  MODIFY COLUMN `WS_CANDLE_FREEZE_DB_LOOKUP_CHUNK`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS CANDLE FREEZE DB LOOKUP CHUNK (WS_CANDLE_FREEZE_DB_LOOKUP_CHUNK)',
  MODIFY COLUMN `WS_GAP_FILL_GIVE_UP_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL GIVE UP 초 (WS_GAP_FILL_GIVE_UP_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_EMPTY_CIRCUIT_WINDOW_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL EMPTY CIRCUIT 윈도우 초 (WS_GAP_FILL_EMPTY_CIRCUIT_WINDOW_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_EMPTY_CIRCUIT_MAX`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL EMPTY CIRCUIT 최대 (WS_GAP_FILL_EMPTY_CIRCUIT_MAX)',
  MODIFY COLUMN `WS_GAP_FILL_EMPTY_CIRCUIT_PAUSE_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL EMPTY CIRCUIT PAUSE 초 (WS_GAP_FILL_EMPTY_CIRCUIT_PAUSE_SEC)',
  MODIFY COLUMN `WS_GAP_FILL_EMPTY_LOG_SEC`
    text NULL DEFAULT NULL
    COMMENT '공통env: WS GAP FILL EMPTY LOG 초 (WS_GAP_FILL_EMPTY_LOG_SEC)',
  MODIFY COLUMN `LS_APP_KEY_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: LS APP KEY REAL (LS_APP_KEY_REAL)',
  MODIFY COLUMN `LS_APP_SECRET_REAL`
    text NULL DEFAULT NULL
    COMMENT '공통env: LS APP 초 RET REAL (LS_APP_SECRET_REAL)',
  MODIFY COLUMN `LS_APP_KEY_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: LS APP KEY MOCK (LS_APP_KEY_MOCK)',
  MODIFY COLUMN `LS_APP_SECRET_MOCK`
    text NULL DEFAULT NULL
    COMMENT '공통env: LS APP 초 RET MOCK (LS_APP_SECRET_MOCK)',
  MODIFY COLUMN `FORCE_BUY_TEST_CODE`
    text NULL DEFAULT NULL
    COMMENT '공통env: 강제매수테스트 TEST CODE (FORCE_BUY_TEST_CODE)',
  MODIFY COLUMN `KIS_WS_INVALID_APPROVAL_REISSUE_AFTER`
    text NULL DEFAULT NULL
    COMMENT 'invalid approval 연속N회 후 응급재발급 허용. 6h가드우회조건',
  MODIFY COLUMN `KIS_WS_INVALID_APPROVAL_BYPASS_6H`
    text NULL DEFAULT NULL
    COMMENT 'true면 invalid루프시 6h가드우회응급재발급. 남용금지',
  MODIFY COLUMN `KIS_WS_EMERGENCY_REISSUE_MIN_SEC`
    text NULL DEFAULT NULL
    COMMENT '응급approval재발급 최소간격(초). 기본=정상6h와동일. 하드캡',
  MODIFY COLUMN `KIS_WS_KR_HOLD_START_HM`
    text NULL DEFAULT NULL
    COMMENT '국내WS approval점유 시작 HHMM. 기본700. 갭·해외창에선 소켓양보(재발급없음)',
  MODIFY COLUMN `KIS_WS_KR_HOLD_END_HM`
    text NULL DEFAULT NULL
    COMMENT '국내WS approval점유 종료 HHMM. 기본2000. kis_ws_session_windows',
  MODIFY COLUMN `KIS_WS_US_HOLD_START_HM`
    text NULL DEFAULT NULL
    COMMENT '해외WS(HDFSCNT0) 점유 시작 HHMM. 기본2100. 국내와 동시점유금지(1키=1세션)',
  MODIFY COLUMN `KIS_WS_US_HOLD_END_HM`
    text NULL DEFAULT NULL
    COMMENT '해외WS 점유 종료 HHMM. 기본600(자정넘김). 세션전환시 approval재발급금지'
;

