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

QThread의 적용 part1

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

안녕하세요?

 

이번 포스팅 부터는 어떻게 해서 제 알고리즘 트레이딩 시스템에서 QThread를 적용해서 다중의 종목을 한번 조사해 보는 작업을 해볼 예정인데, 이 작업이 처음에는 쉬울 줄 알았는데, 예상외로 어려워서 많이 늦어지게 되었습니다. 아무튼 늦어진 것은 늦어진 것이고, 그래도 포스팅으로 올리고자 이렇게 늦게나마 글을 올립니다.

 

우선 첫번째 작업입니다. 일단 QRunnable에서 위 스크린샷과 같이 communication.txt에서 정보를 가지고 오는 것을 먼저 해야만 합니다.

 

그리고 나서 이 QThread에서 멀티 스레드를 실행시키는데, 일단 for문을 사용해서 먼저 1에서 5까지 5개의 스레드를 먼저 실행시켜 주도록 합니다.

 

일단 처음으로 해서 위 스크린샷처럼 5개의 종목에 관한 데이터를 동시에 얻어 오는데는 성공한 것을 볼 수 있었습니다. 문제는 여기까진 큰 문제가 없습니다만.......

 

일단 보기가 지저분해서 한번 더 실행을 했습니다. 5초간 쉬는 것도 없이 하니까, 제대로 위 스크린샷처럼 나오는 것을 확인할 수 있는데..........

 

 

일단 처음으로 키움증권 서버에서 종목의 기본적인 정보 -시가, 고가, 저가 종가 = 현재가, 거래량을 가지고 오는 메서드를 만들어서 얘를 실행하도록 해 줍니다.

 

그런데 이게 어떻게 된 일일까요? 제대로 작동이 되던 코드가 어떻게 된 일인지 제대로 작동을 하지 않는 현상이 벌어지는 것을 볼 수 있었습니다.

 

혹시 스레드가 너무 많아서 생긴 문제인 것인가 싶어서, 하는 수 없이 5개에서 3개로 줄여서 한번 더 시도를 해 보기로 했습니다.

 

이러고도 소용이 없자, 다음에는 위 스크린샷처럼 0.1초의 쉬는 시간을 주어서 너무 동시에 진행이 되어서 벌어지는 문제인가 싶었는데, 그것도 아니기는 했습니다.

 

그래서 어떻게 된 것인지 몰라서 전체 메서드를 일단 주석처리 해 놓고 나서, 실행이 되는 메서드에서 위 스크린샷처럼 먼저 input_value가 어떻게 되는 지에 대해서 한번 이야기 해 보도록 합니다.

 

결국 이렇게 input_value만 가지고서 한번 해 보니까, 제대로 나오기는 나옵니다. 그러면 이제 서버에 요청하는 것 까지는 성공적이라는 것을 알 수 있습니다.

 

그럼 다음으로 위 스크린샷과 같이 서버에서 온 정보를 받는 코드가 제대로 작동을 하는지 안 하는지를 알아보고자 합니다.

 

그렇게 해서 위 스크린샷처럼 일단 문제가 어디인지 알아낸 것 같기는 합니다. 서버에서 온 정보를 읽어들이는 메서드에서 에러가 난 것이라고 볼 수 있는데, 문제는 이렇게 되면 어디가 문제인지 일단 알아내기 상당히 힘들다는 것 입니다. 그럼에도 불구하고 일단 하기는 해 봐야 합니다.

반응형

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

QThread의 적용 part3  (0) 2019.07.28
QThread의 적용 part2  (0) 2019.07.28
QThread를 향한 공부-final-  (2) 2019.07.26
QThread를 향한 공부-4-  (0) 2019.07.26
QThread를 향한 공부-3  (2) 2019.07.26