작성
·
360
0
안녕하세요
3.1 backtest_macd.ipynb를 약간 변형해서 돌리는데 도중에 아래와 같은 에러가 발생합니다. 잘 돌아가다가 중간에 에러가 발생해서 원인을 찾기 힘드네요.
*[19534] time:11/02/22 19:03:00 stop long loss:-8.0876 revenue:-4.6852 unit:0.065
...
*[164109] time:02/11/23 00:45:00 profit short profit:3.342 revenue:-162.9091 unit:0.0292
*[164468] time:02/11/23 06:43:00 profit short profit:2.8615 revenue:-160.0476 unit:0.0304
*[168046] time:02/13/23 18:16:00 stop long loss:-3.8556 revenue:-163.9032 unit:0.0311
*[168049] time:02/13/23 18:19:00 profit short profit:5.0146 revenue:-158.8886 unit:0.0304
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
C:\Users\Public\Documents\ESTsoft\CreatorTemp\ipykernel_27880\3903563835.py in <module>
50 for i in range(0, 300000): #300000
51
---> 52 t = round(df.iloc[i+1:i+2]['t'].values[0],4) #시간
53 close1 = round(df.iloc[i:i+1]['c'].values[0],4) #이전 타임스텝 종가
54 close2 = round(df.iloc[i+1:i+2]['c'].values[0],4) #현재 타임스텝 종가
IndexError: index 0 is out of bounds for axis 0 with size 0
답변 2
0
0
안녕하세요 지루한 독수리님
해당 오류는 데이터프레임에 있는 데이터 개수보다 for 문에서 반복하고자하는 반복 횟수가 많아서 발행하는 오류입니다.
예를 들어 for 문에서 300000번 반복하라고 코딩했는데 데이터프레임에 데어터가 299999건 들어있으면 마지막 루프에서 오류가 발생합니다.
df.shape로 몇 건의 데이터가 있는지 확인하시고 반복 횟수를 결정하시면 될 것같습니다.
ex) for i in range(0, df.shape[0]-1):
감사합니다.