def get_market_ohlcv_by_date(fromdate, todate, ticker, freq='d', adjusted=True): """ :param fromdate: 조회 시작 일자 (YYYYMMDD) :param todate : 조회 종료 일자 (YYYYMMDD) :param ticker : 조회할 종목의 티커 :param freq : d - 일 / m - 월 / y - 년 :param adjusted: 수정 종가 여부 (True/False) :return: """ if isinstance(fromdate, datetime.datetime): fromdate = _datetime2string(fromdate) if isinstance(todate, datetime.datetime): todate = _datetime2string(todate) if adjusted: df = naver.get_market_ohlcv_by_date(fromdate, todate, ticker) else: df = krx.get_market_ohlcv_by_date(fromdate, todate, ticker) how = {'시가': 'first', '고가': 'max', '저가': 'min', '종가': 'last', '거래량': 'sum'} return resample_ohlcv(df, freq, how)
def __get_business_days_0(year: int, month: int): strt = f"{year}{month:02}01" if month == 12: last = f"{year+1}0101" else: last = f"{year}{month+1:02}01" df = krx.get_market_ohlcv_by_date(strt, last, "000020") cond = df.index.month[0] == df.index.month return df.index[cond].to_list()
def get_market_ohlcv_by_date(fromdate: str, todate: str, ticker: str, freq: str = 'd', adjusted: bool = True, name_display: bool = False) -> DataFrame: """특정 종목의 일자별로 정렬된 OHLCV Args: fromdate (str ): 조회 시작 일자 (YYYYMMDD) todate (str ): 조회 종료 일자 (YYYYMMDD) ticker (str ): 조회할 종목의 티커 freq (str, optional): d - 일 / m - 월 / y - 년 adjusted (bool, optional): 수정 종가 여부 (True/False) name_display (bool, optional): columns의 이름 출력 여부 (True/False) Returns: DataFrame: 시가 고가 저가 종가 거래량 날짜 2019-02-25 77300 77600 74800 75400 2865712 2019-02-26 75000 75900 74100 75200 2483512 2019-02-27 75300 75700 73700 73700 2864044 2019-02-28 72500 72600 69900 70000 7869451 """ if isinstance(fromdate, datetime.datetime): fromdate = _datetime2string(fromdate) if isinstance(todate, datetime.datetime): todate = _datetime2string(todate) if adjusted: df = naver.get_market_ohlcv_by_date(fromdate, todate, ticker) else: df = krx.get_market_ohlcv_by_date(fromdate, todate, ticker) if name_display: df.columns.name = get_market_ticker_name(ticker) how = {'시가': 'first', '고가': 'max', '저가': 'min', '종가': 'last', '거래량': 'sum'} return resample_ohlcv(df, freq, how)
def __get_business_days_1(strt: str, last: str): df = krx.get_market_ohlcv_by_date(strt, last, "000020") return df.index.to_list()