사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다.
비슷한 차트 검색기
전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요?
www.similarchart.com
토익 끝! 이제 뭐 하지..
7월 30일 토익을 마치고, 결과를 보니 일단 원하는 800점대가 나와줘서 토익은 여기까지 하기로 했습니다. 그 후 일주일정도 쉬면서 개강까지 무엇을 해야 할까 고민했습니다. 9월 9일에 SQLD 시험이 있지만, 한 달 동안 SQLD 공부만 하기엔 뭔가 아쉬웠습니다.
그동안 CS공부와 코딩테스트 준비를 해왔지만, 또 다른 중요한 것 중 하나인 프로젝트는 '언젠간 해야 하는데..' 라며 생각만 해왔었습니다. 개강까지 한 달도 남지 않았지만, 그래도 할만한 프로젝트가 있나 생각해 보았습니다.
살짝 번아웃? 개발자가 되려고 한 이유
프로젝트에 관해 고민하면서 잠깐 자신을 되돌아보는 시간을 가졌습니다. 1년 3개월 동안 푹 쉬는 날 없이 쭉 빠르게 달려왔습니다. 1년 3개월 전 막 전역한 직후와 지금을 비교해 보면, 개인적으로 엄청난 성장을 한 것 같습니다. 그런데 요즘은 뭔가 이전보다는 살짝 천천히 가고 싶은 느낌입니다.
공부를 하면서 이 공부들이 나중에 어떻게 도움이 되는 건지 의문이 드는 경우가 많았습니다. 공부해 놓고 나중에 활용하지 않아 의미 없는 공부가 되는 건 아닐까 생각이 들었던 것 같습니다.
내가 왜 개발자가 되려고 했었는지, 왜 IT관련 공부를 열심히 해왔었는지, 왜 주말 휴일 가릴 것 없이 푹 쉬는 날 없이 매일 달려왔는지, 조금은 까먹었던 것 같습니다.
물론 좋은 기업에 취업하여 준수한 급여를 받으며 안정적인 삶을 사는 것도 목표 중 하나였습니다. 하지만 그것 말고도, 제가 원하던 것이 있었습니다. 제가 공부를 열심히 해온 목적은 내가 만들고 싶은 것이 생기면 어떤 것이든지 만들 수 있는 능력을 가지는 것, 말 그대로 개발자가 되는 것이라고 생각합니다.
내가 하고 싶은 것, 만들고 싶은 것, 개발하면서 재밌어 할 수 있는 것이 뭘까 생각해 보았습니다. 요즘 경제와 주식 등에 관심을 많이 가지게 되었습니다. 그리고 매우 어렵겠지만, 모두의 꿈인 주식 가격을 예측하는 것에 대해 자연스럽게 관심을 가지게 되었습니다.
주가를 예측할 수 있을까?
어떤 회사의 주가를 예측하는 것은 매우 어려운 문제입니다. 그냥 다음날 상승과 하락을 53% 정도의 확률로 맞출 수만 있어도 꽤 준수한 프로그램이라고 합니다. 이를 위해선 일반적인 프로그램이 아니라 인공지능 모델을 만들어야 할 것 같습니다.
저는 백엔드 개발자를 목표로 해와서 인공지능에 대해서는 깊은 지식은 가지고 있지 않습니다. 혼자 공부하는 머신러닝&딥러닝 책에서 공부했던 내용과, 2022-2에 수강하였던 인공지능개론과 2023-1에 수강하였던 데이터사이언스, 인공지능(딥러닝과 CNN) 과목에서 배운 기본적인 내용들을 활용해야 할 것 같습니다.
물론, 제가 만든 프로그램이 정말 주가 예측에 대해 의미 있는 결과를 도출해 줄 것 같진 않습니다. 하지만 저번학기에 데이터사이언스 수업에서 데이터 분석 프로젝트를 하며 데이터 분석도 꽤 재밌는 면이 있다는 것을 알게 됐습니다. 제가 해보고 싶은 분석들을 해보는 것만으로도 의미가 있다고 생각합니다.
과연 가능할까..
인공지능 주가예측에 대해 여러 가지 조사해 보니, 보통 자연어 처리 또는 주가와 같은 시계열 데이터를 분석할 때 LSTM이라는 딥러닝 모델을 사용한다고 합니다. 하지만, 자연어처리는 다음 학기인 2023-2에 수업이 있고, 저는 자연어처리 모델들에 관해서는 지식이 거의 없어 깊은 분석을 하기가 어려웠습니다.
그래서 일단 그래디언트 부스팅 머신러닝 모델인 LGBM 모델을 이용해 다음날 상승 또는 하락을 예측해 보려고 시도했지만, 의미 있는 결과를 얻지 못했습니다. LSTM도 살짝 건드려 보았지만, 제 기량으로는 역부족이었습니다.
그리고 결정적으로, 조사하며 느낀 것은, LSTM으로 주가를 예측했다는 자료들을 보면, 대부분 실제 주가 그래프를 반박자 늦게 따라가기만 할 뿐, 크게 의미 있는 결과를 얻은 자료들은 찾기 힘들었습니다. 그래서 어떻게 해야 의미 있는 결과를 도출할 수 있을 것인가에 대해 고민을 많이 했던 것 같습니다.
자세한 경과는 다음에..! 일단 결론
이 글은 프로젝트를 어느 정도 마무리하면서 쓰는 글입니다. 저는 딥러닝으로 직전 32 거래일의 차트를 분석하여, 향후의 주가(5일 또는 10일)가 어떻게 될 것인가에 대해 예측하는 식으로 방향을 잡았습니다.
아무 종목을 골라 아무 시점에서의 향후 방향을 맞추는 것은 너무 어렵습니다. 하지만, 폭등이나 폭락하기 전 차트들을 분석하면 많이 보이는 패턴들이 있을 것이라고 가정했습니다.
결론적으로, 약 55%의 확률로 향후 5 거래일 종가의 평균이 현재 종가보다 상승인지, 하락인지 맞추는 모델을 만들었습니다. 하지만 시가총액 1조 이하 특정종목 한정에, 하루 한 개꼴의 종목추출, 270개 정도의 적은 검증데이터등 아직 부족한 점이 많습니다. 그리고 분명 뭔가 잘못 검증했을 것입니다. 실제로 검증해 보면 50%도 안 나올 수도..
이후 자세한 분석 내용들은 시간 날 때 작성해 보겠습니다.
'프로젝트' 카테고리의 다른 글
비슷한 차트 탐색 프로젝트 - 3. 프로젝트를 Docker로 구성해보자 (0) | 2024.02.17 |
---|---|
비슷한 차트 탐색 프로젝트 - 2. Flask, Django, Spring 어떤걸 쓸까? (0) | 2024.02.17 |
비슷한 차트 탐색 프로젝트 - 1. 시간을 줄이기 위한 여러 실험과 테스트 (0) | 2024.02.17 |
비슷한 차트 탐색 프로젝트 개요 - 처음에 막막했던 부분들(23.12.21) (0) | 2024.02.17 |
프로젝트 주제 변경(딥러닝 주가예측 -> 비슷한 차트 검색) (0) | 2024.02.17 |