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

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

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

안녕하세요?


이번 포스팅에서는 오랫만에 주식 인동지능을 만드는 작업에 들어가서, 이제 pytrader와 RLTrader를 연결하는 작업을 해 보고자 합니다. 일단 부상때문에 많이 지체가 되기는 되었습니다만, 그래도 어떻게 작업을 했는 것이 있어서 그 내용이라도 한번 포스팅에 올려 보고자 합니다.



먼저 RLTrader가 어떻게 자기가 작동되고 있는 디렉토리 폴더를 알아내는 지를 알아보고자 했습니다.



그래서 먼저 pytrader가 작동하고 있는 디렉토리에 txt파일을 RLTrader가 생성해야 한다 = 결국 pytrader가 어디서 작동되고 있는지를 RLTrader에 알려줘야 하기 때문에 먼저 pytrader에서 RLTrader가 작동되고 있는 폴더에다가 txt파일을 만들어서 경로를 알려줘야 합니다.



실제로 한번 pytrader를 실행시키고 난 다음에, 그 다음에는 RLTrader에 위 스크린샷처럼 제대로 txt파일이 제 의도대로 생성이 되어 있는 것을 확인할 수 있었습니다.



그리고 제대로 pytrader의 경로도 나와 있는 것을 볼 수 있었습니다.




다음으로는 pytrader의 경로를 얻어오기 위해서 먼저 클래스 변수를 선언해 주도록 합니다.



다음으로는 py파일이 시작하자 마자 바로 txt파일을 읽어와서, 이 경로를 클래스 변수에 집어 넣어 주도록 합니다.



다음으로는 agent모듈로 가서, 위 스크린샷처럼 매수를 결정하는 항목에다가 txt파일을 생성해서 그 내용을 넣도록 만들어 줍니다. 이전에 pymob을 만들면서 배워둔 대로, 그 형식을 따라서 but_list.txt를 만들어 주도록 합니다.



그런데, 텍스트 형식이 아니라는 이유로 에러가 떴습니다. 그래서 이번에는 위 스크린샷처럼 한번 str()함수를 사용해서 문자열로 바꾸어 주도록 합니다. 

-2020년 2월 2일 수정사항-

실수로 pytraderPath_1 = str(pytraderPath_1.readlines()) 라고 해야 하는 것을 잊어버리고 그냥 찍었습니다. 여기가 오타가 있으니 유의해 주시기 바랍니다.




다음으로는 종목코드를 가지고 오기 위해서 위 스크린샷처럼 agent모듈 내에서 txt파일을 열어서 그 값을 읽어 오도록 만들어 주도록 합니다.



이제서야 기존에 있던 에러가 없어진 것을 확인할 수 있었습니다. 당연하다면 당연하게도 거래할 주식의 양은 바로 위 스크린샷처럼 trading_unit으로 만들어 주면 됩니다.

-2020년 2월 2일 오타수정-

여기서도 148번 줄을 보시면, 원래 제대로 하려면 txtFile1 = open(self.pytraderPath + '/buy_list.txt', 'a') 이렇게 되어야 합니다. 이점 유의해 주시기 바랍니다.



다음으로는 매도를 눌렀을 경우에 위 스크린샷처럼 txt파일을 생성해 둔 다음에, 그 txt파일에다가 기존의 pymob에서 보았던 것처럼 만들어 주도록 합니다.



그런데 가동을 시켜보니 위 스크린샷처럼 에러가 하나 떴습니다. 에러의 내용은 타이핑을 하면서 t자를 하나 더 추가해서 생긴 에러인 휴먼에러 였습니다.




그래서 기존에 있던 에러를 수정하기 위해서 open()함수에 있는 txt파일명을 실제로 존재하는 파일명으로 바꾸어 주도록 합니다.



그런데 이번에는 too many in dices for array라는 형식의 에러가 뜨는 것을 볼 수 있었습니다. 일단 지금 당장은 코드를 수정해서 이 에러를 해결하는 것은 제 능력밖의 일이고.....



에러가 발생한 이유가 바로 10초 단위로 주식 현재가를 얻어 오라고 했는데, 이게 1행만 들어가 있어서 발행사는 에러였습니다. 그래서 이게 한줄만 더 들어오면.....



이런 상태에서 한번 더 실행을 하면, 이제는 상황이 나아질 것을 기대하면서 한번 작업에 들어가 보도록 합니다. 일단 내용이 너무 길어져서 여기서 한번 끊어 주어야 했는데, 다음 포스팅에서는 이 에러를 극복하고, 어떻게 한번 RLTrader자체에서 제대로 실행이 되는지를 알아 보고자 합니다.

반응형