커서가 망쳐놓은 듯
This commit is contained in:
507
kiwoom_rest_api/koreanstock/sector.py
Normal file
507
kiwoom_rest_api/koreanstock/sector.py
Normal file
@@ -0,0 +1,507 @@
|
||||
from kiwoom_rest_api.core.base_api import KiwoomBaseAPI
|
||||
from typing import Union, Dict, Any, Awaitable
|
||||
|
||||
class Sector(KiwoomBaseAPI):
|
||||
"""한국 주식 섹터 관련 API를 제공하는 클래스"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
base_url: str = None,
|
||||
token_manager=None,
|
||||
use_async: bool = False,
|
||||
resource_url: str = "/api/dostk/sect"
|
||||
):
|
||||
"""
|
||||
Sector 클래스 초기화
|
||||
|
||||
Args:
|
||||
base_url (str, optional): API 기본 URL
|
||||
token_manager: 토큰 관리자 객체
|
||||
use_async (bool): 비동기 클라이언트 사용 여부 (기본값: False)
|
||||
"""
|
||||
super().__init__(
|
||||
base_url=base_url,
|
||||
token_manager=token_manager,
|
||||
use_async=use_async,
|
||||
resource_url=resource_url
|
||||
)
|
||||
|
||||
|
||||
def industry_program_trading_request_ka10010(
|
||||
self,
|
||||
stock_code: str,
|
||||
cont_yn: str = "N",
|
||||
next_key: str = "",
|
||||
) -> dict:
|
||||
"""업종프로그램매매를 조회합니다.
|
||||
|
||||
Args:
|
||||
stock_code (str): 종목코드 (거래소별 종목코드)
|
||||
- KRX: 039490
|
||||
- NXT: 039490_NX
|
||||
- SOR: 039490_AL
|
||||
cont_yn (str, optional): 연속조회여부. Defaults to "N".
|
||||
next_key (str, optional): 연속조회키. Defaults to "".
|
||||
|
||||
Returns:
|
||||
dict: 업종프로그램매매 데이터
|
||||
{
|
||||
"dfrt_trst_sell_qty": str, # 차익위탁매도수량
|
||||
"dfrt_trst_sell_amt": str, # 차익위탁매도금액
|
||||
"dfrt_trst_buy_qty": str, # 차익위탁매수수량
|
||||
"dfrt_trst_buy_amt": str, # 차익위탁매수금액
|
||||
"dfrt_trst_netprps_qty": str, # 차익위탁순매수수량
|
||||
"dfrt_trst_netprps_amt": str, # 차익위탁순매수금액
|
||||
"ndiffpro_trst_sell_qty": str, # 비차익위탁매도수량
|
||||
"ndiffpro_trst_sell_amt": str, # 비차익위탁매도금액
|
||||
"ndiffpro_trst_buy_qty": str, # 비차익위탁매수수량
|
||||
"ndiffpro_trst_buy_amt": str, # 비차익위탁매수금액
|
||||
"ndiffpro_trst_netprps_qty": str, # 비차익위탁순매수수량
|
||||
"ndiffpro_trst_netprps_amt": str, # 비차익위탁순매수금액
|
||||
"all_dfrt_trst_sell_qty": str, # 전체차익위탁매도수량
|
||||
"all_dfrt_trst_sell_amt": str, # 전체차익위탁매도금액
|
||||
"all_dfrt_trst_buy_qty": str, # 전체차익위탁매수수량
|
||||
"all_dfrt_trst_buy_amt": str, # 전체차익위탁매수금액
|
||||
"all_dfrt_trst_netprps_qty": str, # 전체차익위탁순매수수량
|
||||
"all_dfrt_trst_netprps_amt": str, # 전체차익위탁순매수금액
|
||||
"return_code": int, # 응답코드
|
||||
"return_msg": str, # 응답메시지
|
||||
}
|
||||
|
||||
Example:
|
||||
>>> from kiwoom_rest_api import KiwoomRestAPI
|
||||
>>> api = KiwoomRestAPI()
|
||||
>>> result = api.sector.industry_program_trading_request_ka10010(
|
||||
... stock_code="005930"
|
||||
... )
|
||||
>>> print(result)
|
||||
"""
|
||||
headers = {
|
||||
"cont-yn": cont_yn,
|
||||
"next-key": next_key,
|
||||
"api-id": "ka10010",
|
||||
}
|
||||
|
||||
data = {
|
||||
"stk_cd": stock_code,
|
||||
}
|
||||
|
||||
return self._execute_request(
|
||||
"POST",
|
||||
json=data,
|
||||
headers=headers,
|
||||
)
|
||||
|
||||
def industrywise_investor_net_buy_request_ka10051(
|
||||
self,
|
||||
mrkt_tp: str,
|
||||
amt_qty_tp: str,
|
||||
stex_tp: str,
|
||||
base_dt: str = "",
|
||||
cont_yn: str = "N",
|
||||
next_key: str = "",
|
||||
) -> dict:
|
||||
"""업종별투자자순매수를 조회합니다.
|
||||
|
||||
Args:
|
||||
mrkt_tp (str): 시장구분 (코스피:0, 코스닥:1)
|
||||
amt_qty_tp (str): 금액수량구분 (금액:0, 수량:1)
|
||||
stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합)
|
||||
base_dt (str, optional): 기준일자 (YYYYMMDD). Defaults to "".
|
||||
cont_yn (str, optional): 연속조회여부. Defaults to "N".
|
||||
next_key (str, optional): 연속조회키. Defaults to "".
|
||||
|
||||
Returns:
|
||||
dict: 업종별투자자순매수 데이터
|
||||
{
|
||||
"inds_netprps": [
|
||||
{
|
||||
"inds_cd": str, # 업종코드
|
||||
"inds_nm": str, # 업종명
|
||||
"cur_prc": str, # 현재가
|
||||
"pre_smbol": str, # 대비부호
|
||||
"pred_pre": str, # 전일대비
|
||||
"flu_rt": str, # 등락율
|
||||
"trde_qty": str, # 거래량
|
||||
"sc_netprps": str, # 증권순매수
|
||||
"insrnc_netprps": str, # 보험순매수
|
||||
"invtrt_netprps": str, # 투신순매수
|
||||
"bank_netprps": str, # 은행순매수
|
||||
"jnsinkm_netprps": str, # 종신금순매수
|
||||
"endw_netprps": str, # 기금순매수
|
||||
"etc_corp_netprps": str, # 기타법인순매수
|
||||
"ind_netprps": str, # 개인순매수
|
||||
"frgnr_netprps": str, # 외국인순매수
|
||||
"native_trmt_frgnr_netprps": str, # 내국인대우외국인순매수
|
||||
"natn_netprps": str, # 국가순매수
|
||||
"samo_fund_netprps": str, # 사모펀드순매수
|
||||
"orgn_netprps": str, # 기관계순매수
|
||||
},
|
||||
...
|
||||
],
|
||||
"return_code": int, # 응답코드
|
||||
"return_msg": str, # 응답메시지
|
||||
}
|
||||
|
||||
Example:
|
||||
>>> from kiwoom_rest_api import KiwoomRestAPI
|
||||
>>> api = KiwoomRestAPI()
|
||||
>>> result = api.sector.industrywise_investor_net_buy_request_ka10051(
|
||||
... mrkt_tp="0",
|
||||
... amt_qty_tp="0",
|
||||
... stex_tp="3",
|
||||
... base_dt="20241107"
|
||||
... )
|
||||
>>> print(result)
|
||||
"""
|
||||
headers = {
|
||||
"cont-yn": cont_yn,
|
||||
"next-key": next_key,
|
||||
"api-id": "ka10051",
|
||||
}
|
||||
|
||||
data = {
|
||||
"mrkt_tp": mrkt_tp,
|
||||
"amt_qty_tp": amt_qty_tp,
|
||||
"base_dt": base_dt,
|
||||
"stex_tp": stex_tp,
|
||||
}
|
||||
|
||||
return self._execute_request(
|
||||
"POST",
|
||||
json=data,
|
||||
headers=headers,
|
||||
)
|
||||
|
||||
def industry_current_price_request_ka20001(
|
||||
self,
|
||||
mrkt_tp: str,
|
||||
inds_cd: str,
|
||||
cont_yn: str = "N",
|
||||
next_key: str = "",
|
||||
) -> dict:
|
||||
"""업종현재가를 조회합니다.
|
||||
|
||||
Args:
|
||||
mrkt_tp (str): 시장구분 (0:코스피, 1:코스닥, 2:코스피200)
|
||||
inds_cd (str): 업종코드
|
||||
- 001: 종합(KOSPI)
|
||||
- 002: 대형주
|
||||
- 003: 중형주
|
||||
- 004: 소형주
|
||||
- 101: 종합(KOSDAQ)
|
||||
- 201: KOSPI200
|
||||
- 302: KOSTAR
|
||||
- 701: KRX100
|
||||
- 나머지 업종코드 참고
|
||||
cont_yn (str, optional): 연속조회여부. Defaults to "N".
|
||||
next_key (str, optional): 연속조회키. Defaults to "".
|
||||
|
||||
Returns:
|
||||
dict: 업종현재가 데이터
|
||||
{
|
||||
"cur_prc": str, # 현재가
|
||||
"pred_pre_sig": str, # 전일대비기호
|
||||
"pred_pre": str, # 전일대비
|
||||
"flu_rt": str, # 등락률
|
||||
"trde_qty": str, # 거래량
|
||||
"trde_prica": str, # 거래대금
|
||||
"trde_frmatn_stk_num": str, # 거래형성종목수
|
||||
"trde_frmatn_rt": str, # 거래형성비율
|
||||
"open_pric": str, # 시가
|
||||
"high_pric": str, # 고가
|
||||
"low_pric": str, # 저가
|
||||
"upl": str, # 상한
|
||||
"rising": str, # 상승
|
||||
"stdns": str, # 보합
|
||||
"fall": str, # 하락
|
||||
"lst": str, # 하한
|
||||
"52wk_hgst_pric": str, # 52주최고가
|
||||
"52wk_hgst_pric_dt": str, # 52주최고가일
|
||||
"52wk_hgst_pric_pre_rt": str, # 52주최고가대비율
|
||||
"52wk_lwst_pric": str, # 52주최저가
|
||||
"52wk_lwst_pric_dt": str, # 52주최저가일
|
||||
"52wk_lwst_pric_pre_rt": str, # 52주최저가대비율
|
||||
"inds_cur_prc_tm": [ # 업종현재가_시간별
|
||||
{
|
||||
"tm_n": str, # 시간n
|
||||
"cur_prc_n": str, # 현재가n
|
||||
"pred_pre_sig_n": str, # 전일대비기호n
|
||||
"pred_pre_n": str, # 전일대비n
|
||||
"flu_rt_n": str, # 등락률n
|
||||
"trde_qty_n": str, # 거래량n
|
||||
"acc_trde_qty_n": str, # 누적거래량n
|
||||
"stex_tp": str, # 거래소구분
|
||||
},
|
||||
...
|
||||
],
|
||||
"return_code": int, # 응답코드
|
||||
"return_msg": str, # 응답메시지
|
||||
}
|
||||
|
||||
Example:
|
||||
>>> from kiwoom_rest_api import KiwoomRestAPI
|
||||
>>> api = KiwoomRestAPI()
|
||||
>>> result = api.sector.industry_current_price_request_ka20001(
|
||||
... mrkt_tp="0",
|
||||
... inds_cd="001"
|
||||
... )
|
||||
>>> print(result)
|
||||
"""
|
||||
headers = {
|
||||
"cont-yn": cont_yn,
|
||||
"next-key": next_key,
|
||||
"api-id": "ka20001",
|
||||
}
|
||||
|
||||
data = {
|
||||
"mrkt_tp": mrkt_tp,
|
||||
"inds_cd": inds_cd,
|
||||
}
|
||||
|
||||
return self._execute_request(
|
||||
"POST",
|
||||
json=data,
|
||||
headers=headers,
|
||||
)
|
||||
|
||||
def industrywise_stock_price_request_ka20002(
|
||||
self,
|
||||
mrkt_tp: str,
|
||||
inds_cd: str,
|
||||
stex_tp: str,
|
||||
cont_yn: str = "N",
|
||||
next_key: str = "",
|
||||
) -> dict:
|
||||
"""업종별주가를 조회합니다.
|
||||
|
||||
Args:
|
||||
mrkt_tp (str): 시장구분 (0:코스피, 1:코스닥, 2:코스피200)
|
||||
inds_cd (str): 업종코드
|
||||
- 001: 종합(KOSPI)
|
||||
- 002: 대형주
|
||||
- 003: 중형주
|
||||
- 004: 소형주
|
||||
- 101: 종합(KOSDAQ)
|
||||
- 201: KOSPI200
|
||||
- 302: KOSTAR
|
||||
- 701: KRX100
|
||||
- 나머지 업종코드 참고
|
||||
stex_tp (str): 거래소구분 (1:KRX, 2:NXT, 3:통합)
|
||||
cont_yn (str, optional): 연속조회여부. Defaults to "N".
|
||||
next_key (str, optional): 연속조회키. Defaults to "".
|
||||
|
||||
Returns:
|
||||
dict: 업종별주가 데이터
|
||||
{
|
||||
"inds_stkpc": [ # 업종별주가
|
||||
{
|
||||
"stk_cd": str, # 종목코드
|
||||
"stk_nm": str, # 종목명
|
||||
"cur_prc": str, # 현재가
|
||||
"pred_pre_sig": str, # 전일대비기호
|
||||
"pred_pre": str, # 전일대비
|
||||
"flu_rt": str, # 등락률
|
||||
"now_trde_qty": str, # 현재거래량
|
||||
"sel_bid": str, # 매도호가
|
||||
"buy_bid": str, # 매수호가
|
||||
"open_pric": str, # 시가
|
||||
"high_pric": str, # 고가
|
||||
"low_pric": str, # 저가
|
||||
},
|
||||
...
|
||||
],
|
||||
"return_code": int, # 응답코드
|
||||
"return_msg": str, # 응답메시지
|
||||
}
|
||||
|
||||
Example:
|
||||
>>> from kiwoom_rest_api import KiwoomRestAPI
|
||||
>>> api = KiwoomRestAPI()
|
||||
>>> result = api.sector.industrywise_stock_price_request_ka20002(
|
||||
... mrkt_tp="0",
|
||||
... inds_cd="001",
|
||||
... stex_tp="1"
|
||||
... )
|
||||
>>> print(result)
|
||||
"""
|
||||
headers = {
|
||||
"cont-yn": cont_yn,
|
||||
"next-key": next_key,
|
||||
"api-id": "ka20002",
|
||||
}
|
||||
|
||||
data = {
|
||||
"mrkt_tp": mrkt_tp,
|
||||
"inds_cd": inds_cd,
|
||||
"stex_tp": stex_tp,
|
||||
}
|
||||
|
||||
return self._execute_request(
|
||||
"POST",
|
||||
json=data,
|
||||
headers=headers,
|
||||
)
|
||||
|
||||
def all_industries_index_request_ka20003(
|
||||
self,
|
||||
inds_cd: str,
|
||||
cont_yn: str = "N",
|
||||
next_key: str = "",
|
||||
) -> dict:
|
||||
"""전업종지수를 조회합니다.
|
||||
|
||||
Args:
|
||||
inds_cd (str): 업종코드
|
||||
- 001: 종합(KOSPI)
|
||||
- 002: 대형주
|
||||
- 003: 중형주
|
||||
- 004: 소형주
|
||||
- 101: 종합(KOSDAQ)
|
||||
- 201: KOSPI200
|
||||
- 302: KOSTAR
|
||||
- 701: KRX100
|
||||
- 나머지 업종코드 참고
|
||||
cont_yn (str, optional): 연속조회여부. Defaults to "N".
|
||||
next_key (str, optional): 연속조회키. Defaults to "".
|
||||
|
||||
Returns:
|
||||
dict: 전업종지수 데이터
|
||||
{
|
||||
"all_inds_idex": [ # 전업종지수
|
||||
{
|
||||
"stk_cd": str, # 종목코드
|
||||
"stk_nm": str, # 종목명
|
||||
"cur_prc": str, # 현재가
|
||||
"pre_sig": str, # 대비기호
|
||||
"pred_pre": str, # 전일대비
|
||||
"flu_rt": str, # 등락률
|
||||
"trde_qty": str, # 거래량
|
||||
"wght": str, # 비중
|
||||
"trde_prica": str, # 거래대금
|
||||
"upl": str, # 상한
|
||||
"rising": str, # 상승
|
||||
"stdns": str, # 보합
|
||||
"fall": str, # 하락
|
||||
"lst": str, # 하한
|
||||
"flo_stk_num": str, # 상장종목수
|
||||
},
|
||||
...
|
||||
],
|
||||
"return_code": int, # 응답코드
|
||||
"return_msg": str, # 응답메시지
|
||||
}
|
||||
|
||||
Example:
|
||||
>>> from kiwoom_rest_api import KiwoomRestAPI
|
||||
>>> api = KiwoomRestAPI()
|
||||
>>> result = api.sector.all_industries_index_request_ka20003(
|
||||
... inds_cd="001"
|
||||
... )
|
||||
>>> print(result)
|
||||
"""
|
||||
headers = {
|
||||
"cont-yn": cont_yn,
|
||||
"next-key": next_key,
|
||||
"api-id": "ka20003",
|
||||
}
|
||||
|
||||
data = {
|
||||
"inds_cd": inds_cd,
|
||||
}
|
||||
|
||||
return self._execute_request(
|
||||
"POST",
|
||||
json=data,
|
||||
headers=headers,
|
||||
)
|
||||
|
||||
def industry_daily_current_price_request_ka20009(
|
||||
self,
|
||||
mrkt_tp: str,
|
||||
inds_cd: str,
|
||||
cont_yn: str = "N",
|
||||
next_key: str = "",
|
||||
) -> dict:
|
||||
"""업종현재가일별을 조회합니다.
|
||||
|
||||
Args:
|
||||
mrkt_tp (str): 시장구분 (0:코스피, 1:코스닥, 2:코스피200)
|
||||
inds_cd (str): 업종코드
|
||||
- 001: 종합(KOSPI)
|
||||
- 002: 대형주
|
||||
- 003: 중형주
|
||||
- 004: 소형주
|
||||
- 101: 종합(KOSDAQ)
|
||||
- 201: KOSPI200
|
||||
- 302: KOSTAR
|
||||
- 701: KRX100
|
||||
- 나머지 업종코드 참고
|
||||
cont_yn (str, optional): 연속조회여부. Defaults to "N".
|
||||
next_key (str, optional): 연속조회키. Defaults to "".
|
||||
|
||||
Returns:
|
||||
dict: 업종현재가일별 데이터
|
||||
{
|
||||
"cur_prc": str, # 현재가
|
||||
"pred_pre_sig": str, # 전일대비기호
|
||||
"pred_pre": str, # 전일대비
|
||||
"flu_rt": str, # 등락률
|
||||
"trde_qty": str, # 거래량
|
||||
"trde_prica": str, # 거래대금
|
||||
"trde_frmatn_stk_num": str, # 거래형성종목수
|
||||
"trde_frmatn_rt": str, # 거래형성비율
|
||||
"open_pric": str, # 시가
|
||||
"high_pric": str, # 고가
|
||||
"low_pric": str, # 저가
|
||||
"upl": str, # 상한
|
||||
"rising": str, # 상승
|
||||
"stdns": str, # 보합
|
||||
"fall": str, # 하락
|
||||
"lst": str, # 하한
|
||||
"52wk_hgst_pric": str, # 52주최고가
|
||||
"52wk_hgst_pric_dt": str, # 52주최고가일
|
||||
"52wk_hgst_pric_pre_rt": str, # 52주최고가대비율
|
||||
"52wk_lwst_pric": str, # 52주최저가
|
||||
"52wk_lwst_pric_dt": str, # 52주최저가일
|
||||
"52wk_lwst_pric_pre_rt": str, # 52주최저가대비율
|
||||
"inds_cur_prc_daly_rept": [ # 업종현재가_일별반복
|
||||
{
|
||||
"dt_n": str, # 일자n
|
||||
"cur_prc_n": str, # 현재가n
|
||||
"pred_pre_sig_n": str, # 전일대비기호n
|
||||
"pred_pre_n": str, # 전일대비n
|
||||
"flu_rt_n": str, # 등락률n
|
||||
"acc_trde_qty_n": str, # 누적거래량n
|
||||
},
|
||||
...
|
||||
],
|
||||
"return_code": int, # 응답코드
|
||||
"return_msg": str, # 응답메시지
|
||||
}
|
||||
|
||||
Example:
|
||||
>>> from kiwoom_rest_api import KiwoomRestAPI
|
||||
>>> api = KiwoomRestAPI()
|
||||
>>> result = api.sector.industry_daily_current_price_request_ka20009(
|
||||
... mrkt_tp="0",
|
||||
... inds_cd="001"
|
||||
... )
|
||||
>>> print(result)
|
||||
"""
|
||||
headers = {
|
||||
"cont-yn": cont_yn,
|
||||
"next-key": next_key,
|
||||
"api-id": "ka20009",
|
||||
}
|
||||
|
||||
data = {
|
||||
"mrkt_tp": mrkt_tp,
|
||||
"inds_cd": inds_cd,
|
||||
}
|
||||
|
||||
return self._execute_request(
|
||||
"POST",
|
||||
json=data,
|
||||
headers=headers,
|
||||
)
|
||||
Reference in New Issue
Block a user