feat: 새로운 안전 규칙 및 최적화 적용을 통한 트레이딩 시스템 개선

변경 사항 (Changes):

구문 오류(Syntax error) 및 토큰 낭비를 방지하기 위해 에이전트 쉘(Agent shell)과 파이썬 코드 스니펫에 다수의 신규 안전 규칙(Safety rules)을 추가함.

스키마 검증 및 적절한 SQL 포맷팅을 보장하기 위해 임시(Ad-hoc) 데이터베이스 쿼리 작성 가이드라인을 도입함.

코드 수정 후 UI 기능이 정상 작동하는지 확인하기 위해, 백테스트 웹 서비스 재시작 및 브라우저 검증에 대한 새로운 규칙을 구현함.

시스템 전반의 무결성(Integrity)을 유지하기 위해 실전 매매(Live trading), 웹 백테스팅, 파라미터 탐색(Parameter searches) 간의 일관성 검사(Consistency checks) 체계를 확립함.

기대 효과 (Impact):

이러한 개선 사항들은 트레이딩 시스템의 견고성(Robustness)과 신뢰성을 향상시키며, 에러 발생을 최소화하고 다양한 시스템 컴포넌트 간의 원활한 상호작용을 보장함.
This commit is contained in:
Your Name
2026-07-17 01:09:09 +09:00
parent a4626e0351
commit fc27e726f9
151 changed files with 20718 additions and 6450 deletions

View File

@@ -8,29 +8,6 @@ from __future__ import annotations
from typing import Any, Dict, Optional
# 레거시 → MOMENTUM (DB 마이그레이션·1회 승계용)
LEGACY_TO_MOMENTUM: Dict[str, str] = {
"SCALP_MOM_RSI_MIN": "MOMENTUM_RSI_MIN",
"SCALP_MOM_RSI_MAX": "MOMENTUM_RSI_MAX",
"SCALP_MOM_VOL_MULT": "MOMENTUM_VOL_MULT",
"SCALP_MOM_VOL_WIN": "MOMENTUM_VOL_WIN",
"SCALP_MOM_TIME_END_HM": "MOMENTUM_TIME_END_HM",
"SCALP_STOP_LOSS_PCT": "MOMENTUM_STOP_LOSS_PCT",
"SCALP_TAKE_PROFIT_PCT": "MOMENTUM_TAKE_PROFIT_PCT",
"SCALP_TP_MAX_PCT": "MOMENTUM_TP_MAX_PCT",
"SCALP_SHOULDER_MIN_HIGH_PCT": "MOMENTUM_SHOULDER_MIN_HIGH_PCT",
"SCALP_SHOULDER_CUT_PCT": "MOMENTUM_SHOULDER_CUT_PCT",
"SCALP_MAX_DAILY": "MOMENTUM_MAX_DAILY",
"SCALP_MIN_DROP_PCT_FOR_LOSS_CUT": "MOMENTUM_MIN_DROP_PCT_FOR_LOSS_CUT",
"SCALP_MIN_PROFIT_PCT": "MOMENTUM_MIN_PROFIT_PCT",
"SCALP_MIN_HOLD_SEC": "MOMENTUM_MIN_HOLD_SEC",
"MAX_LOSS_PER_TRADE_KRW": "MOMENTUM_MAX_LOSS_PER_TRADE_KRW",
"HIGH_CHASE_THR": "MOMENTUM_HIGH_CHASE_THR",
"MAX_DAILY_CHG": "MOMENTUM_MAX_DAILY_CHG",
"MIN_STOCK_PRICE": "MOMENTUM_MIN_PRICE",
"SLOT_MONEY_DEFAULT": "MOMENTUM_SLOT_MONEY",
}
MOMENTUM_CONFIG_KEYS = frozenset({
"MOMENTUM_RSI_MIN",
"MOMENTUM_RSI_MAX",
@@ -61,6 +38,10 @@ MOMENTUM_CONFIG_KEYS = frozenset({
"MOMENTUM_EMA_FAST_PERIOD",
"MOMENTUM_EMA_SLOW_PERIOD",
"MOMENTUM_USE_RSI_MAX_FILTER",
"MOMENTUM_TRIGGER_E_CONFIRM",
"MOMENTUM_TRIGGER_REQUIRE_BULL_BAR",
"MOMENTUM_USE_VOL_TRIGGER",
"MOMENTUM_USE_RSI_FILTER",
"MOMENTUM_PATTERN_BREAKOUT",
"MOMENTUM_PATTERN_PULLBACK",
"MOMENTUM_CHASE_LOOKBACK_MIN",
@@ -80,6 +61,10 @@ MOMENTUM_CONFIG_KEYS = frozenset({
"MOMENTUM_RSI_PERIOD",
"MOMENTUM_COOLDOWN_SEC",
"MOMENTUM_LIVE_BACKTEST_ALIGN",
"MOMENTUM_LIVE_ALIGN_USE_FORMING_BAR",
"MOMENTUM_COOLDOWN_USE_CANDLE_FLOOR",
"MOMENTUM_COOLDOWN_ENGINE_ONLY",
"MOMENTUM_BACKTEST_SKIP_PRE_SUBSCRIBE",
"MOMENTUM_BACKTEST_USE_TICK_EXIT",
"MOMENTUM_BACKTEST_USE_TICK_ENTRY",
"MOMENTUM_BACKTEST_TICK_FALLBACK_OHLC",
@@ -94,6 +79,8 @@ MOMENTUM_CONFIG_KEYS = frozenset({
"MOMENTUM_BACKTEST_CANDLE_WARMUP_BARS",
"MOMENTUM_UNIVERSE_EXIT_DEBOUNCE_SEC",
"MOMENTUM_LIVE_SIGNAL_LOOKBACK_BARS",
"MOMENTUM_LIVE_MIN_CANDLES",
"MOMENTUM_GAP_FILL_LIMIT",
"MOMENTUM_EOD_ENABLED",
"MOMENTUM_EOD_HM",
"MOMENTUM_FORCE_EOD_EXIT",