근래 한달의 시간 동안 주식 자동매매 프로그램을 만들어봤다. 한달쯤 된건가? 요즘은 퇴근하고 잠이 많아져서 매일 작업한 것은 아니고 어쩔때 한 4~5시간 작업해보고를 반복했다.
시작 계기
그간 자동매매에 관심이 생겨서 좀 알아봤는데 찾아보니까, 보통 거래량이 많이 몰리는 종목을 API로 받아서 조건에 맞으면 매수한다거나.. 머 그정도가 다였다. 내 생각에는 이 방식으론 안될거라는 생각이 들었다.
나는 종목을 찾아주는 프로그램이 아닌, 한개의 우량주를 하나 정해놓고, 해당 종목이 하루동안 가지는 변동성에서 수익을 보면 되지 않을까? 생각을해서 바로 개발에 착수했다.
머 결론부터 말하자면, 이건 아무리 생각해봐도 안될 것 같아서 접었다. 접었다기 보다는. 다른 방식이 나을꺼같아서 다른 방법으로 개발을 해보려고 한다. 머 뼈대까지 다 개발하고 모델만 구현하면 되는거였는데 ㅋㅋㅋ.. 뼈대 개발한게 아깝기도 하고 지금 까지 개발했던 것은 혹시나 필요한 사람도 있을 것 같아서 한번 정리해보려고 적는 포스팅이다 ㅎㅎ
파이썬을 선택한 이유
회사에서도 거의 자바만 만지고 있고 GUI 앱에서 주로 쓰는 C계열도 많이 만져봤지만 파이썬을 선택했다. 이런 저런 이유들이 있겠지만 파이썬을 선택한 가장 큰 이유는 대수 처리가 유연하다는 것, 그리고 자료형의 제약이 유연하다는 것, 자동매매쪽으로 정보가 많다는 점. 머 이정도가 있다. 사실 파이썬을 공부해보고 싶은 맘도 있었다 ㅎㅎ, 스크립트 언어라서 머 강력하면 얼마나 강력하겠어! 라고 생각했는데 써보니 기대 이상이어서 놀라웠다 특히.. 어떻게 이런식으로 자료형을 다룰까.. 혹시나하고 쳐서 돌려보면 오류 없이 쌩쌩 돌아가는거 보고 놀랐다.
개발 방향
그간 개발해본 결과물이다 ㅋㅋ.. 머 이상태로 끝은 아니고 지금 다른 아이디어가 생겨 그거 구현해보고 괜찮을 경우 이 폼에서 다시 시작할 생각이다. 지금까지 만들어 놓은게 사실 훈련 시뮬레이터라고 생각하면 된다.
보니까 키움 API는 모의투자 서버거 실제 운영서버 시간하고 동일하게 돌아간다 ㅋㅋ 즉, 내가 자동매매 모델을 만들고 돌려서 디버깅도 해보고 내 모델을 검증해봐야하는데... 장 시작할때인 9시는 이미 내가 출근해 있는 시간...
뭐.. 로그를 남겨서 확인해보는 방법도 있겠지만, 이건 내 성격하고 맞지 않는다... 직접 실시간으로 내가 눈으로 보면서 피드백을 하고싶은데 출근해야한다니!
그래서 생각했다. 과거 데이터를 받아서 내가 프로그램에 가상의 시간을 설정해놓고, 가상의 시간을 돌려 실제 운영환경처럼 만들고 그 위에서 모델을 검증하면되는거 아니야!?
그 결과물이 바로 위 사진이다. 보면, 트레이닝 인포에 종목 코드를 치고 Create를 하면 해당 주가가 Load 되고, 시작시간과 배속설정을 하고 Start 버튼을 누르면 가상 시간이 돌아가면서 실시간으로 그때의 주가를 찍으며 그래프가 진행된다.
이거 다 만들어놓고 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 매매모델을 만들려고 유튜브도 보고, 수십번 저 시뮬레이터를 돌려봤지만 내가 생각한 모델은 불가능했다. 맞다.. 이렇게 쉬웠으면 누구나 다 이방법으로 수익을 내고 있었겠지...
내 아이디어는 이거였다. 지금 생각하니까 아이디어라고 하기에도 웃기다 ㅋㅋㅋ 그냥 그래프의 기울기를 보고 저점에 사서 고점에서 파는거다 ㅋㅋㅋㅋ
머.. 말은 간단한데 사실 더 생각은 있엇다. 각종 지수, 머... 주가에 영향을 줄만한 것들? 각종 인덱스, 산업지수, 환율, 등등 많은 값들을 불러와 매매강도를 정해 시장이 좋을 경우 적극적으로 행동하고, 시장이 안좋다고 판단할때는 몸을 사리는 머 그런 프로그램을 만들려고 했다.. 하지만... 아무리 생각해봐도... 그래프의 이전 기울기만 보고 1초 뒤의 미래를 예측하는건 무리였다......
주식이란게..머 재무재표도 탄탄한지...지수에 영향을 받았는지... 그리고 작전 세력... 외인, 거대 기관의 수익실현할 타이밍에도 주가가 움직인다. 그리고 뉴스로 보도되는 이슈들로 인한 사람들의 기대심리로 상승하거나 하락하거나.. 아주아주아주 수많은 요인에 의해서 주가가 움직이는데 몇시간 전 기울기를 보고 1분 후를 예측하는게 바보같다는 생각이 들었다.. ㅋㅋㅋ
아무튼 이 포스팅을 위해서 주식으로 수익낸다는 생각보다. 아 GUI 앱은 이렇게 만드는구나.. 정도 생각하면 될꺼 같다.ㅎㅎ 내 포스팅에 있는 다른글들과 마찬가지로 비전공자도 따라 올 수 있게끔 쉽게 써볼 생각이다 ㅎㅎ
'IT > Python' 카테고리의 다른 글
[파이썬 #2] 주식자동매매 시뮬레이터 - 개발환경 셋팅(Python / PyCharm) 및 프로젝트 생성 (0) | 2021.03.01 |
---|