1. evening.py MDD: peak=0 초기값 문제로 분모가 1이 되어 수천만% 출력
→ 초기자본(10,000,000) 기준 % 계산으로 변경
2. kis_client.py _request: ClientTimeout 미설정으로 SSL 연결이 무한 대기
→ total=10초 타임아웃 적용, 세마포 타임아웃 오류 방지
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- get_foreign_institution_rank: FHKST04430000(없는 서비스) → FHPTJ04400000(foreign-institution-total)
- get_sector_trend: FHKST03010100(일봉 오용) → FHPUP02100000(inquire-index-price) 15개 업종 다중 호출
- 두 함수 모두 실거래 API 테스트 통과 확인
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
재시작 간격이 짧을 때 발생하는 EGW00133(1분당 1회 제한) 오류를 방지하기 위해
토큰을 data/kis_token_{mode}.json에 저장하고 재시작 시 유효 토큰을 재사용한다.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- order_executor: _update_trade_exit에 pnl 계산 저장 추가
- main: 매수 시 positions DB INSERT, 매도 시 DELETE
- main: 재시작 시 DB에서 positions 복원 (_restore_positions_from_db)
- main.py: sleep 0.05/0.1 → 1.1초 (KIS rate limit 준수)
- main.py: 전일 날짜 계산 수정 (월요일→금요일), 인라인 주석 env 파싱, 장 중 재시작 즉시 루프 진입
- strategy/volatility_breakout.py: has_prev_data() 추가, 중복 수집 skip
- db/repository.py, order_executor.py: UPDATE ORDER BY → 서브쿼리 수정 (SQLite 호환)
- kis_client.py: get_balance TR ID VTTC8001R → VTTC8434R
- test_connection.py: API 호출 간 sleep 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>