퀀트의 꿈을 꾸면서.

3년전부터 집중을 위해서 그리고 취미를 위해서 퀀트 프로그래밍을 하게 되었다

프로그래밍이 전공이라고 하지만 직책상 프로그램을 만들고 있으면 직원들이 오지랖이라고 계속 궁시렁 거리니 어쩔 수 없이 프로그래밍을 취미로 전환하게 되었다

수년 전부터 같이 퀀트 하자고 하시던 중견 구룹 연구소장님의 강력한 권유도 있고, 해서 진행하고 있다.

이런 저런 책을 읽어 보고 , 유툽을 보고 난 결론은

“대박낼 수 있는 퀀트 알고리즘은 개인이 만들 수는 없다.

대신 꾸준히 아주 작은 수익을 내는 알고리즘은 가능할 것 같다”

농사매매

적은 이익 (?) 이지만 확실한 예는 농사매매법이다.

단테님의 주식 거래 방식중 한가지를 농사 매매라고 하여서 꾸준히 수익을 내는 방식이 있는데, 이를 프로그램화 하여서 수익을 내시는 분도 있다.

화려한 결과를 바라지만 않는다면 충분히 좋은 결과를 얻는 방식이다. 그리고 확실한 방법이다.

구현 과정은 의외로 험난했다.

  1. 키움증권 + Python UI

일단 처음에는 잘 될 것 같아서 파이선 + 키움증권으로 진행했다.

그런데 웬걸… 파이썬으로 UI 만드느라 에너지를 다 써버렸다.

아.. 파이선 UI는 왜 이다지도 어려운걸까 하면서 만들어갔다.

더구나 파이썬으로 만들어 놓으니 아침 장이 열리면, 구독이 많아질 경우 반응이 느려저서 잘 안움직이는 경우도 있었다.

키움증권 API는 WebSocket을 한단계 더 Wrapping한 것이어서 처음에는 선뜻 이해하기가 어려웠다. 그냥 함수 호출하듯이 코딩하면 안되요.. 라는 생각을 가지고 만들어가다가,

너무 UI가 힘들어서 포기했다. 차라리 그냥 웹으로 만들걸.. 하면서 포기 했다.

2. 키움증권 + 웹 UI

생전 처음해보는 웹 프로그램으로 하다보니, 문제가 생기면 해결이 안되었다.

인터넷에서 물어보면서 열심히 해도, 아무래도 시간만 많이 뺏기고 해서, 이것도 진행하다가 포기 했다.

3. 한국투자 증권 + 웹 UI

한국 투자 증권에서 REST API를 지원해 주었다.

이것을 이용해서 하는 것으로 결론 내리고 해 보았다.

자체는 인터페이스가 아주 쉬었는데, 중요한 것은 문서화 작업이 하다만 것 처럼 되어 있어서 기능이 잘 구현이 안되었다.

더구나 모의투자는 거의 지원이 안된다고 보는게 맞았다.

유툽에서 이것을 이용한 샘플 코드를 강의하고 파는 분이 있어서 20만원이라는 거금을 들여서 구입해 보았으나, 그냥 한국투자증권 샘플 코드 수준이었다.

한국투자 증권 API는 의외로 라이브러리는 잘 되어 있으니 그대로 사용한다면 좋다. 굳이 이런 코드를 구입하지 않아도 된다.

  • 내 20만원 돌리도….

4. 한국 투자 증권 + 웹 UI + ChatGPT

마침내 ChatGPT를 회사에서 사용하게 되어서 코딩을 테스트 해 보았다.

입 코딩이 가능할 정도여서, 코딩의 세부적인 것은 지정만하는 방식으로 구현이 가능했다.

이것을 가지고 코딩하니 2달만에 어느정도 동작하는 플랫폼을 구현 했다.

문제점이 있으면 ChatGPT가 잘 정리해 주었다. 결국 ChatGPT에게 얼마나 잘 질문하는 것이 핵심이 되었다.

WebSocket 방식으로 구현하다보니 멀티 쓰레드로 구현이 된다.

잘 되고 있지만, 장시간 동작할 경우 간혹 꼬여서 스탑되는 경우가 발생하였다.

GPT에 물어보니 문제점 있는 부분을 정확하게 찍어내고, 개선된 코드를 알려주었다.

그걸로 테스트를 하니 주말내내 돌려 보아도 잘 된다.

한국 투자 증권 API의 문제점 : 다른건 모르겠고, 문서화가 의외로 잘 안되어 있다.

예를 들어서 주문 체결 정보가 들어오질 않았다.

체결은 보유 주식 잔고로 올라가는 것을 알겠는데,

도대체 왜 체결 정보가 안들어오는지 몰랐다. 샘플 코드를 봐도 동일하게 되어 있는데 안되는 이유를 몰라서 한참 헤메었다.

나중에 우연히 알게되었는데 체결 정보 구독을 위한 코드가 모의 투자와 실투자가 달랐던 것이고, 문서나 샘플 코드는 모두 실투자 코드로 되어 있었던 것이다.

어딘가에 문서화로 되어 있겠지만, 인간적으로 제대로 알수 있도록 테이블 하나로 정리 해 두었으면 좋았을 뻔 했다.

불성실한 모의투자 환경

그리고, 인간적으로, 모의 투자는 서비스가 너무 없다.

이건 모의투자 하지 말라는거 처럼 서비스가 너무 성의가 없다. – 트래픽을 극도로 제한해 두고 서비스 항목도 제한 해 두었다. 그렇게 할 필요가 있을까 싶을 정도이다.

(실전투자) 1초당 20건

(모의투자) 1초당 2건

해결 방법은

모의투자와 실투자를 동시에 구축하고 필요할 때 섞어서 사용하는 것으로 했음.

이거 코딩으로 구현하는 것도 힘들었음. 나중에 생각해보니 의외로 쉬웠는데, ChatGPT가 처음부터 방법을 알려주었는데 내가 이해를 못 한 것 이었음.

라이브러리는….

SOJU6 라는 분이 훌륭한 코드를 공개해 둔것이 있다.

그걸 사용하면 쉽게 구현이 가능한데 문제는 코드 수정이나 기능 추가가 매우 어렵다는 것이다.

너무 구조화가 잘 되어 있어서 나중에 보면, 그 코드 수정하는 것 보다는 그냥 만드는 것이 빠르다는 생각이 든다.

기능 검토를 잘 해보고, 충분하면 SOJU 님의 것을 사용하는 것을 권한다.

너무 잘 만들어졌기 때문이다.

하지만, 나는 새로운 기능들이 필요해서, 결국 KIS에서 제공하는 예제 코드를 기반으로 새롭게 만들었다.

  • 이 과정에서 1개월을 소비 했다.

5. 키움증권 REST API +….

그러던 중에 키움증권이 REST API 버전을 공개했다.

돌아가기엔 너무 늦었다.

그냥 한국 투자 증권으로 하기로 했다.

댓글 남기기

WordPress.com 제공.

위로 ↑