커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
여기서 화살표를 종가보다 앞에 나오게 할려면
[왕초보] ChatGPT 300% 활용하기 v0
2주차
북마크
신*은
댓글
7
추천
0
조회수
21
조회수
21
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


이거 chat gpt한테 물어서 하는데 20일선 60일선 보다는 앞으로 나오는데 종가보다는 삼각형 모형이 계속 앞으로 안 놔와서 코드에서 뭐가 잘못된건지를 알고 싶습니다.



스파르타 즉문즉답



이 코드에서 잘못된 부분이 뭘까요?

import FinanceDataReader as fdr

import datetime

import pandas as pd

import matplotlib.pyplot as plt


end_date = datetime.datetime.now()  # 현재 시간을 구합니다.

start_date = end_date - datetime.timedelta(days=365)  # 1년 전 날짜를 구합니다.


# 테슬라 종목코드: TSLA

stock_data = fdr.DataReader('TSLA', start_date, end_date)


# 이동평균선 계산

stock_data['MA20'] = stock_data['Close'].rolling(window=20).mean()

stock_data['MA60'] = stock_data['Close'].rolling(window=60).mean()


# 골든크로스와 데드크로스 부분을 찾아서 해당 지점에 화살표 추가

golden_cross = stock_data[(stock_data['MA20'] > stock_data['MA60']) & (stock_data['MA20'].shift(1) <= stock_data['MA60'].shift(1))]

dead_cross = stock_data[(stock_data['MA20'] < stock_data['MA60']) & (stock_data['MA20'].shift(1) >= stock_data['MA60'].shift())]


# 그래프 그리기

plt.figure(figsize=(12,6))


# 선 그래프 그리기

plt.plot(stock_data.index, stock_data['Close'], label='Close')

plt.plot(stock_data.index, stock_data['MA20'], label='MA20', zorder=1)  # MA20 레이어는 1로 설정

plt.plot(stock_data.index, stock_data['MA60'], label='MA60', zorder=1)  # MA60 레이어는 1로 설정


# 골든 크로스와 데드 크로스 지점에 화살표 추가

golden_cross_legend = True

for idx, row in golden_cross.iterrows():

    if golden_cross_legend:

        plt.scatter(idx, row['MA20'], marker='^', color='green', s=100, zorder=2, label='Golden Cross')

        golden_cross_legend = False

    else:

        plt.scatter(idx, row['MA20'], marker='^', color='green', s=100)


dead_cross_legend = True

for idx, row in dead_cross.iterrows():

    if dead_cross_legend:

        plt.scatter(idx, row['MA20'], marker='v', color='red', s=100, zorder=3, label='Dead Cross')

        dead_cross_legend = False

    else:

        plt.scatter(idx, row['MA20'], marker='v', color='red', s=100)


plt.legend(loc='best')

plt.grid()

plt.show()





취소
 공유
취소
댓글 0
댓글 알림
나의얼굴