• 카테고리

    질문 & 답변
  • 세부 분야

    금융 · 재테크

  • 해결 여부

    미해결

백테스트 에러 발생 문의

23.02.17 00:21 작성 조회수 271

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

친절한 설명 감사드립니다. 확인해보니 데이터 건수가 300000 미만이네요.

0

안녕하세요 지루한 독수리님

해당 오류는 데이터프레임에 있는 데이터 개수보다 for 문에서 반복하고자하는 반복 횟수가 많아서 발행하는 오류입니다.

예를 들어 for 문에서 300000번 반복하라고 코딩했는데 데이터프레임에 데어터가 299999건 들어있으면 마지막 루프에서 오류가 발생합니다.

df.shape로 몇 건의 데이터가 있는지 확인하시고 반복 횟수를 결정하시면 될 것같습니다.

ex) for i in range(0, df.shape[0]-1):

감사합니다.