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

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

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

안녕하세요?


어제 오른손 중지 손가락이 감염되어서 악화되더니, 이제는 병원에 가서 깁스까지 했습니다. 그래서 일까요? 키보드를 타이핑 하는 속도도 상당히 느려지고, 덕분에 코딩을 하는데도 상당한 애로사항이 있습니다.그래서 중지이다 보니 독수리 타법도 안되는 상황에 처했습니다. 아무튼 그건 그것이고, 느려졌어도 주식 인공지능의 개발은 계속하는 중 입니다. 그리고 그 내용을 이번 포스팅에서 올려 보고저 합니다.



먼저 기존의 RLTrader에서 어떻게 내 계좌의 정보를 얻어오는 지에 대해서 살펴보았습니다.



그리고 어떻게 해서 kiwoom.py에서 OPW00001이라는 TR이 요청되면, 어떤 식으로 예수금이라는 통장잔고를 가지고 오는 지를 한번 보니까, self.d2_deposit 이라는 변수속에 있는 것을 볼 수 있었습니다.



그래서 아예 pytrader에서 작동을 할 수 있도록 만들어 주어서 위 스크린샷처럼 그냥 comm_rp_data를 요청하고 나서, 나왔는 변수의 값을 가지고 와서 담기만 하면 됩니다.



그리고 예수금이라고 해서 통장의 잔고는 확인을 하는 데는 성공했습니다만, 이제 주식의 보유량을 알아야 할 필요성이 있어서 TR중에서 OPW00018을 요청하면 나오는 메소드를 살펴보았습니다.



일단 여기서 저는 먼저 생각한 것이 하나 있는데, 일단 종목별로 보유량은 multi라는 딕셔너리 안에 있기 때문에, 여기서 인덱스를 0으로 주면 AJ렌터카라는 종목명을 가지고 올 수 있으리라 생각했습니다.




그런데 제 예상과는 다르게 인터엠이라고 하는 다른 종목의 정보가 나오는 것을 볼 수 있었습니다.



그래서 키움증권 홈페이지로 가서, 한번 확인을 해 보니까, 실제로 보유하고 있는 모의투자 증권이었고, 그래서 딕셔너리가 2차원으로 되어 있어서 먼저 나오는 인덱스가 바로 위 스크린샷에서 나오는 것처럼 각각의 종목에 대해서 다루는 것 이었습니다.



그래서 한반 for문을 2개 사용해서 이렇게 가지고 오도록 해 봅니다. 물론 위 코드는 바로 pytrader.py에 적어놓은 코드라고 할 수 있습니다.



일단 종목명을 가지고 오는데는 성공했지만, 문제는 쓸데없이 6번이나 반복이 된다는 것이 문제입니다. 그래서 이 문제를 해결하기 위해서 한번 작업을 해 보도록 합니다.



그래서 코드를 위 스크린샷과 같이 바꾸어 주도록 합니다. 그랗게 하는 것으로 이번에는 1번씩만 어떻게 종목명을 가지고 올 것으로 기대를 하고 있습니다.




이제서야 제대로 1번씩만 가지고 오는 것을 볼 수 있었습니다.



이제는 if문을 써서, 한번 lineEdit_2에 있는 텍스트의 내용과 일치하는 종목명일 경우에 인덱스가 1인 값 = 종목의 보유량을 가지고 오도록 만들었습니다.



이렇게 하는 것으로 제 모의투자의 예수금인 160,628원과, 그리고 AJ렌터카의 보유 주식량인 51주가 나오는 것을 볼 수 있었습니다.



그리고 실제로 이 값이 제가 보유하고 있는 예수금과 AJ렌터카의 모의주식투자 값과 같다는 것을 알 수 있었습니다. 이렇게 하는 것으로 이제 pytrader에서 제 예수금과 특정한 주식 종목의 보유량을 가지고 오는 데는 성공했습니다. 이제 이 값들을 어떻게 RLTrader에 전달하느냐가 문제입니다.

ps: 오른손 중지만 없어도 타이핑에 너무 지장이 큽니다. 이래서야 포스팅도 상당히 무리일 것으로 보입니다. 타이핑에만 무슨  1시간 이성이 걸립니다.

반응형