Files
kis_bot/kiwoom_rest_api/koreanstock/investor.py
2026-03-17 12:33:30 +09:00

116 lines
3.1 KiB
Python

from typing import Dict, Optional, Any
from kiwoom_rest_api.core.sync_client import make_request
def get_investor_trend(
stock_code: str,
period: str = "D",
start_date: Optional[str] = None,
end_date: Optional[str] = None,
access_token: Optional[str] = None,
) -> Dict[str, Any]:
"""
투자자별 매매동향 (KA-STOCK-013)
Args:
stock_code: 종목코드 (6자리)
period: 기간분류코드 (D:일봉, W:주봉, M:월봉)
start_date: 조회 시작 날짜 (YYYYMMDD)
end_date: 조회 끝 날짜 (YYYYMMDD)
access_token: OAuth 액세스 토큰
Returns:
투자자별 매매동향 데이터
"""
endpoint = "/stock/investor"
params = {
"FID_COND_MRKT_DIV_CODE": "J",
"FID_INPUT_ISCD": stock_code,
"FID_PERIOD_DIV_CODE": period,
}
if start_date:
params["FID_INPUT_DATE_1"] = start_date
if end_date:
params["FID_INPUT_DATE_2"] = end_date
return make_request(
endpoint=endpoint,
params=params,
access_token=access_token,
)
def get_market_investor_trend(
market_code: str = "0",
period: str = "D",
start_date: Optional[str] = None,
end_date: Optional[str] = None,
access_token: Optional[str] = None,
) -> Dict[str, Any]:
"""
전체 시장별 투자자 매매동향 (KA-STOCK-014)
Args:
market_code: 시장분류코드 (0:전체, 1:코스피, 2:코스닥)
period: 기간분류코드 (D:일봉, W:주봉, M:월봉)
start_date: 조회 시작 날짜 (YYYYMMDD)
end_date: 조회 끝 날짜 (YYYYMMDD)
access_token: OAuth 액세스 토큰
Returns:
시장별 투자자 매매동향 데이터
"""
endpoint = "/stock/investor/market"
params = {
"FID_COND_MRKT_DIV_CODE": market_code,
"FID_PERIOD_DIV_CODE": period,
}
if start_date:
params["FID_INPUT_DATE_1"] = start_date
if end_date:
params["FID_INPUT_DATE_2"] = end_date
return make_request(
endpoint=endpoint,
params=params,
access_token=access_token,
)
def get_program_trading(
market_code: str = "0",
start_date: Optional[str] = None,
end_date: Optional[str] = None,
access_token: Optional[str] = None,
) -> Dict[str, Any]:
"""
프로그램 매매현황 (KA-STOCK-015)
Args:
market_code: 시장분류코드 (0:전체, 1:코스피, 2:코스닥)
start_date: 조회 시작 날짜 (YYYYMMDD)
end_date: 조회 끝 날짜 (YYYYMMDD)
access_token: OAuth 액세스 토큰
Returns:
프로그램 매매현황 데이터
"""
endpoint = "/stock/program"
params = {
"FID_COND_MRKT_DIV_CODE": market_code,
}
if start_date:
params["FID_INPUT_DATE_1"] = start_date
if end_date:
params["FID_INPUT_DATE_2"] = end_date
return make_request(
endpoint=endpoint,
params=params,
access_token=access_token,
)