주식 인공지능의 몸과 두뇌를 연결하기 위한 시도-7-
안녕하세요?
계속해서 오른손 중지가 불편한 가운데 포스팅을 한다고 정말로 느린 타이핑을 하는 중 입니다만, 아무튼 지난번 포스팅에서는 모의투자로 보유하고 있는 주식의 보유량이 제대로 반영이 되지 않는 것을 보았습니다. 그래서 이번 포스팅에서는 어떻게 이를 극복해 보기 위해서 여러가지 시도를 하였고, 그 내용을 올리고자 합니다.
먼저 이 사태가 일어난 원인이라는 생각이 드는 agent.py라는 RLTrader의 파일로 가서, 먼저 import main이라고 첫 머리에 넣어서 main모듈을 임포트 해 주도록 합니다.
다음으로는 위 스크린샷과 같이 코딩을 해서, agent모듈이 시작을 하자마자 보보유하고 있는 주식의 양에 반영이 되도록 만들어 줍니다.
그런데 어떻게 된 것인지 아예 RLTrader가 실행이 되지 않는 것을 볼 수 있었습니다.
문제는 바로 main모듈이 임포트가 되지 않는 것인데, 왜 import가 되지 않느냐고 하면, 바로 위 스크린샷에 보이는 구문때문인데, 이 구문이 의미하는 것은 간단합니다. 비로 다른곳에 모듈로 사용이 되지 않고, 최종 파일로서 사용이 되라는 ㅇ의미라고 합니다.
그래서 이번에는 아예 agent모듈에다가 pytrader로 부터 날라온 정보를 저장한 txt파일을 읽도록 하고, 그 값을 초기 agent의 속성으로 쓰도록 했습니다.
그런데 그렇게 하고도, 전혀 상황이 나아지지 않는 것을 볼 수 있었습니다. 여전히ㅏ 마지막에 8주의 주식을 매수해서 총 보유 주식은 8주일 뿐이라는 결론만 나오는 것 입니다.
그래서 먼저 여기 스크린샷에는 나오지 않지만, 일일히 print()함수를 사용해서 어느 부분에서 내가 의도하고자 했는 보유 주식량이 안 나왔는지 알아보았고, 그 위치에 변수값을 넣어주기 위해서는 다른 메서드에 가야 하기 때문에, 클래스 변수를 선언해 주고, 문자열이 아니라 숫자여야 하기 때문에 0이라고 선언을 해 줍니다.
아차, 이제서야 알아차린 것이지만, 위 스크린샷에서 밑줄이 잘못 쳐 졌는데, 실제로는 4줄 위로 올라가서, self.num_stocks라는 항목에서 위에서 만들어 놓은 클래스 변수를 넣어주도록 합니다.
이제서야 제대로 제가 의도한 대로, 키움증권 서버에서 가져온 주식 보유량이 RLTrader에 반영이 되는 것을 볼 수 있습니다. 이것으로 pytrader에서 보내야 하는 값들을 어떻게 RLTrader로 보내는 데는 성공했습니다만, 반대로 RLTrader에서 pytrader로 보내야 하는 부분은 아직 구현이 되지 않았습니다. 이래저래 오른손 중지 손가락이 불편한 가운데, 다음 포스팅까지 잘될지는 모르겠습니다.