[코인]나만의 차트 및 데이터 추출방법 (2)

2025. 1. 5. 15:29코인이야기/PYTHON

 

업비트 API를 활용해 코인 데이터를 추출하고 분석하는 방법을 소개합니다. 아래 단계별 가이드를 통해 필요한 데이터를 효율적으로 수집하고, 이를 활용해 투자에 도움이 되는 분석 환경을 구축할 수 있습니다.

 

1. 해당 사항을 추출하기 위하여 업비트에서 필요한 API키를 발급받습니다. 

 - 링크

1. 업비트 Open API 키 발급

API를 사용하기 위해 업비트 Open API 키를 발급받아야 합니다. 키 발급은 간단하며 아래 링크를 통해 가이드를 참고하세요.
링크

 

업비트 Open API 신청하는 방법 가이드 (키 발급)

업비트 Open API 키 발급가상화폐 거래소 업비트(Upbit)의 Open API를 사용하기 위해서는 API 호출을 위한 키 값을 발급받아야 합니다. 본 글에서는 키 값을 발급 받는 방법에 대해 하나씩 소개합니다. 

bluemiv.tistory.com

 

주요 내용:

  • 업비트 Open API 키 발급 절차를 상세히 설명.
  • 발급받은 키는 API 호출 시 필수적으로 사용.

 

2. Ticker(종목) 데이터 가져오기

업비트 API를 사용해 코인 종목 데이터를 가져옵니다.
아래 GitHub 리포지토리는 업비트 API를 Python으로 간편하게 사용할 수 있도록 도와줍니다.
GitHub - pyupbit

 

GitHub - sharebook-kr/pyupbit: python wrapper for upbit API

python wrapper for upbit API . Contribute to sharebook-kr/pyupbit development by creating an account on GitHub.

github.com

저의 경우 데이터베이스에 데이터를 저장하였습니다.

 

3. 필요한 Python 모듈 설치

데이터를 처리하기 위해 아래 라이브러리를 설치합니다.

 

pip install pyupbit # 업비트 API 활용

pip install pymysql # MySQL 데이터베이스와 연동

pip install pandas_ta # 기술적 지표 분석

pip install finta # 금융 데이터 분석

사용 라이브러리:

  • pandas_ta: 다양한 기술적 지표를 제공.
  • finta: 금융 데이터 처리 및 분석.

4. Ticker 데이터 추출 및 4시간봉 데이터 가져오기

 

업비트에서 4시간봉 데이터를 API를 통해 추출합니다. 아래는 ticker 데이터를 데이터베이스에 저장하고 4시간봉 데이터를 가져오는 코드 샘플입니다.

 

 

def getTickerInfo_N100(self):
    tickers = self.UTBDO.getTickerList_N700_N1(self.action, self.cnt, self.AD)
    self.ticker_count = len(tickers)
    for ticker in tickers:
        print(ticker)
        self.getDataFrameInsert(ticker, "4H")
        time.sleep(0.2)

def getDataFrameInsert(self, ticker, flag):
    try:
        self.flag = flag
        self.get_cnt = 1000

        if self.flag == "4H":
            self.df = pyupbit.get_ohlcv(ticker, "minute240", self.get_cnt)
        elif self.flag == "1D":
            self.df = pyupbit.get_ohlcv(ticker, "day", self.get_cnt)

        print(self.df)
        self.setDataFrameInsert(ticker, self.df)

    except Exception as e:
        print(f"Error: {e}")

 

 

업비트에서 4시간 기준의 데이터를 가져옴

 

5. Ticker 데이터를 데이터베이스에 저장

가져온 데이터를 각 ticker 테이블에 저장합니다. 데이터베이스를 활용하면 데이터 관리가 용이하며, 추후 분석에 활용할 수 있습니다.

    def setDataFrameInsert(self, ticker, df):
        try:
            connection = MysqlStockManagerChangeDBMaster(self.strIP, self.strDB)
            cursor = connection.cursor()

            # 데이터프레임의 각 행을 테이블에 삽입
            for index, row in df.iterrows():
                date = index
                open = row['open']
                high = row['high']
                low = row['low']
                close = row['close']
                volume = row['volume']
                value = row['value']


                try:
                    sql = (f"INSERT INTO `{self.strTable}_{ticker}_{self.ADF}` (date, open, high, low, close, closeF, volume, ud_value, flag) "
                           f"VALUES ('{CurrentDateTime}','{open}','{high}','{low}','{close}','{close}','{volume}','{value}','{self.flag}')")
                    print(sql)
                    cursor.execute(sql)
                    connection.commit()
                    print(f" ____________ {isYN} ___________ {self.i} __________ {ticker}")

                except Exception as e:
                    print(f" _____________ INSERT ERROR[0] _________ {ticker} _________ {e}")
                    pass


        except Exception as e:
            print(f" ___________ ERROR setDataFrameInsert ________________ {e}")
        finally:
            if cursor:
                cursor.close()
            if connection:
                connection.close()

 

마무리: 효율적인 데이터 추출 및 저장

이 가이드는 업비트 API를 활용해 데이터를 추출하고 저장하는 전반적인 과정을 다룹니다.
Python업비트 Open API를 활용해 데이터를 자동화하고, 데이터베이스에 저장하여 분석 환경을 구축하세요.

반응형