안녕하세요?

 

지난번 포스팅에서 어떻게 해서 주식의 종목 코드를 가지고 왔으며, 이걸 txt파일에 저장을 하였고, 다음으로는 어떻게 해서 읽어오는 것 까지 했는데, 이제 본격적으로 제가 생각한 것 처럼 일단 텍스트 파일에서 코드 리스트를 읽어들이고, 여기서 몇 번이나 키움증권 서버로 부터 정보가 들어오는데 실패하면 그대로 탈락 시키는 평균회귀 테스터를 작동 시키고자 합니다.

먼저 더 앞의 작업을 위해서 이번에는 평균회귀 테스트를 하는 자식 프로세스를 복사해서 새로 만들어 주도록 합니다. 이렇게 하는 이유야 간단하게도 너무 많이 바꾸어 버리면, 나중에 이를 복구하기 어려운 면이 있기 때문입니다.

다음으로 해야 하는 일은 위 스크린샷에서 볼 수 있는 것처럼 일단 txt파일에서 가지고 온 코드의 리스트에서 이를 부모 프로세스에서 자식 프로세스로 보내기 위한 인코딩을 하는 것 입니다.

그리고 나서 기존에는 그냥 파일명으로 된 부분에다가 이제는 새로 만든 파일명을 일단 지정해서 계속해서 이전의 자식 프로세스를 찾는 삽질을 하지 않도록 만들어 줍니다.

이렇게 해서 일단 실행을 시켜 보니까, 우선 실행이 되기는 되는 것을 확인할 수 있었습니다. 하지만 이것만 가지고는 아직 완성이 된 것이 아니기는 합니다.

 

 

이제 다시금 부모 프로세스로 와서, 먼저 해야 할일은 일단 레셋 카운터라는 것을 만들어 주어야 합니다. 이걸 만들어 주는 이유는 다른게 아니라, 계속해서 같은 종목에서 너무 많은 시간을 잡아 먹혀서 전체적인 프로세스가 늦어지니까, 이걸 방지하기 위해서 너무 정보가 오지 않는 경우에는 이 종목을 뒤로 빼 놓으려고 하는 것 입니다.

그리고 나서 정상적으로 자식 프로세스에서 결과가 나왔으면, 다시 리셋카운터를 초기화 시켜 주는 과정을 거치도록 합니다.

그리고 나서 계속해서 키움증권 서버에서 정보가 오지 않아서 타임아웃이 되면, 그 종목에 대해서는 일단 카운터가 하나하나 쌓이도록 만들어 줍니다.

그리고 나서 실행을 시키니, 이상하게 에러가 나오는데, 이게 어디서 나온 에러인지 모르겠습니다만, 일단 리스트가 아닌데 인덱스를 적용해서 생긴 에러인듯 합니다.

 

이게 for loop에서 문제가 생긴 것인데, 제한된 리스트의 길이보다 for문이 너무 길어져서 나온 것 때문에 이런 일이 나왔습니다. 그래서 하는 수 없이 일단 이에 관련된 수치를 다시 조정해 주도록 합니다.

하나 잘못 수정한 것이 있어서 잘못 수정한 것은 녹색 선으로 표시를 하였고, 그 다음에는 관련된 내용에 대해서 다시금 조정을 하도록 합니다. 이렇게 해서 이제 실행을 해 보았습니다.

일단 18개의 종목에 대해서 평균회귀 테스트를 하는데 걸린 시간이 위 스크린샷과 같이 나오는 것을 확인할 수 있었습니다. 이렇게 해서 일차적인 과정은 이제 끝이 났고, 이제는 다음 작업에 들어가 보기 위해서 본격적으로 주식 종목의 리스트 - 코스피의 리스트를 가지고 와서 한번 작업을 해 보도록 해야 겠습니다.

+ Recent posts