알트코인 여러 개를 동시에 지켜보다가 볼린저 밴드 하단에서 사고 중심선에서 파는 평균회귀 전략을 자동으로 돌리고 싶다는 요청이었습니다.
업비트 REST와 WebSocket으로 만들었고, 손실 관리 규칙을 프로그램 안에 고정해 넣었습니다.
플랫폼
업비트 REST WebSocket
특징
멀티 종목 리스크 관리 내장
유형
코인 현물, 평균회귀
제작 기간
약 7~10일
제작한 봇의 멀티 종목 대시보드. 알트코인별 밴드 위치, 보유, 손익과 리스크 한도 상태가 보입니다 (예시 화면)
01배경과 고객 요구사항
고객은 업비트에서 주요 알트코인 여러 개를 동시에 보면서, 종목이
볼린저 밴드 하단에 닿으면 사고 중심선(이동평균)에 오면 파는
평균회귀 전략을 자동화하고 싶어 했습니다. 손으로 몇 번 해 본 방식이었는데,
사람이 열 종목을 동시에 지켜볼 수는 없었습니다.
코인은 24시간 쉬지 않고, 하단에 닿는 신호는 종목마다 제각각 다른 시간에 나옵니다.
한두 종목을 보다가 다른 종목의 진입 시점을 놓치는 일이 잦았습니다. 보던 종목이 계속 빠지는데
손절 기준이 없어 물려 있는 일도 되풀이됐습니다.
그래서 요청의 무게는 전략보다 손실 관리 쪽에 있었습니다.
한 종목에 몰아 넣지 않도록 나눠 담고, 하루에 크게 잃는 날이 나오지 않도록
일일 손실 한도를 프로그램이 지키게 해 달라는 것이었습니다.
02구현 방식
업비트 상위 10개 알트코인을 WebSocket으로 실시간 구독하고, 종목마다
따로 볼린저 밴드를 계산해 매매를 판단하는 구조입니다.
10개 알트코인의 체결과 호가를 동시에 받아 종목별 캔들을 갱신합니다.
종목마다 이동평균과 표준편차로 볼린저 밴드의 상단, 중심선, 하단을 실시간으로 계산합니다.
가격이 하단 밴드에 닿으면 매수하고 중심선에 오면 청산합니다. 신호가 나오면 REST 주문 API로 실제 주문을 보냅니다.
주문 직전에 동시 보유 포지션 수, 종목당 비중, 일일 손실 한도를 확인합니다. 한도를 넘으면 신호가 나와도 진입하지 않습니다.
분산 규칙은 숫자로 정해 두었습니다. 동시 보유는 최대 3개 포지션,
한 종목에는 잔고의 30%까지입니다. 한 종목이 무너져도 계좌 전체가 크게 흔들리지 않게 하려는 것입니다.
하루 손실이 -5%에 닿으면 매매를 자동으로 중단하고 텔레그램으로 경고를 보냅니다.
오늘은 그만할지를 봇이 정하므로, 하락장에서 감정적으로 물타기를 하다 하루에 크게 잃는 일을 막습니다.
03해결한 기술 난제
멀티 종목 동시 운용과 리스크 한도
10개 종목의 밴드를 실시간으로 밀리지 않게 계산하면서,
동시 포지션 수, 종목당 비중, 일일 손실 한도를 프로그램이 지키게 해야 했습니다.
신호 판단과 리스크 판단을 한곳에서 처리해야 둘이 엇갈리지 않습니다.
언제 사느냐보다 얼마나, 몇 개까지 사고 어디서 멈추느냐를 지키는 쪽이 더 어려웠습니다.
※ 본 사례는 과거 고객 요구사항을 익명 처리하여 재구성한 것이며, 수익률과 수익금은 공개하지 않습니다.
알고랩은 매매 자동화 프로그램 제작 서비스이며, 종목 추천, 투자 자문, 수익 보장 서비스가 아닙니다.
과거 백테스트 결과가 미래 실거래 수익을 보장하지 않습니다. 가상자산 투자는 원금 손실 위험이 있습니다.
여러 코인을 한꺼번에 돌리고 싶으시다면
전략이 이미 정해져 있어도, 아직 다듬는 중이어도 괜찮습니다.
손실을 어디서 끊고 싶으신지도 상담에서 같이 정합니다.