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

새로운 방식의 시도-아이디어 구현-2-

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

안녕하세요?

 

1주일 전부터의 포스팅부터 계속해서 한번 로그인을 해서 여러개의 종목을 감시하는 방법을 구현하려고 합니다만, 이게 생각했던 것 이상은 이미 넘었고, 정말 가지가지 어려움에 부딪치고 있는데, 이에 대해서 한번 포스팅을 해 보고자 합니다.

 

그래서 싱글톤으로 만들어서 몇번을 호출하더라도 같은 Object가 나오도록 한 것이 아무런 의미가 없는 것이 된 것인지 알아보기 위해서 한번 위 스크린샷처럼 같은 py파일에 만들어 두어서 한번 Kiwoom()의 을 Print()함수로 가지고 오도록 만들었습니다.

 

그리고 나서 실행을 하는 부분에서도 그냥 놔두면 당연히 실행이 되지 않기 때문에, 위 스크린샷처럼 일단 10초간 쉬고 난 다음에 다시 두번째 클래스를 실행시키라고 명령을 내려 줍니다.

 

이렇게 해서 실행을 시켜 보니까, 위 스크린샷처럼 일단 제대로 같은 주소의 메모리 주소가 뜨는 것을 확인할 수 있었습니다. 이것으로 봐서는 싱글톤을 만들어 주니까, 같은 py파일에서는 같이 나온다는 것을 알 수 있었습니다.

 

다음으로 해야 할일은 위 스크린샷처럼 일단 로그인 정보로 제 ID를 가지고 오면, 이 while이라는 루프를 벗어나서, finish라는 글귀가 출력이 되도록 만들어 주었습니다.

 

이러고 나서 실행을 시켰더니, 위 스크린샷처럼 일단 finish라는 글귀까지 나오는 것을 볼 수 있었습니다. 이렇게 봐서는 실행자체는 제대로 제 의도대로 일단은 되고 있는 것으로 보입니다.

 

그리고 계속해서 멀티 프로세스를 하니까 잘 되지를 않아서, 하는 수 없이 위 스크린샷에서 나오는 것처럼 TestClass를 만들어서 한번 작업에 들어가 보도록 합니다. 작업이 성공하면 sucess_evidence라는 txt파일이 생성이 될 것입니다.

 

 

그리고 나서 main2라는 메서드에서 기존에는 멀티 프로세스를 이용하는 방법으로 그냥 Trade_Machine을 객체화 시켰는데, 그러지 말고 새로 만들어 놓은 TestClass를 만들어 주도록 합니다.

 

이렇게 하니까, 제대로 모든 과정이 완료가 되는 것을 확인할 수 있었습니다. 이제 제대로 된 txt파일이 생성이 되었는지 여부만 확인하면 됩니다.

 

한번 윈도우 탐색기로 확인을 해 보니까, 제대로 도니 것이 생성이 된 것을 볼 수 있었습니다. 그것도 멀티 프로세스를 작동 시킨 2개의 프로세스 모두 생성이 된 것을 확인할 수 있었습니다.

 

그런데 왜 이렇게 Trade_Machine에서는 제대로 적용이 되지 않았을 까요? 이런 문제를 해결하기 위해서, 먼저 해야 할일이 하나 있었습니다. 먼저 PyQt5를 사용하는 목적은 C언어로 되어 있는 키움증권의 OpenAPI를 이용하기 위해서 입니다. 그런데 이걸 여기까지 계속 유지 시켜야 할 이유는 없기는 없었습니다.

 

일단 여기에 PyQt5를 클래스에서 제거했어도 제대로 로그인 정보를 가지고 오는 것 까지는 확인할 수 있었습니다. 이렇게 해서 보면, 어떻게 큰 문제는 없어 보이기는 합니다.

 

일단 이유를 잘 모르지만, 계속해서 while 루프를 빠져 나오지 못하는 것 같아서 아예 나올 수 있도록 break문을 주도록 하였습니다.

 

그런데 키움증권 OpenAPI사용 등록을 해달라고 하면서 이렇게 로그인 정보가 나오지 않는 경우가 있습니다. 이 경우는 지금 당장은 아니지만, 나중에 더 완성된 프로그램을 만들 때 쓸수 있어 보입니다.

 

일단 계속해서 성공의 증거인 txt파일이 생성되지 않는 이유가 잘못된 경로를 지정해서 이렇게 된 것이었습니다. 그래서 경로 앞에 붙어 있던 /를 없애고, 다음으로 종료 명령어를 주도록 합니다.

 

조금 찝찝하기는 하지만, 그래도 일단 위 스크린샷처럼 일단 작업이 완료가 되어서 종료가 되는 것을 확인할 수 있었습니다. 이렇게 해서 제대로 txt파일이 생성이 되었느냐 하면......

 

위 스크린샷처럼 제대로 된 txt파일이 생성이 된 것을 확인할 수 있었습니다. 그래서 일단 Trade_Machine에 PyQt없이 명령을 쓰는 것은 가능하다는 생각이 듭니다.

 

그래서 다음으론느 위 스크린샷처럼 2개의 멀티 프로세스를 작동 시키는 작업을 하도록 했습니다. 그런데 이렇게 했더니 문제가 발생하는 것 입니다.

 

프로그램이 전혀 작동을 하지 않고 위 단계에서 멈추어 버리는 것을 확인할 수 있었습니다. 이래서야 작업을 제대로 할 수 있는지가 의문이기는 한데, 아무튼 간에 계속해서 방법을 찾아서 돌파구를 만드는 수 밖에 없겠다는 생각이 듭니다. 다만 어디가 문제인지 지금 당장은 짐작도 가지 않아서 상당히 어렵습니다.

반응형