안녕하세요, 퇴근 후 밤마다 사이드 프로젝트를 만들고 있는 1인 개발자 로켓다람쥐입니다. OKKY에는 처음으로 제 프로젝트 개발기를 공유해 보네요.
저는 최근 몇 달간 가상화폐 자동매매 봇을 Python으로 개발해서 AWS EC2에 올려 24시간 돌려보고 있습니다.
사실 처음엔 가벼운 마음으로 시작했는데, 휩쏘에 털리고 로직이 꼬이는 걸 겪다 보니 어느새 V8.03 버전까지 오게 되었습니다. (참고로 지난주 실전 승률 26.7%를 맞고 뼈아프게 로직을 수술 중입니다.)
[텔레그램 알람의 한계, 그리고 대시보드 구축]
처음엔 진입/손절/익절 알람을 텔레그램으로만 받았는데, 운영을 하다 보니 한계가 명확했습니다. "현재 정확한 잔고가 얼마지?", "V8.02랑 V8.03 중에 승률이 뭐가 더 낫지?" 이런 전체적인 흐름을 보려면 매번 AWS에 원격 접속해서 CSV 파일을 뜯어봐야 했거든요.
그래서 브라우저에서 바로 상태를 모니터링할 수 있는 실시간 대시보드를 구축했습니다.

가장 중요하게 생각한 원칙은 "트레이딩 본 로직에는 절대 손대지 않는다"였습니다. 모니터링 툴 뻗었다고 매매 봇이 멈추면 안 되니까요.
봇 (Python): 기존 매매 로직만 수행하되, 매 루프마다 현재 상태를 json으로 떨굽니다.
API 서버 (Flask): 봇 스크립트 내에서 데몬 스레드로 가볍게 띄워, json과 로그 csv 파일만 읽어서 서빙합니다.
프론트엔드: 복잡한 프레임워크 없이 순수 Vanilla JS와 Chart.js를 써서 15초마다 데이터를 폴링해 렌더링합니다.
이렇게 구조를 분리해 두니, 단일 스레드 병목이나 오래된 CSV 파싱 오류 같은 자잘한 트러블슈팅만 거친 후 아주 안정적으로 차트와 승률을 모니터링할 수 있게 되었습니다.
[앞으로의 계획]
그동안 V1 버전부터 지금의 V8에 이르기까지, 수많은 버그와 마이너스 계좌를 마주하며 겪은 처절한 삽질 기록들은 제 개인 네이버 블로그에 쭉 기록해 오고 있었습니다. (궁금하신 분들은 아래 링크에서 이전 기록들을 보실 수 있습니다.)
봇은 지금도 실전에서 구르며 계속 진화하고 있습니다. 앞으로는 자동매매 봇을 고도화하면서 겪는 기술적인 트러블슈팅, 파라미터 최적화 과정, 그리고 소소한 성과들을 OKKY에도 꾸준히 공유해 보려고 합니다.
혹시 시스템 트레이딩이나 알고리즘 매매를 해보신 선배님들이 계시다면 뼈 때리는 조언 언제든 환영합니다! 읽어주셔서 감사합니다.
로켓다람쥐의 봇 개발 일지 (이전 기록들 보기): https://blog.naver.com/hjinha2/224248199635
댓글을 쓰려면 로그인이 필요합니다.