feat: 시스템 외 매입 종목 stop-loss/take-profit 활성화 (pchs_avg_pric 반영) (#249) #250

Merged
jihoson merged 1 commits from feature/issue-249-avg-price-sync into main 2026-02-25 02:20:03 +09:00
Collaborator

Summary

  • sync_positions_from_broker()에서 price=0.0 하드코딩으로 인해 외부 매수 종목에 stop-loss/take-profit이 비활성화되던 문제를 수정
  • KIS API balance output1의 pchs_avg_pric (매입평균가격) 필드를 추출하는 _extract_avg_price_from_balance() 헬퍼 추가
  • sync_positions_from_broker()avg_priceprice 필드로 저장하도록 수정

Changes

  • src/main.py: _extract_avg_price_from_balance() 헬퍼 추가 (line ~327), sync_positions_from_broker() price 인자 수정
  • tests/test_main.py: TestExtractAvgPriceFromBalance 단위 테스트 11개 + TestSyncPositionsFromBroker 통합 테스트 3개 추가

Test plan

  • TestExtractAvgPriceFromBalance — 11개 단위 테스트 (domestic/overseas 정상, 필드 없음, 빈 문자열, 종목 미존재, 빈 리스트, output1 dict, 대소문자, 비숫자, 복수 종목)
  • TestSyncPositionsFromBroker 통합 테스트 3개 — domestic/overseas avg_price 반영, fallback 0.0
  • 기존 테스트 882개 모두 통과 (기존 실패 3개는 test_overseas_broker.py TR_ID 관련, 이번 변경과 무관)
  • 전체 커버리지 78% (기존과 동일)

Closes #249

🤖 Generated with Claude Code

## Summary - `sync_positions_from_broker()`에서 `price=0.0` 하드코딩으로 인해 외부 매수 종목에 stop-loss/take-profit이 비활성화되던 문제를 수정 - KIS API balance output1의 `pchs_avg_pric` (매입평균가격) 필드를 추출하는 `_extract_avg_price_from_balance()` 헬퍼 추가 - `sync_positions_from_broker()`가 `avg_price`를 `price` 필드로 저장하도록 수정 ## Changes - `src/main.py`: `_extract_avg_price_from_balance()` 헬퍼 추가 (line ~327), `sync_positions_from_broker()` price 인자 수정 - `tests/test_main.py`: `TestExtractAvgPriceFromBalance` 단위 테스트 11개 + `TestSyncPositionsFromBroker` 통합 테스트 3개 추가 ## Test plan - [x] `TestExtractAvgPriceFromBalance` — 11개 단위 테스트 (domestic/overseas 정상, 필드 없음, 빈 문자열, 종목 미존재, 빈 리스트, output1 dict, 대소문자, 비숫자, 복수 종목) - [x] `TestSyncPositionsFromBroker` 통합 테스트 3개 — domestic/overseas avg_price 반영, fallback 0.0 - [x] 기존 테스트 882개 모두 통과 (기존 실패 3개는 test_overseas_broker.py TR_ID 관련, 이번 변경과 무관) - [x] 전체 커버리지 78% (기존과 동일) Closes #249 🤖 Generated with [Claude Code](https://claude.com/claude-code)
agentson added 1 commit 2026-02-25 02:18:25 +09:00
feat: 시스템 외 매입 종목에 pchs_avg_pric 반영 (#249)
Some checks failed
CI / test (pull_request) Has been cancelled
ce5ea5abde
sync_positions_from_broker()에서 price=0.0 하드코딩으로 인해
stop-loss/take-profit이 외부 매수 종목에 작동하지 않던 문제를 수정한다.

- _extract_avg_price_from_balance() 헬퍼 추가 (pchs_avg_pric 추출)
- sync_positions_from_broker()에서 avg_price를 price 필드에 저장
- TestExtractAvgPriceFromBalance 단위 테스트 11개 추가
- TestSyncPositionsFromBroker 통합 테스트 3개 추가 (price 검증)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
jihoson merged commit ffdb99c6c7 into main 2026-02-25 02:20:03 +09:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jihoson/The-Ouroboros#250