안녕하세요?


더 이상은 미루고 미룰 수가 없어서, 이번에야 말로 RLTrader를 가동해서 기계학습을 이용, 수익을 내기 위한 모델을 만들고자 하는 것 입니다. 그런데 이게 너무 시행착오가 많아서 하다하다 보니 내용이 엄청나게 길어 져서 한개의 포스팅에 다 올리기는 무리였습니다. 그래서 이번 포스팅에서 첫 단계의 시행착오를 올리고자 합니다.



먼저 AJ렌터카의 주식의 캔들차트와 거래량을 가지고 오도록 합니다. 참고로 왜 이런 AJ렌터카(종목코드 068400)을 선택 했냐고 하면, 주가범위가 9000~20000원 사이에서 만만해 보인다고 해야 할까요? 아무튼 만만해 보이는 회사의 주식을 대충 골랐습니다. 물론 저 개인은 저 AJ렌터카가 어떤 회사인지는 모릅니다. 다만, 저와는 전혀 관계가 없음을 미리 밝혀 드리겠습니다.



일단 마이크로 소프트 엑셀에서 텍스트로 복사한 내용의 데이터를 붙여넣기 하고, CSV형식으로 저장을 하되, UTF-8로 인코딩을 하고, 쉼표(,)로 구분함을 선택하도록 합니다.



일단 위 스크린샷에 보시면, PyCharm의 프로젝트 폴더에서 chart_data폴더에 가져다 놓은 것을 볼 수 있습니다.



그리고 main모듈에서 9번줄에 있는 stock_code를 AJ렌터카의 주식 코드로 바꾸어 주도록 합니다.



그리고 학습에 사용할 기간을 정해 주도록 하는데, 우선 2016년 5월 19일부터 2018년 4월 23일까지의 데이터를 쓰기로 했는데, 총 600행의 엑셀에서 나와있는 데이터에서 75%는 학습에 사용하도록 하고, 1/4인 125행의 최근 데이터는 테스트에 쓰도록 했습니다.



그리고 policy_learner(정책 학습기)모듈에서 balance라는 항목이 있는데, 원래는 천만원이 있었지만, 제게는 그만한 돈은 없기 때문에 일단 만만한 금액인 10만원만 넣어 주도록 했습니다.




그리고 1차로 PyCharm에서 프로그램을 Run시켰으나, 얼마 되지 않아서 에러가 뜨는 것을 볼 수 있었습니다. 이 에러는 지금와서 보면 어이가 없지만, 이 때 까지만 해도 애를 먹기 시작한다는 신호탄이 되었습니다. 아무튼 왜 떴느냐 하면, log파일이 있는 폴더를 찾아가야 하지만, 그런 폴더가 원하는 위치에 없어서 이런 일이 벌어진 것 입니다.



일단 저 때는 어디가 문제인지 몰랐기 때문에, github에서 책에 나와 있는 코드의 오류가 있어서, 이걸 수정하는 단계에 들어가 보도록 했습니다.



그리고 나서 다음에 위 스크린샷처럼 나와 있는 코드의 오류를 다시 고치도록 했습니다.



그리고 나서 위 스크린샷에서 쓸모가 없다고 해서 없앴는 코드를 다시 만들어 주도록 했습니다.



그리고 나서 제대로 작동이 되는 것이 맞는지 확인해 보기 위해서 print("아무 글자") 라는 함수를 써서, 어느줄까지 제대로 실행이 되는지를 알아 보고자 합니다.



그래서 다음에는 제대로 되겠지라고 해서 실행을 시켰는데, 일단 위 스크린샷처럼 또 에러가 나왔는데, 이번 PermissionError의 경우에는 권한의 문제라고 생각할 수도 있지만, 이번과 같은 경우에는 저 위치에 원하는 파일이 없어서 생기는 문제라는 생각이 듭니다.




그래서 위 스크린샷처럼 filename= 이라고 되어 있었던 부분을 그냥 지워 버리는 방법을 채택했습니다.



그러자 이번에는 뭐라고 해야 할까요? logging을 이용해서 파일을 생성하는 것 까지는 성공했습니다만, 문제는 차트 데이터를 인식하지 못하는 현상이 발생했습니다. 왜 이런 일이 발생하였는가 하면, 간단하게 말해서 차트 데이터가 있는 csv파일의 명칭이 그냥 주식 코드가 되어야 하는데, 그걸 다른 형태로 만들어서 벌어진 일이였습니다.



그리고 일단 로그파일은 제대로 생성이 되었는지를 살펴 보았는데, 뭐라고 해야 할까요? 제가 전혀 원하지 않는 위치에 생뚱맞게 생겨진 것을 볼 수 있었습니다. 아무튼 일단 생성이 되었으니, 이 부분은 나중으로 미루도록 하고 지금은 인공지능이 작동을 시키는 것에만 집중을 하도록 했습니다.



그래서 이번에는 어디가 문제인지 몰라서 자세히 보니, 원래의 파일에는 /로 폴더를 구분하고 있는데, 이는 리눅스 계열의 OS에서 사용이 되는 방법입니다. 그래서 윈도우에서 인식이 잘못 되어서 나타나는 현상이었기 때문에 백 슬래쉬 \를 사용해서 위치를 바꾸어 주도록 합니다.



다만 경로만 잘못된 것이 아니라 파일명도 잘못되어 있다는 것을 이제서야 알았습니다. 즉, 명색이 인공지능이니 뭐니 해도, 결국 이런 것은 자동으로 인식을 못하는 듯 합니다. 그리고 경로 바로 앞에 \를 붙이니까 바로 C:\이 붙어서 이건 좋지 않다는 생각이 들어서, 이는 빼도록 해야 겠습니다.



그래서 위 스크린샷처럼 빼도록 하고, 이제 실행을 시켜 보도록 합니다. 그런데 여기서도 짐작이 가실 분은 아시겠지만, 역시나 하는 생각이 들 정도로 휴먼에러가 계속 발생하였습니다. 뭐라고 해야 할까요? 기계학습이니 딮러닝이니 하는 것이 분명 강력한 도구는 맞지만, 휴먼 에러는 정말인지 발목을 잡아도 끈질기게 앞으로 잡는 모습을 보실 것 입니다.

  1. jetasia 2019.05.23 11:11

    모든 프로그램 작성후 main파일을 run 시켰을때 settings의 BASE_DIR에서 오류가 발생합니다
    AttributeError: module 'settings' has no attribute 'BASE_DIR'
    해결 방법이 있을까요?

    • 안녕하세요?

      저도 코드를 전부 보지 않아서 뭐라고 말하기 곤란합니다만, 일단 아무래도 오타로 인한 에러일 가능성이 있어 보입니다.
      그게 아니라고 하면, 이번 포스팅에 쓰인 코드는 모두
      https://github.com/quantylab/rltrader
      여기에 있는 코드와 파이썬과 케라스를 이용한 딥러닝/강화학습 주식투자 라는 책에서 나왔습니다.

+ Recent posts