커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
4-6차 nan 출력 오류
undefined주차
북마크
백*정
댓글
1
추천
0
조회수
4
조회수
4
답변 완료

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

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


4-6차 강의중에 출력이 nan 으로 나오는 오류가 발생합니다.

삼성전자 2018년 과거 종가데이터 불러와서 3일 이평선으로 매매 타이밍 만들고, 최종적으로 누적 수익률값 구하는 코드인데요.

원래 오류가 발생하면 왜 오류가 발생했는지 이유라도 뜨는데 이건 그냥 값이 없다고 nan 이라고 뜹니다. 이럴 땐 어떻게 해야 하나요?


그리고 신기한 게 오늘 오후 1시에 작업했을 때도 nan으로 뜨다가, 여러 번 돌리니깐 출력이 되긴했습니다.

그런데 집에서 저녁에 복습하면서 해보는데 nan으로 뜹니다..


df_result 로 출력하는거 까지는 되고,

df_result[['수익률']].cumprod().iloc[-1,-1] -1

으로 누적수익률은 안구해집니다.




현재 안 되는 화면

스파르타 즉문즉답

오후 1시에 성공했을 때 화면

스파르타 즉문즉답





작성한 코드 및 에러 메세지

!pip install yfinance pandas-datareader finance-datareader


from pandas_datareader import data as pdr


import yfinance as yf

yf.pdr_override()


import numpy as np

import pandas as pd


import FinanceDataReader as fdr


df = fdr.DataReader('005930','2018')

df = df[['Close']].copy()

df['ma'] = df.rolling(3).mean().shift(1)

df['action'] = np.where(df['Close']>df['ma'],'buy', 'sell')


cond1 = (df['action'] =='buy') & (df['action'].shift(1) =='sell')

cond2 = (df['action'] =='sell') & (df['action'].shift(1) =='buy')


df.iloc[-1,-1] = 'sell'


df_buy = df[cond1].reset_index()

df_buy.columns =['날짜','종가(buy)','이평값','액션']


df_sell = df[cond2].reset_index()

df_sell.columns =['날짜','종가(sell)','이평값','액션']


df_result = pd.concat([df_buy,df_sell],axis=1)


df_result['수익률'] = df_result['종가(sell)'] / df_result['종가(buy)']


df_result[['수익률']].cumprod().iloc[-1,-1] -1



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