Files
kis_trader/scripts/sql/all_db_column_comments.generated.sql
Your Name 36a3e2b4a1 feat: Enhance trading system with new permanent subscription features and order book management
Changes:
- Added a new API endpoint for managing permanent subscriptions, allowing users to enable or disable subscriptions dynamically.
- Implemented a function to fill candle data from Kiwoom, ensuring that only relevant data is inserted into the database.
- Introduced a mechanism to handle master subscription states, improving the management of subscription statuses.
- Updated the database schema to include new fields for managing subscription states and order book filtering.

Impact:
- These enhancements improve the flexibility and reliability of the trading system, allowing for better management of subscriptions and order book data, while reducing the risk of data inconsistencies.

히스토리 align 제거 븅신같은 초기설계 아예 제거
진입모드에 구멍메움
호가진입을 켜도 호가가 안들어올때 호가 안보고 그냥 사버림
2026-08-15 23:01:14 +09:00

5752 lines
254 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- AUTO-GENERATED: 전 DB 테이블 컬럼 COMMENT (타입·값 불변)
-- python3 scripts/sql/fill_all_db_column_comments.py --apply
-- ── active_trades (24 cols) ──
ALTER TABLE `active_trades`
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '실보유: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL
COMMENT '실보유: 종목명',
MODIFY COLUMN `strategy`
varchar(50) NOT NULL DEFAULT 'MANUAL'
COMMENT '실보유: 전략 ID (SHORT/MOMENTUM/BREAKOUT/US_MOMENTUM 등)',
MODIFY COLUMN `avg_buy_price`
double NOT NULL
COMMENT '실보유: 평균 매수가',
MODIFY COLUMN `current_price`
double NULL DEFAULT NULL
COMMENT '실보유: 최근 평가/현재가 스냅샷',
MODIFY COLUMN `stop_price`
double NULL DEFAULT NULL
COMMENT '실보유: 손절가',
MODIFY COLUMN `target_price`
double NULL DEFAULT NULL
COMMENT '실보유: 목표가',
MODIFY COLUMN `max_price`
double NULL DEFAULT NULL
COMMENT '실보유: 보유 중 고점(트레일·어깨컷용)',
MODIFY COLUMN `atr_entry`
double NULL DEFAULT NULL
COMMENT '실보유: 진입 시점 ATR',
MODIFY COLUMN `target_qty`
int(11) NOT NULL
COMMENT '실보유: 목표 수량',
MODIFY COLUMN `current_qty`
int(11) NOT NULL
COMMENT '실보유: 현재 보유 수량',
MODIFY COLUMN `total_invested`
double NULL DEFAULT NULL
COMMENT '실보유: 총 투자금액',
MODIFY COLUMN `status`
text NOT NULL
COMMENT '실보유: 상태',
MODIFY COLUMN `buy_date`
text NOT NULL
COMMENT '실보유: 매수 시각/일자',
MODIFY COLUMN `updated_at`
text NOT NULL
COMMENT '실보유: 마지막 갱신 시각',
MODIFY COLUMN `size_class`
text NULL DEFAULT NULL
COMMENT '실보유: 사이즈 등급(소/중/대 등)',
MODIFY COLUMN `rsi`
double NULL DEFAULT NULL
COMMENT '실보유: 진입/기록 시점 RSI',
MODIFY COLUMN `volume_ratio`
double NULL DEFAULT NULL
COMMENT '실보유: 거래량 배수(기록 스냅샷)',
MODIFY COLUMN `tail_length_pct`
double NULL DEFAULT NULL
COMMENT '실보유: 꼬리 길이%%(기록 스냅샷)',
MODIFY COLUMN `ma5_gap_pct`
double NULL DEFAULT NULL
COMMENT '실보유: MA5 괴리%%(기록 스냅샷)',
MODIFY COLUMN `ma20_gap_pct`
double NULL DEFAULT NULL
COMMENT '실보유: MA20 괴리%%(기록 스냅샷)',
MODIFY COLUMN `foreign_net_buy`
double NULL DEFAULT NULL
COMMENT '실보유: 외국인 순매수(기록 스냅샷)',
MODIFY COLUMN `institution_net_buy`
double NULL DEFAULT NULL
COMMENT '실보유: 기관 순매수(기록 스냅샷)',
MODIFY COLUMN `market_hour`
double NULL DEFAULT NULL
COMMENT '실보유: 장중 시각 메타';
-- ── active_trades_paper (18 cols) ──
ALTER TABLE `active_trades_paper`
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '페이퍼보유: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL
COMMENT '페이퍼보유: 종목명',
MODIFY COLUMN `strategy`
varchar(50) NOT NULL DEFAULT 'MANUAL'
COMMENT '페이퍼보유: 전략 ID (SHORT/MOMENTUM/BREAKOUT/US_MOMENTUM 등)',
MODIFY COLUMN `avg_buy_price`
double NOT NULL
COMMENT '페이퍼보유: 평균 매수가',
MODIFY COLUMN `current_price`
double NULL DEFAULT NULL
COMMENT '페이퍼보유: 최근 평가/현재가 스냅샷',
MODIFY COLUMN `stop_price`
double NULL DEFAULT NULL
COMMENT '페이퍼보유: 손절가',
MODIFY COLUMN `target_price`
double NULL DEFAULT NULL
COMMENT '페이퍼보유: 목표가',
MODIFY COLUMN `max_price`
double NULL DEFAULT NULL
COMMENT '페이퍼보유: 보유 중 고점(트레일·어깨컷용)',
MODIFY COLUMN `atr_entry`
double NULL DEFAULT NULL
COMMENT '페이퍼보유: 진입 시점 ATR',
MODIFY COLUMN `target_qty`
int(11) NOT NULL
COMMENT '페이퍼보유: 목표 수량',
MODIFY COLUMN `current_qty`
int(11) NOT NULL
COMMENT '페이퍼보유: 현재 보유 수량',
MODIFY COLUMN `total_invested`
double NULL DEFAULT NULL
COMMENT '페이퍼보유: 총 투자금액',
MODIFY COLUMN `status`
varchar(20) NOT NULL
COMMENT '페이퍼보유: 상태',
MODIFY COLUMN `buy_date`
varchar(30) NOT NULL
COMMENT '페이퍼보유: 매수 시각/일자',
MODIFY COLUMN `updated_at`
varchar(30) NOT NULL
COMMENT '페이퍼보유: 마지막 갱신 시각',
MODIFY COLUMN `size_class`
varchar(20) NULL DEFAULT NULL
COMMENT '페이퍼보유: 사이즈 등급(소/중/대 등)',
MODIFY COLUMN `fill_mode`
varchar(16) NOT NULL DEFAULT 'paper'
COMMENT '페이퍼보유: FILL MODE (fill_mode)',
MODIFY COLUMN `note`
varchar(200) NULL DEFAULT NULL
COMMENT '페이퍼보유: 메모';
-- ── ai_analysis_log (5 cols) ──
ALTER TABLE `ai_analysis_log`
MODIFY COLUMN `id`
int(11) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `created_at`
varchar(30) NOT NULL
COMMENT '생성 시각',
MODIFY COLUMN `model`
varchar(50) NOT NULL
COMMENT 'ai_analysis_log: MODEL (model)',
MODIFY COLUMN `context_summary`
text NULL DEFAULT NULL
COMMENT 'ai_analysis_log: CONTEXT SUMMARY (context_summary)',
MODIFY COLUMN `response`
mediumtext NULL DEFAULT NULL
COMMENT 'ai_analysis_log: RESPONSE (response)';
-- ── buy_execution_log (8 cols) ──
ALTER TABLE `buy_execution_log`
MODIFY COLUMN `id`
int(11) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL
COMMENT '종목명',
MODIFY COLUMN `strategy`
varchar(50) NOT NULL
COMMENT '전략 ID (SHORT/MOMENTUM/BREAKOUT/US_MOMENTUM 등)',
MODIFY COLUMN `buy_date`
varchar(10) NOT NULL
COMMENT '매수 시각/일자',
MODIFY COLUMN `executed_at`
varchar(30) NOT NULL
COMMENT 'buy_execution_log: EXECUTED AT (executed_at)',
MODIFY COLUMN `amount`
double NOT NULL
COMMENT 'buy_execution_log: AMOUNT (amount)',
MODIFY COLUMN `qty`
int(11) NOT NULL
COMMENT '수량(주)';
-- ── condition_job_events (12 cols) ──
ALTER TABLE `condition_job_events`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `event_time`
varchar(30) NOT NULL
COMMENT 'condition_job_events: EVENT TIME (event_time)',
MODIFY COLUMN `strategy_id`
varchar(32) NOT NULL DEFAULT ''
COMMENT '전략 ID',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL DEFAULT ''
COMMENT '종목명',
MODIFY COLUMN `job_flag`
varchar(8) NOT NULL
COMMENT 'condition_job_events: JOB FLAG (job_flag)',
MODIFY COLUMN `job_ko`
varchar(16) NOT NULL DEFAULT ''
COMMENT 'condition_job_events: JOB KO (job_ko)',
MODIFY COLUMN `broker`
varchar(16) NOT NULL
COMMENT 'condition_job_events: BROKER (broker)',
MODIFY COLUMN `source`
varchar(32) NOT NULL DEFAULT ''
COMMENT '데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `price`
double NOT NULL DEFAULT 0
COMMENT '주문/체결 가격',
MODIFY COLUMN `broker_time`
varchar(32) NOT NULL DEFAULT ''
COMMENT 'condition_job_events: BROKER TIME (broker_time)',
MODIFY COLUMN `query_name`
varchar(64) NOT NULL DEFAULT ''
COMMENT 'condition_job_events: QUERY 종목명 (query_name)';
-- ── 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. 미달이면 안 함';
-- ── 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)';
-- ── 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_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. 미달이면 안 함';
-- ── 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_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)';
-- ── 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)';
-- ── 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_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)';
-- ── daily_summary (7 cols) ──
ALTER TABLE `daily_summary`
MODIFY COLUMN `date`
varchar(10) NOT NULL
COMMENT 'daily_summary: DATE (date)',
MODIFY COLUMN `start_asset`
double NULL DEFAULT NULL
COMMENT 'daily_summary: START ASSET (start_asset)',
MODIFY COLUMN `end_asset`
double NULL DEFAULT NULL
COMMENT 'daily_summary: END ASSET (end_asset)',
MODIFY COLUMN `total_trades`
int(11) NULL DEFAULT NULL
COMMENT 'daily_summary: TOTAL TRADES (total_trades)',
MODIFY COLUMN `win_trades`
int(11) NULL DEFAULT NULL
COMMENT 'daily_summary: WIN TRADES (win_trades)',
MODIFY COLUMN `total_pnl`
double NULL DEFAULT NULL
COMMENT 'daily_summary: TOTAL PNL (total_pnl)',
MODIFY COLUMN `win_rate`
double NULL DEFAULT NULL
COMMENT 'daily_summary: WIN RATE (win_rate)';
-- ── dart_disclosures (12 cols) ──
ALTER TABLE `dart_disclosures`
MODIFY COLUMN `rcept_no`
varchar(32) NOT NULL
COMMENT 'dart_disclosures: RCEPT NO (rcept_no)',
MODIFY COLUMN `corp_code`
varchar(16) NOT NULL DEFAULT ''
COMMENT 'dart_disclosures: CORP 종목코드 (corp_code)',
MODIFY COLUMN `corp_name`
varchar(100) NOT NULL DEFAULT ''
COMMENT 'dart_disclosures: CORP 종목명 (corp_name)',
MODIFY COLUMN `stock_code`
varchar(20) NOT NULL DEFAULT ''
COMMENT 'dart_disclosures: STOCK 종목코드 (stock_code)',
MODIFY COLUMN `report_nm`
varchar(255) NOT NULL DEFAULT ''
COMMENT 'dart_disclosures: REPORT NM (report_nm)',
MODIFY COLUMN `rcept_dt`
varchar(8) NOT NULL DEFAULT ''
COMMENT 'dart_disclosures: RCEPT DT (rcept_dt)',
MODIFY COLUMN `url`
varchar(255) NOT NULL DEFAULT ''
COMMENT 'dart_disclosures: URL (url)',
MODIFY COLUMN `first_seen_at`
varchar(30) NOT NULL
COMMENT 'dart_disclosures: FIRST SEEN AT (first_seen_at)',
MODIFY COLUMN `mm_sent`
tinyint(4) NOT NULL DEFAULT 0
COMMENT 'dart_disclosures: MM SENT (mm_sent)',
MODIFY COLUMN `filter_ok`
tinyint(4) NULL DEFAULT NULL
COMMENT 'dart_disclosures: FILTER OK (filter_ok)',
MODIFY COLUMN `sales_pct`
double NULL DEFAULT NULL
COMMENT 'dart_disclosures: SALES %% (sales_pct)',
MODIFY COLUMN `filter_reason`
varchar(64) NULL DEFAULT NULL
COMMENT 'dart_disclosures: FILTER REASON (filter_reason)';
-- ── dart_watchlist (7 cols) ──
ALTER TABLE `dart_watchlist`
MODIFY COLUMN `stock_code`
varchar(20) NOT NULL
COMMENT 'dart_watchlist: STOCK 종목코드 (stock_code)',
MODIFY COLUMN `corp_name`
varchar(100) NOT NULL DEFAULT ''
COMMENT 'dart_watchlist: CORP 종목명 (corp_name)',
MODIFY COLUMN `rcept_no`
varchar(32) NOT NULL DEFAULT ''
COMMENT 'dart_watchlist: RCEPT NO (rcept_no)',
MODIFY COLUMN `report_nm`
varchar(255) NOT NULL DEFAULT ''
COMMENT 'dart_watchlist: REPORT NM (report_nm)',
MODIFY COLUMN `added_at`
varchar(30) NOT NULL
COMMENT 'dart_watchlist: ADDED AT (added_at)',
MODIFY COLUMN `expires_at`
varchar(30) NOT NULL
COMMENT 'dart_watchlist: EXPIRES AT (expires_at)',
MODIFY COLUMN `enabled`
tinyint(4) NOT NULL DEFAULT 1
COMMENT '활성 여부 (1=ON)';
-- ── dbband_stock_config (31 cols) ──
ALTER TABLE `dbband_stock_config`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(32) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `market_type`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT '시장유형 (KR|US)',
MODIFY COLUMN `exchange`
varchar(16) NOT NULL DEFAULT 'KRX'
COMMENT '거래소 (NASD/NYSE/AMEX/KRX 등)',
MODIFY COLUMN `symbol`
varchar(32) NOT NULL DEFAULT ''
COMMENT '심볼/티커',
MODIFY COLUMN `name`
varchar(50) NULL DEFAULT ''
COMMENT '종목명',
MODIFY COLUMN `created_at`
datetime NULL DEFAULT CURRENT_TIMESTAMP
COMMENT '생성 시각',
MODIFY COLUMN `tf_min`
int(11) NOT NULL DEFAULT 15
COMMENT '분봉 주기(분)',
MODIFY COLUMN `bb_period`
int(11) NOT NULL DEFAULT 20
COMMENT 'dbband_stock_config: BB PERIOD (bb_period)',
MODIFY COLUMN `bb_inner_std`
double NOT NULL DEFAULT 2
COMMENT 'dbband_stock_config: BB INNER STD (bb_inner_std)',
MODIFY COLUMN `bb_outer_std`
double NOT NULL DEFAULT 3
COMMENT 'dbband_stock_config: BB OUTER STD (bb_outer_std)',
MODIFY COLUMN `trend_ma_period`
int(11) NOT NULL DEFAULT 200
COMMENT 'dbband_stock_config: TREND MA PERIOD (trend_ma_period)',
MODIFY COLUMN `use_trend_filter`
double NOT NULL DEFAULT 1
COMMENT 'dbband_stock_config: USE TREND FILTER (use_trend_filter)',
MODIFY COLUMN `side_mode`
varchar(16) NOT NULL DEFAULT 'long_only'
COMMENT 'dbband_stock_config: 매매방향 MODE (side_mode)',
MODIFY COLUMN `entry_valid_bars`
int(11) NOT NULL DEFAULT 3
COMMENT 'dbband_stock_config: ENTRY VALID BARS (entry_valid_bars)',
MODIFY COLUMN `entry_mode`
varchar(16) NOT NULL DEFAULT 'break_high'
COMMENT 'dbband_stock_config: ENTRY MODE (entry_mode)',
MODIFY COLUMN `stop_mode`
varchar(16) NOT NULL DEFAULT 'signal_low'
COMMENT 'dbband_stock_config: STOP MODE (stop_mode)',
MODIFY COLUMN `stop_buffer_pct`
double NOT NULL DEFAULT 0.1
COMMENT 'dbband_stock_config: STOP BUFFER %% (stop_buffer_pct)',
MODIFY COLUMN `stop_loss_pct`
double NOT NULL DEFAULT 2
COMMENT 'dbband_stock_config: 손절 %% (stop_loss_pct)',
MODIFY COLUMN `tp_mode`
varchar(16) NOT NULL DEFAULT 'opposite_band'
COMMENT 'dbband_stock_config: TP MODE (tp_mode)',
MODIFY COLUMN `take_profit_pct`
double NOT NULL DEFAULT 3
COMMENT 'dbband_stock_config: 익절 %% (take_profit_pct)',
MODIFY COLUMN `rr_ratio`
double NOT NULL DEFAULT 2
COMMENT 'dbband_stock_config: RR RATIO (rr_ratio)',
MODIFY COLUMN `shoulder_min_high_pct`
double NOT NULL DEFAULT 0.3
COMMENT 'dbband_stock_config: 어깨 MIN HIGH %% (shoulder_min_high_pct)',
MODIFY COLUMN `shoulder_cut_pct`
double NOT NULL DEFAULT 0.2
COMMENT 'dbband_stock_config: 어깨 CUT %% (shoulder_cut_pct)',
MODIFY COLUMN `trail_pct`
double NOT NULL DEFAULT 0
COMMENT 'dbband_stock_config: 트레일 %% (trail_pct)',
MODIFY COLUMN `trail_arm_pct`
double NOT NULL DEFAULT 0
COMMENT 'dbband_stock_config: 트레일 ARM %% (trail_arm_pct)',
MODIFY COLUMN `max_hold_bars`
int(11) NOT NULL DEFAULT 16
COMMENT 'dbband_stock_config: MAX HOLD BARS (max_hold_bars)',
MODIFY COLUMN `slot_money`
double NOT NULL DEFAULT 3000000
COMMENT 'dbband_stock_config: SLOT MONEY (slot_money)',
MODIFY COLUMN `cooldown_min`
double NOT NULL DEFAULT 15
COMMENT 'dbband_stock_config: COOLDOWN MIN (cooldown_min)',
MODIFY COLUMN `max_daily`
int(11) NOT NULL DEFAULT 3
COMMENT 'dbband_stock_config: MAX DAILY (max_daily)',
MODIFY COLUMN `exit_mode`
varchar(16) NOT NULL DEFAULT 'classic'
COMMENT 'dbband_stock_config: EXIT MODE (exit_mode)';
-- ── 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재발급금지';
-- ── env_config_ext (3 cols) ──
ALTER TABLE `env_config_ext`
MODIFY COLUMN `env_key`
varchar(80) NOT NULL
COMMENT '설정키. 예: LS_WS_WATCHDOG_SESSION_GATE, LS_WS_KR_HOLD_*, OVERSEAS_WS_ENABLED, LS_TOKEN_*',
MODIFY COLUMN `env_value`
text NOT NULL
COMMENT '설정값 문자열. bool/int도 텍스트저장',
MODIFY COLUMN `updated_at`
varchar(30) NOT NULL
COMMENT '마지막갱신시각';
-- ── holding_candles (10 cols) ──
ALTER TABLE `holding_candles`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(10) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `candle_date`
date NOT NULL
COMMENT 'holding_candles: CANDLE DATE (candle_date)',
MODIFY COLUMN `open`
float NOT NULL DEFAULT 0
COMMENT '시가',
MODIFY COLUMN `high`
float NOT NULL DEFAULT 0
COMMENT '고가',
MODIFY COLUMN `low`
float NOT NULL DEFAULT 0
COMMENT '저가',
MODIFY COLUMN `close`
float NOT NULL DEFAULT 0
COMMENT '종가',
MODIFY COLUMN `volume`
bigint(20) NOT NULL DEFAULT 0
COMMENT '거래량(체결량/봉거래량)',
MODIFY COLUMN `updated_at`
datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
COMMENT '마지막 갱신 시각',
MODIFY COLUMN `change_rate`
float NOT NULL DEFAULT 0
COMMENT '전일대비등락률(%%)';
-- ── holding_min_candles (10 cols) ──
ALTER TABLE `holding_min_candles`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(10) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `candle_dt`
datetime NOT NULL
COMMENT '60분봉 기준 시작 시간(KST)',
MODIFY COLUMN `tf`
smallint(6) NOT NULL DEFAULT 60
COMMENT '분봉 단위 (60=60분봉)',
MODIFY COLUMN `open`
float NOT NULL DEFAULT 0
COMMENT '시가',
MODIFY COLUMN `high`
float NOT NULL DEFAULT 0
COMMENT '고가',
MODIFY COLUMN `low`
float NOT NULL DEFAULT 0
COMMENT '저가',
MODIFY COLUMN `close`
float NOT NULL DEFAULT 0
COMMENT '종가',
MODIFY COLUMN `volume`
bigint(20) NOT NULL DEFAULT 0
COMMENT '거래량(체결량/봉거래량)',
MODIFY COLUMN `updated_at`
datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
COMMENT '마지막 갱신 시각';
-- ── holding_stock_config (39 cols) ──
ALTER TABLE `holding_stock_config`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(10) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(50) NULL DEFAULT ''
COMMENT '종목명',
MODIFY COLUMN `created_at`
datetime NULL DEFAULT CURRENT_TIMESTAMP
COMMENT '생성 시각',
MODIFY COLUMN `rsi_period`
float NULL DEFAULT 14
COMMENT 'holding_stock_config: RSI PERIOD (rsi_period)',
MODIFY COLUMN `rsi_buy1`
float NULL DEFAULT 35
COMMENT 'holding_stock_config: RSI BUY1 (rsi_buy1)',
MODIFY COLUMN `rsi_buy2`
float NULL DEFAULT 30
COMMENT 'holding_stock_config: RSI BUY2 (rsi_buy2)',
MODIFY COLUMN `rsi_buy3`
float NULL DEFAULT 25
COMMENT 'holding_stock_config: RSI BUY3 (rsi_buy3)',
MODIFY COLUMN `rsi_sell`
float NULL DEFAULT 70
COMMENT 'holding_stock_config: RSI SELL (rsi_sell)',
MODIFY COLUMN `take_profit_pct`
float NULL DEFAULT 4
COMMENT 'holding_stock_config: 익절 %% (take_profit_pct)',
MODIFY COLUMN `stop_loss_pct`
float NULL DEFAULT 10
COMMENT 'holding_stock_config: 손절 %% (stop_loss_pct)',
MODIFY COLUMN `buy1_ratio`
float NULL DEFAULT 30
COMMENT 'holding_stock_config: BUY1 RATIO (buy1_ratio)',
MODIFY COLUMN `buy2_ratio`
float NULL DEFAULT 30
COMMENT 'holding_stock_config: BUY2 RATIO (buy2_ratio)',
MODIFY COLUMN `buy3_ratio`
float NULL DEFAULT 40
COMMENT 'holding_stock_config: BUY3 RATIO (buy3_ratio)',
MODIFY COLUMN `slot_money`
float NULL DEFAULT 3000000
COMMENT 'holding_stock_config: SLOT MONEY (slot_money)',
MODIFY COLUMN `atr_period`
float NULL DEFAULT 14
COMMENT 'holding_stock_config: ATR PERIOD (atr_period)',
MODIFY COLUMN `ath_drop_min_pct`
float NULL DEFAULT 0
COMMENT 'ATH 대비 최소 낙폭%% (0=비활성)',
MODIFY COLUMN `year_drop_min_pct`
float NULL DEFAULT 0
COMMENT '연도고점 대비 최소 낙폭%% (0=비활성)',
MODIFY COLUMN `w52_drop_min_pct`
float NULL DEFAULT 0
COMMENT '52주고점 대비 최소 낙폭%% (0=비활성)',
MODIFY COLUMN `ma_fast`
float NULL DEFAULT 20
COMMENT '단기 이동평균 기간',
MODIFY COLUMN `ma_slow`
float NULL DEFAULT 60
COMMENT '장기 이동평균 기간',
MODIFY COLUMN `trail_stop_pct`
float NULL DEFAULT 8
COMMENT '트레일링 스탑 %% (0=비활성)',
MODIFY COLUMN `trend_filter`
float NULL DEFAULT 1
COMMENT '추세 필터 (1=사용/0=미사용)',
MODIFY COLUMN `atr_mult`
float NULL DEFAULT 3
COMMENT '샹들리에 엑시트 ATR 배수',
MODIFY COLUMN `updow_body_drop_min_pct`
double NULL DEFAULT NULL
COMMENT 'UPDOW 직전봉 몸통하락%% 하한, NULL=env UPDOW_BODY_DROP_MIN_PCT',
MODIFY COLUMN `updow_max_hold_bars`
int(11) NULL DEFAULT NULL
COMMENT 'UPDOW 최대 보유 봉 수, NULL=env UPDOW_MAX_HOLD_BARS',
MODIFY COLUMN `updow_exit_on_green`
double NULL DEFAULT NULL
COMMENT 'UPDOW 양봉청산 1=ON 0=OFF, NULL=env UPDOW_EXIT_ON_GREEN',
MODIFY COLUMN `updow_tf_min`
int(11) NULL DEFAULT NULL
COMMENT 'UPDOW 분봉 tf NULL·<1=env UPDOW_TF_MIN',
MODIFY COLUMN `updow_regime_ma_bars`
int(11) NULL DEFAULT NULL
COMMENT 'UPDOW KOSPI프록시 MA봉수 NULL=env',
MODIFY COLUMN `updow_atr_use_dynamic`
double NULL DEFAULT NULL
COMMENT 'UPDOW ATR 동적 청산 1=ON 0=OFF NULL=env UPDOW_ATR_USE_DYNAMIC',
MODIFY COLUMN `updow_atr_period`
int(11) NULL DEFAULT NULL
COMMENT 'UPDOW ATR 기간(봉), NULL=env UPDOW_ATR_PERIOD',
MODIFY COLUMN `updow_atr_sl_mult`
double NULL DEFAULT NULL
COMMENT 'UPDOW ATR 손절 배수, NULL=env UPDOW_ATR_SL_MULT',
MODIFY COLUMN `updow_atr_tp_mult`
double NULL DEFAULT NULL
COMMENT 'UPDOW ATR 익절 배수, NULL=env UPDOW_ATR_TP_MULT',
MODIFY COLUMN `updow_atr_sl_min_pct`
double NULL DEFAULT NULL
COMMENT 'holding_stock_config: UPDOW ATR SL MIN %% (updow_atr_sl_min_pct)',
MODIFY COLUMN `updow_atr_sl_max_pct`
double NULL DEFAULT NULL
COMMENT 'holding_stock_config: UPDOW ATR SL MAX %% (updow_atr_sl_max_pct)',
MODIFY COLUMN `updow_atr_tp_min_pct`
double NULL DEFAULT NULL
COMMENT 'holding_stock_config: UPDOW ATR TP MIN %% (updow_atr_tp_min_pct)',
MODIFY COLUMN `updow_atr_tp_max_pct`
double NULL DEFAULT NULL
COMMENT 'holding_stock_config: UPDOW ATR TP MAX %% (updow_atr_tp_max_pct)',
MODIFY COLUMN `updow_shoulder_min_high_pct`
double NULL DEFAULT NULL
COMMENT 'UPDOW 어깨 발동(%%) NULL=env UPDOW_SHOULDER_MIN_HIGH_PCT',
MODIFY COLUMN `updow_shoulder_cut_pct`
double NULL DEFAULT NULL
COMMENT 'UPDOW 어깨 폭(%%) NULL=env UPDOW_SHOULDER_CUT_PCT';
-- ── kv_store (2 cols) ──
ALTER TABLE `kv_store`
MODIFY COLUMN `k`
varchar(100) NOT NULL
COMMENT '',
MODIFY COLUMN `v`
mediumtext NULL DEFAULT NULL
COMMENT '';
-- ── ls_candidates_history (15 cols) ──
ALTER TABLE `ls_candidates_history`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'LS후보이력: PK · AUTO_INCREMENT',
MODIFY COLUMN `slot_key`
varchar(12) NOT NULL
COMMENT 'LS후보이력: 슬롯/히스토리 키',
MODIFY COLUMN `scan_time`
varchar(30) NOT NULL
COMMENT 'LS후보이력: 스캔 시각',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT 'LS후보이력: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL DEFAULT ''
COMMENT 'LS후보이력: 종목명',
MODIFY COLUMN `score`
double NOT NULL DEFAULT 0
COMMENT 'LS후보이력: 점수/랭크',
MODIFY COLUMN `price`
double NOT NULL DEFAULT 0
COMMENT 'LS후보이력: 주문/체결 가격',
MODIFY COLUMN `market`
char(1) NULL DEFAULT 'Q'
COMMENT 'LS후보이력: 시장 구분 (KR|US 등)',
MODIFY COLUMN `sector`
varchar(100) NULL DEFAULT NULL
COMMENT 'LS후보이력: 섹터',
MODIFY COLUMN `theme`
varchar(100) NULL DEFAULT NULL
COMMENT 'LS후보이력: 테마',
MODIFY COLUMN `strategy_id`
varchar(32) NOT NULL DEFAULT ''
COMMENT 'LS후보이력: 전략 ID',
MODIFY COLUMN `event_time`
varchar(30) NOT NULL DEFAULT ''
COMMENT 'LS후보이력: EVENT TIME (event_time)',
MODIFY COLUMN `query_name`
varchar(64) NOT NULL DEFAULT ''
COMMENT 'LS후보이력: QUERY 종목명 (query_name)',
MODIFY COLUMN `query_index`
varchar(32) NOT NULL DEFAULT ''
COMMENT 'LS후보이력: QUERY INDEX (query_index)',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'ls_afr'
COMMENT 'LS후보이력: 데이터 소스 (kis/kiwoom/ls 등)';
-- ── ls_universe_history (13 cols) ──
ALTER TABLE `ls_universe_history`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'LS유니버스이력: PK · AUTO_INCREMENT',
MODIFY COLUMN `slot_key`
varchar(12) NOT NULL
COMMENT 'LS유니버스이력: 슬롯/히스토리 키',
MODIFY COLUMN `scan_time`
varchar(30) NOT NULL
COMMENT 'LS유니버스이력: 스캔 시각',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT 'LS유니버스이력: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL DEFAULT ''
COMMENT 'LS유니버스이력: 종목명',
MODIFY COLUMN `price`
double NOT NULL DEFAULT 0
COMMENT 'LS유니버스이력: 주문/체결 가격',
MODIFY COLUMN `tick_count`
int(11) NOT NULL DEFAULT 0
COMMENT 'LS유니버스이력: TICK COUNT (tick_count)',
MODIFY COLUMN `candle_1m_count`
int(11) NOT NULL DEFAULT 0
COMMENT 'LS유니버스이력: CANDLE 1M COUNT (candle_1m_count)',
MODIFY COLUMN `last_tick_ts`
datetime(3) NULL DEFAULT NULL
COMMENT 'LS유니버스이력: LAST TICK TS (last_tick_ts)',
MODIFY COLUMN `last_candle_dt`
varchar(20) NULL DEFAULT NULL
COMMENT 'LS유니버스이력: LAST CANDLE DT (last_candle_dt)',
MODIFY COLUMN `gap_1m_missing`
int(11) NOT NULL DEFAULT 0
COMMENT 'LS유니버스이력: GAP 1M MISSING (gap_1m_missing)',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'ls_ws'
COMMENT 'LS유니버스이력: 데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `note`
varchar(200) NULL DEFAULT NULL
COMMENT 'LS유니버스이력: 메모';
-- ── ls_ws_candles (10 cols) ──
ALTER TABLE `ls_ws_candles`
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT 'LS분봉: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `datetime`
varchar(20) NOT NULL
COMMENT 'LS분봉: DATETIME (datetime)',
MODIFY COLUMN `tf_min`
int(11) NOT NULL DEFAULT 1
COMMENT 'LS분봉: 분봉 주기(분)',
MODIFY COLUMN `open`
double NOT NULL
COMMENT 'LS분봉: 시가',
MODIFY COLUMN `high`
double NOT NULL
COMMENT 'LS분봉: 고가',
MODIFY COLUMN `low`
double NOT NULL
COMMENT 'LS분봉: 저가',
MODIFY COLUMN `close`
double NOT NULL
COMMENT 'LS분봉: 종가',
MODIFY COLUMN `volume`
double NOT NULL DEFAULT 0
COMMENT 'LS분봉: 거래량(체결량/봉거래량)',
MODIFY COLUMN `tick_count`
int(11) NOT NULL DEFAULT 0
COMMENT 'LS분봉: TICK COUNT (tick_count)',
MODIFY COLUMN `updated_at`
datetime(3) NOT NULL
COMMENT 'LS분봉: 마지막 갱신 시각';
-- ── ls_ws_orderbook (13 cols) ──
ALTER TABLE `ls_ws_orderbook`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'LS호가: PK · AUTO_INCREMENT',
MODIFY COLUMN `market`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT 'LS호가: 시장 구분 (KR|US 등)',
MODIFY COLUMN `code`
varchar(32) NOT NULL
COMMENT 'LS호가: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `snap_time`
varchar(14) NOT NULL
COMMENT 'LS호가: 스냅샷 시각 YYYYMMDDHHMMSS',
MODIFY COLUMN `best_bid`
bigint(20) NOT NULL DEFAULT 0
COMMENT 'LS호가: 최우선 매수호가',
MODIFY COLUMN `best_ask`
bigint(20) NOT NULL DEFAULT 0
COMMENT 'LS호가: 최우선 매도호가',
MODIFY COLUMN `total_bid_qty`
bigint(20) NOT NULL DEFAULT 0
COMMENT 'LS호가: 총 매수잔량',
MODIFY COLUMN `total_ask_qty`
bigint(20) NOT NULL DEFAULT 0
COMMENT 'LS호가: 총 매도잔량',
MODIFY COLUMN `bid_qty_l3`
bigint(20) NOT NULL DEFAULT 0
COMMENT 'LS호가: 매수 1~3호가 잔량합',
MODIFY COLUMN `ask_qty_l3`
bigint(20) NOT NULL DEFAULT 0
COMMENT 'LS호가: 매도 1~3호가 잔량합',
MODIFY COLUMN `levels_json`
mediumtext NULL DEFAULT NULL
COMMENT 'LS호가: 호가 단계 JSON',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'ls_uh1'
COMMENT 'LS호가: 데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `recv_ts`
varchar(30) NOT NULL
COMMENT 'LS호가: 수신 시각';
-- ── ls_ws_ticks (8 cols) ──
ALTER TABLE `ls_ws_ticks`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'LS틱: PK · AUTO_INCREMENT',
MODIFY COLUMN `ts`
datetime(3) NOT NULL
COMMENT 'LS틱: TS (ts)',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT 'LS틱: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `price`
double NOT NULL
COMMENT 'LS틱: 주문/체결 가격',
MODIFY COLUMN `volume`
double NULL DEFAULT NULL
COMMENT 'LS틱: 거래량(체결량/봉거래량)',
MODIFY COLUMN `tot_volume`
double NULL DEFAULT NULL
COMMENT 'LS틱: TOT 거래량 (tot_volume)',
MODIFY COLUMN `chetime`
varchar(16) NULL DEFAULT NULL
COMMENT 'LS틱: CHETIME (chetime)',
MODIFY COLUMN `tr_cd`
varchar(8) NULL DEFAULT NULL
COMMENT 'LS틱: TR CD (tr_cd)';
-- ── ls_ws_vi (12 cols) ──
ALTER TABLE `ls_ws_vi`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'LS VI: PK · AUTO_INCREMENT',
MODIFY COLUMN `ts`
datetime(3) NOT NULL
COMMENT 'LS VI: TS (ts)',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT 'LS VI: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `event_time`
varchar(16) NULL DEFAULT NULL
COMMENT 'LS VI: EVENT TIME (event_time)',
MODIFY COLUMN `vi_gubun`
varchar(4) NOT NULL DEFAULT '0'
COMMENT 'LS VI: VI GUBUN (vi_gubun)',
MODIFY COLUMN `krx_vi_gubun`
varchar(4) NULL DEFAULT NULL
COMMENT 'LS VI: KRX VI GUBUN (krx_vi_gubun)',
MODIFY COLUMN `nxt_vi_gubun`
varchar(4) NULL DEFAULT NULL
COMMENT 'LS VI: NXT VI GUBUN (nxt_vi_gubun)',
MODIFY COLUMN `svi_recprice`
double NULL DEFAULT NULL
COMMENT 'LS VI: SVI RECPRICE (svi_recprice)',
MODIFY COLUMN `dvi_recprice`
double NULL DEFAULT NULL
COMMENT 'LS VI: DVI RECPRICE (dvi_recprice)',
MODIFY COLUMN `vi_trgprice`
double NULL DEFAULT NULL
COMMENT 'LS VI: VI TRGPRICE (vi_trgprice)',
MODIFY COLUMN `tr_cd`
varchar(8) NULL DEFAULT NULL
COMMENT 'LS VI: TR CD (tr_cd)',
MODIFY COLUMN `exchname`
varchar(8) NULL DEFAULT NULL
COMMENT 'LS VI: EXCHNAME (exchname)';
-- ── orders (17 cols) ──
ALTER TABLE `orders`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT '실주문: PK · AUTO_INCREMENT',
MODIFY COLUMN `ord_no`
varchar(30) NOT NULL
COMMENT '실주문: 증권사 주문번호',
MODIFY COLUMN `strategy_id`
varchar(40) NOT NULL
COMMENT '실주문: 전략 ID',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '실주문: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL DEFAULT ''
COMMENT '실주문: 종목명',
MODIFY COLUMN `side`
varchar(8) NOT NULL
COMMENT '실주문: 매수/매도 구분',
MODIFY COLUMN `qty`
int(11) NOT NULL
COMMENT '실주문: 수량(주)',
MODIFY COLUMN `price`
double NULL DEFAULT 0
COMMENT '실주문: 주문/체결 가격',
MODIFY COLUMN `filled_qty`
int(11) NOT NULL DEFAULT 0
COMMENT '실주문: 체결 수량',
MODIFY COLUMN `filled_avg_price`
double NULL DEFAULT 0
COMMENT '실주문: 체결 평균가',
MODIFY COLUMN `status`
varchar(16) NOT NULL DEFAULT 'SUBMITTED'
COMMENT '실주문: 상태',
MODIFY COLUMN `msg_cd`
varchar(20) NULL DEFAULT NULL
COMMENT '실주문: 응답 코드',
MODIFY COLUMN `msg1`
varchar(300) NULL DEFAULT NULL
COMMENT '실주문: 응답 메시지',
MODIFY COLUMN `ord_date`
varchar(10) NOT NULL
COMMENT '실주문: 주문일',
MODIFY COLUMN `submitted_at`
varchar(30) NOT NULL
COMMENT '실주문: 주문 제출 시각',
MODIFY COLUMN `filled_at`
varchar(30) NULL DEFAULT NULL
COMMENT '실주문: 체결 시각',
MODIFY COLUMN `raw_json`
mediumtext NULL DEFAULT NULL
COMMENT '실주문: 원본 응답 JSON';
-- ── orders_paper (17 cols) ──
ALTER TABLE `orders_paper`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT '페이퍼주문: PK · AUTO_INCREMENT',
MODIFY COLUMN `ord_no`
varchar(40) NOT NULL
COMMENT '페이퍼주문: 증권사 주문번호',
MODIFY COLUMN `strategy_id`
varchar(40) NOT NULL
COMMENT '페이퍼주문: 전략 ID',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '페이퍼주문: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL DEFAULT ''
COMMENT '페이퍼주문: 종목명',
MODIFY COLUMN `side`
varchar(8) NOT NULL
COMMENT '페이퍼주문: 매수/매도 구분',
MODIFY COLUMN `qty`
int(11) NOT NULL
COMMENT '페이퍼주문: 수량(주)',
MODIFY COLUMN `price`
double NULL DEFAULT 0
COMMENT '페이퍼주문: 주문/체결 가격',
MODIFY COLUMN `filled_qty`
int(11) NOT NULL DEFAULT 0
COMMENT '페이퍼주문: 체결 수량',
MODIFY COLUMN `filled_avg_price`
double NULL DEFAULT 0
COMMENT '페이퍼주문: 체결 평균가',
MODIFY COLUMN `status`
varchar(16) NOT NULL DEFAULT 'FILLED'
COMMENT '페이퍼주문: 상태',
MODIFY COLUMN `msg_cd`
varchar(20) NULL DEFAULT NULL
COMMENT '페이퍼주문: 응답 코드',
MODIFY COLUMN `msg1`
varchar(300) NULL DEFAULT NULL
COMMENT '페이퍼주문: 응답 메시지',
MODIFY COLUMN `ord_date`
varchar(10) NOT NULL
COMMENT '페이퍼주문: 주문일',
MODIFY COLUMN `submitted_at`
varchar(30) NOT NULL
COMMENT '페이퍼주문: 주문 제출 시각',
MODIFY COLUMN `filled_at`
varchar(30) NULL DEFAULT NULL
COMMENT '페이퍼주문: 체결 시각',
MODIFY COLUMN `raw_json`
mediumtext NULL DEFAULT NULL
COMMENT '페이퍼주문: 원본 응답 JSON';
-- ── order_execution_history (16 cols) ──
ALTER TABLE `order_execution_history`
MODIFY COLUMN `id`
int(11) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `source`
varchar(20) NOT NULL
COMMENT '데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `ord_no`
varchar(30) NULL DEFAULT NULL
COMMENT '증권사 주문번호',
MODIFY COLUMN `stk_cd`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: STK CD (stk_cd)',
MODIFY COLUMN `stk_nm`
varchar(100) NULL DEFAULT NULL
COMMENT 'order_execution_history: STK NM (stk_nm)',
MODIFY COLUMN `trde_tp`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: TRDE TP (trde_tp)',
MODIFY COLUMN `ord_qty`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: ORD 수량 (ord_qty)',
MODIFY COLUMN `ord_uv`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: ORD UV (ord_uv)',
MODIFY COLUMN `cntr_qty`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: CNTR 수량 (cntr_qty)',
MODIFY COLUMN `cntr_uv`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: CNTR UV (cntr_uv)',
MODIFY COLUMN `ord_tm`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: ORD TM (ord_tm)',
MODIFY COLUMN `cnfm_tm`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: CNFM TM (cnfm_tm)',
MODIFY COLUMN `sell_tp`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: SELL TP (sell_tp)',
MODIFY COLUMN `ord_dt`
varchar(20) NULL DEFAULT NULL
COMMENT 'order_execution_history: ORD DT (ord_dt)',
MODIFY COLUMN `raw_json`
text NULL DEFAULT NULL
COMMENT '원본 응답 JSON',
MODIFY COLUMN `fetched_at`
varchar(30) NOT NULL
COMMENT 'order_execution_history: FETCHED AT (fetched_at)';
-- ── permanent_subscriptions (9 cols) ──
ALTER TABLE `permanent_subscriptions`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT '영구구독: PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(16) NOT NULL
COMMENT '영구구독: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `market_type`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT '영구구독: 시장유형 (KR|US)',
MODIFY COLUMN `exchange`
varchar(16) NOT NULL DEFAULT 'KRX'
COMMENT '영구구독: 거래소 (NASD/NYSE/AMEX/KRX 등)',
MODIFY COLUMN `symbol`
varchar(32) NOT NULL DEFAULT ''
COMMENT '영구구독: 심볼/티커',
MODIFY COLUMN `tf_min`
int(11) NOT NULL DEFAULT 60
COMMENT '영구구독: 분봉 주기(분)',
MODIFY COLUMN `enabled`
tinyint(4) NOT NULL DEFAULT 1
COMMENT '영구구독: 활성 여부 (1=ON)',
MODIFY COLUMN `note`
varchar(100) NOT NULL DEFAULT ''
COMMENT '영구구독: 메모',
MODIFY COLUMN `created_at`
datetime NULL DEFAULT CURRENT_TIMESTAMP
COMMENT '영구구독: 생성 시각';
-- ── stock_meta (8 cols) ──
ALTER TABLE `stock_meta`
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL DEFAULT ''
COMMENT '종목명',
MODIFY COLUMN `market`
char(1) NOT NULL DEFAULT 'Q'
COMMENT '시장 구분 (KR|US 등)',
MODIFY COLUMN `sector_code`
varchar(20) NULL DEFAULT NULL
COMMENT 'stock_meta: 초 TOR 종목코드 (sector_code)',
MODIFY COLUMN `sector`
varchar(100) NULL DEFAULT NULL
COMMENT '섹터',
MODIFY COLUMN `theme`
varchar(100) NULL DEFAULT NULL
COMMENT '테마',
MODIFY COLUMN `theme_rank`
tinyint(4) NULL DEFAULT 3
COMMENT 'stock_meta: THEME RANK (theme_rank)',
MODIFY COLUMN `updated_at`
varchar(30) NOT NULL
COMMENT '마지막 갱신 시각';
-- ── stock_share_meta (6 cols) ──
ALTER TABLE `stock_share_meta`
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `flo_stk`
bigint(20) NOT NULL DEFAULT 0
COMMENT 'stock_share_meta: FLO STK (flo_stk)',
MODIFY COLUMN `dstr_stk`
bigint(20) NOT NULL DEFAULT 0
COMMENT 'stock_share_meta: DSTR STK (dstr_stk)',
MODIFY COLUMN `dstr_rt`
double NULL DEFAULT NULL
COMMENT 'stock_share_meta: DSTR RT (dstr_rt)',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'ka10001'
COMMENT '데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `updated_at`
varchar(30) NOT NULL
COMMENT '마지막 갱신 시각';
-- ── target_candidates (9 cols) ──
ALTER TABLE `target_candidates`
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '현재후보: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL
COMMENT '현재후보: 종목명',
MODIFY COLUMN `score`
double NOT NULL
COMMENT '현재후보: 점수/랭크',
MODIFY COLUMN `price`
double NOT NULL
COMMENT '현재후보: 주문/체결 가격',
MODIFY COLUMN `scan_time`
varchar(30) NOT NULL
COMMENT '현재후보: 스캔 시각',
MODIFY COLUMN `updated_at`
varchar(30) NOT NULL
COMMENT '현재후보: 마지막 갱신 시각',
MODIFY COLUMN `market`
char(1) NULL DEFAULT 'Q'
COMMENT '현재후보: 시장 구분 (KR|US 등)',
MODIFY COLUMN `sector`
varchar(100) NULL DEFAULT NULL
COMMENT '현재후보: 섹터',
MODIFY COLUMN `theme`
varchar(100) NULL DEFAULT NULL
COMMENT '현재후보: 테마';
-- ── target_candidates_history (12 cols) ──
ALTER TABLE `target_candidates_history`
MODIFY COLUMN `id`
int(11) NOT NULL AUTO_INCREMENT
COMMENT '후보이력: PK · AUTO_INCREMENT',
MODIFY COLUMN `slot_key`
varchar(12) NOT NULL
COMMENT '후보이력: 슬롯/히스토리 키',
MODIFY COLUMN `scan_time`
varchar(30) NOT NULL
COMMENT '후보이력: 스캔 시각',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '후보이력: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL DEFAULT ''
COMMENT '후보이력: 종목명',
MODIFY COLUMN `score`
double NOT NULL DEFAULT 0
COMMENT '후보이력: 점수/랭크',
MODIFY COLUMN `price`
double NOT NULL DEFAULT 0
COMMENT '후보이력: 주문/체결 가격',
MODIFY COLUMN `market`
char(1) NULL DEFAULT 'Q'
COMMENT '후보이력: 시장 구분 (KR|US 등)',
MODIFY COLUMN `sector`
varchar(100) NULL DEFAULT NULL
COMMENT '후보이력: 섹터',
MODIFY COLUMN `theme`
varchar(100) NULL DEFAULT NULL
COMMENT '후보이력: 테마',
MODIFY COLUMN `strategy_id`
varchar(30) NULL DEFAULT NULL
COMMENT '후보이력: 전략 ID',
MODIFY COLUMN `event_time`
varchar(19) NULL DEFAULT NULL
COMMENT '후보이력: EVENT TIME (event_time)';
-- ── trade_history (23 cols) ──
ALTER TABLE `trade_history`
MODIFY COLUMN `id`
int(11) NOT NULL AUTO_INCREMENT
COMMENT '실청산이력: PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '실청산이력: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL
COMMENT '실청산이력: 종목명',
MODIFY COLUMN `strategy`
varchar(50) NULL DEFAULT NULL
COMMENT '실청산이력: 전략 ID (SHORT/MOMENTUM/BREAKOUT/US_MOMENTUM 등)',
MODIFY COLUMN `buy_price`
double NOT NULL
COMMENT '실청산이력: 매수가',
MODIFY COLUMN `sell_price`
double NOT NULL
COMMENT '실청산이력: 매도가',
MODIFY COLUMN `qty`
int(11) NOT NULL
COMMENT '실청산이력: 수량(주)',
MODIFY COLUMN `profit_rate`
double NOT NULL
COMMENT '실청산이력: 수익률(비율)',
MODIFY COLUMN `realized_pnl`
double NOT NULL
COMMENT '실청산이력: 실현손익',
MODIFY COLUMN `hold_minutes`
int(11) NULL DEFAULT NULL
COMMENT '실청산이력: 보유 분',
MODIFY COLUMN `buy_date`
varchar(30) NULL DEFAULT NULL
COMMENT '실청산이력: 매수 시각/일자',
MODIFY COLUMN `sell_date`
varchar(30) NOT NULL
COMMENT '실청산이력: 매도 시각/일자',
MODIFY COLUMN `sell_reason`
varchar(200) NULL DEFAULT NULL
COMMENT '실청산이력: 매도 사유',
MODIFY COLUMN `env_snapshot`
text NULL DEFAULT NULL
COMMENT '실청산이력: 체결 시점 env/파라미터 JSON 스냅샷',
MODIFY COLUMN `size_class`
varchar(20) NULL DEFAULT NULL
COMMENT '실청산이력: 사이즈 등급(소/중/대 등)',
MODIFY COLUMN `rsi`
double NULL DEFAULT NULL
COMMENT '실청산이력: 진입/기록 시점 RSI',
MODIFY COLUMN `volume_ratio`
double NULL DEFAULT NULL
COMMENT '실청산이력: 거래량 배수(기록 스냅샷)',
MODIFY COLUMN `tail_length_pct`
double NULL DEFAULT NULL
COMMENT '실청산이력: 꼬리 길이%%(기록 스냅샷)',
MODIFY COLUMN `ma5_gap_pct`
double NULL DEFAULT NULL
COMMENT '실청산이력: MA5 괴리%%(기록 스냅샷)',
MODIFY COLUMN `ma20_gap_pct`
double NULL DEFAULT NULL
COMMENT '실청산이력: MA20 괴리%%(기록 스냅샷)',
MODIFY COLUMN `foreign_net_buy`
double NULL DEFAULT NULL
COMMENT '실청산이력: 외국인 순매수(기록 스냅샷)',
MODIFY COLUMN `institution_net_buy`
double NULL DEFAULT NULL
COMMENT '실청산이력: 기관 순매수(기록 스냅샷)',
MODIFY COLUMN `market_hour`
double NULL DEFAULT NULL
COMMENT '실청산이력: 장중 시각 메타';
-- ── trade_history_paper (16 cols) ──
ALTER TABLE `trade_history_paper`
MODIFY COLUMN `id`
int(11) NOT NULL AUTO_INCREMENT
COMMENT '페이퍼청산이력: PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '페이퍼청산이력: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(100) NOT NULL
COMMENT '페이퍼청산이력: 종목명',
MODIFY COLUMN `strategy`
varchar(50) NULL DEFAULT NULL
COMMENT '페이퍼청산이력: 전략 ID (SHORT/MOMENTUM/BREAKOUT/US_MOMENTUM 등)',
MODIFY COLUMN `buy_price`
double NOT NULL
COMMENT '페이퍼청산이력: 매수가',
MODIFY COLUMN `sell_price`
double NOT NULL
COMMENT '페이퍼청산이력: 매도가',
MODIFY COLUMN `qty`
int(11) NOT NULL
COMMENT '페이퍼청산이력: 수량(주)',
MODIFY COLUMN `profit_rate`
double NOT NULL
COMMENT '페이퍼청산이력: 수익률(비율)',
MODIFY COLUMN `realized_pnl`
double NOT NULL
COMMENT '페이퍼청산이력: 실현손익',
MODIFY COLUMN `hold_minutes`
int(11) NULL DEFAULT NULL
COMMENT '페이퍼청산이력: 보유 분',
MODIFY COLUMN `buy_date`
varchar(30) NULL DEFAULT NULL
COMMENT '페이퍼청산이력: 매수 시각/일자',
MODIFY COLUMN `sell_date`
varchar(30) NOT NULL
COMMENT '페이퍼청산이력: 매도 시각/일자',
MODIFY COLUMN `sell_reason`
varchar(200) NULL DEFAULT NULL
COMMENT '페이퍼청산이력: 매도 사유',
MODIFY COLUMN `env_snapshot`
text NULL DEFAULT NULL
COMMENT '페이퍼청산이력: 체결 시점 env/파라미터 JSON 스냅샷',
MODIFY COLUMN `size_class`
varchar(20) NULL DEFAULT NULL
COMMENT '페이퍼청산이력: 사이즈 등급(소/중/대 등)',
MODIFY COLUMN `fill_mode`
varchar(16) NOT NULL DEFAULT 'paper'
COMMENT '페이퍼청산이력: FILL MODE (fill_mode)';
-- ── updown_box_stock_cfg (19 cols) ──
ALTER TABLE `updown_box_stock_cfg`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(50) NOT NULL DEFAULT ''
COMMENT '종목명',
MODIFY COLUMN `near_low_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: NEAR LOW %% (near_low_pct)',
MODIFY COLUMN `range_max_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: RANGE MAX %% (range_max_pct)',
MODIFY COLUMN `bb_bw_max`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: BB BW MAX (bb_bw_max)',
MODIFY COLUMN `ma_slope_tol_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: MA SLOPE TOL %% (ma_slope_tol_pct)',
MODIFY COLUMN `body_drop_min_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: BODY DROP MIN %% (body_drop_min_pct)',
MODIFY COLUMN `breach_buffer_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: BREACH BUFFER %% (breach_buffer_pct)',
MODIFY COLUMN `panic_from_high_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: PANIC FROM HIGH %% (panic_from_high_pct)',
MODIFY COLUMN `stop_loss_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: 손절 %% (stop_loss_pct)',
MODIFY COLUMN `tp_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: TP %% (tp_pct)',
MODIFY COLUMN `shoulder_min_high_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: 어깨 MIN HIGH %% (shoulder_min_high_pct)',
MODIFY COLUMN `shoulder_cut_pct`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: 어깨 CUT %% (shoulder_cut_pct)',
MODIFY COLUMN `max_hold_bars`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: MAX HOLD BARS (max_hold_bars)',
MODIFY COLUMN `lookback_bars`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: LOOKBACK BARS (lookback_bars)',
MODIFY COLUMN `ratchet_tiers`
varchar(64) NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: 래칫 TIERS (ratchet_tiers)',
MODIFY COLUMN `updated_at`
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
COMMENT '마지막 갱신 시각',
MODIFY COLUMN `breakout_follow`
double NULL DEFAULT NULL
COMMENT 'updown_box_stock_cfg: BREAKOUT FOLLOW (breakout_follow)';
-- ── updown_watchlist (15 cols) ──
ALTER TABLE `updown_watchlist`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `name`
varchar(50) NOT NULL DEFAULT ''
COMMENT '종목명',
MODIFY COLUMN `market_type`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT '시장유형 (KR|US)',
MODIFY COLUMN `exchange`
varchar(16) NOT NULL DEFAULT 'KRX'
COMMENT '거래소 (NASD/NYSE/AMEX/KRX 등)',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'manual'
COMMENT '데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `status`
varchar(16) NOT NULL DEFAULT 'active'
COMMENT '상태',
MODIFY COLUMN `box_low`
double NOT NULL DEFAULT 0
COMMENT 'updown_watchlist: BOX LOW (box_low)',
MODIFY COLUMN `box_high`
double NOT NULL DEFAULT 0
COMMENT 'updown_watchlist: BOX HIGH (box_high)',
MODIFY COLUMN `box_score`
double NOT NULL DEFAULT 0
COMMENT 'updown_watchlist: BOX SCORE (box_score)',
MODIFY COLUMN `added_at`
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
COMMENT 'updown_watchlist: ADDED AT (added_at)',
MODIFY COLUMN `last_seen_at`
datetime NULL DEFAULT NULL
COMMENT 'updown_watchlist: LAST SEEN AT (last_seen_at)',
MODIFY COLUMN `last_signal_at`
datetime NULL DEFAULT NULL
COMMENT 'updown_watchlist: LAST SIGNAL AT (last_signal_at)',
MODIFY COLUMN `removed_at`
datetime NULL DEFAULT NULL
COMMENT 'updown_watchlist: REMOVED AT (removed_at)',
MODIFY COLUMN `updated_at`
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
COMMENT '마지막 갱신 시각';
-- ── updow_stock_config (29 cols) ──
ALTER TABLE `updow_stock_config`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(10) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `market_type`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT '시장유형 (KR|US)',
MODIFY COLUMN `exchange`
varchar(16) NOT NULL DEFAULT 'KRX'
COMMENT '거래소 (NASD/NYSE/AMEX/KRX 등)',
MODIFY COLUMN `symbol`
varchar(32) NOT NULL DEFAULT ''
COMMENT '심볼/티커',
MODIFY COLUMN `name`
varchar(50) NULL DEFAULT ''
COMMENT '종목명',
MODIFY COLUMN `created_at`
datetime NULL DEFAULT CURRENT_TIMESTAMP
COMMENT '생성 시각',
MODIFY COLUMN `body_drop_min_pct`
double NOT NULL
COMMENT 'updow_stock_config: BODY DROP MIN %% (body_drop_min_pct)',
MODIFY COLUMN `body_drop_max_pct`
double NOT NULL DEFAULT 0
COMMENT 'updow_stock_config: BODY DROP MAX %% (body_drop_max_pct)',
MODIFY COLUMN `tp_pct`
double NOT NULL
COMMENT 'updow_stock_config: TP %% (tp_pct)',
MODIFY COLUMN `stop_loss_pct`
double NOT NULL
COMMENT 'updow_stock_config: 손절 %% (stop_loss_pct)',
MODIFY COLUMN `max_hold_bars`
int(11) NOT NULL
COMMENT 'updow_stock_config: MAX HOLD BARS (max_hold_bars)',
MODIFY COLUMN `exit_on_green`
double NOT NULL DEFAULT 0
COMMENT 'updow_stock_config: EXIT ON GREEN (exit_on_green)',
MODIFY COLUMN `tf_min`
int(11) NOT NULL DEFAULT 60
COMMENT '분봉 주기(분)',
MODIFY COLUMN `slot_money`
double NOT NULL DEFAULT 3000000
COMMENT 'updow_stock_config: SLOT MONEY (slot_money)',
MODIFY COLUMN `regime_ma_bars`
int(11) NOT NULL DEFAULT 0
COMMENT 'updow_stock_config: REGIME MA BARS (regime_ma_bars)',
MODIFY COLUMN `regime_ma_ease_pct`
double NOT NULL DEFAULT 0
COMMENT 'updow_stock_config: REGIME MA EASE %% (regime_ma_ease_pct)',
MODIFY COLUMN `atr_use_dynamic`
double NOT NULL DEFAULT 0
COMMENT 'updow_stock_config: ATR USE DYNAMIC (atr_use_dynamic)',
MODIFY COLUMN `atr_period`
int(11) NOT NULL DEFAULT 14
COMMENT 'updow_stock_config: ATR PERIOD (atr_period)',
MODIFY COLUMN `atr_sl_mult`
double NOT NULL DEFAULT 2
COMMENT 'updow_stock_config: ATR SL MULT (atr_sl_mult)',
MODIFY COLUMN `atr_tp_mult`
double NOT NULL DEFAULT 4
COMMENT 'updow_stock_config: ATR TP MULT (atr_tp_mult)',
MODIFY COLUMN `atr_sl_min_pct`
double NOT NULL DEFAULT 0.8
COMMENT 'updow_stock_config: ATR SL MIN %% (atr_sl_min_pct)',
MODIFY COLUMN `atr_sl_max_pct`
double NOT NULL DEFAULT 6
COMMENT 'updow_stock_config: ATR SL MAX %% (atr_sl_max_pct)',
MODIFY COLUMN `atr_tp_min_pct`
double NOT NULL DEFAULT 1.5
COMMENT 'updow_stock_config: ATR TP MIN %% (atr_tp_min_pct)',
MODIFY COLUMN `atr_tp_max_pct`
double NOT NULL DEFAULT 12
COMMENT 'updow_stock_config: ATR TP MAX %% (atr_tp_max_pct)',
MODIFY COLUMN `shoulder_min_high_pct`
double NOT NULL DEFAULT 0.3
COMMENT 'updow_stock_config: 어깨 MIN HIGH %% (shoulder_min_high_pct)',
MODIFY COLUMN `shoulder_cut_pct`
double NOT NULL DEFAULT 0.2
COMMENT 'updow_stock_config: 어깨 CUT %% (shoulder_cut_pct)',
MODIFY COLUMN `limit_atr_mult`
double NOT NULL DEFAULT 1.5
COMMENT 'updow_stock_config: LIMIT ATR MULT (limit_atr_mult)',
MODIFY COLUMN `entry_mode`
varchar(16) NOT NULL DEFAULT ''
COMMENT 'updow_stock_config: ENTRY MODE (entry_mode)';
-- ── us_momentum_stock_config (42 cols) ──
ALTER TABLE `us_momentum_stock_config`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(32) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `exchange`
varchar(16) NOT NULL DEFAULT 'NASD'
COMMENT '거래소 (NASD/NYSE/AMEX/KRX 등)',
MODIFY COLUMN `symbol`
varchar(32) NOT NULL DEFAULT ''
COMMENT '심볼/티커',
MODIFY COLUMN `name`
varchar(64) NULL DEFAULT ''
COMMENT '종목명',
MODIFY COLUMN `stock_group`
varchar(16) NOT NULL DEFAULT 'STOCK'
COMMENT 'us_momentum_stock_config: STOCK GROUP (stock_group)',
MODIFY COLUMN `created_at`
datetime NULL DEFAULT CURRENT_TIMESTAMP
COMMENT '생성 시각',
MODIFY COLUMN `updated_at`
datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
COMMENT '마지막 갱신 시각',
MODIFY COLUMN `sl_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: SL %% (sl_pct)',
MODIFY COLUMN `tp_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: TP %% (tp_pct)',
MODIFY COLUMN `tp_max_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: TP MAX %% (tp_max_pct)',
MODIFY COLUMN `shoulder_min_high_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: 어깨 MIN HIGH %% (shoulder_min_high_pct)',
MODIFY COLUMN `shoulder_cut_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: 어깨 CUT %% (shoulder_cut_pct)',
MODIFY COLUMN `trail_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: 트레일 %% (trail_pct)',
MODIFY COLUMN `trail_arm_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: 트레일 ARM %% (trail_arm_pct)',
MODIFY COLUMN `ratchet_tiers`
varchar(255) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: 래칫 TIERS (ratchet_tiers)',
MODIFY COLUMN `max_hold_bars`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: MAX HOLD BARS (max_hold_bars)',
MODIFY COLUMN `cooldown_sec`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: COOLDOWN 초 (cooldown_sec)',
MODIFY COLUMN `max_daily`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: MAX DAILY (max_daily)',
MODIFY COLUMN `slot_money`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: SLOT MONEY (slot_money)',
MODIFY COLUMN `rsi_min`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: RSI MIN (rsi_min)',
MODIFY COLUMN `rsi_max`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: RSI MAX (rsi_max)',
MODIFY COLUMN `vol_mult`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: VOL MULT (vol_mult)',
MODIFY COLUMN `vol_win`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: VOL WIN (vol_win)',
MODIFY COLUMN `chase_lookback_min`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: CHASE LOOKBACK MIN (chase_lookback_min)',
MODIFY COLUMN `pullback_lookback_min`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: PULLBACK LOOKBACK MIN (pullback_lookback_min)',
MODIFY COLUMN `pullback_min_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: PULLBACK MIN %% (pullback_min_pct)',
MODIFY COLUMN `pullback_max_pct`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: PULLBACK MAX %% (pullback_max_pct)',
MODIFY COLUMN `setup_vol_max_mult`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: SETUP VOL MAX MULT (setup_vol_max_mult)',
MODIFY COLUMN `setup_bear_bars_min`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: SETUP BEAR BARS MIN (setup_bear_bars_min)',
MODIFY COLUMN `high_chase_thr`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: HIGH CHASE THR (high_chase_thr)',
MODIFY COLUMN `max_daily_chg`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: MAX DAILY CHG (max_daily_chg)',
MODIFY COLUMN `min_price`
double NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: MIN 가격 (min_price)',
MODIFY COLUMN `ema_fast_period`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: EMA FAST PERIOD (ema_fast_period)',
MODIFY COLUMN `ema_slow_period`
int(11) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: EMA SLOW PERIOD (ema_slow_period)',
MODIFY COLUMN `use_defense_filters`
tinyint(4) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: USE DEFENSE FILTERS (use_defense_filters)',
MODIFY COLUMN `use_high_chase_filter`
tinyint(4) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: USE HIGH CHASE FILTER (use_high_chase_filter)',
MODIFY COLUMN `use_daily_range_filter`
tinyint(4) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: USE DAILY RANGE FILTER (use_daily_range_filter)',
MODIFY COLUMN `use_ema_filter`
tinyint(4) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: USE EMA FILTER (use_ema_filter)',
MODIFY COLUMN `use_rsi_max_filter`
tinyint(4) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: USE RSI MAX FILTER (use_rsi_max_filter)',
MODIFY COLUMN `pattern_breakout`
tinyint(4) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: PATTERN BREAKOUT (pattern_breakout)',
MODIFY COLUMN `pattern_pullback`
tinyint(4) NULL DEFAULT NULL
COMMENT 'us_momentum_stock_config: PATTERN PULLBACK (pattern_pullback)';
-- ── ws_candles (26 cols) ──
ALTER TABLE `ws_candles`
MODIFY COLUMN `id`
int(11) NOT NULL AUTO_INCREMENT
COMMENT '분봉: PK · AUTO_INCREMENT',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '분봉: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `market`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT 'KR|US',
MODIFY COLUMN `timeframe`
tinyint(4) NOT NULL
COMMENT '분봉 주기(분)',
MODIFY COLUMN `candle_time`
varchar(12) NOT NULL
COMMENT '분봉: 봉 시각 YYYYMMDDHHMM',
MODIFY COLUMN `open`
double NOT NULL
COMMENT '분봉: 시가',
MODIFY COLUMN `high`
double NOT NULL
COMMENT '분봉: 고가',
MODIFY COLUMN `low`
double NOT NULL
COMMENT '분봉: 저가',
MODIFY COLUMN `close`
double NOT NULL
COMMENT '분봉: 종가',
MODIFY COLUMN `volume`
bigint(20) NOT NULL DEFAULT 0
COMMENT '분봉: 거래량(체결량/봉거래량)',
MODIFY COLUMN `rsi_2`
double NULL DEFAULT NULL
COMMENT 'RSI(2) materialized',
MODIFY COLUMN `rsi_3`
double NULL DEFAULT NULL
COMMENT 'RSI(3) materialized',
MODIFY COLUMN `rsi_5`
double NULL DEFAULT NULL
COMMENT 'RSI(5) materialized',
MODIFY COLUMN `is_confirmed`
tinyint(4) NOT NULL DEFAULT 1
COMMENT '분봉: 봉 확정 여부 (1=확정)',
MODIFY COLUMN `source`
varchar(10) NOT NULL DEFAULT 'ws'
COMMENT '분봉: 데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `updated_at`
varchar(30) NOT NULL
COMMENT '분봉: 마지막 갱신 시각',
MODIFY COLUMN `holding_peak`
double NULL DEFAULT NULL
COMMENT '보유 중 트레일 고점(WS 틱 max_price 스냅샷)',
MODIFY COLUMN `rsi_14`
double NULL DEFAULT NULL
COMMENT 'RSI(14) materialized',
MODIFY COLUMN `ema_9`
double NULL DEFAULT NULL
COMMENT 'EMA(9) materialized',
MODIFY COLUMN `ema_21`
double NULL DEFAULT NULL
COMMENT 'EMA(21) materialized',
MODIFY COLUMN `rsi_7`
double NULL DEFAULT NULL
COMMENT 'RSI(7) materialized',
MODIFY COLUMN `rsi_21`
double NULL DEFAULT NULL
COMMENT 'RSI(21) materialized',
MODIFY COLUMN `ema_5`
double NULL DEFAULT NULL
COMMENT 'EMA(5) materialized',
MODIFY COLUMN `ema_12`
double NULL DEFAULT NULL
COMMENT 'EMA(12) materialized',
MODIFY COLUMN `ema_15`
double NULL DEFAULT NULL
COMMENT 'EMA(15) materialized',
MODIFY COLUMN `ema_34`
double NULL DEFAULT NULL
COMMENT 'EMA(34) materialized';
-- ── ws_orderbook (17 cols) ──
ALTER TABLE `ws_orderbook`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT '호가스냅: PK · AUTO_INCREMENT',
MODIFY COLUMN `market`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT '호가스냅: 시장 구분 (KR|US 등)',
MODIFY COLUMN `code`
varchar(32) NOT NULL
COMMENT '호가스냅: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `snap_time`
varchar(14) NOT NULL
COMMENT '호가스냅: 스냅샷 시각 YYYYMMDDHHMMSS',
MODIFY COLUMN `best_bid`
bigint(20) NOT NULL DEFAULT 0
COMMENT '호가스냅: 최우선 매수호가',
MODIFY COLUMN `best_ask`
bigint(20) NOT NULL DEFAULT 0
COMMENT '호가스냅: 최우선 매도호가',
MODIFY COLUMN `total_bid_qty`
bigint(20) NOT NULL DEFAULT 0
COMMENT '호가스냅: 총 매수잔량',
MODIFY COLUMN `total_ask_qty`
bigint(20) NOT NULL DEFAULT 0
COMMENT '호가스냅: 총 매도잔량',
MODIFY COLUMN `bid_qty_l3`
bigint(20) NOT NULL DEFAULT 0
COMMENT '호가스냅: 매수 1~3호가 잔량합',
MODIFY COLUMN `ask_qty_l3`
bigint(20) NOT NULL DEFAULT 0
COMMENT '호가스냅: 매도 1~3호가 잔량합',
MODIFY COLUMN `levels_json`
mediumtext NULL DEFAULT NULL
COMMENT '호가스냅: 호가 단계 JSON',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'kiwoom_0d'
COMMENT '호가스냅: 데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `recv_ts`
varchar(30) NOT NULL
COMMENT '호가스냅: 수신 시각',
MODIFY COLUMN `strategy`
varchar(16) NULL DEFAULT NULL
COMMENT '호가스냅: 전략 ID (SHORT/MOMENTUM/BREAKOUT/US_MOMENTUM 등)',
MODIFY COLUMN `reject_code`
varchar(64) NULL DEFAULT NULL
COMMENT '호가스냅: REJECT 종목코드 (reject_code)',
MODIFY COLUMN `reject_msg`
varchar(255) NULL DEFAULT NULL
COMMENT '호가스냅: REJECT ms G (reject_msg)',
MODIFY COLUMN `eval_price`
bigint(20) NOT NULL DEFAULT 0
COMMENT '호가스냅: EVAL 가격 (eval_price)';
-- ── ws_price_validation (8 cols) ──
ALTER TABLE `ws_price_validation`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `ts`
datetime(3) NOT NULL
COMMENT 'ws_price_validation: TS (ts)',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `kis_price`
double NULL DEFAULT NULL
COMMENT 'ws_price_validation: KIS 가격 (kis_price)',
MODIFY COLUMN `kiwoom_price`
double NULL DEFAULT NULL
COMMENT 'ws_price_validation: KIWOOM 가격 (kiwoom_price)',
MODIFY COLUMN `diff_pct`
double NULL DEFAULT NULL
COMMENT 'ws_price_validation: DIFF %% (diff_pct)',
MODIFY COLUMN `kis_age_ms`
int(11) NULL DEFAULT NULL
COMMENT 'ws_price_validation: KIS AGE ms (kis_age_ms)',
MODIFY COLUMN `kiwoom_age_ms`
int(11) NULL DEFAULT NULL
COMMENT 'ws_price_validation: KIWOOM AGE ms (kiwoom_age_ms)';
-- ── ws_price_validation_ls (11 cols) ──
ALTER TABLE `ws_price_validation_ls`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT 'PK · AUTO_INCREMENT',
MODIFY COLUMN `ts`
datetime(3) NOT NULL
COMMENT 'ws_price_validation_ls: TS (ts)',
MODIFY COLUMN `code`
varchar(20) NOT NULL
COMMENT '종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `kis_price`
double NULL DEFAULT NULL
COMMENT 'ws_price_validation_ls: KIS 가격 (kis_price)',
MODIFY COLUMN `kiwoom_price`
double NULL DEFAULT NULL
COMMENT 'ws_price_validation_ls: KIWOOM 가격 (kiwoom_price)',
MODIFY COLUMN `ls_price`
double NULL DEFAULT NULL
COMMENT 'ws_price_validation_ls: LS 가격 (ls_price)',
MODIFY COLUMN `diff_kis_ls_pct`
double NULL DEFAULT NULL
COMMENT 'ws_price_validation_ls: DIFF KIS LS %% (diff_kis_ls_pct)',
MODIFY COLUMN `diff_kw_ls_pct`
double NULL DEFAULT NULL
COMMENT 'ws_price_validation_ls: DIFF KW LS %% (diff_kw_ls_pct)',
MODIFY COLUMN `kis_age_ms`
int(11) NULL DEFAULT NULL
COMMENT 'ws_price_validation_ls: KIS AGE ms (kis_age_ms)',
MODIFY COLUMN `kiwoom_age_ms`
int(11) NULL DEFAULT NULL
COMMENT 'ws_price_validation_ls: KIWOOM AGE ms (kiwoom_age_ms)',
MODIFY COLUMN `ls_age_ms`
int(11) NULL DEFAULT NULL
COMMENT 'ws_price_validation_ls: LS AGE ms (ls_age_ms)';
-- ── ws_program (16 cols) ──
ALTER TABLE `ws_program`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT '프로그램매매: PK · AUTO_INCREMENT',
MODIFY COLUMN `market`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT '프로그램매매: 시장 구분 (KR|US 등)',
MODIFY COLUMN `code`
varchar(32) NOT NULL
COMMENT '프로그램매매: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `snap_time`
varchar(14) NOT NULL
COMMENT '프로그램매매: 스냅샷 시각 YYYYMMDDHHMMSS',
MODIFY COLUMN `buy_qty`
bigint(20) NOT NULL DEFAULT 0
COMMENT '프로그램매매: BUY 수량 (buy_qty)',
MODIFY COLUMN `sell_qty`
bigint(20) NOT NULL DEFAULT 0
COMMENT '프로그램매매: SELL 수량 (sell_qty)',
MODIFY COLUMN `net_qty`
bigint(20) NOT NULL DEFAULT 0
COMMENT '프로그램매매: NET 수량 (net_qty)',
MODIFY COLUMN `buy_amt`
bigint(20) NOT NULL DEFAULT 0
COMMENT '프로그램매매: BUY AMT (buy_amt)',
MODIFY COLUMN `sell_amt`
bigint(20) NOT NULL DEFAULT 0
COMMENT '프로그램매매: SELL AMT (sell_amt)',
MODIFY COLUMN `net_amt`
bigint(20) NOT NULL DEFAULT 0
COMMENT '프로그램매매: NET AMT (net_amt)',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'kiwoom_0w'
COMMENT '프로그램매매: 데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `recv_ts`
varchar(30) NOT NULL
COMMENT '프로그램매매: 수신 시각',
MODIFY COLUMN `strategy`
varchar(16) NULL DEFAULT NULL
COMMENT '프로그램매매: 전략 ID (SHORT/MOMENTUM/BREAKOUT/US_MOMENTUM 등)',
MODIFY COLUMN `reject_code`
varchar(64) NULL DEFAULT NULL
COMMENT '프로그램매매: REJECT 종목코드 (reject_code)',
MODIFY COLUMN `reject_msg`
varchar(255) NULL DEFAULT NULL
COMMENT '프로그램매매: REJECT ms G (reject_msg)',
MODIFY COLUMN `eval_price`
bigint(20) NOT NULL DEFAULT 0
COMMENT '프로그램매매: EVAL 가격 (eval_price)';
-- ── ws_ticks (12 cols) ──
ALTER TABLE `ws_ticks`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT '국장틱: PK · AUTO_INCREMENT',
MODIFY COLUMN `market`
varchar(8) NOT NULL DEFAULT 'KR'
COMMENT '국장틱: 시장 구분 (KR|US 등)',
MODIFY COLUMN `exchange`
varchar(16) NULL DEFAULT NULL
COMMENT '국장틱: 거래소 (NASD/NYSE/AMEX/KRX 등)',
MODIFY COLUMN `code`
varchar(32) NOT NULL
COMMENT '국장틱: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `tick_time`
varchar(14) NOT NULL
COMMENT '국장틱: 틱 시각 YYYYMMDDHHMMSS',
MODIFY COLUMN `price`
double NOT NULL
COMMENT '국장틱: 주문/체결 가격',
MODIFY COLUMN `volume`
bigint(20) NOT NULL DEFAULT 0
COMMENT '국장틱: 거래량(체결량/봉거래량)',
MODIFY COLUMN `tick_seq`
bigint(20) NULL DEFAULT NULL
COMMENT '국장틱: 틱 일련번호',
MODIFY COLUMN `session`
varchar(8) NULL DEFAULT NULL
COMMENT '국장틱: 세션 태그',
MODIFY COLUMN `currency`
varchar(8) NOT NULL DEFAULT 'KRW'
COMMENT '국장틱: 통화 (KRW|USD)',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'kis'
COMMENT '국장틱: 데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `recv_ts`
varchar(30) NOT NULL
COMMENT '국장틱: 수신 시각';
-- ── ws_ticks_us (12 cols) ──
ALTER TABLE `ws_ticks_us`
MODIFY COLUMN `id`
bigint(20) NOT NULL AUTO_INCREMENT
COMMENT '해외틱: PK · AUTO_INCREMENT',
MODIFY COLUMN `market`
varchar(8) NOT NULL DEFAULT 'US'
COMMENT '해외틱: 시장 구분 (KR|US 등)',
MODIFY COLUMN `exchange`
varchar(16) NULL DEFAULT NULL
COMMENT '해외틱: 거래소 (NASD/NYSE/AMEX/KRX 등)',
MODIFY COLUMN `code`
varchar(32) NOT NULL
COMMENT '해외틱: 종목코드 (KR 6자리 / US 티커)',
MODIFY COLUMN `tick_time`
varchar(14) NOT NULL
COMMENT '해외틱: 틱 시각 YYYYMMDDHHMMSS',
MODIFY COLUMN `price`
double NOT NULL
COMMENT '해외틱: 주문/체결 가격',
MODIFY COLUMN `volume`
bigint(20) NOT NULL DEFAULT 0
COMMENT '해외틱: 거래량(체결량/봉거래량)',
MODIFY COLUMN `tick_seq`
bigint(20) NULL DEFAULT NULL
COMMENT '해외틱: 틱 일련번호',
MODIFY COLUMN `session`
varchar(8) NULL DEFAULT NULL
COMMENT '해외틱: 세션 태그',
MODIFY COLUMN `currency`
varchar(8) NOT NULL DEFAULT 'USD'
COMMENT '해외틱: 통화 (KRW|USD)',
MODIFY COLUMN `source`
varchar(16) NOT NULL DEFAULT 'kis_us'
COMMENT '해외틱: 데이터 소스 (kis/kiwoom/ls 등)',
MODIFY COLUMN `recv_ts`
varchar(30) NOT NULL
COMMENT '해외틱: 수신 시각';