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

평균회귀 테스트를 하는 프로그램의 개선-2-

by 인터넷떠돌이 2019. 9. 3.
반응형

안녕하세요?

 

지난번 포스팅에서는 어떻게 평균회귀를 하는 프로그램의 개선을 하나 성공한 사례를 이야기 했었는데, 이번에는 이런 사례를 성공하기 위해서 한번 시험을 하기는 했는데, 그다지 결과가 마음에 들지 않는 결론이 나온 것을 한번 포스팅 하고자 합니다.

 

먼저 바꾸어 줘야 하는 날짜가 2군데나 되는 것은 실수를 유발할 수 있기 때문에, 하는 수 없이 위 스크린샷처럼 한번 날짜를 지정해 주도록 합니다.

 

그리고 나서 1분봉 차트를 요청하는 TR을 요구하는 메서드에서는 위 스크린샷과 같이 한번 날짜를 지정해서 움직여 주도록 합니다.

 

그리고 기존의 데이터 프레임에서 날짜를 걸러내는 부분에서도 위 스크린샷처럼 만들어 주는데, 여기서도 역시 같은 변수가 기존의 문자열을 대체해 주는 식으로 해 줍니다.

 

이렇게 하고도 제대로 실행이 되는 것 까지는 확인을 할 수 있기는 있었습니다. 이제 본격적인 작업에 들어가 보기 위해서 한번 움직여 봅니다.

 

 

먼저 위 스크린샷처럼 일단 날자를 지정해서 한번 말들어 주도록 합니다. 날짜는 지난번 테스트에서 1주일 정도 더 앞당겨서 움직이도록 합니다.

 

 

다음으로는 위 스크린샷에서 나오는 것처럼 일단 코스피를 한번 전체적으로 훑어보아서, 제대로 검사를 하기 위한 작업을 진행해 보도록 합니다.

 

그리고 얼마나 걸렸는지 알아보기 위해서 한번 parent process에서 시간을 측정하기 위한 코드를 일단 심어 주도록 합니다. 

 

그런데 시간 측정은 중간에 실패하게 되었는 것이, 일단 위 스크린샷에서 알 수 있는 것처럼 우선 중간에 무슨 이유에서 인지 freezing이 되어 버리는 바람에 완전히 실패하게 되었습니다.

 

결국 정확한 시간을 측정하지 못한채 위 스크린샷처럼 코스피에서 일련의 결과를 얻는데 성공하기는 성공했습니다. 다만 허스티 지수에서 positive라고 상승 성향을 보이는 종목이 없기 때문에, 일부러 빈 txt파일을 만들어 주어야 겠다는 생각이 듭니다.

 

그래서 일단 코스닥을 살펴보는 것을 멈추고 한번 위 스크린샷처럼 QTimer를 주는 식으로 해서 타이머를 주어서 얼마이상 시간이 지체가 되면 다시 메서드가 작동이 되도록 만들어 주도록 합니다.

 

그런데 문제는 타이머가 제대로 작동을 하지 않는 문제점이 나오는 것 입니다. 이게 어떻게 된 일인가 했더니, PyQt자체가 이렇게 다른 subprocess에 들어가게 되면 정지되는 문제점이 있다고 합니다.

 

그래서 위 스크린샷처럼 threading에서 사용할 수 있는 Timer를 가지고 오도록 해서, 한번 작업을 다시 진행해 보려고 했습니다.

 

일단 표면적으로는 제대로 작동을 하는 것 같아 보이기는 했습니다. 다만 이것도 심각한 문제가 하나 나왔습니다. 그 문제란 것이.........

 

위 스크린샷처럼 Open API가 중복해서 접속을 하는 현상이 벌어지는 것 입니다. 이걸 어떻게 해결하기 위해서는 다른 문제를 야기할 수 있는데, 일단 시간을 보시면 알 수 있듯이 너무 늦었기 때문에, 하는 수 없이 이날의 작업은 여기까지만 하도록 하고, 그냥 코스닥의 정보를 수집하러 프로그램을 작동시켜야 했습니다.

반응형