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

초기 테스터(initial tester)의 제작-40-

by 인터넷떠돌이 2020. 1. 31.
반응형

안녕하세요?

 

원래는 한눈에 전체 손익이 손해인지 이익인지 알아보기 위한 작업만 하고서 끝내고자 했습니다만, 생각외로 엄청난 일이 되어서 하는 수 없이 포스팅이 많이 늘어가게 되었고, 부득이 하게 여기서 한번 끊어주어야 하는 상황이 발생하고 말았습니다. 아무튼 그건 그것이고, 일단 이 돌발상황이 워낙에 심각한 것이어서 어떻게 해결을 하고 넘어가야 했습니다. 그래서 일련의 시행착오를 다시금 이 블로그 포스팅에 올려 보고자 합니다.

일단 위 스크린샷에서 보이는 것처럼 if문을 사용하는 것을 이용해서, 색상이 양수 = 전체적으로 이익이 발생한 것이라고 하면, 빨간색, 아니면 파란색으로 처리를 하라는 식으로 나오도록 합니다.

그런데 문제가 생겼습니다. 분명히 같은 종목을 가지고서 초기 테스트를 한 것인데 결과가 너무 크게 다르게 나오는 것 입니다. 이 문제는 정말 심각하기에 어떻게 처리를 하러 가야 합니다.

그래서 한번 print()함수를 이용해서 어디서 이런 에러가 나오고 있는지 한번 알아보니, 전체적인 손익을 구하기 위해 존재하는 손익 데이터 베이스가 누적이 되는 문제가 발생한 것을 확인할 수 있었습니다.

 

 

그래서 강구한 방법이 바로 관련된 데이터 베이스가 self가 붙어서 회차가 진행될 수록 이전 회차의 데이터가 쌓여서 문제가 된 것이라는 생각이 들어서, 주기적으로 초기화를 시켜 주도록 했습니다.

그리고 나서 다음으로 해야 할일은 위 스크린샷에 빨간색 밑줄이 쳐 있는 부분처럼, 일단 본격적으로 하나하나 데이터를 쌓아 올리는 while문에 들어가기 전에 초기화를 시키도록 합니다.

이렇게 해서 일단 상황을 종료되기는 되어 가는 것처럼 보입니다. 우선 위 스크린샷에서 보이는 것처럼 무사히 그림파일의 결과와 데이터 베이스 파일을 얻는데는 성공했습니다.

결과에서는 제대로 음수 = 총 손익이 손해로 나온 결과가 제대로 나오는 것을 확인할 수 있었습니다. 이렇게 해서 결과가 해결이 된 것 같았습니다.

 

문제는 계속해서 벌어지는 것을 확인할 수 있었습니다. 일단 위 스크린샷을 보시면 알 수 있듯이 같은 종목인데 여전히 결과가 극과 극으로 다른 것을 볼 수 있습니다. 단독 실행시에는 파란색으로 나와서 손해를 보는 것을 알 수 있는데, 왜 그룹으로 묶어서 실행하면 이익이 나오는 것으로 나옵니다.

그래서 이 작업을 하기 위해서 일단 위 스크린샷의 오렌지색 박스에 나와 있는 것처럼 초기화 시키는 것을 더 추가했습니다.

그런데 어떻게 된 것인지 에러가 발생하는 것을 확인할 수 있었습니다. 이 에러는 다른게 아니라 매수 이력을 조사하는 과정에서 있었는 데이터를 가지고 와야 하는데, 문제는 빈 깡통 데이터 프레임이 되어서 발생하는 문제라고 할 수 있습니다. 이 문제를 해결하러 가야 하기는 하는데, 포스팅이 너무 길어지기 때문에, 잠시 여기서 한번 끊어 주도록 하겠습니다.

반응형