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>
5.4 KiB
5.4 KiB
req-077: 중장기 인스턴스 운영 프로파일 — 표준 TOML 레시피 + 기동 검증
- Status: Implemented
- Type: Configuration
- Priority: High
- Owner: project maintainers
Intent
- 중장기 매매 전략용 인스턴스의 표준 운영 프로파일(TOML 레시피)을 정의하고 실 데몬 기동으로 검증한다. 멀티데이 보유가 장 마감·일자 경계·재시작을 넘어 유지되고 자율 청산이 발화하지 않음을 보장하는 설정 조합을 확정한다. (dcy-027 FR-1, OQ-1 (a′) — 기존 슬롯 도메인 + 프로파일 추가)
Requirement
- 중장기 인스턴스 표준 TOML 프로파일을 예시 파일(
config/longterm.example.toml또는 동등)로 제공한다. 프로파일 구성:instance_key(예: longterm, 당일 인스턴스와 분리 — dcy-027 A-2 확정),safety_sell_enabled = false(REQ-048 CHG/dcy-024),watchdog_timeout_sec = 1800이상(REQ-076),max_active_slots(REQ-060), market-close 강제 청산 미적용(envTREX_MARKET_CLOSE_LIQUIDATION_TIME미설정 전제 명시). - 이 프로파일로 기동한 데몬에서 매수 체결 후 보유가 일자 경계·재시작을 넘어 유지되고(영구 슬롯, dcy-020 토대) 자율 청산(safety-sell/market-close/forced_close)이 발화하지 않음을 검증한다.
- 당일 인스턴스와 같은 PostgreSQL·RabbitMQ 인프라에서 병행 운영 시 슬롯·큐 스코프가 간섭하지 않아야 한다(dcy-027 NFR-2 — instance_key 격리).
Acceptance Criteria
- Given 중장기 프로파일 TOML(safety_sell_enabled=false, watchdog_timeout_sec≥1800, max_active_slots, 독립 instance_key), When 데몬 기동, Then
trex-safety-sell워커 미기동(WARNING 로그) + watchdog timeout 1800s 적용 + 독립 큐(trex.slots.req.longterm등) 선언이 확인된다. - Given 기동된 중장기 인스턴스에서 paper 매수 체결(holding), When 일자 경계 통과·데몬 재시작, Then 슬롯이 holding 을 유지하고 자율 청산이 발화하지 않는다.
- Given 당일 인스턴스(safety_sell_enabled=true)와 중장기 인스턴스 병행, When 양쪽 기동·운영, Then 슬롯(instance_key 스코프)·큐(per-instance 큐명) 간섭이 없다(기존 instance 격리 테스트 패턴으로 검증).
- Given 예시 프로파일 파일, When 저장소 확인, Then 표준 레시피와 각 키의 중장기 의미(왜 false/1800s 인지) 주석이 포함되어 운영자가 복제 사용 가능하다.
Impacted Area
- Docs: config/longterm.example.toml(신규 또는 instance.example.toml 확장), docs/runtime-flows.md·docs/project-structure.md(REQ-078 정합)
- Modules: 신규 코드 없음 목표 — 기존 설정 메커니즘(REQ-048/060/076 + dcy-024) 조합. 검증 과정에서 갭 발견 시 해당 REQ change-req
- Tests: 프로파일 기동 검증(설정 조합 단위) + instance 격리 통합(기존
test_instance_topology.py패턴 확장)
Notes
- 출처: dcy-027 FR-1, S-1, A-2(별도 instance_key 확정), NFR-2(무간섭 — AC-3 흡수).
- 보호 규칙은 전략 모듈 전적 책임(dcy-027 OQ-2) — 코어는 운영자 CLI
exit백스톱만 제공. 프로파일은 이를 전제로 한 "보호장치 OFF" 구성이며 경계 명시는 REQ-078 소관. forced_close_at은 중장기 인스턴스에서 미사용(dcy-027 CONFIRM) — 프로파일 주석에 명시.- REQ-076(watchdog TOML) 선행 의존 — 같은 batch 에서 함께 구현.
Change Log
CHG-20260612-01
- Date: 2026-06-12
- Author: Justin Ko
Change Summary
- dcy-027 FR-1/S-1 로부터 최초 생성(Proposed). 중장기 표준 TOML 프로파일 + 기동·멀티데이·격리 검증.
Intent
- 중장기 인스턴스를 재현 가능한 표준 레시피로 운영 가능하게 backlog 정규화.
Acceptance Criteria Delta
- Added: 기동 구성 확인/멀티데이 보유 유지/병행 무간섭/예시 파일 4개 기준
- Updated: 없음
- Removed: 없음
Impacted Area Delta
- Docs: longterm.example.toml + baseline(REQ-078)
- Modules: 신규 코드 없음 목표(기존 메커니즘 조합)
- Tests: 프로파일 기동 + instance 격리
Delivery Trace Delta
- Batches: none
- Releases: none
Revalidation Impact
- Reverification Needed: no
- Existing Implementation Invalidated: no
- Status Recommendation: keep-current
- Follow-up Action: confirm-req 후 batch 편성(REQ-076 과 동일 batch)
Validation Plan
- 프로파일 TOML 로딩 + 워커 미기동 + watchdog 적용 단위, paper 매수→재시작 holding 유지, instance 격리 통합 테스트.
CHG-20260612-02
- Date: 2026-06-12
- Author: Justin Ko
- Type: status
- Summary: Proposed → Approved (confirm-req). 필수 필드·구체 AC 충족, source dcy-027 정합. REQ-076 의존은 동일 batch 편성으로 해소 예정 — blocker 아님.
CHG-20260612-03
- Date: 2026-06-12
- Author: Justin Ko
- Type: status
- Summary: Approved → Implemented (confirm-req-implemented). 근거: BAT-041(release-candidate) verification — AC-1/4 프로파일 조합 로딩 테스트(
config/longterm.example.toml— longterm·safety_sell false·1800·cap 10) PASSED, AC-2 멀티데이 보유는 영구 슬롯 영속(BAT-027~030)·워커 미기동(BAT-036) 기존 evidence + 조합 설정 검증, AC-3 무간섭은 인스턴스 독립 테스트 + 기존 격리 회귀. 실 데몬 장기 run 은 release 운영 검증 위임(verification 명시). 446 passed. Blocking Issues 없음.