
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
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
