[Python] FinanceDataReader 를 통한 주가 읽기 - 이동 평균선
이동평균선은 매일 산정되는 가격을 기준으로 이동평균치를 표시하는 것을 말한다. 연장선으로 일정 기간의 주가 평균가격을 그어놓은 선이다. 이동편균선 은 주가의 평규치 진행 방량을 확인하고 대략적인 상승과 하락을 예측하고 판단하는데 사용하는 지표이다.
이동편평선 계산 공식
이동평균선 = 설정 기간의 종가의 합 / 설정기간 |
5일 평균선은 5일간의 종가평균, 10일 평균선은 10일간의 종가평균으로 진행된다.
FinanceDataReader 에서 이동 평균선
s_df 는 이전 stockMain 함수를 통해 만들어지는 Data Frame 이다.
def stockMain(val, strFromDay, strToDay):
- 5일 평균선: stockM_df['MA5'] = stockM_df['Close'].rolling(window=5).mean() #5MA
- 10일 평균선: stockM_df['MA10'] = stockM_df['Close'].rolling(window=10).mean() #10MA
- 20일 평균선: stockM_df['MA20'] = stockM_df['Close'].rolling(window=20).mean() #20MA
- 60일 평균선: stockM_df['MA60'] = stockM_df['Close'].rolling(window=60).mean() #60MA
- 120일 평균선: stockM_df['MA120'] = stockM_df['Close'].rolling(window=120).mean() #120MA
def scalePlt(axes_t, s_df, labelName):
scaled_stock=pd.DataFrame(s_df)
scaledT=preprocessing.MinMaxScaler().fit_transform(scaled_stock)
axes_t.plot(s_df.index, scaledT, linewidth=1, label=labelName)
def pltStocknMoveAvg(stockName, s_df):
stockM_df = s_df[['Close']]
stockM_df['MA5'] = stockM_df['Close'].rolling(window=5).mean() #5MA
stockM_df['MA10'] = stockM_df['Close'].rolling(window=10).mean() #10MA
stockM_df['MA20'] = stockM_df['Close'].rolling(window=20).mean() #20MA
stockM_df['MA60'] = stockM_df['Close'].rolling(window=60).mean() #60MA
stockM_df['MA120'] = stockM_df['Close'].rolling(window=120).mean() #120MA
print(stockM_df)
fig = plt.figure(figsize=(16,14))
axes = plt.subplot2grid((4,4),(0,0), rowspan=3,colspan=4)
scalePlt(axes, stockM_df['Close'], stockName)
scalePlt(axes, stockM_df['MA5'], "MA5")
scalePlt(axes, stockM_df['MA10'], "MA10")
scalePlt(axes, stockM_df['MA20'], "MA20")
scalePlt(axes, stockM_df['MA60'], "MA60")
scalePlt(axes, stockM_df['MA120'], "MA120")
axes.legend()
plt.show()
삼성전자의 이동평균선
위 코드를 이용하여 이용하여 이동평균선을 계산하였다.
'IT > 컴퓨터프로그램' 카테고리의 다른 글
[Python] OpenDartReader 사용하기 - 공시 보고 원문 활용 (0) | 2022.05.16 |
---|---|
[Python] FinanceDataReader 를 통한 주가 읽기 - 볼린저밴드 (0) | 2022.05.16 |
[Python] FinanceDataReader 를 통한 주가 읽기 (0) | 2022.05.16 |
[Python] 구글 트렌드(Google Trends PYTHON API) (0) | 2022.05.16 |
[프로그램] 임베디드 시스템 (Embedded System) (1) | 2022.05.16 |