본문 바로가기
자동매매 [ALGO]

자동매매 서킷브레이커, 멈추는 장치는 어떻게 작동하나

by WealthGRID 2026. 10. 16.

자동매매의 서킷브레이커는 "이상하면 멈춘다"는 장치입니다. 실계좌 시스템에서는 이 장치를 두 겹으로 나눠, 시장이 급락할 때 물러나는 장치와 계좌나 시스템 자체에 이상이 생겼을 때 멈추는 장치를 따로 만들었습니다. 이 글은 두 장치가 어떤 순서로 작동하는지, 그리고 멈추는 장치가 오히려 멀쩡한 계좌를 멈춰 세운 실제 사례를 정리한 기록입니다.

AI와 자동매매를 만들며 멈추는 결정만큼은 사람이 쥐기로 한 이야기를 앞서 정리했습니다. 서킷브레이커는 그 결정이 필요한 순간을 먼저 알아채고, 사람이 판단할 때까지 시스템을 세워 두는 장치입니다.

서킷브레이커는 두 겹이다

첫 번째 겹은 시장 쪽입니다. 하루 한 번 판단하는 전략의 일부로 들어가 있고, 시장이 급하게 무너질 때 들고 있던 것을 팔고 현금으로 물러납니다. 물러난 뒤에는 정해진 날짜 동안 다시 들어가지 않고 쉽니다. 쉬는 동안 또 급락이 오면 쉬는 기간을 처음부터 다시 셉니다. 급락 직후의 반등에 성급하게 다시 올라탔다가 두 번 맞는 일을 막기 위해서입니다.

두 번째 겹은 계좌와 시스템 쪽입니다. 시장과 상관없이, 하루 사이 계좌 자산이 정해 둔 한도보다 많이 줄었거나, 짧은 시간 안에 거래소 연결 오류가 연달아 나면 시스템이 스스로 주문을 멈춥니다. 이 쪽은 시장이 아니라 "내 시스템이 이상하다"는 신호에 반응합니다. 그리고 한 번 멈추면 휴대폰으로 온 알림에서 사람이 재개 버튼을 누르기 전까지 다시 시작하지 않습니다.

두 겹을 나눈 이유는 대응이 달라야 하기 때문입니다. 시장 급락은 예상할 수 있는 상황이라 규칙대로 물러나면 됩니다. 반면 계좌 자산이 이유 없이 줄었다면 시장 때문인지, 장부 오류인지, 누가 출금한 것인지 사람이 확인하기 전까지는 아무것도 하지 않는 편이 안전합니다.

[이미지 1] 여기에 01_side05_breaker.png 업로드 → 이 줄 삭제 · 대체 텍스트: 서킷브레이커 두 겹. 시장 쪽은 급락 시 현금으로 물러나 쉬고, 계좌·시스템 쪽은 이상 시 멈추고 사람의 승인을 기다린다

확인하는 순서가 판단을 바꾼다

시장 쪽 서킷브레이커는 매일 판단할 때 정해진 순서대로 확인합니다. 시장을 대표하는 자산이 급락했는지, 들고 있는 바구니 전체가 급락했는지, 바구니 안의 개별 종목이 급락했는지를 먼저 보고, 그다음 벌어 둔 수익을 지키는 장치, 쉬는 기간인지를 확인한 뒤에야 마지막으로 "추세가 켜져 있는가"를 봅니다.

순서가 중요한 이유는 같은 날 여러 조건이 동시에 켜질 수 있기 때문입니다. 추세는 아직 켜져 있지만 개별 종목이 급락한 날, 추세를 먼저 보면 "계속 들고 있자"가 되고, 급락을 먼저 보면 "물러나자"가 됩니다. 위험을 확인하는 단계를 항상 앞에 두고, 들어갈 이유를 찾는 단계를 맨 뒤에 둔 것은 이 시스템이 처음부터 수익보다 낙폭을 먼저 보도록 만들어졌기 때문입니다. (근거: 시스템 A 설계 불변식의 서킷브레이커 평가 순서)

실제로 있었던 일: 멀쩡한 계좌를 손실로 착각했다

멈추는 장치가 잘못 멈추는 일도 있었습니다. 주식 단타 시스템이 모의 운용을 하던 사흘째 아침, 매수 후보 15개가 계좌 서킷브레이커에 의해 전부 막혔습니다. 실제 계좌에는 아무 손실이 없었습니다.

원인은 자산을 계산하는 방식이었습니다. 서킷브레이커는 "지금 쓸 수 있는 현금"에 "보유 종목의 평가액"을 더해 자산을 직접 계산하고 있었습니다. 그런데 주식은 매수 대금이 바로 빠지지 않고 결제일까지 묶이기 때문에, 주문을 넣은 직후에는 쓸 수 있는 현금이 그만큼 줄어든 것처럼 보입니다. 서킷브레이커는 이 차이를 하루 손실로 착각했습니다. 증권사가 이미 정확히 계산해서 주는 총자산 값이 있었는데, 그걸 쓰지 않고 일부 값으로 직접 계산한 것이 근본 원인이었습니다.

다행히 이 시스템은 서킷브레이커가 켜져도 새 매수만 막고, 이미 들고 있는 종목의 매도는 그대로 하도록 설계돼 있었습니다. 멈추는 장치가 오작동해도 빠져나가는 길은 막히지 않은 것입니다. 수정은 두 가지였습니다. 증권사가 주는 총자산 값을 그대로 쓰도록 바꿨고, 잘못된 계산으로 이미 저장된 기준값도 함께 고쳤습니다. 코드만 고치고 저장된 값을 그대로 두면, 다음 날 아침 시스템은 고친 코드로 틀린 과거 값을 다시 비교하게 됩니다. (근거: 단타 시스템 운영 기록의 서킷브레이커 자기자본 오계산 사례)

같은 계열의 오작동은 실계좌 첫날에도 한 번 더 있었습니다. 모의 계좌와 실계좌가 장부를 함께 쓰던 문제였고, 장부와 잔고 대조에서 자세히 다뤘습니다.

멈춘 뒤가 더 중요하다

서킷브레이커가 작동하면 그 사실이 바로 사람에게 전달돼야 합니다. 멈췄다는 사실을 며칠 뒤에 알게 되면, 멈춘 것 자체가 또 다른 사고가 됩니다. 그래서 작동하는 즉시 휴대폰 알림을 보내고, 매일 받는 상태 보고서에서도 서킷브레이커 작동은 빨간색 "개입 필요" 항목으로 표시합니다.

다시 켜는 것도 사람이 정합니다. 계좌 쪽 서킷브레이커는 사람이 원인을 확인하고 재개를 승인해야 풀립니다. 무인으로 다시 켜지는 횟수도 하루 몇 번으로 제한해 두었습니다. 같은 이상이 반복되는데 시스템이 혼자 켜졌다 꺼지기를 되풀이하지 않게 하기 위해서입니다.

정리: 서킷브레이커 점검 질문

  • 시장 급락에 대한 장치와 계좌·시스템 이상에 대한 장치를 나눠 두었는가
  • 여러 조건이 동시에 켜질 때, 위험 확인이 항상 먼저 오는가
  • 서킷브레이커가 쓰는 자산 값은 증권사·거래소가 주는 값과 같은 기준인가
  • 서킷브레이커가 켜져도 빠져나가는 매도는 막히지 않는가
  • 작동하면 바로 알림이 오고, 다시 켜는 것은 사람이 승인하는가

이어지는 기록에서는 자동매매와 다른 축인 배당 현금흐름을 다룹니다. 매달 배당 후보를 자동으로 추리지만, 최종 선택은 사람이 하는 구조를 정리합니다. 같은 기록을 카드로 정리한 요약은 인스타그램 @wealthgrid.lab 에 올립니다.

※ 특정 종목·수익을 권유하지 않는 개인 시스템 개발 기록입니다. 투자 판단과 책임은 본인에게 있습니다.