본문 바로가기
무모한 도전-주식 인공지능 만들기

백테스트의 에러찾기 여정 -2-

by 인터넷떠돌이 2021. 6. 21.
반응형

안녕하세요?

 

지난번 포스팅에서 어떻게 반올림만 하면 문제가 해결될 수 있을 것으로 기대를 하기는 했습니다만, 문제는 그게 되지 않았고, 어떻게 해서인지 모르겠습니다만, 다른데서 문제가 발생한 것으로 예상이 되었습니다. 그래서 이런 오류의 원인을 찾기 위해서 상당히 힘들지만, 해결되면 보람찬 여정에 들어가 보고자 했습니다.

 

그래서 다음으로 하고자 하는 것은, 위 스크린샷에서 보시면 알 수 있듯이, 일단 print함수를 써서, 도데체 일단 데이터를 가져오는 과정에서 무슨 문제가 있나 하고 체크해 보았습니다.

 

계산결과, 일단 sell 데이터 프레임에서 무언가 심각한 문제가 나왔습니다. 왜 인지 모르겠습니다만, 거래하기 위한 수수료가 상상 이상으로 너무 큽니다.

 

그래서 무언가 sell 데이터 프레임이 거래가 일어난 이후에 전혀 초기화가 되지 않아서 벌어진 일이라고 생각을 해서, 이번에는 위 스크린샷에서 볼 수 있는 것처럼, 일단 제대로 초기화를 시켜 주도록 코드를 짰습니다.

 

그런데도 어째서 인지 모르겠습니다만, 계속해서 에러가 반복되는 것을 확인할 수 있었습니다.  일단 데이터 프레임 자체는 어떻게 초기화가 필요하긴 필요한 부분이라서, 그대로 두도록 하고, 다음으로 해야 할 것은 어디서 저런 말도 안되는 숫자가 나왔는지 파악하는 것 입니다.

 

 

일단 데이터 프레임 자체는 제대로 처리가 되어서 어떻게 메모리를 절약할 수 있기는 있어 보입니다. 다만, 이런다고 해서 작업이 제대로 된 것은 아직 아닙니다.

 

그래서 이 수수료가 산정되는 순간에 무슨 문제가 있는 것이 아닌가 해서, 손절매를 하지 않는 경우를 먼저 보도록 합니다. 그리고 나서.............. 손절매를 할 경우에도 수수료를 계산해 주도록 합니다.

 

다음으로는 기본적으로 수수료는 0원으로 디폴트 설정도 주도록 해서, 어떻게 이상한 값이 수수료로 들어가지 않도록 만들어 주도록 합니다.

 

그리고 나서 손절매를 할 경우 수수료를 계산하기 위한 코드를 일단 어느정도 정렬해서 만들어 주도록 합니다. 이렇게 하는 것으로 일단 다음 작업을 할 준비는 되었습니다.

 

그리고 나서 이 수수료가 제대로 나오는 지 아닌지 일단 알아보기 위해서 print함수를 써서 알아보고자 했으며, 다음으로 실험에 들어갔습니다.

 

다만 이렇게 했음에도 불구하고 좀 처럼 에러는 잡히지 않았습니다. 이제 다음으로 가야 할 것으로는 어딘가 헛다리를 짚고 있는 것이 아닌가 하는 생각이 들어서, 다시한번 print함수를 응용하러 가 보도록 합니다.

 

그래서 이번에는 매수할 때 포지션 사이즈 - position size에 무슨 문제가 있어서 저 수수료가 이상한 폭탄이 된 것이 아닌가 하는 생각이 들었습니다.

 

실제로 매도를 할 때가 아니라, 어째서 인지 모르겠습니다만, 매수를 할 때 무슨 문제가 생긴 것을 볼 수 있었습니다. 일단 여기까지 오니까, 지난번 포스팅에서 보았던 buyAmount가 이상한 것도 서서히 연관이 되기 시작합니다. 이래저래 에러를 잡는다는 것은 정말 어려운 일이기는 합니다.

반응형