본문 바로가기

무모한 도전-주식 인공지능 만들기1651

QThread를 향한 공부 안녕하세요? 지난번 포스팅에서 멀티 프로세싱에서 한계가 있었지만, 한번 찾아보니까, PyQt5에서는 QThread라는 것을 기본적으로 지원하고 있으며, 이게 멀티 스레딩이 된다는 정보까지는 얻었습니다. 그래서 이번 포스팅에서는 이 QThread를 한번 공부해 보는 것으로 포스팅을 하고자 합니다. 먼저 연습을 위해서 MyStockTrader라는 프로젝트 안에서 위 스크린샷과 같이 multithread.py를 만들어 보도록 해야 합니다. 다음으로 일단 인터넷에 나와 있는 코드를 그대로 옮겨 오도록 합니다. 이 코드는 윈도우 창을 하나 띄우고, 시간이 지나면서 카운트가 올라가는 카운터가 있으며, 버튼이 하나 있는 식으로 있습니다. 그리고 나서 버튼을 누르면 위 스크린샷과 같이 sleep명령어를 줘서 5초간 뭐.. 2019. 7. 25.
새로운 방식의 시도-벽에 부딪친 아이디어 구현 안녕하세요? 이제까지 QProcess를 이용해서 여러개의 로그인을 하기는 했지만, 이 방식으로는 제대로된 실시간 종목 스크리닝이 불가능하였습니다. 그래서 하는 수 없이 한번 로그인을 하고 여러개의 종목을 스크리닝하는 방법으로 가려고 하는데, 이 방식이 드디어 한계에 부딪쳤음을 알리고자 이번 포스팅을 올립니다. 먼저 위 스크린샷에서 나오는 것처럼 ActivateTrader 메서드에서 다시 number를 받는 것으로 방식을 바꾸어 주도록 합니다. 그리고 나서 Trade_Machine은 딱 한번만 객체화 시켜 주는 것으로 바꾸어 주도록 합니다. 이렇게 해서 이전까지 했던 방법에서 다시 예전것으로 돌아가고자 합니다. 그런데 이렇게 하고도 문제가 나오는데, 그게 무엇이냐 하면, PyQt를 사용하고 있는 클래스인 .. 2019. 7. 24.
새로운 방식의 시도-아이디어 구현-2- 안녕하세요? 1주일 전부터의 포스팅부터 계속해서 한번 로그인을 해서 여러개의 종목을 감시하는 방법을 구현하려고 합니다만, 이게 생각했던 것 이상은 이미 넘었고, 정말 가지가지 어려움에 부딪치고 있는데, 이에 대해서 한번 포스팅을 해 보고자 합니다. 그래서 싱글톤으로 만들어서 몇번을 호출하더라도 같은 Object가 나오도록 한 것이 아무런 의미가 없는 것이 된 것인지 알아보기 위해서 한번 위 스크린샷처럼 같은 py파일에 만들어 두어서 한번 Kiwoom()의 을 Print()함수로 가지고 오도록 만들었습니다. 그리고 나서 실행을 하는 부분에서도 그냥 놔두면 당연히 실행이 되지 않기 때문에, 위 스크린샷처럼 일단 10초간 쉬고 난 다음에 다시 두번째 클래스를 실행시키라고 명령을 내려 줍니다. 이렇게 해서 실행.. 2019. 7. 23.
새로운 방식의 시도-아이디어 구현 안녕하세요? 이래저래 새로운 것-정확히 말하면 1번 로그인을 하고 나서, 다음으로 여러개의 종목을 스크린닝하는 것으로 프로그램을 변경하려고 이런 저런 시도를 한다고 포스팅이 많이 늦어졌습니다. 아무튼 간에 늦은 것은 늦은 것이고, 이제까지 했는 것을 올려 볼까 합니다. 일단 새로운 작업을 위해서 먼저 로그인만을 담당하는 py파일을 생성하도록 합니다. 이 파일의 이름은 Login_Machine이라고 지었습니다. 그리고 나서 위 스크린샷처럼 코딩을 하였는데, 일단 키움증권의 OpenAPI와 접촉하는 모든 것을 다 가지고 오도록 코딩을 하기는 하였습니다. 그리고 나서 해야 할 일은, 일단 app.exec_()를 두어서 계속해서 로그인이 된 다음에 종료가 되지 않도록 하는 것 입니다. 그 다음은 주식을 거래하기.. 2019. 7. 22.