docs(discovery): dcy-027 모든 OQ Answered — 중장기 슬롯 운영 결정 완료

OQ-1: (a′) 기존 슬롯 도메인 유지 + 운영 프로파일/규칙 추가 (PositionBook 불필요)
OQ-2: safety_sell_enabled=false → 코어 손절매 루틴 없음, 전략 모듈 전적 책임
OQ-3: per-instance watchdog_timeout_sec 연장 (1800s 이상 권장), 알림은 후속 Discovery
OQ-4: 중장기 전략 폴링 주기 최소 1분·최대 10분

feat(bat-041): REQ-076/077/078 — watchdog timeout TOML + 중장기 운영 프로파일 + baseline

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 22:19:33 +09:00
co-authored by Claude Sonnet 4.6
parent d737467d70
commit 6786ffd05d
16 changed files with 634 additions and 44 deletions
+41
View File
@@ -0,0 +1,41 @@
# trex-core long-term (multi-day) instance profile (dcy-027 / REQ-077).
# Copy to e.g. config/longterm.toml and run alongside the intraday daemon:
# trex-core-daemon --config config/longterm.toml
# Real per-instance files are gitignored (they hold the portfolio-hub token).
#
# This profile assumes the strategy module owns ALL protection rules
# (stop-loss / trailing / time-stop — dcy-027 OQ-2). The core provides no
# autonomous liquidation for this instance; the only core-side backstop is
# the operator CLI: trex-core exit <slot>
# Long-term instances MUST use their own instance_key so slots (DB scope) and
# queues (trex.slots.req.<key> etc) never interfere with the intraday daemon
# (dcy-027 A-2; dcy-009 topology).
instance_key = "longterm"
# portfolio-hub auth token (kept out of .env).
portfolio_hub_token = ""
trading_timezone = "Asia/Seoul"
# FCFS admission cap M for this instance (REQ-060). Size to the long-term
# portfolio's target position count.
max_active_slots = 10
# dcy-024 / REQ-048: long-term holdings must survive market close, day
# boundaries and restarts — disable the autonomous safety-sell worker
# (stop-loss / forced_close / market-close loops are all OFF).
# NOTE: forced_close_at is therefore meaningless on this instance (dcy-027
# CONFIRM) — its executor never runs here. Do not set it on long-term slots.
safety_sell_enabled = false
# dcy-027 / REQ-076: long-term strategies poll every 1-10 min (OQ-4), so the
# intraday default (120s, env TREX_WATCHDOG_TIMEOUT) would mark them expired
# all day. 1800s (30 min) keeps `watchdog.expired` a meaningful absence
# signal while last_seen stays visible in slots RPC rows.
watchdog_timeout_sec = 1800
# Environment note (not TOML keys): do NOT set TREX_MARKET_CLOSE_LIQUIDATION_TIME
# for this instance's daemon — market-close liquidation is an intraday concept.
# (With safety_sell_enabled=false the loop is off anyway; leaving the env unset
# keeps the intent explicit.)