
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
기존 올려주신 코드를 내용대로 변경했는데 기존 결과 값과 동일하게 날짜와 주가 단위 변경하고 싶은데 방법을 모르겠습니다.
변경하는 방법 부탁드립니다. 그리고 혹시 그런 거 변경 없이 이대로 숙제 제출해도 상관 없는지도 알려주시기 바랍니다.
기존 코드 결과 값

수정한 코드 결과 값

작성한 코드 및 에러 메세지
import FinanceDataReader as fdr
import datetime
import pandas as pd
import matplotlib.pyplot as plt
# 폰트 설정
import matplotlib.font_manager as fm
# 폰트 경로 설정
font_path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf'
fontprop = fm.FontProperties(fname=font_path, size=18)
# 데이터 불러오기
end_date = datetime.datetime.now()
start_date = end_date - datetime.timedelta(days=365)
타겟주식 = 'NFLX' # 넷플릭스 주식 코드
stock_data = fdr.DataReader(타겟주식, start_date, end_date)
# 이동평균선 계산
stock_data['MA20'] = stock_data['Close'].rolling(window=20).mean()
stock_data['MA60'] = stock_data['Close'].rolling(window=60).mean()
# 골든크로스, 데드크로스 신호 계산
signals = pd.DataFrame(index=stock_data.index)
signals['Close'] = stock_data['Close']
signals['MA20'] = stock_data['MA20']
signals['MA60'] = stock_data['MA60']
signals['Signal'] = 0.0
# 20일 이동평균과 60일 이동평균을 비교하여 신호 생성
for i in range(1, len(signals)):
if signals['MA20'].iloc[i] > signals['MA60'].iloc[i] and signals['MA20'].iloc[i-1] <= signals['MA60'].iloc[i-1]:
signals['Signal'].iloc[i] = 1 # 골든크로스 신호 (매수)
elif signals['MA20'].iloc[i] < signals['MA60'].iloc[i] and signals['MA20'].iloc[i-1] >= signals['MA60'].iloc[i-1]:
signals['Signal'].iloc[i] = -1 # 데드크로스 신호 (매도)
# 그래프 그리기
plt.figure(figsize=(12, 6))
# 주가 그래프
plt.plot(signals.index, signals['Close'], label='Close')
# 이동평균선 그래프
plt.plot(signals.index, signals['MA20'], label='MA20')
plt.plot(signals.index, signals['MA60'], label='MA60')
# 골든크로스와 데드크로스 신호를 마커로 표시
plt.scatter(signals[signals['Signal'] == 1].index, signals['MA20'][signals['Signal'] == 1], marker='^', color='g', s=100, label='Golden Cross')
plt.scatter(signals[signals['Signal'] == -1].index, signals['MA20'][signals['Signal'] == -1], marker='v', color='r', s=100, label='Dead Cross')
plt.title(f'{타겟주식} 주식 가격과 이동평균선 (Golden Cross 및 Dead Cross)', fontproperties=fontprop)
plt.xlabel('날짜', fontproperties=fontprop)
plt.ylabel('주가', fontproperties=fontprop)
plt.legend(loc='best', prop=fontprop)
plt.grid(True)
plt.show()
