지금 실계좌로 돌아가는 자동매매는 여섯 개지만, 그보다 많은 시스템을 만들었다가 껐습니다. 버린 시스템은 잘 드러나지 않지만, 무엇을 왜 버렸는지가 남은 여섯 개를 만든 기준이 됐습니다. 이 글은 끈 시스템 중 이유가 서로 다른 세 가지를 골라, 무엇이 문제였고 그 뒤로 어떤 원칙이 생겼는지 정리한 기록입니다.
첫 번째: 같은 계좌에 봇 두 개, 실계좌 엔진을 전부 껐다
가장 먼저 끈 것은 주식 계좌에서 돌던 그리드형 매매 서버입니다. 여러 종목을 각각의 엔진이 맡아 돌리는 구조였고, 실계좌 엔진 여러 개와 모의 엔진 여러 개가 함께 돌고 있었습니다.
문제는 새 시스템을 같은 증권 계좌에 들이면서 생겼습니다. 새 시스템이 거래하는 종목을 기존 서버의 엔진 하나도 같은 계좌에서 거래하고 있었습니다. 증권 계좌의 매도 주문에는 "이 주식은 어느 봇이 산 것"이라는 구분이 없습니다. 같은 종목을 두 봇이 들고 있으면, 한쪽이 청산할 때 다른 쪽이 산 주식까지 팔 수 있습니다. 계좌 잔고도 두 봇의 몫이 합쳐져 나오니, 지난 글에서 다룬 장부와 잔고 대조가 의미를 잃습니다. 주문 가능 금액도 두 봇이 각자 자기 것처럼 계산하게 됩니다.
종목이 겹치는 엔진 하나만 끄는 것으로 끝내지 않았습니다. 종목이 겹치지 않는 나머지 실계좌 엔진도 전부 껐습니다. 종목은 달라도 같은 계좌의 주문 가능 금액과, 하루 손실 한도를 지키는 안전장치를 함께 쓰고 있었기 때문입니다. 다행히 끄는 시점에 이 서버는 보유 종목도, 걸려 있는 주문도 없었습니다. 실계좌와 완전히 분리된 모의 엔진들은 그대로 남겼습니다. (근거: 중단된 주식 그리드 시스템의 실전 운영 중단 기록)
여기서 생긴 원칙은 "실계좌 하나에는 시스템 하나"입니다. 종목이 겹치지 않더라도 돈과 안전장치를 함께 쓰면 두 시스템은 서로를 모르는 채로 영향을 주고받습니다. 새 시스템을 실계좌에 들이기 전에 같은 계좌를 쓰는 다른 시스템이 있는지부터 확인해야 하는 이유입니다.
두 번째: 버그를 고치고 나니 성과가 작아졌다
두 번째는 코인 현물에서 짧게 치고 빠지는 모멘텀 스윙 시스템입니다. 외부에서 참고한 전략 명세를 바탕으로 만들었는데, 처음 백테스트 결과는 명세보다 훨씬 나빴습니다. 최대 낙폭이 명세의 세 배가 넘게 나왔습니다.
처음에는 "과거에 사라진 종목까지 넣어서 그렇다"는 설명으로 넘어갈 뻔했습니다. 다시 뜯어보니 구현 결함이 네 개 있었습니다. 특정 조건에서 들어간 포지션은 빠져나올 조건이 영원히 충족되지 않아 몇 주씩 방치됐고, 명세에 없던 지연이 매도를 늦췄고, 걸러야 할 종목이 걸러지지 않았고, 거래량 조건이 빠져 있었습니다. 네 개를 모두 고치자 낙폭은 명세 수준으로 돌아왔습니다.
문제는 수익이었습니다. 버그를 고친 뒤의 연 수익률은 한 자릿수에 그쳤고, 전체 기간의 대부분을 현금으로 지냈습니다. 명세가 내세운 높은 숫자를 추적해 보니, 짧은 최근 기간의 성과가 긴 기간의 성과 칸에 잘못 적혀 있었고, 원래 계산에는 미래 데이터를 엿보는 오류까지 섞여 있었습니다. 낙폭을 잘 막는 방어형 전략이었지, 수익을 내는 전략은 아니었던 것입니다. 이 시스템은 실계좌에 자금을 넣지 않고 접었고, 그 자리는 다른 방식의 시스템으로 채웠습니다. (근거: 폐기한 모멘텀 스윙 시스템의 백테스트 괴리 분석 기록)
여기서 생긴 원칙은 두 가지입니다. 결과가 이상하면 그럴듯한 설명보다 코드를 먼저 의심합니다. 그리고 버그를 다 고친 뒤의 숫자만 그 전략의 실력으로 봅니다.
세 번째: 미리 정한 기준에서 떨어지면 버린다
세 번째는 실계좌에 있는 시스템 하나를 대체할 후보로 연구하던 롱숏 전략입니다. 처음부터 실계좌와 완전히 분리된 연구 공간에서 시작했고, 목표도 분명히 적어 두었습니다. 기존 시스템을 대체할 수 있으면 대체하고, 그 수준이 아니면 함께 돌릴 후보로만 재평가하는 것이었습니다.
두 가지 후보 전략을 같은 기준으로 검증했고, 둘 다 기준을 넘지 못했습니다. 결론은 "대체 후보 없음, 기존 시스템 유지"였습니다. 단서 하나가 남았지만 검증 도중에 사후적으로 발견한 것이라 바로 믿지 않았습니다. 대신 다음 검증에서는 규칙 하나를 먼저 정해 문서로 동결하고, 그 규칙으로만 과거 구간을 시험하기로 했습니다. 그런데 그 시험 구간에는 조건을 만족하는 후보가 너무 적어서, 시험 자체가 성립하지 않았습니다. 기준을 낮추는 대신 그 단계에서 중단했습니다. (근거: 롱숏 연구 폴더의 검증 결과와 사전 선언 기록)
여기서 생긴 원칙은 "기준은 결과를 보기 전에 정한다"입니다. 결과를 본 뒤에 기준을 바꾸면, 어떤 전략이든 통과시킬 수 있습니다.

정리: 버리면서 생긴 원칙
- 실계좌 하나에는 시스템 하나. 종목이 달라도 주문 가능 금액과 안전장치를 공유하면 분리한다
- 결과가 이상하면 그럴듯한 설명보다 코드를 먼저 의심한다
- 버그를 다 고친 뒤의 숫자만 그 전략의 실력으로 본다
- 통과 기준은 결과를 보기 전에 정하고, 떨어지면 기준이 아니라 전략을 버린다
- 끈 시스템도 왜 껐는지 기록으로 남긴다
다음 글에서는 백테스트 칸을 다룹니다. 참고한 자료가 내세운 성과를 같은 조건으로 직접 재현해 본 결과를 정리합니다. 같은 기록을 카드로 정리한 요약은 인스타그램 @wealthgrid.lab 에 올립니다.
※ 특정 종목·수익을 권유하지 않는 개인 시스템 개발 기록입니다. 투자 판단과 책임은 본인에게 있습니다.
'자동매매 [ALGO]' 카테고리의 다른 글
| 자동매매 전략은 하루 한 번, 절반 넘는 날은 쉬었다 (0) | 2026.10.09 |
|---|---|
| 자동매매 데이터 검증, 데이터는 있었는데 전략은 못 봤다 (0) | 2026.10.06 |
| 자동매매 실계좌 전환 순서, 모의에서 실계좌까지 4단계 (0) | 2026.10.03 |
| 자동매매 구조, 전략은 여섯 칸 중 한 칸입니다 (0) | 2026.10.02 |