코인 자동매매봇

[코인 자동매매봇 ②] 봇, 딸깍하면 돈이 벌릴 줄 알았다.

자동매매봇 바이브코딩 ② 봇, 딸깍하면 돈이 벌릴 줄 알았다.

어디서부터 잘못된걸까.
딸깍하면 돈 번다던 자동매매봇, 착각인걸까?

26년 1월 경, 2주 만에 봇을 다 만들고는 와이프에게 자랑을 했다.
사실 난 개발자가 천직인 것 아닐까? 하며.

2월에는 10만원을 넣고 역사적인 첫 시동을 했다.
그리고 깨달았다. 이 녀석, 내 말을 듣지 않는다.

자동매매봇 착각

이 녀석을 제압하고 내 말을 100% 듣게 하는 데만 5개월이 걸렸다.

그 과정에서 광고처럼 “딸깍만 하면 돈이 자동으로 벌리는 자동매매봇”은
얼마나 말도 안 되는 환상이었는지 깨닫게 되었다.

아래의 내용들은 내가 봇을 처음 만들 때 가졌던 대표적인 착각들이다.
그리고 이 착각들이 각각 봇이 망가지게 만드는 원인이 되었다.

앞으로 한 편 한 편 자세히 풀어나가겠지만,
어떤 것을 경계해야 하는지 강조하는 차원에서 착각들을 모아 설명하고자 한다.

착각 1. 코인 자동매매봇, 투자 전략만 잘 짜면 장땡 아닌가요?

아니다.
자동매매봇은 좋은 투자 전략보다 좋은 운영시스템을 갖추는 것이 훨씬 중요하다.
세상에 좋다는 모든 전략을 다 갖다 썼는데, 아래의 문제가 발생하면 어떻게 될까?

  • 봇이 소리소문 없이 멈추면 어떻게 할까? 자동으로 켜지게 하면 될까?
  • 규칙상 매수해야 하는데 보유 현금이 약간 부족하다면?
  • 봇이 인지하는 잔고와 거래소의 실제 잔고가 일치하지 않는다면?

봇은 그 즉시 내가 기대하지 않던 나쁜 결과를 만들어 내기 시작하게 된다.

1편에서 내가 강조했듯 자동매매봇은
‘내가 정한 규칙을 오차없이 수행하는 운영 시스템’이다.

그래서, 봇은 기똥찬 투자 전략 하나 셋팅하고 끝이 아니다.
내가 놓치고 있는 운영 리스크는 없는지 끊임없이 백테스트로 검증해야 한다.
그렇지 않으면, 딸깍하고 돈 벌려다 까딱하다 돈 날리게 된다.

내가 봇을 2주만에 만들고, 실전 투입에 4개월 반이 걸린 이유가 바로
운영 리스크를 빠짐없이 체크하기 위한 백테스트의 행군이었다.

착각 2. 백테스트 수익률, 내 미래의 수익률인가요?

아니다.
백테스트는 과거 데이터로 전략을 돌려본 결과일 뿐, 절대 미래를 보장하지 않는다.

“이 전략으로 5년 돌렸더니 수익률 1,000%” 같은 숫자를 보면 누구나 흥분한다.
그런데 그 숫자엔 두 가지 함정이 있다.

첫째, 미래에도 과거처럼 움직이리란 보장이 없다.

S&P500처럼 수십 년째 안정적으로 우상향하는 종목이 아닌 이상
과거와는 다른 새로운 시세 흐름 패턴이 등장할 수밖에 없다.
코스피가 4천, 5천을 넘어 9천을 돌파할 줄 누가 예상했을까?

특히 코인은 시장이 생긴 지 이제 10여 년이 된 초기 시장인 만큼,
과거의 데이터로 미래 움직임을 예측하는 게 무의미할 정도로 변동성이 크다.

백테스트 결과는 내 전략이 수익을 내는 구조를 갖고 있는지
과거의 데이터를 활용해 실현 가능성 정도를 검증할 뿐,
미래에도 이 수익이 날 것이라 100% 믿어선 안 된다.

코인 자동매매봇 백테스트 연평균 수익률 51.55% 화면
내 봇의 기대수익률인 연평균 51.55%를 그대로 믿어도 된다면, 난 직장을 때려치고 전업 투자자가 됐을 것이다.

둘째, 사소한 설정값에 따라 백테스트 결과가 크게 차이가 난다.

백테스트의 숫자를 흔드는 대표적인 설정 오류들은 아래와 같다.

  • 수수료를 빼지 않았거나,
  • 최소 주문금액을 무시했거나,
  • 코인 수량을 딱 맞게 살 수 없는 반올림 오차를 무시하는 등

이런 거래소의 현실을 반영하면 숫자가 확 달라진다.
얼마나 달라지냐고? 이건 다음에 한 편을 할애해서 자세히 다루겠다.
살짝 스포하자면, 아, 괜히 만들었나 싶을 정도로 꽤 달라진다.

이렇듯, 백테스트는 수익률 확인용이 아니라
전략이 어디서 망가지는지 찾고 개선하는 실험 도구일 뿐이다.

착각 3. 손실방지 전략, 촘촘할수록 좋은 것 아닌가요?

아니다.
자동매매봇을 만들면서 가장 경계해야 하는 것 중 하나가 바로 과최적화이다.

백테스트를 하다 보면, CAGR(연평균 수익률)은 1%라도 높이고
MDD(최대 손실률)는 최대한 낮추려고 온갖 매매 조건(필터, 지표)들을 마구 추가하게 된다.
그 후 백테스트를 돌리면 대체로 수익률이 개선된다. (?!)

여기에는 함정이 있다.

첫째, 변수가 늘어날수록 전략의 재현성이 낮아진다.

조건(필터·지표)을 하나씩 추가할 때마다,
그 조건들의 조합이 과거 데이터에 “우연히 잘 맞을” 가능성도 함께 커진다.

그 결과, 백테스트에 사용한 기간 데이터에서는 수익률이 좋아 보이지만,
그 기간 바깥의 새 데이터에 적용하면 성과가 급격히 떨어지는 경우가 흔하다.

혹은 조건 하나 고치면 다른 조건이 틀어지는 상황이 반복된다면,
이 역시 과최적화로 인해 전략의 재현성이 낮아진 케이스다.

백테스트는 화려했는데 실거래 시작하자마자 무너지는 전략 대부분이
과최적화에서 비롯된다.

둘째, 디버깅 난이도가 올라간다.

조건이 1~2개면 그 변수들이 서로 영향을 주는 경우의 수가 적다.
그런데 조건이 5~6개가 되면, 조건끼리 얽힐 수 있는 상호작용 조합 수가 거의 제곱으로 늘어난다.

그 결과, 손을 댈수록 봇이 망가지는 경우도 많이 발생하고,
“이 결과가 어느 조건 때문에 나왔는지”를 역추적하는 데 드는 시간도 기하급수적으로 늘어난다.

조건은 최소한으로 유지하고,
조건을 추가할 땐 쓰레기 신호를 거르는 방어막인지
수익률을 억지로 끌어올리는 장식인지 구분하는 게 과최적화 예방의 핵심이다.

내 조건 설정이 과최적화인지 아닌지 체크하는 방법으로
5단계 스트레스 테스트가 있다.
이에 대해서는 나중에 한 편을 할애해서 설명하도록 하겠다.

세 가지 자동매매봇 착각, 한 줄로 정리하면

착각진실
투자 전략만 잘 짜면 장땡이다리스크를 잘 대비한 운영 시스템이 더 중요하다
백테스트는 미래 수익률을 계산하는 도구이다수익률 계산기가 아닌 전략의 허점을 찾는 도구다
손실방어 전략은 촘촘할수록 좋다잘 못하면 백테스트만 뛰어난 방구석 여포가 된다

자동매매봇은 돈을 뚝딱 만들어내는 요술방망이가 아니다.
내가 놓친 리스크는 없는지 끊임없이 실험하면서 과최적화를 경계하는 머리 아픈 여정이다.

딸깍하면 돈이 벌리는 게 아니라,
잘 만들어두면 내 감정 없이 규칙대로 움직이는 것.
그게 자동매매봇의 진짜 가치다.


다음 편 예고

자동매매봇을 만들기로 했다. 그럼 제일 먼저 뭘 해야 할까.

대부분 “어떤 전략을 쓰지?”부터 고민한다. 나도 그랬다.
근데 전략보다 먼저 정해야 할 게 있었다.
그걸 모르고 시작했다가 나중에 꽤 고생했다.

다음 편에서는 어떤 거래소에서, 무엇을 기준 자산으로 거래할지 정한 이야기를 다룬다.

👉 이전 편: 내가 자동매매봇을 만들 줄이야. (1편)

👉 다음 편: 거래소, 너로 정했다! (3편)


이 글은 특정 종목이나 투자를 권유하지 않으며, 투자 판단과 그 책임은 투자자 본인에게 있습니다.
본 시리즈는 자동매매봇 ‘제작 경험’을 공유하는 기록입니다.

댓글 남기기