파이썬으로 업비트(Upbit) 과거 시세 가져오기(2)

in #kr7 years ago (edited)

이전 글 보기

파이썬으로 업비트(Upbit) 과거 시세 가져오기(1)


이전 글에서 파이썬에 있는 requests를 이용하여 upbit에서 종목 시세를 받아오는 방법을 만들어 보았다. 이번에는 이렇게 받은 데이터를 엑셀에 저장하는 방법을 알아본다.

이 프로그램에서는 Upbit에서 읽은 과거 데이터를 excel을 실행시킨 후 셀에 채워넣는 작업을 한다.이를 위하여 excel을 실행한 후 workbook을 하나 생성한 후 sheet의 각 셀에 필요한 값을 채워나간다.엑셀에서 cell은 (1,1)로 시작한다.

이러한 것을 만들기 위해서는 아래와 같은 과정을 프로그래밍하면 될 것이다.

셀(1,1)에 암호화폐코드를 출력
셀(2,1) 부터 셀(2,6)까지 제목을 출력
읽은 데이터 수 만큼 {
   셀(2+i번째) 줄에 필요한 정보를 출력
}
필요하면 파일을 저장하고, excel을 닫는다.

이렇게 작성한 코드를 보자

    excel = win32com.client.Dispatch("Excel.Application")  # excel 실행
    excel.Visible = True
    wb = wb = excel.Workbooks.Add()
    ws = wb.ActiveSheet
    ws.Cells(1, 1).Value = code;  # coin code 출력
    #엑셀에 title 출력하기
    title=["date","open","high","low","final","vol"]
    for i in range(len(title)) :
        ws.Cells(2, i+1).Value = title[i];
    # 엑셀에 데이터 출력하기 
    for dailyData in data  :
        excel_row = excel_row + 1
        date = dailyData['candleDateTimeKst']
        onlyDate = date.split('T')   # 날짜정보와 시간정보 분리
        ws.Cells(excel_row, 1).Value = onlyDate
        ws.Cells(excel_row, 2).Value = dailyData['openingPrice']
        ws.Cells(excel_row, 3).Value = dailyData['highPrice']
        ws.Cells(excel_row, 4).Value = dailyData['lowPrice']
        ws.Cells(excel_row, 5).Value = dailyData['tradePrice']
        ws.Cells(excel_row, 6).Value = dailyData['candleAccTradeVolume']

그 결과를 보면 아래와 같은 엑셀 sheet 가 화면에 보인다.
image.png

프로그램을 개발하는 것은 간단하면서도 어렵다. 간단하다는 부분은 우리가 생각한대로 사용하는 언어에 맞추어 코딩하면 된다는 것이다. 어렵다는 것은 실제 코딩하는 언어에 따라 문법도 틀리고, 사용하는 패키지의 사용법도 알아야 하기 때문에 시간이 많이 걸린다는 것이다.

특히 excel 프로그램을 구동하고 각 셀에 채워넣는 방법은 좋은 예제를 만나기 전에는 개발하는데 많은 시간이 걸린다. 좋은 예제를 만난다는 것은 엄청나게 시간을 절약하는 길이다. 그래서 나도 이렇게 예제를 만들어서 블럭체인에 남긴다. 앞으로 이런 일을 할 사람이 생겼을 때 시간을 절약시켜주었으면 한다. 내가 참고로 한 예제가 있는 곳은 아래 p.s에 적어 놓았다.

excel을 띄우지 않고도 엑셀에서 읽을 수 있는 형태의 파일로 만드는 패키지도 있을 것이다. 이것을 찾아서 사용하여도 된다. 나는 엑셀에서 추가 작업을 할 예정이기에 엑셀에 바로 쓰는 예제가 필요하였다.

다음으로 할 일은 매매 전략 기법이다. 이 지구상에는 수 많은 매매 전략이 있다. 이 중 본인의 투자 성향과 잘 맞는 것을 고르는 것이 성공매매의 첫 단추이다. 지금까지는 대충 기분으로 매매를 하였는데 좀 더 정교하게 매매를 하고 싶어서 이 작업을 시작하였다. 특히 매수/매도 시점을 발견하기가 너무 어렵다. 하지만 주식시장에는 매매 시점에 대한 좋은 전략들이 이미 많이 나와 있다. 이중 한가지를 과거 데이터로 시뮬레이션 해 보고자 한다. 암호화폐는 변동성이 높기 때문에 좋은 수익률이 나올 것으로 기대한다.

오늘 설명한 소스코드는 아래에서 다운 받으실 수 있다.
https://github.com/multiwhs/steem-project1/blob/master/PythonUpbitData2Excel.py

ps.
파이썬을 이용하여 주식 데이터를 받고 싶은 분은 아래 사이트를 참고하세요. 파이썬에 대한 설명도 잘 되어 있고, 증권회사 API 사용법도 잘 설명되어 있습니다.
https://wikidocs.net/3087

Sort:  

찬찬히 다시 읽으며 공부하기위해 리스팀해갑니다. 좋은 정보 감사합니다 :)

좋은글 감사합니다.


팔로 ~ 꾸욱~💕

좋은 정보 감사합니다~ 파이썬에 대해서 학습하고 싶은데 자꾸 미루게되네요~ 언젠가는 공부해서 파이썬을 활용해서 주식 트레이딩 이나, 가상화폐 트레이딩 시스템을 만들어보면 잼있을것같네요!

좋은 예제 감사합니다. 한 시간, 더 나아가 1분 단위로 계속 가격데이터를 수집해서 나중에 머신에 학습시켜보고 싶네요 :)

학습하기에는 데이터양이 부족할 겁니다.

감사합니다.
스스로의 챠트를 만들 수 있다는 것은
큰 의미를 갖지요.
좋은 수익 거두시길 빕니다.

주식 시장에서 사용하는 좋은 전략들이 많더라고요. 그 중 어떤 것이 암호화폐 시장에 맞을지 한번 테스트해보고 싶어서요.

Coin Marketplace

STEEM 0.18
TRX 0.16
JST 0.029
BTC 63013.55
ETH 2460.64
USDT 1.00
SBD 2.64