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

RLtrader의 제작 part4

by 인터넷떠돌이 2018. 10. 20.
반응형

안녕하세요?


지난번 포스팅에서는 기계학습-딮러닝의 핵심이 되는 모듈을 어떻게 만들기는 했는데, 문제는 이 결과를 아직 시각적으로 보여주는 모듈에 대해서는 아직 제작에 들어가지 않았습니다. 이번 포스팅에서는 이 모듈에 대해서 한번 제작을 해 보도록 하겠습니다.



먼저 위 스크린샷은 prepare()메소드에 대해서 올린 것 입니다. 이 메서드는 Figure를 초기화 하고, 주식의 일봉차트를 출력하는 역할을 하게 됩니다. 그래서 위 스크린샷을 보시면 ohlc라는 것이 있는데, 이게 바로 주식의 일봉차트의 봉 하나가 되는 4가지 값을 가지고서 봉차트를 만드는 것을 볼 수 있습니다.



그리고 나서 위 스크린샷에서는 이제 본격적으로 차트를 그리는 plot()메소드를 만드는데, 초반 부분을 보여주고 있습니다. 여기서 np.array()라는 함수가 있는 것을 볼 수 있는데, 파이썬 리스트를 n 차원으로 만드는 Numpy의 array()라는 함수를 이용, ndarray형식으로 변환해서 NumPy라이브러리에서 사용할 수 있는 자료구조로 변환해 줍니다.


그리고 여기서 하나 짚고 넘어가야 하는 것이 하나 있는데, 함수를 만들면, 언제나 나오는 self라는 것은 메소드의 첫 번째 인자로 반드시 들어가게 되는데, 여기서 self가 가르키는 것은 class가 아니라 객체(object)라는 것을 명심해야 합니다.




여기서 colors = ['r', 'b'] 라는 것이 있는데, metplotlib에서 사용이 가능한 주요 색상의 약어입니다. 주로 k: 검정색, w:흰색, r: 빨간색, b: 파란색, g: 초록색, y: 노란색



다음으로 zip()이라는 파이썬 내부의 함수인데, 배열에서 같은 인덱스 끼리 묶어서, 2개의 배열을 1개의 배열로 만들어 주는 역할을 한다고 합니다. 그 다음에 있는 axvline()은 x축 위치에서 세로로 선을 긋는 함수이며, alpha의 값은 선의 투명도 입니다.


그리고 여기서 나오는 '-'은 선, '.'은 점을 의미하기 때문에, 예를 들어서 '-b'라는 약어를 쓰면 matplotlib에서는 파란색 선을 그어주나, '.b'라는 값을 입력하면 파란색 점을 찍어 줍니다.



그리고 나서 차트4를 그려주는 부분인데, 여기서 fill_between()이라는 함수를 사용해서, 두개의 x축이나 두개의 y축 사이를 배열로 입력을 받으며, 그 사이를 지정한 색상으로 채워주는 역할을 하게 됩니다. 여기서 포트폴리오 가치가 초기 자본금 보다 높으면 빨간색으로 표시를 하며, 낮으면 파란색으로 채우게 됩니다.




그리고 이어서 그린 차트를 초기화 하고, 세이브를 하는 메소드까지 코딩을 해 주도록 합니다. 그런데 여기서 하나 걸리는 것이 여전히 learning이라는 부분에는 에러가 뜨는데, 이게 처음에는 왜 뜨는지를 몰랐습니다.



결국 마지막에 가서, 위 스크린샷처럼 plot()함수를 선언해 주는 붑누에서 learining이라는 인자를 선언해 주지 않아서 발생한 오류 였습니다. 이 오류까지 해결해서 이제 가시화를 시켜주는 모듈까지 만들어 주는 데 성공했는데, 이제 마지막으로 남은 모듈이 하나 있습니다. 이 모듈까지는 어떻게 다 코딩을 하고 나서 다음 포스팅을 올릴 것을 약속드리며, 이만 포스팅을 끝내도록 해 보겠습니다.

반응형

'무모한 도전-주식 인공지능 만들기' 카테고리의 다른 글

RLtrader의 제작 part6-final!  (4) 2018.10.22
RLtrader의 제작 part5  (2) 2018.10.21
RLtrader의 제작 part3  (0) 2018.10.19
RLtrader의 제작 part2  (0) 2018.10.18
RLtrader의 제작 part1  (0) 2018.10.18