코인 자동매매 실험 중단·보류 회고

코인 자동매매 실험을 중단하고 보류하기로 했다. 실행 중이던 봇은 멈췄고, 기존에 보유하던 코인 포지션도 모두 정리했다. 지금은 자동매매를 운영하지 않는다. “잠시 설정을 바꾸는 중”이거나 “다음 라운드를 기다리는 중”이라는 뜻이 아니다. 당분간 이 실험에 자본과 시간을 더 투입하지 않겠다는 결정이다.

이 문장을 먼저 적는 이유는 과거 글만 보면 실험이 계속 진행 중인 것처럼 보일 수 있기 때문이다. 4월에는 v4의 구조와 운영 과정을 정리했고, 5월에는 롱 P2 DCA 5회차 상태와 당시 계좌 스냅샷을 공개했다. 그 기록들은 그 시점의 사실로 남겨 둔다. 다만 그 숫자와 판단을 지금의 상태로 읽으면 안 된다. 특히 5월 글의 총자산 3,085,757원은 당시 공개한 중간 스냅샷이지, 실험 전체의 최종 정산값이나 최종 실현손익이 아니다. 이번 글에는 확인되지 않은 최종 손익 숫자를 만들거나 추정해서 적지 않는다.

이번 결정은 전략이 단 한 번 실패해서 내린 것도 아니고, 자동매매 자체가 가능하지 않다는 결론도 아니다. 더 현실적인 이유는 운영에 들어가는 복잡도와 자본, 검증 비용, 그리고 그 자원을 다른 기회에 쓰지 못하는 비용을 함께 계산했을 때 계속 운영할 근거가 충분하지 않았기 때문이다. 수익률 한 줄만으로는 보이지 않던 운영 전체의 비용을 뒤늦게 더 정확히 보게 됐다.

무엇을 종료했고, 무엇을 보류했나

종료한 것은 실제 자금으로 포지션을 유지하며 봇을 계속 돌리는 운영이다. 주문과 포지션을 남겨 둔 채 관찰만 중단한 것이 아니다. 기존 코인 포지션은 모두 정리했고, 자동 진입이 다시 발생하지 않도록 실전 운용도 멈췄다. 따라서 이전 글에서 설명한 롱과 숏, DCA 단계, 고정 TP 같은 상태는 현재 상태가 아니라 과거 운영 기록이다.

보류한 것은 자동매매라는 주제 전체다. 코드를 영구히 폐기하거나 다시는 검토하지 않겠다고 선언하는 것은 아니다. 반대로 재개 시점이나 다음 버전을 약속하는 것도 아니다. 지금 단계에서 “몇 달 뒤 v5로 돌아오겠다”거나 “조건만 좋아지면 바로 재가동하겠다”고 쓰는 것은 근거 없는 일정이 된다. 실험을 멈춘 직후에는 아쉬움을 달래기 위해 다음 계획을 크게 말하기 쉽지만, 이번에는 그 충동을 경계하려 한다.

중단과 보류를 함께 쓰는 이유도 여기에 있다. 현재 운영은 분명히 종료했다. 그러나 이 경험에서 얻은 코드, 로그, 판단 기준까지 무효가 된 것은 아니다. 언젠가 자본 배분과 검증 구조가 달라지고 다시 실험할 이유가 생길 수는 있다. 그 가능성을 열어 두되, 가능성을 계획처럼 포장하지 않는 것이 지금의 정확한 표현이다.

중단 이유 1: 운영 복잡도가 전략보다 커졌다

자동매매는 매수와 매도 규칙을 코드로 옮기면 끝나는 작업처럼 보였다. 실제 운영에서는 전략 바깥의 일이 훨씬 많았다. 거래소별 잔고와 주문 상태를 맞춰야 했고, API 오류와 지연, 부분 체결, 최소 주문 단위, 포지션 불일치 같은 예외를 확인해야 했다. 봇이 아무 메시지도 보내지 않을 때 정상적으로 기다리는 것인지, 작업이 멈춘 것인지 구분하는 감시도 필요했다.

롱과 숏을 서로 다른 거래소에서 운용하면서 상태는 더 복잡해졌다. 한쪽 주문이 체결되고 다른 쪽이 비어 있는 시간, DCA 조건은 충족했지만 시간 조건은 남은 상황, 거래소 잔고와 내부 상태가 어긋날 가능성을 각각 다뤄야 했다. 전략 설명에서는 “양방향”이라는 한 단어로 표현할 수 있지만, 운영에서는 두 개의 자금 계정과 주문 체계, 실패 경로를 동시에 책임지는 일이었다.

이런 복잡도는 기능을 추가할수록 선형으로 늘지 않았다. 감성 분석, 단계별 DCA, 익절 조건, 쿨다운, 잔고 활용 같은 요소가 연결되면서 한 설정의 변경이 다른 조건에 어떤 영향을 주는지 다시 확인해야 했다. 코드가 실행된다는 사실과 자금을 맡겨도 된다는 확신 사이에는 큰 간격이 있었다. 결국 전략을 개선하는 시간보다 시스템이 예상한 상태에 있는지 확인하는 시간이 더 중요해졌고, 그 자체가 실험의 핵심 비용이 됐다.

중단 이유 2: 자본이 오래 점유됐다

DCA 전략은 손실 구간에서 추가 진입해 평단을 낮추고 반등을 기다리는 구조였다. 이 구조에서는 미실현 손익만 볼 것이 아니라, 자금이 얼마나 오래 묶이는지도 봐야 한다. 포지션이 종료되지 않으면 다음 기회를 위해 자유롭게 쓸 수 있는 현금이 줄어든다. 추가 진입 여력을 남겨 두어야 하므로 계좌에 있는 돈 전체가 실제로는 전략에 배정된 자본이 된다.

당시에는 손절을 줄이고 회복 가능성을 높이는 장점에 집중했다. 운영을 길게 보니 “언젠가 회복할 수 있다”와 “그때까지 자본을 점유하는 것이 효율적이다”는 다른 질문이었다. 회복을 기다리는 동안 다른 실험에 자본을 배분할 수 없고, 급격한 변화에 대응할 선택지도 좁아진다. 손실 확정을 미룬다는 심리적 편안함이 자본 효율까지 보장하지는 않았다.

특히 포지션별 수익률이 작고 대기 기간이 길어질수록, 결과만 기록해서는 전략의 실제 효율을 설명하기 어려웠다. 얼마를 벌었는지뿐 아니라 얼마의 자본이 며칠 동안 묶였는지, 같은 기간에 어떤 선택을 포기했는지까지 계산해야 했다. 실험을 계속하려면 이 질문에 답할 측정 체계가 필요했지만, 당시 운영은 그 수준까지 정교하지 않았다.

중단 이유 3: 검증 비용을 과소평가했다

백테스트와 짧은 실전 결과는 아이디어를 거르는 데 유용했지만, 운영 가능한 전략을 증명하기에는 부족했다. 시장 구간이 바뀌면 같은 규칙도 다른 결과를 낼 수 있고, 파라미터를 수정할 때마다 이전 결과와 단순 비교하기 어려워졌다. 트레일링 스탑을 고정 TP로 바꾸고, 진입과 DCA 조건을 조정할수록 실제로 무엇이 성과에 영향을 줬는지 분리하기도 어려웠다.

신뢰할 만한 검증을 하려면 버전별 규칙을 고정하고, 충분한 기간의 데이터를 모으고, 수수료와 슬리피지, 체결 실패, 자본 점유 시간을 함께 반영해야 한다. 비교 기준도 필요하다. 아무것도 하지 않았을 때, 단순 보유했을 때, 더 단순한 규칙을 사용했을 때보다 복잡한 봇이 나았는지 확인해야 한다. 몇 번의 익절이나 한 시점의 계좌 총액만으로는 그 차이를 증명할 수 없다.

여기에 운영 중 발생한 수동 판단까지 기록해야 한다. 사람이 설정을 바꾸거나 포지션을 확인한 순간이 많아지면, 결과가 자동화된 전략의 성과인지 운영자의 개입 성과인지 경계가 흐려진다. 완전 자동화라는 이름과 달리 계속 지켜봐야 안심할 수 있었다면, 그 감시 시간도 검증 비용에 포함해야 한다. 나는 초기에 이 비용을 개발 시간 정도로만 봤고, 장기간 일관된 증거를 만드는 비용은 작게 계산했다.

중단 이유 4: 기회비용이 분명해졌다

가장 결정적인 질문은 “이 실험이 작동할 수 있는가”가 아니라 “지금 내가 계속해야 할 가장 좋은 실험인가”였다. 자동매매를 유지하려면 코드 수정, 로그 확인, 거래소 상태 점검, 결과 정리, 예외 대응에 꾸준한 집중이 필요하다. 그 시간에는 다른 제품이나 수익모델을 조사하고 검증할 수 없다.

어떤 프로젝트든 가능성이 조금 남아 있다는 이유만으로 계속할 수는 없다. 특히 수익 실험에서는 이미 들인 시간과 애착이 다음 투입의 근거가 되기 쉽다. 봇의 버전을 여러 번 개선했고 실제 자금으로 운영했다는 사실은 경험의 가치이지, 앞으로도 계속 자원을 넣어야 한다는 의무가 아니다. 유지 비용과 예상 학습량을 다시 비교했을 때, 현재는 다른 수익모델을 연구하는 쪽이 더 나은 선택이라고 판단했다.

지금 연구 중인 다른 수익모델을 여기서 성급히 소개하지는 않겠다. 아직 검증되지 않은 아이디어를 확정된 다음 프로젝트처럼 말하면 같은 실수를 반복할 수 있다. 다만 방향은 분명하다. 자본을 장기간 묶어 두는 구조보다 작은 비용으로 가설을 시험할 수 있고, 운영 부담과 성과의 인과관계를 더 명확히 측정할 수 있는 모델을 찾고 있다.

이번 실험에서 배운 것

첫째, 자동화는 운영 제거가 아니라 운영 방식의 변경이었다. 사람이 주문 버튼을 누르는 일은 줄었지만, 대신 상태를 정의하고 예외를 감시하며 실패했을 때 안전하게 멈추는 책임이 생겼다. 정상 경로보다 비정상 경로를 설계하는 일이 더 중요했다. 다음 자동화 프로젝트에서는 기능 목록보다 관찰 가능성, 중단 조건, 복구 절차를 먼저 적어야 한다.

둘째, 수익률만으로 실험을 평가하면 안 된다. 최대 투입 자본, 자본 점유 기간, 수동 개입 시간, 운영 비용, 검증에 필요한 기간을 함께 봐야 한다. 한 시점의 플러스 계좌는 반가운 장면일 수 있지만, 지속 가능한 수익모델의 증거는 아니다. 반대로 특정 포지션의 손실만으로 전체 시스템을 즉시 실패라고 단정하는 것도 정확하지 않다. 평가 단위를 미리 정하고 같은 기준으로 비교해야 한다.

셋째, 복잡한 전략이 더 좋은 전략이라는 보장은 없다. 양방향 포지션과 단계별 DCA는 여러 상황에 대응할 수 있게 했지만, 동시에 상태 공간과 실패 경로를 늘렸다. 기능 하나를 더 넣을 때 기대 수익만 볼 것이 아니라, 검증해야 할 조합과 운영 부담이 얼마나 늘어나는지 계산해야 한다. 설명하기 어렵고 재현하기 어려운 성과는 개선하기도 어렵다.

넷째, 중단 기준은 시작할 때 정해야 한다. 이번에는 운영 중에 계속 개선 가능성을 발견했고, 그때마다 다음 수정이 문제를 해결할 것처럼 느껴졌다. 그러나 명확한 중단 기준이 없으면 모든 결과가 추가 개발의 이유가 된다. 다음 실험에서는 최대 기간, 최대 투입 자본, 허용 가능한 수동 개입 시간, 비교 기준 대비 최소 성과를 시작 전에 정할 생각이다. 기준을 충족하지 못하면 아쉬움과 무관하게 멈출 수 있어야 한다.

다섯째, 기록은 성과 홍보보다 의사결정 복기에 더 유용했다. 4월과 5월 글을 다시 읽으면 당시 어떤 가정을 믿었고 무엇을 위험으로 봤는지 확인할 수 있다. 지금은 일부 표현과 기대가 낙관적으로 보이지만, 그래서 기록을 지우거나 숫자를 고치지는 않는다. 과거의 판단을 현재의 결론에 맞게 다시 쓰면 배운 과정도 사라진다. 대신 후속 글을 연결해 상태가 바뀌었다는 사실을 분명히 남기는 편이 맞다.

재개 조건은 약속이 아니라 질문으로 남긴다

자동매매를 다시 검토한다면 최소한 몇 가지 질문에 답할 수 있어야 한다. 전략의 우위를 어떤 비교 기준과 기간으로 검증할 것인가. 수수료와 슬리피지, 체결 실패를 포함한 결과를 재현할 수 있는가. 자본 점유 시간까지 반영해 다른 선택보다 나은가. 사람이 매일 확인하지 않아도 이상 상태를 탐지하고 안전하게 중단할 수 있는가. 운영 복잡도를 감당하고도 남는 기대 가치가 있는가.

또한 재개 여부는 시장 분위기나 단기 수익 기회만으로 결정하지 않을 것이다. 테스트 자본의 상한, 손실과 중단 기준, 버전 고정 방식, 로그와 정산 체계를 먼저 준비해야 한다. 이 준비가 없다면 코드를 다시 실행할 수 있다는 사실만으로는 재개할 이유가 되지 않는다.

하지만 이것을 재개 체크리스트나 일정으로 받아들이지는 않았으면 한다. 조건을 문장으로 적었다고 해서 곧 충족시키겠다는 뜻은 아니다. 현재 우선순위는 다른 수익모델을 연구하고, 더 낮은 비용으로 더 빠르게 가설을 검증하는 방법을 찾는 데 있다. 자동매매는 그 연구가 충분히 진행된 뒤에도 다시 볼 가치가 있을 때만 검토할 수 있다. 시점은 정하지 않았다.

포지션을 정리하며

프로젝트를 끝내는 일은 새 버전을 발표하는 일보다 쓰기 어렵다. 특히 공개적으로 과정을 기록했을 때는 “조금만 더 하면 결과를 만들 수 있지 않을까”라는 생각이 남는다. 그러나 계속하는 것과 책임 있게 운영하는 것은 같은 말이 아니다. 운영 근거가 약해졌는데도 과거의 기대 때문에 자본과 시간을 유지하는 편이 더 위험하다.

이번 정리는 자동매매에 대한 찬반 결론이 아니다. 내가 운영한 특정 구조와 현재의 자원 배분에 대한 결정이다. 실험을 통해 주문 자동화, 상태 관리, 리스크 노출, 검증 설계에 대해 배웠고, 동시에 지금의 방식으로는 계속할 이유가 충분하지 않다는 점도 확인했다. 성공담으로 포장하지도, 모든 시도를 실패로 축소하지도 않으려 한다.

현재 사실은 간단하다. 자동매매는 중단했다. 기존 코인 포지션은 모두 정리했다. 최종 실현손익은 이 글에서 공개할 수 있는 확인 자료가 없으므로 숫자로 단정하지 않는다. 과거 글의 3,085,757원은 5월 24일 당시 스냅샷으로만 남는다. 그리고 지금은 다른 수익모델을 연구하고 있다.

이 글은 특정 코인의 매수·매도나 자동매매 전략의 사용을 권하는 글이 아니다. 실제 자금으로 진행한 개인 프로젝트의 운영 회고이며, 투자 조언이 아니다. 이번 실험의 가장 중요한 결과는 어떤 수익률 숫자보다, 계속할 근거가 부족할 때 포지션과 기대를 함께 정리하는 판단을 배운 데 있다.