저번에 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이평선은 달라짐. 이 경우 두 번째 캔들을 비교하면 맞는지 확인 가능
이평선을 구하는 방법에 대해 알아보았습니다. 이평선이 차트를 볼 때 가장 기본적인 것 중에 하나로 알고 있습니다.
나중에 차트를 그리거나 데이터 처리를 할 때 활용하면 좋을 것 같습니다.
댓글