Add NH(나무) broker integration and fix balance/holds parsing
- finestock/nh/: Nh/NhV 브로커 클래스 추가 (시세/주문/잔고/실시간 WS)
- api_factory.py, path.py: APIProvider.NH/NHV 등록, 도메인/엔드포인트 매핑
- kis.py: get_holds/get_ohlcv_min/get_index_min/get_stock_list 스텁 추가,
oauth() Content-Type 헤더 수정
- get_balance()의 실전 디버깅으로 드러난 버그 수정:
- Hold.total(매입금액)이 존재하지 않는 byn_amt 필드를 참조해 항상 0이던 것을
eal_amt - eal_pls_amt로 계산하도록 수정
- rsp_cd를 "00000" 단일 값으로만 성공 판정해 정상 응답('00218' 연속조회 중,
'00166' 마지막 페이지 등)을 실패로 오판하던 것을 Output_0 존재 여부로 판정
- 응답 헤더의 cts/cts_flag로 연속조회를 재귀 처리해 10건 넘는 보유종목도
전부 합쳐서 반환하도록 구현
- doc/, tests/, example_*.py, setup.py, requirements.txt, CLAUDE.md 등 추가
- README.md에 .env 환경변수 설정 가이드 추가
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01225Lu4Fc2UpMz6QixEcNT8
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# finestock 예제 스크립트(example.py, example_async.py 등)에서 사용하는 환경변수 템플릿.
|
||||
# 이 파일을 복사해 .env 로 저장한 뒤 실제 값을 채워 넣으세요. .env는 .gitignore에 의해
|
||||
# 커밋되지 않습니다. 절대 실제 키/시크릿/토큰 값을 이 파일(.env.example)에 직접 채워
|
||||
# 커밋하지 마세요 — 이 파일은 어떤 값이 필요한지 보여주는 템플릿일 뿐입니다.
|
||||
#
|
||||
# 사용 예 (PowerShell):
|
||||
# $env:APP_KEY = "..."
|
||||
# $env:APP_SECRET = "..."
|
||||
#
|
||||
# 사용 예 (python-dotenv 등으로 .env 파일을 직접 로드하는 경우):
|
||||
# from dotenv import load_dotenv; load_dotenv()
|
||||
|
||||
# 브로커 앱 키 / 시크릿 (LS/EBest/KIS/Kiwoom/NH 공통 — 사용하는 브로커의 개발자 콘솔에서 발급)
|
||||
APP_KEY=YOUR_APP_KEY
|
||||
APP_SECRET=YOUR_APP_SECRET
|
||||
|
||||
# 계좌번호 (앞자리/뒤 2자리 구분이 필요한 브로커의 경우)
|
||||
ACCOUNT_NUM=YOUR_ACCOUNT_NUM
|
||||
ACCOUNT_NUM_SUB=01
|
||||
|
||||
# 이미 발급받은 access_token을 재사용하고 싶을 때만 채운다(선택 사항).
|
||||
# 보통은 비워두고 코드에서 api.oauth()를 호출해 새로 발급받는 편을 권장.
|
||||
ACCESS_TOKEN=
|
||||
Reference in New Issue
Block a user