본문 바로가기
Finance/Coding

python - 이평선 구하기 ( pandas )

by ZaRi 2023. 6. 15.

 

 저번에 ccxt를 활용하여 비트코인 데이터를 가져왔습니다.

 이번에는 파이썬에서 판다스 모듈을 활용하여 이동평균선을 구해보겠습니다.

 


이동평균선 (moving average)

이동평균선을 구하는 코드는 다음과 같습니다.

 

 

df['close'].rolling(window=60).mean()
def ma(source, length):     
    return source.rolling(window=length).mean()

 

코드는 위화 같습니다. 아래 코드는 위의 코드를 함수로 만든 것입니다.

 

 

 

활용하기

 저번 코드를 가져와서 적용해 보겠습니다.

 

 

 

import pandas as pd
import ccxt
import fical as fi

symbol = 'BTC/USDT'
timeframe = '1h'
candle = 100

binance = ccxt.binance()
btc_ohlcv = binance.fetch_ohlcv(symbol, timeframe = timeframe, limit = candle)

df = pd.DataFrame(btc_ohlcv, columns=['date', 'open', 'high', 'low', 'close', 'volume'])
df['date'] = pd.to_datetime(df['date'], unit='ms')
df = df.set_index('date')

df['ma60'] = fi.ma(df['close'], 60)

print(df)

 

위 코드의 ma() 함수를 fical 모듈에 따로 보관해 두어서 사용하였습니다.

60이평선을 구하는 코드가 만들어졌습니다. 

우선 결과를 출력해 보겠습니다.

 

 

비트코인의-시가,고가,저가,종가,거래량,이평선-데이터가-출력됨
데이터

 

그러면 현재 종가는 27064가 나오고, 60이평선은 27112가 나왔습니다.

그럼 트레이딩뷰를 통해서 가격이 맞는지 확인해 보겠습니다.

 

 

차트-그림
트레이딩뷰

 

보게 되면 60이평선(파란선)은 현재 27112 그리고, 종가는 27064로 위의 데이터와 동일한 것을 확인할 수 있습니다.

 

참고) 데이터를 뽑고 나서 시간이 지나면 현재 종가와 현재 60이평선은 달라짐. 이 경우 두 번째 캔들을 비교하면 맞는지 확인 가능

 

 


 이평선을 구하는 방법에 대해 알아보았습니다. 이평선이 차트를 볼 때 가장 기본적인 것 중에 하나로 알고 있습니다.

 나중에 차트를 그리거나 데이터 처리를 할 때 활용하면 좋을 것 같습니다.

댓글