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

QThread의 적용 part8

by 인터넷떠돌이 2019. 7. 29.
반응형

안녕하세요?

 

이제 어떻게 해서 2개의 스레드만 적용이 되는 무언가 한참 모자라는 결과물이 나오기는 했습니다. 그렇지만, 그건 그것이고, 이제 해야 할 것은 해야 할 것이니, 이걸 가지고서 어떻게 사용해 볼까하고 고민을 해봐야 하는 타이밍이 왔습니다. 그래서 이번 포스팅에서는 여러가지 시도를 하는 과정을 올리고자 합니다.

 

먼저 위 스크린샷과 같이 로그인을 여러번 하도록 일단 for문을 두번 사용하는 형태로 먼저 만들어 보았습니다만, 지금 와서 생각해보면, 처음부터 잘못된 코드였습니다.

 

다음으로 해야 할일은 위 스크린샷에서 볼 수 있는 것처럼 일단 여러번 for문을 돌릴 것인데, 그때마다 다른 py파일을 지정하거나 할 수 없으니까, 맨 처음이 되는 숫자를 1로 만들기 위한 작업을 해줘야 합니다.

 

그런데 어디가 어떻게 된 것인지 하다가 중간에 에러가 나와서 중단이 되는 것을 볼 수 있었습니다. 일단 이렇게 된 원인으로 Average_returning이 너무 옛날 것을 해서 에러가 생기는 것으로 생각을 했습니다.

 

다음으로 해야 할일은 Average_returning2.py를 사용하기 위해서 미체결 데이터에 대한 처리가 있어야 하는데, 이 정보를 받아오기 위한 부분이 이 Kiwoom.py에 나오는 opt10075라는 TR에 대해서 받는 부분이 있어야 합니다.

 

그리고 당연하다면 당연하게도 Kiwoom이라는 클래스 안에서 이 미체결 데이터를 가지고 오는 것에 대한 작업도 일어나야 합니다.

 

 

그리고 다으므로 할일은 위 스크린샷처럼 먼저 계좌번호를 알아오는 것도 처음의 스레드만 하면 OK이니 그렇게 하도록 하고, 이 미체결 데이터를 다룰 수 있는 부분도 만들어 주도록 합니다.

 

그리고 Parent되는 py파일을 만들어서 했더니, 뭐가 잘 안되어서 하는 수 없이 이번에는 위스크린샷처럼 for문에 들어갈 숫자를 직접 정해 주도록 합니다.

 

일단 이렇게 하니까 제대로 작동이 되는 것을 확인할 수 있기는 있었습니다. 이렇게 보면 작동을 가능하기는 한데, 여기서 중대한 문제가 발생했습니다.

 

바로 database와 이렇게 communication.txt가 맞지 않아서 생긴 에러였습니다. 이 에러를 그냥 두어서는 곤란하니, 일단 pytrader를 작동 시켜서 데이터를 받아 오도록 하고, 다음으로 communication.txt를 작성해 주었어야 했습니다.

 

이렇게 하고 나서 위 스크린샷처럼 parent인 py파일에서 데이터를 받아오기 위해서 input()을 입력해 주도록 합니다. 이렇게 하고 나서............

 

parent.py에서 작동을 시켰더니, 프로그램이 작동 정지가 되었다고 합니다. 그래서 하는 수 없이 위 스크린샷처럼 도로 다시 MainWindow()를 작동시키는 것으로 갔습니다.

 

그리고 나서 Input을 위 스크린샷처럼 만들어 주어서 한번 만들어 보도록 했으며, if __name__ = "__main__": 에 작성한 input은 전혀 작동을 하지 않는 다는 것을 알 수 있었습니다.

 

그러고도 에러가 났는데, 왜 났느냐 하면, 위 스크린샷처럼 int처리를 하지 않아서 - input()으로 들어온 데이터가 실은 str로 기본적으로 처리 된다는 것을 몰라서 일어난 에러 였습니다.

 

이렇게 해서 작동이 성공적으로 되는 것을 볼 수 있었습니다. 일단 여기서 말하고자 하는 것은, 부모 프로세스에서 for문을 통해서 하나하나 자식 프로세스인 multithread2.py를 작동시켰으며, 이것에 따라서 작동을 했다는 것 입니다.

 

이렇게 해서 제대로 10개의 action_list.txt라는 활동의 증거가 나오는 것을 볼 수 있었습니다. 이제 이것으로 일단 완성은 된것 같기는 하지만, 그래도 이것만으로 부족하다는 생각이 들었습니다. 남은 작업에 대해서는 이어서 올리는 포스팅에서 어디가 문제가 되었으며, 어떻게 개선을 했는지 올려보겠습니다.

반응형

'무모한 도전-주식 인공지능 만들기' 카테고리의 다른 글

QThread의 적용 part10  (0) 2019.07.30
QThread의 적용 part9  (0) 2019.07.29
QThread의 적용 part7  (6) 2019.07.29
QThread의 적용 part6  (4) 2019.07.28
QThread의 적용 part5  (0) 2019.07.28