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

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

by 인터넷떠돌이 2018. 12. 31.
반응형

안녕하세요?


어느덧 2018년도 마지막이 되었습니다. 하지만 아직도 제 주식 인공지능은 모의투자를 자동으로 할 수 있는 수준으로 발전하지 않았는데, 그 이유는 두뇌역할을 하는 프로그램과 몸의 역할을 하는 프로그램을 아직 이어 붙이지 못했기 때문입니다. 일단 이 과정은 쉽게 끝나지도 않을 뿐더러, 그 과정도 어렵기는 어렵습니다. 아무튼 이러니 저러니 해도, 좌우충돌이 많은 과정을 여기 포스팅에 올리도록 해 보겠습니다.



지난번 포스팅에서 /로 연결이 되어서 문제가 되었던 부분이 어디서 문제를 일으켰나 했더니, 위 스크린샷의 부분입니다. 이런 식으로 하면 왜 문제이냐 하면, 다른 것도 아니라 바로 RLTrader가 데이터  베이스 파일을 읽을 수 없기 때문입니다.



실제로 이렇게 바꾸고 나니까, 위 스크린샷처럼 제대로 된 경로로 txt파일에 찍히는 것을 확인해 볼 수 있는 것을 볼 수 있습니다. 이렇게 하는 것으로 일단 문제하나는 해결했습니다.



다음으로는 RLTrader에서 이제 데이터 베이스의 경로를 읽어오게 만들어야 할 필요가 있습니다. 이 방법 역시 간단하게 끝을 낼 수 있었습니다. 위 스크린샷처럼 먼저 클래스 변수로 빈 경로를 하나 만들어 주고, open()함수로 읽어와서, 여기다가 readline()함수를 쓰면 되는 것 입니다.




그리고 나서 기존에는 일일히 데이터 베이스파일의 경로를 지정했던 곳에다가 위 스크린샷처럼 데이터 베이스의 경로값이 들어간 변수를 집어 넣어 주도록 합니다.



그런데 예상치 못한 에러가 발생한 것을 볼 수 있었습니다. 이 에러는 다른게 아니라 date형식의 자료가 원래는 문자열인데, 이걸 float형식으로 변경을 하지 못해서 발생하는 에러라는 것 입니다.



그래서 다시 pytrader로 가서, 위 스크린샷처럼 원래는 %Y-%m%d %H:%M:%S 라는 형식으로 되었지만, 이 형식이 보기에는 편할지 몰라도, 프로그램에서 숫자로 바꾸어 줄 수 없어서 에러를 일으키는 요인이 되기 때문에, 하는 수 없이 그냥 사람이 보기에는 불편해도, 프로그램이 읽어 들이기는 편한 형식으로 바꾸어 줍니다.




그리고 나서 아예 확실하게 숫자로 바뀐 date2라는 변수의 값을 ohlcv라는 딕셔너리 안에 집어 넣도록 만들어 주도록 합니다. 이렇게 함으로서 이제 문제가 해결이 되기를 기대하는 것 입니다.



일단 기존의 데이터 베이스는 쓸 수 없어서 하는 수 없이 위 스크린샷처럼 새로 데이터를 가지고 오도록 했습니다. 역시나 10초 단위로 제대로 데이터가 들어오는 것을 볼 수 있었습니다.



그리고 나서 RLTrader상에서는 제대로 실행이 되는 것을 볼 수 있었습니다. 이렇게 까지 해서 확인을 해 보는 이유는 pytrader에서 연결해서 확인해 보는 것만 해서는, 제대로 된 결과를 얻을 수 없기 때문인데, 여기서는 RLTrader가 에러를 내서 정지를 하든 말든 계속 해서 데이터를 가지고 오는 것은 잘하고 있습니다. 이제 일단 몸에 해당하는 pytrader에서 신호를 txt파일을 이용해서 RLTrader에 하나 보내는 데는 성공했습니다.

반응형