sharebook-kr / pykrx

KRX 주식 정보 스크래핑
693 stars 240 forks source link

장이 열리지 않았을때 krx API 리턴값 문제 #49

Closed seoyeonhwng closed 3 years ago

seoyeonhwng commented 3 years ago

장이 열리지 않았을때 krx API 리턴값이 변경된 듯 합니다. 그에 따라 아래와 같은 문제가 발생합니다.

image

mr-yoo commented 3 years ago

https://github.com/sharebook-kr/pykrx/commit/0f8e572c53c70e7b2fb3003fcb4421764366d750 에서 언급하신 에러 처리를 추가했습니다.

>>> stock.get_market_ohlcv_by_ticker("20210122") 
            종목명      시가      고가      저가      종가      거래량         거래대금
티커
095570   AJ네트웍스    4190    4245    4160    4210   216835    910274405
006840     AK홀딩스   25750   29550   25600   29100   727088  20462325950
027410         BGF    5020    5250    4955    5220  1547629   7990770515
282330    BGF리테일  156500  156500  151500  152000    62510   9555364000
>>> stock.get_market_ohlcv_by_ticker("20210123") 
            종목명  시가  고가  저가  종가  거래량  거래대금
티커
095570   AJ네트웍스   0   0   0   0    0     0
006840    AK홀딩스   0   0   0   0    0     0
027410      BGF   0   0   0   0    0     0
282330   BGF리테일   0   0   0   0    0     0

티커 목록도 정상 반환합니다.

>>> stock.get_market_ticker_list("20210123")
['095570', '006840', '027410', '282330', '138930',  ...]

참고로 날짜는 YYMMDD 형식으로 입력해야 합니다.


코드는 merge 했고 pykrx 모듈은 7일내로 업데이트 될 예정입니다.

seoyeonhwng commented 3 years ago

감사합니다!

다만 궁금한 것이 있어서 질문 남깁니다. 업데이트 이전에는 get_market_ticker_list를 호출시 해당 날짜가 휴일인 경우 빈 배열을 리턴하였는데 업데이트된 버젼에서는 휴일이어도 티커 목록을 반환하는 것으로 바뀐걸까요?

mr-yoo commented 3 years ago

@seoyeonhwng

최근 웹서버가 리뉴얼되면서 (http://data.krx.co.kr/contents/MDC/MAIN/main/index.cmd) 반환하는 값이 변경됐습니다. 기존에는 비어있는 값 (에러)를 반환했다면 리뉴얼 후로는 가격 데이터만 비어있는 티커들의 정보를 반환해 줘서 휴일이라도 티커 조회가 가능해 졌습니다.

mr-yoo commented 3 years ago

언급 해주신 내용을 반영해서 v.1.0.7을 release 했습니다.

1) 하나의 날짜를 입력하는 get_index_price_change_by_ticker와 같은 API 휴일을 요청할 경우 서버가 값을 전달한다면 올바른 값을, 그렇지 않다면 비어있는 DataFrame을 반환 2) 기간을 입력하는 get_market_ohlcv_by_date와 같은 API 기간 내의 평일 데이터를 조회하도록 수정

주식/인덱스/공매도 API에 주말 관련된 테스트를 추가했습니다.

빠진 것도 있을 수 있는데 차차 개선해 나가겠습니다.