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

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

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

안녕하세요?

 

이래저래 마무리가 안되고 있지만, 드디어 이번 포스팅에서 어떻게 마무리를 지어서 이동평균선과 표준편차에 따라서 한번 데이터를 계산해 내고, 그 데이터에 따라서 어떤 행동을 할 것인지에 대해서 나타내고자 합니다. 일단 이 작업을 위해서 그 동안 많은 작업을 거쳐야 했지만, 그래도 이렇게라도 결과가 나왔다는 것 자체가 기쁩니다.

일단 이 작업을 위해서 기존에 있던 행동을 결정하기 위한 메서드에서 기존에는 현재가, 이동평균, 이동표준편차를 따로 받았다면, 이번에는 한꺼번에 튜플형태의 데이터를 받은 다음에, 이를 하나하나 분해 하도록 합니다.

이렇게 해서 기존에는 그냥 데이터를 축적하기 위한 과정에 지나지 않았는 메서드에 가서, 여기서 추가로 작업을 하도록 설계를 하도록 합니다.

그리고 나서 다음으로 해야 할 작업은 메인으로 가서, 변수처리가 되여 있던 부분을 다시 원래대로 고쳐서 혹시나도 모를 에러를 방지해 주도록 합니다.

이렇게 했는데, 문제가 생기는 것을 확인할 수 있었습니다. 어찌된 것인지 숫자가 와서 비교 분석을 해야 하는 곳에서 에러가 발생한 것 입니다.

 

 

그래서 어디가 문제가 된 것인지 모르기 때문에, 언제나 하는 것처럼 print()함수를 이용하는 것으로 일단 문제를 점검해 보도록 합니다.

문제가 생기긴 했는데, 어디가 문제냐 하면, 초반에는 일단 120분봉 평균 데이터가 나오지 않는 현상이 벌어지게 됩니다. 이런 상황을 생각하면, 이렇게 공백으로 빈 데이터가 올 경우를 처리해야 합니다.

그래서 먼저 작업을 실행해 보기로는 위 스크린샷과 같이 empty를 뒤에 붙이는 것으로 해서, 일단 빈 깡통일 경우 그냥 지나가도록 해 줍니다.

이렇게 해서 일단은 에러는 통과한 것 같으면서 동시에 새로운 에러가 생기는 것을 확인할 수 있었습니다. 이래서야 산넘어 산인데.............

 

어디가 문제인가 했더니, 디버그 모드를 활용해서 한번 확인을 해 보았습니다. 이번에는 데이거 생성이 되어서 int형식의 데이터에는 empty를 붙일 수 없다고 합니다.

그래서 not을 붙여서 데이터의 타입을 한번 살펴 보도록 했습니다. 이 결과로 나오는 데이터가 int가 아닐 경우에는 그냥 빈 데이터로 통과를 하라고 지시를 내리도록 합니다.

이렇게 하는 것으로 이제 최종적으로 데이터를 얻는데 성공했습니다. 정확히는 매수/매도를 할 것인가에 대한 액션 정보를 얻을 수 있었는데, 이제 이 정보를 가지고서 한번 어떻게 진짜 중요한, 진짜 힘든 고비인 바로 initial test를 하는 모듈을 만들어 볼 차례입니다. 즉 매수/매도 룰을 가지고서 진짜로 주식 차트 데이터의 어느 시점에서 작업을 했는지 표시하는 코드가 필요합니다.

반응형