코인 자동매매 프로그램, AI 바이브코딩으로 직접 만들어 봤습니다

코인 시장에 관심이 있어서 기술적 지표 기반으로 거래를 해보고 싶었는데, 문제가 하나 있었어요. 시그널이 주로 새벽에 발생한다는 거예요. 직업이 있는 사람이 하루종일 차트를 보고 있을 수는 없잖아요. 그래서 아예 자동으로 매매해주는 프로그램을 직접 만들었습니다. AI 바이브코딩으로요.

📊 프로젝트 요약
프로젝트 코인 자동매매 프로그램
주요 기능 실시간 차트, 백테스트, 전략 최적화, 자동 거래 봇
거래 대상 BTC/USDT (바이낸스 선물)
운영 환경 AWS Lightsail (24시간 가동)
구현된 전략 RSI, CCI, Supertrend 등 6개
개발 기간 약 3주 (바이브코딩)
📌 한눈에 보기
  • AI 바이브코딩으로 코인 자동매매 프로그램을 직접 만들어 운영 중
  • 차트 확인부터 백테스트, 전략 최적화, 자동 거래까지 하나의 프로그램에서 가능
  • 1000회 최적화로 찾은 전략은 15개월 백테스트 기준 승률 61.5%, 수익률 +1283%
  • 바이낸스 BTC/USDT 선물을 AWS Lightsail에서 24시간 자동 운영

코인 자동매매 프로그램, 왜 직접 만들었나

코인 시장은 24시간 열려 있어요. RSI, CCI 같은 기술적 지표를 기반으로 매매 타이밍을 잡아보고 싶었는데, 정작 시그널(매수/매도 신호)은 거래가 활발한 새벽 시간대에 자주 발생합니다. 직업이 있으니 하루종일 차트를 볼 수도 없고, 새벽에 알람 맞춰서 일어날 수도 없는 노릇이에요.

시중에 코인 자동매매 서비스가 있긴 하지만, 제가 원하는 전략을 넣고 설정값도 자유롭게 바꿔가며 테스트하고 싶었어요. 특히 단순히 “이 전략 사세요”가 아니라, 지표 조합을 바꿔가며 백테스트하고 최적값을 찾아가는 과정 자체가 제일 재미있을 것 같았거든요. 그리고 남이 만든 서비스는 블랙박스라 내부 로직을 알 수 없는데, 직접 만들면 봇이 왜 이 시점에 매수했는지를 코드로 확인할 수 있다는 점도 컸습니다. 그래서 아예 직접 만들기로 했습니다.

개발은 바이브코딩으로 했어요. 바이브코딩이란 AI에게 “이런 기능을 만들어줘”라고 지시하면 AI가 코드를 짜주는 방식이에요. 기존 코딩보다 훨씬 빠르게 프로토타입을 만들 수 있고, 기능을 추가하거나 수정하는 것도 대화하듯 할 수 있습니다.

바이브코딩으로 만든 개발 과정 — 3주 동안 겪은 것들

처음에는 “그냥 파이썬 스크립트 하나 짜면 되겠지”라고 생각했어요. 그런데 실제로 시작해보니 고민거리가 줄줄이 나왔습니다. 차트는 어떻게 그릴지, 백테스트 결과는 어떻게 저장할지, 전략은 하나로 묶을지 분리할지, 봇이 돌다가 죽으면 어떻게 복구할지. 혼자 코드만 보면서 정했다면 아마 지금도 스크립트 한 개로 시작 단계에 머물러 있었을 것 같아요.

AI에게 “차트 화면부터 만들고, 백테스트 모듈, 그다음 옵티마이저, 마지막에 봇 순서로 진행하자”라고 구조를 먼저 잡아달라고 했어요. 그 구조대로 한 기능씩 만들어가면서 막히는 부분은 바로 물어보고, 이상한 동작이 나오면 에러 메시지 그대로 붙여넣어서 수정을 요청했습니다. 대략 저녁 시간과 주말을 합쳐 3주 정도 만에 자동 거래 봇까지 돌아가는 상태가 됐어요.

제일 많이 삽질한 부분은 봇이 실제 거래소에 주문을 넣는 구간이었어요. 백테스트에서는 잘 되던 전략이 실거래에서는 “최소 주문 금액 미달”, “레버리지 설정 실패” 같은 에러로 튕겼습니다. 거래소마다 API 규칙이 조금씩 달라서, 이 부분은 AI가 알려주는 것만 믿지 말고 바이낸스 선물 공식 문서를 같이 보면서 맞춰야 했어요. 그 과정에서 “주문 실패해도 봇이 죽지 않도록 예외 처리하기”, “재시도 로직 넣기” 같은 안정화 코드가 자연스럽게 붙었습니다.

또 하나 의외로 시간을 잡아먹은 게 데이터 정합성이었어요. 거래소에서 받아온 캔들 데이터와, 봇이 내부적으로 쌓는 거래 기록이 미묘하게 어긋나는 경우가 있었거든요. 예를 들어 거래소 API가 일시적으로 느려지면 같은 캔들을 두 번 받아버리거나, 네트워크 지연으로 인한 체결가와 실제 체결가가 소수점 아래에서 차이가 나는 식이에요. 이런 문제는 눈에 잘 안 띄지만 한 번 꼬이면 백테스트 결과와 실거래 결과가 완전히 달라져서, 디버깅이 제일 피곤했습니다.

코인 자동매매 프로그램 — 어떤 기능이 있나

크게 네 가지 기능이 있어요. 각각이 독립적으로도 쓸 수 있지만, 연결해서 쓰면 전략 개발부터 실전 운영까지 한 흐름으로 이어집니다.

실시간 차트 — 웹 화면에서 비트코인 차트를 실시간으로 볼 수 있어요. 5분봉, 15분봉, 30분봉 등 타임프레임별로 전환할 수 있고, 현재 포지션과 진입가를 같이 표시합니다.

백테스트 — 과거 데이터로 전략을 시뮬레이션해볼 수 있어요. “이 전략으로 지난 3개월 동안 거래했으면 결과가 어땠을까?”를 실제 돈을 쓰지 않고 확인할 수 있는 기능이에요. 전략을 실전에 넣기 전에 반드시 거치는 단계입니다.

옵티마이저(전략 최적화) — 전략에는 “RSI(상대강도지수) 기간을 몇으로 할지”, “CCI(상품채널지수)가 얼마를 넘으면 매수할지” 같은 설정값이 있는데, 이 값을 자동으로 조합해서 가장 좋은 결과를 내는 설정을 찾아줍니다. 사람이 일일이 바꿔가며 테스트할 필요가 없어요.

자동 거래 봇 — 핵심 기능이에요. 옵티마이저로 찾은 최적 설정값을 입력하면, 그 조건에 맞는 시그널이 발생했을 때 자동으로 매수 또는 매도 주문을 넣습니다. 손절(손실 제한)과 익절(이익 실현)도 자동으로 관리해요. 사람이 안 보고 있어도 24시간 알아서 돌아갑니다.

실제 대시보드 화면 — 봇이 돌고 있을 때 보이는 것

말로만 설명하면 감이 잘 안 잡힐 것 같아서, 실제로 제가 보고 있는 대시보드 화면을 공유할게요. 브라우저에서 접속하면 이런 화면이에요.

코인 자동매매 봇 대시보드 — BTC/USDT 실시간 차트, 현재 포지션, 전략 설정, 거래 기록

출처: 직접 개발한 코인 자동매매 봇 대시보드 (자체 캡처)

왼쪽 상단에는 현재 비트코인 가격과 계좌 잔고가 표시됩니다. 그 아래가 현재 포지션이에요. 지금 어느 가격에 진입했고, 얼마나 보유 중이고, 미실현 손익이 얼마인지를 실시간으로 볼 수 있어요. 봇이 포지션을 열고 닫을 때마다 이 영역이 바로 업데이트됩니다.

중앙에는 캔들 차트가 있어요. 차트 위에는 봇이 사용하는 지표값(RSI, CCI, 이동평균선 등)도 같이 그립니다. “봇이 왜 이 시점에 매수했지?”를 나중에 확인할 수 있도록 시각화한 거예요. 오른쪽 패널의 전략 설정(Strategy Settings) 영역은 현재 적용 중인 전략과 세부 파라미터를 보여줍니다.

하단에는 거래 기록(Trade History)이 쌓여요. 언제 진입했고, 언제 나왔고, 수익률은 얼마였는지가 한 줄씩 기록됩니다. 봇이 알아서 거래해도 결과는 전부 이 표에 남기 때문에, 나중에 “지난주 전략이 잘 먹혔나?”를 숫자로 확인할 수 있어요.

어떻게 동작하나 — 간략한 구조

구조를 간단히 설명하면 세 부분으로 나뉘어요. 복잡해 보여도 역할을 나눠서 보면 단순합니다.

먼저 웹 화면이 있어요. 여기서 차트를 보고, 백테스트를 돌리고, 옵티마이저를 실행하고, 봇을 켜고 끌 수 있어요.

그 뒤에 서버가 있어요. 거래소에서 실시간 가격 데이터를 받아오고, 봇 엔진이 전략 조건을 감시합니다. 30초마다 현재 포지션 상태를 체크하고, 시그널이 발생하면 거래소에 주문을 넣어요. 거래가 발생하면 메시지 알림이 오기 때문에 폰으로 확인할 수 있습니다.

마지막으로 거래소 연동이에요. 바이낸스 거래소와 연결되어 있어서, 봇이 직접 주문을 넣고 체결 결과를 받아옵니다. 손절/익절 주문도 거래소에 미리 걸어두기 때문에, 혹시 서버에 문제가 생겨도 손절은 거래소에서 실행됩니다. 이게 굉장히 중요한 포인트예요. 제가 만든 봇을 100% 믿기보다는, “거래소가 자체적으로 손절을 걸어주는 안전장치”를 하나 더 두는 구조로 설계했어요. 봇이 멈춰도, 서버가 내려가도, 최악의 상황에서 손실을 제한할 최후 보루가 되거든요.

옵티마이저로 찾은 최적 전략, 실전에 그대로 써도 될까?

결론부터 말하면 “그대로는 쓰면 안 된다”예요. 백테스트 수치는 매력적이지만, 실전 시장 구간은 계속 바뀌기 때문에 검증 단계를 한 번 더 거쳐야 합니다. 이 섹션에서는 제가 옵티마이저를 어떻게 돌렸는지, 결과가 왜 그대로 쓸 수 없는지를 설명할게요.

제일 시간을 많이 쓴 부분이 옵티마이저예요. 전략 자체는 인터넷에 널려 있는 지표를 가져다 쓰는 거지만, “어떤 파라미터 조합이 지금 시장에서 가장 잘 먹히는가”는 실제로 돌려보기 전까지 알 수가 없거든요. 그래서 옵티마이저에 leverage 1~30배, order_pct 5~75%, 각 지표의 기간 값을 자유 범위로 주고 1000번을 돌렸어요. 내부적으로는 TPE(Tree-structured Parzen Estimator) 방식으로 탐색하는데, 쉽게 말해 “지금까지 결과가 좋았던 구간을 더 집중적으로 탐색하고, 가망 없는 구간은 빨리 버리는” 방식이에요.

옵티마이저 실행 결과 — supertrend_rsi 전략 1000회 최적화, 15개월 백테스트, 수익률 +1283%, 승률 61.5%

출처: 자체 개발 옵티마이저 실행 결과 (자체 캡처)

결과가 흥미로웠어요. 1000회 중 535번은 “이건 더 볼 필요도 없다”고 중간에 가지치기(pruned)됐고, 끝까지 완주한 327개 결과 중에서 상위 2개가 뽑혔습니다. 두 결과 모두 supertrend_rsi라는 전략인데, 파라미터만 살짝 다른 조합이에요.

1등 결과를 기준으로 보면 이렇습니다. 15개월 백테스트에서 수익률 +1283%, 승률 61.5%, 총 거래 52건, 프로핏 팩터(손실 대비 이익 비율) 1.81. 숫자만 보면 엄청나 보이지만, 여기서 제가 항상 같이 확인하는 게 MDD(Maximum Drawdown)예요. MDD는 “자산이 고점 대비 얼마나 빠졌었는가”를 말하는데, 이 전략은 45.18%였어요. 즉, 중간에 절반 가까이 빠지는 구간을 버텨야 +1283%에 도달한다는 뜻이에요.

백테스트 숫자가 좋다고 바로 실전에 몰빵하면 안 되는 이유가 여기 있습니다. MDD 45%를 실전에서 맞으면 심리적으로 버티기가 정말 어려워요. 그래서 저는 이 전략을 실전에 넣을 때 레버리지를 옵티마이저 결과보다 훨씬 낮춰서 운영하고 있어요. 수익률은 줄어들지만 MDD도 같이 줄어들거든요.

현재 운영 상태 — 24시간 자동 운영 중

현재 AWS Lightsail이라는 클라우드 서버에서 24시간 돌리고 있어요. 바이낸스 거래소에서 BTC/USDT 선물 거래를 하고 있고, 옵티마이저로 검증한 전략을 실전에 넣어둔 상태입니다. 처음에는 큰 금액을 넣지 않고 소액으로 시작했어요. 백테스트 결과가 아무리 좋아도 실제 시장은 다를 수 있으니까, 일단 봇이 기대대로 움직이는지 확인하는 게 먼저였거든요.

현재 6개 전략이 구현되어 있어서 언제든 다른 전략으로 교체할 수 있어요. 시장 상황에 따라 옵티마이저를 다시 돌려서 더 좋은 전략과 설정값을 찾는 것도 가능합니다. 예를 들어 횡보장에서 잘 먹히던 전략이 추세장에서는 손실이 나기 시작하면, 옵티마이저를 다시 돌려 파라미터를 갱신하고 봇에 반영하는 식이에요.

운영하면서 예상치 못한 에러가 발생하기도 하는데, 그때마다 원인을 찾아서 수정하고 있어요. 서버가 재시작되면 봇이 자동으로 복구되는 기능, 거래소 통신이 끊겼을 때 재시도하는 기능, 거래 기록의 정확성을 높이는 개선 등을 이미 마쳤습니다. 이 안정화 작업 전체 과정은 따로 코인 자동매매 봇이 알아서 오류를 복구하게 만들었습니다 — 안정성 개선 11가지에 정리해뒀어요. 바이브코딩으로 만들었기 때문에 이런 수정도 AI에게 지시해서 빠르게 처리할 수 있어요.

직접 만들면서 배운 것 3가지

첫째, 백테스트 숫자는 현실이 아니다. 옵티마이저 결과에 +1283% 같은 숫자가 찍히면 “와, 이 수익률이 실화인가”이라는 생각이 먼저 들지만, 그건 과거 데이터에 맞춰 최적화된 값이에요. 미래에도 똑같이 먹힌다는 보장이 없습니다. MDD, 거래 횟수, 프로핏 팩터 같은 보조 지표를 같이 봐야 덜 위험해요. 특히 거래 횟수가 너무 적으면(예: 10건 미만) 우연히 잘 나온 거일 가능성도 높습니다.

둘째, 안정성이 수익률보다 중요하다. 봇이 예쁘게 주문을 넣는 것보다, 에러 났을 때 죽지 않고 복구되는 게 훨씬 중요해요. 24시간 돌아가는 시스템이라 제가 자고 있을 때 무슨 일이 벌어질지 모르거든요. 그래서 개발 후반부는 거의 예외 처리, 재시도 로직, 로그 남기기 같은 안정화 작업에 시간을 썼어요. “거래소 공식 손절 주문을 반드시 같이 걸기”는 지금도 꼭 지키는 원칙입니다. 이 원칙이 빛을 본 구체 사례는 코인 자동매매 봇 첫 실전 거래 결과에서 확인할 수 있어요.

셋째, 바이브코딩은 “빠른 프로토타이핑”에 특히 강하다. 처음부터 완벽한 설계를 하지 않고 “일단 이런 모양으로 만들어봐”를 반복하면서 구조를 고쳐갈 수 있어요. 저도 처음엔 백테스트 모듈을 봇 안에 넣었는데, AI에게 “분리해달라”고 하니 30분 만에 구조가 바뀌었습니다. 이런 리팩터링이 부담 없으니 “일단 만들고 쓰면서 고치자”가 가능해지는 거예요.

앞으로 계획하고 있는 것

지금은 BTC/USDT 단일 종목에 단일 전략으로 돌리고 있지만, 다음 단계는 멀티 전략/멀티 종목 운영이에요. 한 종목에만 전략을 거는 건 시장 상황에 너무 민감합니다. 장이 빠지면 숏 전략이 유리하고, 횡보장에는 스캘핑 전략이 맞는 식으로 상황마다 적합한 전략이 달라지는데, 지금은 전략을 수동으로 바꾸고 있거든요. 앞으로는 시장 상태를 자동으로 판단해서 전략을 전환하는 로직을 붙이고 싶어요.

그다음은 알림/리포트 자동화입니다. 지금도 거래가 발생하면 메시지가 오지만, 하루 단위/주 단위로 “이번 주 거래 몇 건, 수익률 얼마, 최대 낙폭 얼마”가 자동으로 정리되어서 오면 운영이 훨씬 편해질 것 같아요. 봇은 24시간 돌지만 사람은 하루종일 볼 수 없으니까, 핵심만 요약해서 받아보는 구조가 필요합니다.

마지막으로 리스크 관리 강화예요. 일일 최대 손실 한도, 연속 손실 발생 시 자동 일시정지, 특정 변동성 이상에서는 포지션 진입 자체를 막는 등 “이상 상황에서 봇이 알아서 멈추는” 장치를 더 붙이려고 합니다. 수익을 늘리는 것보다 망하지 않는 게 우선이라는 걸 SHORT 한 번에 증거금 39%를 잃은 경험을 포함해서 몇 번의 손실을 겪고 나서 확실히 깨달았거든요.

자주 묻는 질문

Q. 바이브코딩으로 코인 봇 만드는 데 프로그래밍 경험이 필수인가요?

A. 프로그래밍 경험이 없어도 가능해요. 대신 AI 에이전트와 계속 대화하면서 안정성을 조금씩 올려가는 과정이 필수입니다. 제 체감으로는 프로그래밍 경험보다 실제로 트레이딩을 해본 경험이 더 중요한 것 같아요. “이런 조건일 때 이렇게 매매하고 싶다”는 자신만의 전략이 있을 때 바이브코딩과 가장 시너지가 좋습니다. 반대로 전략 없이 “AI야 돈 벌어줘”로 시작하면 방향을 잡기가 어려워요.

Q. 옵티마이저로 찾은 전략을 그대로 실전에 써도 되나요?

A. 바로 실전 투입은 권하지 않아요. 백테스트에 쓴 데이터와 별도로 검증용 데이터셋을 남겨두고 거기서 한 번 더 확인하는 걸 추천합니다. 전략에 이미 충분한 신뢰가 있다면 바로 넣어도 되지만, 현재 시장 구간에서도 똑같이 먹히는지는 알 수 없기 때문에 소액으로 일단 돌려보는 것이 가장 안전해요. 저도 지금 그렇게 운영하고 있습니다.

Q. AWS Lightsail 말고 다른 서버로도 돌릴 수 있나요?

A. 네, 얼마든지 가능해요. 제가 Lightsail을 쓴 건 무거운 연산이 필요한 워크로드가 아니라서 저렴한 옵션을 택한 것뿐입니다. AWS EC2, 다른 클라우드(GCP, Oracle Cloud 등), 심지어 집에 있는 작은 서버에서도 돌릴 수 있어요. 본인에게 익숙한 서비스가 가장 좋습니다. 저는 AWS가 익숙해서 Lightsail을 골랐을 뿐이에요.

Q. 현재 실전 수익은 얼마나 나고 있나요?

A. 솔직하게 말하면, 돌리기 시작한 지 얼마 안 돼서 약 -50% 구간에 있어요. 지금까지 거래는 5번 정도 발생했는데, 그중 4번이 연속 손실이었어요. 다만 현재 쓰는 전략은 “손실은 작게 자주, 수익은 크게 가끔” 나오는 타입이라, 거래 횟수가 더 쌓일 때까지 일단 지켜보는 중입니다. 백테스트 결과도 괜찮았기 때문에 참고 기다리고 있어요. 결과는 블로그에 계속 업데이트할 예정입니다.

코인 자동매매에 관심 있으신 분이나, 바이브코딩으로 뭘 만들어 봤는지 궁금한 분이 있다면 댓글로 알려주세요. AI/투자 관련 더 많은 글이 궁금하면 자주 방문해주세요.

Written by 비온

아이디어를 직접 코드로 만들고, 배포하고, 운영하고, 수익화까지 혼자 해내는 빌더. 코인 자동매매 봇과 주식 분석 웹앱을 직접 개발·운영하며 그 전 과정을 AI 로그랩에 기록하고 있습니다.

* 이 글은 개인적인 프로젝트 경험을 공유하는 것이며, 투자 추천이 아닙니다. 가상화폐 투자는 원금 손실 위험이 있으며, 모든 투자 판단과 책임은 본인에게 있습니다. 본문에 나온 백테스트 수치는 과거 데이터 기반 시뮬레이션 결과로, 미래 수익을 보장하지 않습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤