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

주식 인공지능의 몸과 두뇌를 연결하기 위한 시도-7-

by 인터넷떠돌이 2019. 1. 3.
반응형

안녕하세요?


계속해서 오른손 중지가 불편한 가운데 포스팅을 한다고 정말로 느린 타이핑을 하는 중 입니다만, 아무튼 지난번 포스팅에서는 모의투자로 보유하고 있는 주식의 보유량이 제대로 반영이 되지 않는 것을 보았습니다. 그래서 이번 포스팅에서는 어떻게 이를 극복해 보기 위해서 여러가지 시도를 하였고, 그 내용을 올리고자 합니다.



먼저 이 사태가 일어난 원인이라는 생각이 드는 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로 보내야 하는 부분은 아직 구현이 되지 않았습니다. 이래저래 오른손 중지 손가락이 불편한 가운데, 다음 포스팅까지 잘될지는 모르겠습니다.

반응형