Blog

illustrations illustrations

퀀트 추천언어와 직접개발 이유

Published on 2024-03-19 09:00 by macle

퀀트 추천 언어

개발 언어에 대해서 잘 모르고, 이제 퀀트에 대해 관심이 생겨서 프로그래밍 언어로 접근해 보려고 한다.

위와 같은 생각을 가진 사람에게 추천하는 언어는 파이썬 입니다.

이미 파이썬으로 만들어진 기술적분석 도구들과, 데이터 크롤링 도구, 또한 방대한 AI 머신러닝 관련도구들과 괕이 데이터 분석에 필요한 이미 만들어진 많은 도구 들이 파이썬언어에서 제공됩니다.

파이썬은 공부학 쉽습니다. 인터프리터 언어라서 결과도 라인단위로 확인이 가능하고 쥬피터 노트북과 같은 편의성이 높은 도구도 제공 됩니다.

미국의 퀀토피아 에서도 인프라를 이용해서 파이썬으로 코드를 짜서 테스트 해 볼 수 있습니다.

직접 개발 이유

제품의 필요성

연봉이 늘어나도 수도권 아파트는 구매가 어렵고, 현금가치 하락에 대해서 투자를 강요받는 생각이 들어서, 먼저 접근한게 주식이었습니다

직접트레이딩을 해보니 이에 대한 피로가 심해고, 즉흥적이고 감정적인 투자로 손실을 보는경우가 많아서 시스템화 해야겠다는 생각이 들었습니다.

중고등학교에 게임에서 자동프로그램으로 용돈을 벌던 기억과, 아이템중개 사이트에서 남들보다 비싼가격에 매수글을올리고 싸게파는 매도글을 자동으로 올리면서 용돈을 벌던 기억이나서 수익 자동화에 대해서 상상하기도 하였죠.

전략의 자율성 및 복잡성, 보안

전략은 심플해야 한다. 이러한 관점의 내용들도 많이 봐왔지만 저는 완성에 가까운 프로그램일수록 복잡도가 높을거라고 믿었습니다.

이런상황에선 이렇게 움직이고, 다른 상황에서는 다르게 움직이고, 뉴스와 같은 대안데이터도 활용하고 머신러닝 기술도 이용하고 스스로 시장을 파악하여 진화하는 프로그램이어야 한다는 생각으로 직접 개발하기로 하였습니다.

또 다른 이유는 힘들게 고민한 전략이 다른 시스템의 서버에 저장되는걸 원치 않기도 하였습니다. 많은 사람이 사용할 수록 시장은 변하기떄문에 고민한 전략은 가치가 없어지죠.

당시는 지금보다 못한 퀀트 지식이었기 었던 이유도 있고 꿈이 크던 개발자여서 그랬는지도 모르겠네요. 그때는 그러한 프로그램을 만들려고 했을때의 시간과 비용이 현실적이지 않게 크다는걸 고민하고 싶지 않았던것 같습니다.

남들보다 뛰어난 프로그램을 만들고 싶다란 생각이 가득 했던거 같아요. 지금은 현 시점에서 현실성도 고민하고 있습니다. 계속 꿈만 꾸면서 못 쓰는거보다, 사용 가능 하게 만들고 점점 업데이트 하는 방향으로 바꾸었습니다.

10년가까이 만들다 쉬기도 하면서 고민하다보니 그간 퀀트를 만들던 다른 개발자들도 많이 만났습니다. 그중에 투자로 큰성공을 이룬 사람은 1명, 나머지는 다 포기하였습니다. 20명은 넘은거 같으니까 개발자가 퀀트로 성공할 수 있는 확율은 5%도 안되는 것 같네요

지금까지도 계속 해서 하고 있는건, 지금도 직접 투자하는 것보다 시스템으로 투자하는게 좋다고 생각하기 떄문입니다.

그리고 현금 가치는 계속 하락하기 떄문에 제가 받는 임금 가치는 줄어들지만, 제가 꿈꾸는 프로그램을 만든다면 그 가치는 크다고 생각하고 있습니다. 자산시장은 규모는 엄청나게 크고 그 자산시장에서 활용되는 프로그램이니까요.

새로운 자산 시장 적용

증권사에서 제공한 방법을 사용하면 다른 증권사 혹은 암호화폐와 같은 다른시장에서는 적용하기 어렵습니다. 앞으로도 더 많은 시장이 나올거고 바로 대응할 수 있는 제품형태로 직접 만들고 싶었습니다.

자바로 개발한 이유

주 사용언어가 자바이고 제가 만든도구들과 제가 주로 사용하는 도구의 익숙함이 저한테는 자바가 제일 컷기 때문입니다. 파이썬도 사용하지만 저한테 익숙하고 고치기 쉽고 편한도구가 많은 언어는 자바입니다.

또 국내에 자바 개발자들이 많고, 자바진영에 퀀트들이 많이 없다보니 자바쪽 진영에서 많이 사용되는 시스템 트레이딩 오픈소스를 직접 배포하고 싶기도 하였습니다. 국내에서 많이 사용되는 오픈소스가 배포되는 경우는 거이 없기도 합니다.

회사에서의 주 업무도 기술처리, 자연어처리 엔진개발등이 있었고 다양한 상황에서의 기술을 자바로 개발하였기 때문에 자바에는 저한테 익숙한 도구들이 많았습니다. 제가 고민한건 복잡한 프로그램이고 빅데이터 처리도 들어가는 프로그램 이어서 자바로 플랫폼을 개발하고 그 플랫폼내에서 파이썬으로 작업한 내용을 사용할 수 있게하자 이러한 관점이었습니다. Rest api가 정착하면서 서로다른 언어로 개발해도 api연동이 쉬워진 부분도 있고, 파이썬언어는 자바플랫폼 내에서 실행시키기도 쉬운언어이기 떄문입니다.

하둡과 비슷한 서비스를 개발하기도 하였고, 인메모리 검색 및 통계엔진을 개발해서 엘라스틱서치 + 스파크를 같이 사용한 것보다 5배 이상의 속도를 보여주는 엔진도 만들었습니다. 회사에서 직접하는 서비스가 속도를 요하는 경우가 많았기 때문입니다.

아래는 그간 자바로 만든것중 공개해도 되는 극히 일부입니다. 이외에 유사도 엔진, 분류엔진, 형태소분석기, 문장구분기, 패턴인식기 이외에도 많은 자연어 처리 엔진도 개발하엿습니다. 직접 만든것중 회사에 특허로 등록된 기술도 있습니다. 관련 기술은 주 매출 제품에서 사용되고 있습니다

금융권에 제품을 납품할때 오픈소스를 이용하였을때 치명적인 예외로 유지보수에 비용이 많이 들어갔던 것을 경험해서 직접 만들고 모든 로직이 제 머리속에 있는걸 선호하는 경향이 생긴거 같기도 합니다. 퀀트도 제가 바라는 수준까지 되려면 이러한 문제들을 겪게 되지 않을까 하는 생각도 들었습니다.

직접 자바로 구현 하면서 얻은 장점

여러 서적에 나오는 기술적 분석 내용을 공식과 이론만 보고 직접 구현하다보니 어떤원리로 만들어진 공식이고, 어떠한 상황에서 쓰려고 만들었는지에 대해서 이해하게 되었습니다. 향후에 의미있는 새로운 지표를 만들 수 있게 된다면 이때 의 경험으로 인한것이라고 생각합니다.

단 시간과 노력이 많이 들어가는길이므로 이미 만들어진걸 사용하는걸 추천 합니다.

Comments

Similar Stories

추천 블로그, 추천영상

최근에 생각을 정리할겸 블로그를 작성 하다 보니 다른분들도 보았으면 하는 내용들이 뒤로 밀려서 추천하는 블로그 내용을 따로 모아놓고 이 내용이 가장 처음에 보이게 하려고 합니다. Read More

퀀트 개발의 이상적인 방향성

이번 블로그는 제가 지금 만들고 있는 퀀트 시스템인 runon의 방향성 입니다. 직접 개발하고 시스템을 돌려보면서 느낀 내용들도 포함되어 있어서 다른 사람들과 다른 의견일 수 있습니다. Read More