Skip to content

fix: reconcile executed portfolio returns and reduce calculation cost - #75

Merged
kyj0503 merged 1 commit into
devfrom
feature/calculation-correctness
Oct 25, 2026
Merged

kyj0503 merged 1 commit into
devfrom
feature/calculation-correctness

Conversation

@kyj0503

@kyj0503 kyj0503 commented Oct 25, 2026

Copy link
Copy Markdown
Owner

휴장일에 DCA가 지연되면 이후 납입 요일도 이동하고, 체결되지 않은 예정 납입액까지 원금에 포함해 고정가에서도 -33.33% 손실이 발생했습니다. 예정 달력과 실제 납입을 분리하고, 전체 시뮬레이션의 USD 체결 원장으로 개별 수익률·평가액·거래 로그를 생성합니다.

  • 수수료·환율·리밸런싱 자금 이동을 반영하며 개별 최종 평가액 합계가 전체와 일치합니다.
  • 통화 정보 누락과 잘못된/미래 환율을 거부하고, 보합일 하락 연속 집계와 Sharpe 산식을 수정합니다.
  • 중복 Yahoo 메타데이터 조회·응답용 DCA 재실행·평가 곡선 iterrows를 제거하고 실제 실행 시간을 측정합니다.
  • 요청·라우트·Turnstile·DB 스키마·기존 기술 전략 수수료 모델을 유지합니다. 새 런타임 시크릿은 없습니다.

검증: Docker BE 단위 579개 + golden master 1개, 별도 런타임 HTTP의 6개 전략·휴장일 DCA·USD/KRW/현금·네 조회, 실제 로컬 웹 계산, 의존성 감사와 스키마 정합성 통과. 기존 반례는 수정 전에 8개 테스트로 실패를 확인했고 독립 회귀 테스트를 총 21개 추가했습니다.

동일 호스트/2 CPU/2GiB/합성 시세/3회 중앙값에서 20종목·10년 DCA+리밸런싱은 2.889→1.734초, SMA는 2.519→1.088초였습니다. DB·외부 API·HTTP 전송을 제외한 로컬 측정입니다. 최대 프로세스 RSS는 216→228MiB입니다. 자세한 근거는 docs/reviews/calculation-performance-2026-10-25.md에 있습니다.

@kyj0503
kyj0503 merged commit 857d0d9 into dev Oct 25, 2026
3 checks passed
@kyj0503
kyj0503 deleted the feature/calculation-correctness branch October 25, 2026 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant