
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
"financedatareader 로 최근 1년간 삼성전자의 종가 데이터를 가져오고, 그 데이터로 볼린저밴드를 그리는 파이썬 코드를 만들어줘" 결과치가 강의내용과 다르게 코드가 나와서 이런경우에는 어떻게 해야되나요?
===강의예제코드===
import FinanceDataReader as fdr
import datetime
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
end_date = datetime.datetime.now() # 현재 시간을 구합니다.
start_date = end_date - datetime.timedelta(days=365) # 1년 전 날짜를 구합니다.
# 삼성전자 종목코드: 005930
samsung = fdr.DataReader('005930', start_date, end_date)
# 볼린저 밴드 계산
window_size = 20
num_of_std = 2
rolling_mean = samsung['Close'].rolling(window=window_size).mean()
rolling_std = samsung['Close'].rolling(window=window_size).std()
upper_band = rolling_mean + (rolling_std * num_of_std)
lower_band = rolling_mean - (rolling_std * num_of_std)
# 그래프 그리기
plt.figure(figsize=(12,6))
plt.plot(samsung.index, samsung['Close'], label='Close')
plt.plot(rolling_mean.index, rolling_mean, label='Moving Average', color='orange')
plt.fill_between(upper_band.index, upper_band, lower_band, color='gray', alpha=0.2)
plt.legend(loc='best')
plt.grid()
plt.show()
===똑같은 질문내용으로 답변된 내용의 코드===
import matplotlib.pyplot as plt
import pandas as pd
import FinanceDataReader as fdr
from talib import BBANDS
# 삼성전자 종목 코드
stock_code = '005930'
# 최근 1년간의 종가 데이터 불러오기
end_date = pd.Timestamp.now().strftime('%Y-%m-%d')
start_date = (pd.Timestamp.now() - pd.DateOffset(years=1)).strftime('%Y-%m-%d')
df = fdr.DataReader(stock_code, start_date, end_date)
# 볼린저 밴드 계산
upper_band, middle_band, lower_band = BBANDS(df['Close'], timeperiod=20, nbdevup=2, nbdevdn=2)
# 그래프 그리기
plt.figure(figsize=(12, 6))
plt.plot(df.index, df['Close'], label='Close', color='blue')
plt.plot(df.index, upper_band, label='Upper Band', color='red')
plt.plot(df.index, middle_band, label='Middle Band', color='green')
plt.plot(df.index, lower_band, label='Lower Band', color='orange')
plt.title('Bollinger Bands for Samsung Electronics')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.show()
=====다른점====
from talib import BBANDS
요명령어가 다른것 같은데 talib라는 라이브러리가 없어서 그런가요?
에러메세지
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-9-ce31b92904fc> in <cell line: 7>()
5 import FinanceDataReader as fdr
6
----> 7 from talib import BBANDS
8
9
ModuleNotFoundError: No module named 'talib'
