feat: Add DART strategy and related configurations

ㅇ
Changes:
- Introduced the DART strategy to the trading system, including its configuration and integration into the existing framework.
- Updated the database schema to include DART-specific tables for disclosures and watchlists.
- Enhanced the backtesting and parameter search functionalities to support the DART strategy.
- Implemented new rules for browser verification and API interactions to ensure compliance with the updated DART strategy.

Impact:
- These additions expand the trading capabilities of the system, allowing for more comprehensive analysis and execution of DART-related strategies, while maintaining system integrity and performance.
This commit is contained in:
Your Name
2026-07-21 07:50:24 +09:00
parent 74db49149f
commit 61bec4bd1d
86 changed files with 4811 additions and 297 deletions

View File

@@ -95,7 +95,8 @@ class MomentumStrategy(BaseStrategy):
candles_raw.append(cur_d)
if len(candles_raw) < 6:
try:
self.ws.fill_gap([code])
# force: EXIT 후 _gap_filled 잔존 시에도 재채움 (봉부족 복구)
self.ws.fill_gap([code], force=True)
except Exception:
pass
return None
@@ -133,13 +134,16 @@ class MomentumStrategy(BaseStrategy):
params["slot_money"] = self.slot_money
reject, msg, sig = me.check_buy_signal_momentum_live(candles, params, state)
if reject:
# 갭보정 워밍업 중 — 전일시가 없음 로그 스팸 방지
if reject == "탈락-전일시가없음" and len(candles_raw) < min_need:
# 갭보정 워밍업 중 — 전일시가 없음·봉부족 시 force 재큐 (로그 스팸 전에 복구)
if reject in ("탈락-전일시가없음", "탈락-봉부족"):
try:
self.ws.fill_gap([code])
self.ws.fill_gap([code], force=True)
except Exception:
pass
return None
if reject == "탈락-전일시가없음" and len(candles_raw) < min_need:
return None
if reject == "탈락-봉부족":
return None
self.logger.info("🔍 [%s] %s %s: %s", reject, name, code, msg or "")
return None
if not sig: