코딩 강의/유용한 스킬 없을까요

프로그램 매매 핵심 지표, 이동평균선 구하는 방법 (암호 화폐)

아미넴 2021. 6. 11.
반응형

지난 포스팅에서 업비트 API 호출하는 방법에 대해서 자세히 알아 보았습니다.

비트코인 가상화폐 거래소 업비트 API(파이썬) 사용 방법

 

비트코인 가상화폐 거래소 업비트 API(파이썬) 사용 방법

최근에 주식보다 비트코인이 더 핫하죠. 그런데 매일 신경쓰면서 거래하는 건 스트레스 받고 안 하자니 손해보는 것 같아서 프로그램 매매를 시도해 보려고 생각을 하였습니다. 요새는 주식도

sangminem.tistory.com

 

또한 pyupbit라는 라이브러리를 활용하여 쉽게 업비트 API를 호출하는 방법에 대해서도 간단하게 정리를 했었죠.

pyupbit 라이브러리를 통한 비트코인 가상화폐 거래소 API(파이썬) 사용 방법

 

pyupbit 라이브러리를 통한 비트코인 가상화폐 거래소 API(파이썬) 사용 방법

오늘은 pyupbit 라이브러리를 이용하여 업비트에서 제공하는 API를 좀 더 손쉽게 사용하는 방법을 알아 보겠습니다. 고마운 분들이 API를 사용하기 편리하게 만들어 놓았습니다. 우리는 그냥 가져

sangminem.tistory.com

 

이제는 이 기능들을 활용하여 유용한 값들을 하나씩 계산해 보도록 하겠습니다.

먼저 가장 중요한 차트 지표 중 하나인 이동평균선을 구해볼 생각입니다.

 

목차

     

    이동평균선 개념

    코인 가격이 종가 기준으로 평균적으로 얼마나 움직였는지 이어놓은 선을 의미합니다. 예를 들어 기준일로부터 과거 5일 동안 종가 평균을 구하여 그 가격들을 선으로 이으면 5일 이동평균선이 됩니다. 이 지표는 시장의 추세를 파악하는데 매우 유용합니다.

     

    이동평균선 기능 구현

    이 개념을 파이썬으로 구현해 보겠습니다.

    def get_ma(df, n):
        return df['close'].rolling(window=n).mean()

    생각보다 간단합니다. 한줄로 끝나요.

    pyupbit에서 시세 정보를 DataFrame 이라는 객체로 제공해서 그렇습니다. DataFrame의 자세한 개념은 여기서 말하고자 하는 내용의 범위를 벗어나므로 생략하기로 합니다.

    먼저 df(DataFrame 객체)에서 close(종가) 컬럼 값을 가져옵니다. rolling 메서드는 요소 인덱스를 하나씩 이동하면서 이전 값부터 현재 값까지 n개씩 그루핑 하는 기능을 합니다. 마지막으로 mean 메서드로 그루핑한 값들의 각각 평균을 구합니다.

    딱 한 줄이지만 많은 의미를 내포하고 있죠?

     

    기능 활용

    비트코인의 5일 이동평균선을 구해 보겠습니다.

    df = pyupbit.get_ohlcv()
    ma5 = get_ma(df, 5)
    print(ma5)

    먼저 pyupbit 라이브러리를 활용하여 비트코인 시세를 간단히 가져옵니다. 파라미터에 아무 값도 넣지 않으면 기본적으로 비트코인 시세 200일치를 가져오게 됩니다. 앞서도 말했지만 DataFrame 객체로 가져 옵니다.

    get_ma 함수에 df와 숫자 5를 파라미터로 넘겨 줍니다. 이는 200일 간 비트코인의 5일 이동평균선을 구하겠다는 의미가 됩니다.

     

    다음과 같이 출력되면 정상입니다.

    처음 4개의 값이 안나오고 NaN으로 찍히는 이유는 그루핑한 데이터 개수가 5일치가 안되기 때문입니다.

     

    파이썬 별로 안어렵죠? 프로그램 매매도 생각보다 어렵지 않을 수 있습니다.

    코딩에 관심 없으셨던 분들도 한 가닥 희망을 보셨으면 합니다.

     

    감사합니다.

    반응형

    댓글

    💲 추천 글