SpreadAtlas

손실의 86%를 만든 버그 하나

2026년 10월 13일 공개

첫 자동매매는 청산 190건에서 모의 자금 510만 원을 잃었습니다. 손실을 청산 사유별로 나누자 코드 경로 하나가 86.5%를 차지했습니다. 그리고 같은 버그가 우리를 한 번 더 속였습니다.

만든 방법: 코드, 연구 실행, 이 글의 초안은 운영자의 지시를 받은 AI 도우미(Claude)가 만들었고, 모든 결정과 숫자 확인은 운영자가 했습니다. 모든 매매는 모의(실제 시세, 실제 돈 없음)였습니다. 투자 권유가 아닙니다.

청산 사유별 손실

청산 사유건수손익(원)평균승률보유 중앙값
확인 없는 경보 청산157−4,416,442−0.37%10.2%12초
보유 시간 만료18−244,623−0.26%38.9%2시간
확인된 경보 청산6−684,389−2.10%0%14분
추적 손절5+613,519+2.33%100%18분
손절2−386,990−3.69%0%23분
기타2+13,194———
첫 자동매매의 모의 원장, 2026년 9월 14일까지 청산 190건. 합계 −5,105,732원.

190건 중 157건이 한 규칙에서 나왔습니다. 확인도, 최소 보유 시간도, 가격이 실제로 움직였는지 확인도 없이 즉시 파는 경보였습니다. 보유 시간 중앙값은 12초였습니다. 같은 원장으로 잰 왕복 비용 중앙값이 0.43%였으니 가격이 움직이지 않아도 손실이었습니다. 그중 97건(62%)은 가격이 진입가에서 0.35%도 안 움직였는데 손실로 끝났습니다.

진입 30초 안에 나온 청산 114건이 그것만으로 전체 손실의 63%였습니다.

코드가 한 일

같은 파일에서 다른 경보 두 가지는 이미 팔기 전에 확인 단계를 거치고 있었는데, 이 경보만 빠져 있었습니다. 자매 모듈은 몇 주 전에 같은 문제를 고쳤지만 이 모듈은 아니었습니다. 확인되지 않은 경보는 최소 보유 20초, 왕복 비용보다 큰 실제 손실, 6초 확인을 모두 만족할 때만 팔도록 바꿨고, 손절과 급락 청산 같은 안전장치는 그대로 즉시 작동하게 두었습니다.

원장에 대 보면 새 규칙은 경보 청산 157건 중 143건을 막았을 것입니다. 이것을 개선이라고 주장하지 않았습니다. 청산을 막았다는 것은 그 순간 왕복 비용을 확정하지 않았다는 뜻일 뿐, 계속 들고 있었다면 가격이 어떻게 됐을지는 이 원장으로 증명할 수 없습니다.

두 번째 실수

감사에서는 3분 신호 창의 거래가 442만 원을 잃었고 1시간 창은 돈을 벌었다는 것도 나왔고, 우리는 3분 창 거래를 줄이자고 권고했습니다. 하루 뒤 그 권고를 거뒀습니다. 3분 창 거래 158건 중 157건이 바로 그 경보 청산이었습니다. 그것을 빼면 3분 창 거래는 한 건뿐이었습니다. 코드 경로 두 개를 비교해 놓고 시간틀의 차이라고 부른 것입니다.

같은 2차 감사에서 비슷한 결함을 하나 더 찾았습니다. 확인된 경보 청산 6건이 모두 자기 손절선 안쪽(평균 −2.0%)에서 팔았고, 6종목 중 5종목이 15분 뒤 더 높았습니다. 경보가 위험 계획을 앞질러 자른 것입니다. 경보가 손절선보다 먼저 팔지 못하게 했습니다.

얻은 것

버그를 고친 것은 버그를 고친 것이지 근본 문제를 고친 것이 아니었습니다. 전략의 거래당 우위는 여전히 비용보다 작았습니다. 6주 전체 이야기