이전에 만든 자동 매매 프로그램은 기술적 분석, 백 테스팅, 매매 신호 발생을 트레이딩 뷰라는 플랫폼에 의존하는 시스템이었다. 의존한 덕분에 빠르게 증권사 API와 연결하여 매매 신호를 처리하는 코드만 작성하면 됐었다. 이 시스템의 단점으로는 매매 신호를 발생 시킬 때 자유도가 낮다는 것. 백 테스팅 및 기술적 분석을 할 때 제약이 크다는 점이었다.
지금 시스템도 나쁜 것은 아니다. 전체 시스템에서 상당 부분을 이미 검증된 플랫폼을 통하기에 코딩 초보인 내가 짜는 코드보다 버그가 발생할 확률이 낮다. 매매 전략의 문제가 아닌 프로그래밍 때문에 수익이 감소할 확률이 낮다는 아주 큰 장점이 있다. 그렇지만 부족한 자유도와 부족한 자유도 속에서 어설프게 연결해둔 코드들이 옥의 티처럼 보였다.
그래서 나만의 트레이딩 뷰를 만들기로 했다. 우선 믿을만한 유료 데이터 벤더로부터 여러 금융 자산들의 historicla data 및 real-time data를 구매하였다. 지금은 앞서서 구매하여 받은 데이터를 mysql 데이터베이스에 집어넣고 있다. mysql을 처음 사용해본다. 엑셀과 다르게 직관적이지 않은 UI 때문에 애를 먹고 있다.
SQL 강의를 올려 둔 유튜버는 프로그래밍 언어로 소통이 가능한 게 MYSQL의 장점이라고 하는데 프로그래밍 언어로 소통하는 게 처음이라 그런가 너무 어색하다. 마치 영어로 읽는 건 잘해도 말하는 건 어려운 것과 비슷한 느낌이랄까.
10/16이면 0% 수수료로 사용 가능한 DB금융투자의 계좌를 개설할 수 있다. 돈을 불리는 게 조금 더뎌지더라도 욕심을 내지 않기로 했다. 한국투자증권의 0.09% 수수료는 너무 치명적이기에 여기서 매매를 진행하지 않고 기다리기로 했다. 조급한 마음이 항상 화를 부르는 것 같다. 이번엔 그렇게 하지 않기로 다짐했다.
이번 프로젝트의 전체 과정을 다시 복기하며 적어본다.
- EODHD의 API를 이용하여 여러 금융 자산의 역사적 데이터를 받기.
- 받은 데이터를 MYSQL을 이용하여 데이터 베이스로 만들어 넣기.
- 트레이딩 뷰의 파인 스크립트로 구현한 strategy를 파이썬으로 재 구현.
- 구축한 DB를 토대로 백 테스팅 할 수 있는 환경 만들고 백 테스팅 해보기.
- EODHD의 웹소켓을 이용하여 여러 금융 자산의 실시간 데이터 수신하기.
- 받은 실시간 데이터를 기반으로 3번에서 만든 strategy에 대입하여 매매 시그널 발생 시키기.
- 매매 시그널에 따라 이미 구현한 자동 매매 코드와 연계하기.
1~3번은 완료하였다. 4번을 하고 있는데 MYSQL이 처음이라 진행은 되는데 이 방향이 맞는 지 확실하지 않다는 생각에 불안하다. MYSQL이 익숙하지 않다. 기존에 구현한 strategy의 수식도 깔끔하게 정리해서 최적화를 시킬 필요가 있어 보인다. 다음 주 출근 전까지 백 테스팅은 무리 없이 할 수 있는 수준까지는 진도가 나갔으면 하는 바람이다.