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

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

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

안녕하세요?


지난번 포스팅에서 어떻게 해서 예수금과 보유한 주식의 양을 가지고 오는 것을 보여주었습니다. 그런데 아직은 이 값들을 RLTrader에 전달해서 반영이 되지 았기 때문에, 이번 포스팅에서 이를 구현하고자했으며, 관련된 내용을 포스팅 하고자 합니다.



먼저 예수금과 주식의 보유량을 가지고 왔는 코드의 다음에, txtFile4와 5라는 변수를 만들고, RLTrader의 폴더에다가 한번 txt파일을 만들어 보도록 합니다.



다음으로는 이전에 처럼 RLTrader를 작동시키기 전에 생성된 txt파일에다가 내용을 적어 두도록 하는 것 입니다. 이렇게 해서 관련된 정보는 보내질 것으로 예상이 됩니다/



실제로 pytrader를 실행시킨 다음에, 위 스크린샷처럼, 이전에는 없었는 txt파일이 생성이 되어 있는 것을 볼 수 있었습니다. 그리고 내용이 제대로 와 있는 것을 스크린샷으로 보여주지 않았지만 확인 했습니다.



먼저 RLTrader에 가서는 위 스크린샷처럼 이전에는 없던 클래스 변수를 선언해 주도록 합니다. 그리고 나서, 다음의 작업에 들어가도록 합니다.




그리고 프로그램이 시작되는 부분에는 위 스크린샷과 같은 부분에서 txt파일을 열고, 이 그 내용을 읽어오는데, 관련된 내용을 문자열이 아닌 숫자로 입력해야 하기 때문에, 지정해 주도록 합니다.



그래서 기존에 최대한 거래를 할 유닛에는 위 스크린샷처럼 현재 보유량을 집어 넣어 주도록 하며, 다음으로는 balance항목에는 이전에 pytrader에서 보내온 예수금 정보를 집어 넣도록 합니다.



그런데 예수금 항목에 있는 쉼표 때문에 이런 문제가 발생하는 것을 볼 수 있습니다. 이게 예수금만이 아니라, 혹시라도 모르지만, 주식 보유량이 3자리를 넘어가면 발생할 수도 있는 문제라는 생각이 들었습니다.



그래서 하는 수 없이, replace()라는 함수를 사용했는데, 여기서 중요한 것은 쉼표인 ','를 대체하는 것이 ''라고 스페이스바를 누르지 않은 것이지, 공백이 들어가면 에러가 뜹니다.




그런데 readline()이라고 해서, 파일과 관련된 함수에는 전혀 이런 replace라는 함수가 적용이 되지 않기 때문에, 에러가 뜨는 것을 확인할 수 있었습니다.



그래서 한번 또 위 스크린샷처럼 바꾸어서 시도를 해 보았습니다만, 문제는 이러고도 에러가 뜨는 것을 볼 수 있었습니다. 다시 코딩을 해야 했습니다.



먼저 읽어온 내용을 str() 함수를 이용해서 먼저 문자열로 만든 다음에, replace()함수로 쉼표를 제거하였으며, 다음으로는 float()함수를 써서 실수로 만들고, 다음에 int함수를 써서 정수로 만듧니다. 마지막으로 이 함수는 클래스 함수로 쓰고 싶기 때문에, 미리 선언을 해둔 클래스 함수에 넣도록 합니다.



이렇게 하고 RLTrader만을 실행시켰을 때, 위 스크린샷처럼 예수금은 적용이 된 것을 확인을 할 수 있었습니다. 그런데 문제가 발생했습니다. 바로 이미 보유하고 있는 주식인 51주가 전혀 반영이 되지 않은 것을 확인할 수 있었습니다. 이게 사소해 보일 수도 있지만, 앞으로 주식을 중간에 처분해서 현금화 할 것을 생각하면, 이 문제는 그냥 넘길 수 없으리라 생각이 됩니다.

반응형