봇이 스스로 브레이크를 밟는 순간 — 자동매매 '안전 정지장치' 완전 정리
자동매매를 알아보는 분들과 상담하다 보면, 사람들이 가장 먼저 궁금해하는 건 "얼마나 벌 수 있느냐"입니다. 그런데 조금 더 이야기가 깊어지면, 표정이 굳으며 진짜 속마음이 나옵니다. "제가 잠든 사이에, 여행 간 사이에 이 봇이 혼자 미쳐 날뛰면 어떡하죠?" 이 질문이야말로 자동매매의 핵심을 정확히 찌릅니다. 사람은 이상한 낌새가 보이면 손을 뗄 수 있지만, 봇은 시키는 대로 합니다 — 시장이 무너지든, 시세 데이터가 깨지든, 자기 코드에 버그가 있든, 정해진 규칙을 묵묵히 반복하려 들 수 있습니다. 그래서 좋은 봇은 '버는 능력'만큼이나 '스스로 멈추는 능력'을 갖춰야 합니다. 자동차로 치면 엔진 성능이 아니라 브레이크와 에어백과 ABS에 해당하는 부분입니다. 이 글은 그 '봇의 자동 브레이크' — 킬 스위치·서킷브레이커·트립와이어라는 세 겹의 안전 정지장치가 각각 무엇이고, 봇이 어떤 이상 신호에 스스로 멈춰야 하며, 멈춘 뒤 포지션은 어떻게 되고, 안전장치의 함정은 무엇인지, 그리고 봇 자체가 죽었을 때는 어떻게 대비하는지를 코딩 한 줄 없이 풀어냅니다. 미리 밝혀두자면, 이 글은 어떤 자산의 방향이나 수익을 예측하지 않습니다. 안전을 설계하는 방법론에 관한 교육 자료이며, 어떤 안전장치도 손실을 없애주지 못합니다.
이 글의 흐름
- 왜 '멈추는 능력'이 '버는 능력'만큼 중요한가
- 세 가지 다른 '멈춤'을 구분하자 — 손절·안전 정지·장애 복구
- 안전 정지장치의 3층 방어선 — 가드레일·서킷브레이커·킬 스위치
- 봇이 스스로 멈춰야 하는 '이상 신호' 8가지
- 킬 스위치 — 전면 정지의 두 얼굴, 그리고 '멈춘 뒤 포지션은?'
- 서킷브레이커 설계 — 임계값·시간창·발동 행동·재개 규칙
- 안전장치의 역설 — 너무 민감해도, 너무 둔해도 위험하다
- 봇이 죽으면 킬도 못 누른다 — 외부 감시자와 데드맨 스위치
- 자동화가 안전장치에서 특히 빛나는 이유 — 그러나 검증은 필수
- 직접 vs 맡기기 · 명세서에 박을 '안전 사양 6줄'
- 흔한 안전 설계 실수 6가지 · 실전 시나리오 3가지
- 흔한 오해 5가지 · 자주 묻는 질문
1. 왜 '멈추는 능력'이 '버는 능력'만큼 중요한가
자동매매의 매력은 사람이 자리에 없어도 24시간 규칙대로 매매한다는 것입니다. 그런데 이 매력은 그대로 공포가 되기도 합니다. 사람이 자리에 없으니, 뭔가 잘못되어도 아무도 손을 뗄 사람이 없기 때문입니다. 봇은 판단하지 않습니다. 그저 코드에 적힌 조건이 맞으면 주문을 냅니다. 시세 데이터가 잠깐 이상한 값을 내뱉어도, 시장이 몇 분 만에 폭락해도, 자기 코드에 미묘한 버그가 있어도 — 봇은 그것이 '이상하다'는 걸 스스로 알지 못하면 평소처럼 계속 매매하려 듭니다.
그래서 실전에서 진짜 계좌를 무너뜨리는 사고는 대개 '전략이 조금씩 손해 보는 것'이 아니라 '통제를 벗어난 짧은 순간'에서 옵니다. 몇 초 사이 같은 주문을 수십 번 반복하는 주문 폭주, 이상한 가격에 대량으로 체결되는 사고, 급락장에서 손절이 줄줄이 밀리는 연쇄 손실 같은 것들입니다. 이런 일은 자주 일어나지 않지만, 한 번 일어나면 그동안 쌓은 성과를 통째로 지울 수 있습니다. 안전 정지장치는 바로 이 드물지만 치명적인 순간을 겨냥합니다.
핵심 프레임: 자동매매의 성과는 두 가지로 나뉩니다. 하나는 평소에 조금씩 잘 버는 것이고, 다른 하나는 이상할 때 크게 잃지 않는 것입니다. 많은 사람이 앞쪽(수익 전략)에만 골몰하지만, 계좌의 생존을 결정하는 건 대개 뒤쪽입니다. 안전 정지장치는 화려하지 않지만, 봇을 '오래 살아남게' 만드는 장치입니다.
2. 세 가지 다른 '멈춤'을 구분하자 — 손절·안전 정지·장애 복구
"봇이 멈춘다"는 말은 실제로 세 가지 완전히 다른 상황을 뭉뚱그린 표현입니다. 이걸 구분하지 못하면 명세서에서도 서로 다른 얘기를 같은 칸에 적게 됩니다. 하나씩 떼어 보겠습니다.
① 손절 — 한 포지션의 정상 규칙
개별 포지션이 정해진 손실선에 닿으면 그 포지션만 정리합니다. 전략 안에 들어 있는 정상적인 매매 규칙이지, 비상 장치가 아닙니다.
② 안전 정지 — 계좌·봇 차원의 비상 차단
개별 거래가 아니라 전체 차원에서 이상이 누적되면 매매를 차단합니다. 서킷브레이커·킬 스위치가 여기에 속합니다. 이 글의 주제.
③ 장애 복구 — 기술 고장의 처리
연결 끊김, 서버 다운, API 오류 같은 기술 고장을 감지해 재접속·재시작·사람 호출로 이어집니다. '멈춤'보다 '되살리기'에 가깝습니다.
④ 사람의 판단 — 끄기·참기·고치기
손실이 이어질 때 사람이 봇을 끌지 참을지 고칠지 판단하는 운영 규율입니다. 봇의 자동 반사와 달리, 사람이 내리는 결정입니다.
이 글이 다루는 건 ②번, 계좌·봇 전체 차원의 자동 비상 차단입니다. ①손절은 이미 청산 설계 글에서, ③장애 복구는 장애·복구 플레이북에서, ④사람의 판단은 드로다운·중단 규칙 글에서 각각 따로 다뤘습니다. 여기서의 초점은 사람이 개입하기 전에, 봇이 스스로 즉시 매매를 멈추는 코드화된 안전장치입니다. 셋의 차이를 한 줄로 압축하면 이렇습니다.
| 구분 | 멈추는 범위 | 발동 이유 | 비유 |
|---|---|---|---|
| 손절 | 포지션 하나 | 그 거래가 정한 손실선에 닿음 | 이 거래는 손절매 |
| 서킷브레이커 | 계좌·전략 전체(신규 매매) | 손실·이상이 누적돼 한도 초과 | 오늘은 장사 접자 |
| 킬 스위치 | 봇 활동 전면 | 즉각 전면 중단이 필요한 비상 | 지금 당장 셔터 내려 |
| 장애 복구 | 기술 계층 | 연결·서버·API 고장 | 고장 났으니 재시동 |
혼동 주의: 손절이 있으니 안전장치는 따로 필요 없다고 생각하기 쉽습니다. 하지만 손절은 '포지션이 정상적으로 물려 손해를 볼 때'를 위한 것이고, 안전 정지장치는 '손절 자체가 제대로 작동하지 못하는 이상 상황'(주문이 밀리거나, 시세가 깨지거나, 봇이 폭주할 때)까지 대비합니다. 급락장에서는 손절 주문이 줄줄이 미끄러질(슬리피지) 수 있는데, 그때 계좌 전체 차원의 서킷브레이커가 없으면 손실이 손절선 아래로 계속 흘러내릴 수 있습니다. 둘은 대체재가 아니라 층이 다른 방어선입니다.
3. 안전 정지장치의 3층 방어선 — 가드레일·서킷브레이커·킬 스위치
잘 설계된 봇의 안전장치는 하나의 스위치가 아니라 세 겹으로 쌓인 방어선입니다. 바깥에서 안쪽으로, 사고가 커지기 전에 먼저 걸리는 순서대로 배치합니다. 마치 공장 기계에 안전 덮개(사전 차단) → 과부하 차단기(조건부 차단) → 빨간 비상 정지 버튼(전면 차단)이 겹겹이 있는 것과 같습니다.
1층 — 트립와이어(가드레일): 위험한 주문을 내기 전에 막는다
가장 바깥이자 가장 먼저 작동하는 층입니다. 봇이 주문을 실제로 내보내기 직전에 "이 주문이 상식적인가"를 검사하는 사전 점검입니다. 예를 들어 한 번에 나가는 주문 수량이 평소의 10배라거나, 주문 가격이 현재가에서 비상식적으로 멀리 떨어져 있다거나, 같은 방향 주문이 몇 초 사이 지나치게 많이 쌓였다면 — 그 주문을 내보내지 않고 막습니다. 이것은 손실이 나기 전에 애초에 이상한 행동을 하지 못하게 하는 울타리입니다. 실무에서 큰 사고를 막는 가장 값싸고 효과적인 방어선이 바로 이 층입니다.
2층 — 서킷브레이커: 이상이 누적되면 자동으로 차단한다
개별 주문은 정상이어도, 결과가 쌓이면서 위험 신호가 나타날 수 있습니다. 오늘 하루 손실이 정해둔 한도를 넘었다, 연속으로 손실이 났다, 주문 실패가 반복된다 — 이런 누적된 이상이 임계값을 넘으면 서킷브레이커가 작동해 신규 매매를 자동으로 차단합니다. 주식시장 전체에도 급락 시 거래를 잠시 멈추는 '서킷브레이커'가 있는데, 그 발상을 봇 하나에 적용한 것입니다. 핵심은 사람이 판단하기 전에, 미리 정한 규칙에 따라 봇이 스스로 멈춘다는 점입니다.
3층 — 킬 스위치: 무슨 일이든 지금 즉시 전면 정지
가장 안쪽, 최후의 방어선입니다. 세부 조건을 따지지 않고 봇의 활동 전체를 즉각 중단시키는 비상 스위치입니다. 자동으로 걸리게 할 수도 있고(예: 명백한 대형 이상 감지), 사람이 원격으로 누를 수도 있습니다(예: 여행지에서 휴대폰으로). 자동차의 빨간 비상 정지 버튼처럼, "이유는 나중에 따지고 일단 멈춰"를 담당합니다.
이 세 층을 겹쳐서 두는 이유는 단순합니다. 어떤 안전장치도 완벽하지 않기 때문입니다. 트립와이어가 놓친 이상을 서킷브레이커가 잡고, 서킷브레이커도 못 잡은 대형 사고를 킬 스위치가 끊습니다. 하나만 믿으면 그 하나가 실패하는 날 계좌가 위험해집니다. 안전은 '한 방의 완벽한 장치'가 아니라 '여러 겹의 그물'로 만드는 것입니다.
4. 봇이 스스로 멈춰야 하는 '이상 신호' 8가지
그렇다면 봇은 무엇을 보고 "이상하다"고 판단할까요? 안전 정지장치는 결국 "이런 신호가 나타나면 멈춰라"의 목록입니다. 실무에서 자주 쓰이는 대표적인 이상 신호를 여덟 가지로 정리하면 이렇습니다. 맡길 때 이 목록을 놓고 "우리 봇은 이 중 무엇을 감시하나요?"라고 물어보면 됩니다.
| # | 이상 신호 | 왜 위험한가 |
|---|---|---|
| 1 | 일일 손실 한도 초과 | 하루 손실이 정한 선을 넘음 — 나쁜 날 계속 매매하면 손실이 눈덩이 |
| 2 | 연속 손실·연속 주문 실패 | 전략 전제가 무너졌거나 무언가 고장 났다는 신호일 수 있음 |
| 3 | 비정상 체결(가격 급변·슬리피지 폭증) | 원하던 가격과 실제 체결이 크게 벌어짐 — 유동성 붕괴·오류 가능성 |
| 4 | 주문 폭주(중복 주문·호출 한도 근접) | 같은 주문을 반복해 내는 폭주 — 봇 버그의 전형적 증상 |
| 5 | 시세 데이터 이상(값 0·정지·비정상 점프) | 깨진 데이터를 진짜로 믿고 엉뚱하게 매매할 위험 |
| 6 | 연결 끊김·시계 어긋남 | 거래소와의 통신이 불안정하면 주문·취소가 뒤엉킴 |
| 7 | 포지션·증거금 이상 | 예상보다 큰 포지션, 증거금 부족·강제청산 위험 근접 |
| 8 | 예상 밖 대량 체결·잔고 급변 | 내가 의도하지 않은 큰 변화 — 사고이거나 외부 개입 신호 |
이 여덟 가지는 성격이 조금씩 다릅니다. 1·2·7번은 '결과'의 이상(손실·포지션이 위험해짐)이고, 3·4·5·6번은 '작동'의 이상(봇이나 데이터가 오작동함)입니다. 특히 후자에 주목해야 합니다. 손실 한도만 감시하면 "돈이 이미 빠진 뒤"에야 멈추지만, 작동 이상을 감시하면 손실이 커지기 전에 멈출 수 있기 때문입니다. 예컨대 시세가 0으로 들어오는데도 그걸 진짜 가격으로 믿고 매매하면 큰 사고가 나는데, '데이터 이상' 감시가 있으면 그 매매 자체를 막습니다. 3·4·5번 같은 작동 이상은 주문 체결의 원리를 이해하면 왜 위험한지 더 분명히 보입니다.
YMYL 주의: 위 표의 '한도'는 모두 예시일 뿐 정답 숫자가 아닙니다. 일일 손실 몇 %에서 멈춰야 하는지, 몇 연패에서 멈춰야 하는지는 전략의 성격·변동성·자본 규모에 따라 완전히 다릅니다. 남이 쓰는 숫자를 그대로 베끼면 내 전략에는 너무 조이거나 너무 헐거울 수 있습니다. 이 값들은 반드시 내 전략에 맞게 정하고, 실계좌 투입 전에 검증해야 하며, 어떤 한도 설정도 미래의 손실을 막아준다고 보장하지 않습니다.
5. 킬 스위치 — 전면 정지의 두 얼굴, 그리고 '멈춘 뒤 포지션은?'
킬 스위치는 안전장치 중에서도 사람들이 가장 직관적으로 원하는 기능입니다. "일단 다 멈춰!"를 담당하기 때문입니다. 그런데 킬 스위치에는 두 얼굴이 있고, 그보다 더 중요한 '멈춘 뒤 처리' 문제가 따라옵니다.
자동 킬 vs 수동(원격) 킬
자동 킬 — 봇이 스스로 누른다
- 명백한 대형 이상을 감지하면 사람 없이 즉시 전면 정지
- 사람보다 빠르다 — 몇 초를 다투는 순간에 강함
- 단, "무엇이 명백한 이상인가"를 미리 잘 정의해야 오작동이 적음
수동 킬 — 사람이 원격으로 누른다
- 여행지에서 휴대폰으로 봇을 즉시 멈추는 비상 버튼
- 봇이 '이상'이라 판단 못 한 상황도 사람의 눈으로 끌 수 있음
- 흔히 텔레그램 같은 메신저로 구현 — 단, 보안 설계가 필수
수동 킬은 대개 텔레그램 원격 감시·제어와 함께 구현됩니다. 폰으로 명령을 보내 봇을 멈출 수 있게 하는 것이죠. 다만 여기엔 반드시 짚어야 할 함정이 있습니다.
보안 함정: 원격으로 봇을 멈출 수 있다는 건, 그 통로가 뚫리면 남이 내 봇을 조종할 수도 있다는 뜻입니다. 원격 제어 통로는 반드시 본인만 쓸 수 있게 잠그고, 무엇보다 봇에 연결된 API 키에는 출금 권한을 절대 주지 않아야 합니다. 그래야 최악의 경우에도 남이 내 돈을 빼가지는 못합니다. 이 원칙은 API 키 보안 글에서 자세히 다뤘습니다. 안전장치를 달다가 새로운 보안 구멍을 뚫지 않도록 주의해야 합니다.
더 중요한 질문 — 멈춘 뒤 포지션은 어떻게 되나?
"멈춘다"고 하면 대부분 모든 게 정리되어 현금이 되는 장면을 상상합니다. 하지만 멈춤에는 세 가지 다른 뒷처리가 있고, 어느 것을 택하느냐가 결과를 크게 바꿉니다.
A. 신규 진입만 정지
새로 사고파는 것만 막고, 이미 보유한 포지션과 그 손절·익절은 그대로 둡니다. 가장 흔하고 온건한 방식.
B. 전량 청산
멈추면서 보유 포지션까지 전부 정리해 완전히 현금으로 빠집니다. 확실하지만, 급변장에선 최악의 가격에 팔 위험.
C. 안전 모드
신규는 막되 기존 포지션의 손절만 더 보수적으로 조입니다. A와 B의 절충 — 위험은 줄이되 성급한 청산은 피함.
핵심: 미리 정해둘 것
어느 방식이 맞는지는 전략·시장마다 다릅니다. 중요한 건 사고가 난 뒤가 아니라 명세서에서 미리 정하는 것.
흔한 착각: "비상이면 무조건 전량 청산이 안전하다"는 생각은 위험할 수 있습니다. 시세 데이터가 깨져서 킬이 걸렸는데 그 깨진 가격에 전량 시장가 청산을 해버리면, 멀쩡한 포지션을 엉뚱한 가격에 던지는 자해가 됩니다. 그래서 "왜 멈췄는가"에 따라 뒷처리를 다르게 하는 설계가 필요합니다. 예컨대 '데이터 이상'으로 멈출 땐 아무것도 팔지 않고 신규만 막는 편이 나을 수 있고, '손실 한도 초과'로 멈출 땐 안전 모드가 어울릴 수 있습니다. 정답은 상황마다 다르며, 이 글은 선택지를 설명할 뿐 특정 방식을 권하지 않습니다.
6. 서킷브레이커 설계 — 임계값·시간창·발동 행동·재개 규칙
세 층 중 실무에서 가장 세심하게 설계되는 게 서킷브레이커입니다. "언제 멈출까"를 규칙으로 정해야 하기 때문입니다. 좋은 서킷브레이커는 네 가지를 명확히 정의합니다.
① 임계값 — 무엇을, 얼마나
무엇을 감시하고(손실·연패·실패 횟수 등) 어느 선을 넘으면 발동할지. 너무 조이지도 헐겁지도 않게.
② 시간창 — 어느 기간 기준
'하루' 기준인가, '최근 몇 시간(롤링)' 기준인가. 자정마다 초기화할지, 계속 굴러가는 창으로 볼지.
③ 발동 행동 — 멈추며 무엇을
신규 정지만? 청산까지? 안전 모드? (앞 절의 A·B·C) 그리고 즉시 알림을 어디로 보낼지.
④ 재개 규칙 — 어떻게 다시 켜나
시간이 지나면 자동 재개할지, 아니면 사람이 확인해야만 재개(래치)할지. 이게 없으면 영영 꺼두거나 성급히 켠다.
특히 ④ 재개 규칙이 자주 빠집니다. 멈추는 건 설계했는데 다시 켜는 방법을 안 정해두면, 봇이 멈춘 채로 방치되거나(그사이 기회도 놓치고 감시도 안 됨) 반대로 사람이 상황 파악 없이 성급하게 다시 켜서 같은 사고를 반복합니다. 그래서 위험한 정지일수록 '래치(latch)'를 겁니다 — 한 번 걸리면 사람이 원인을 확인하고 명시적으로 해제해야만 재개되도록 잠그는 것입니다. 두꺼비집 차단기가 저절로 다시 올라오지 않고 사람이 손으로 올려야 하는 것과 같습니다.
7. 안전장치의 역설 — 너무 민감해도, 너무 둔해도 위험하다
여기서 초보가 가장 오해하기 쉬운 지점을 짚겠습니다. "안전장치는 많고 민감할수록 좋다"는 생각은 틀렸습니다. 안전장치에는 역설이 있습니다. 지나치게 예민하면 오히려 해가 됩니다.
너무 민감하면 — 정상 변동에도 자꾸 꺼진다
정지 조건을 너무 빡빡하게 걸면, 시장의 정상적인 출렁임에도 봇이 계속 멈춥니다. 모든 전략은 이기고 지기를 반복하며 일시적으로 손실 구간(드로다운)을 지나가는데, 이 정상적인 계곡마다 서킷브레이커가 걸리면 봇은 제대로 일할 기회를 잃습니다. 게다가 사람이 매번 다시 켜야 하니 자동매매의 의미가 무색해집니다. "손실이 무서워 너무 조인 안전장치"는 결국 전략을 질식시킵니다.
정지 조건의 과최적화 — 또 다른 함정
과거 데이터를 보며 "이 손실 지점에서 멈췄으면 딱 좋았겠다"는 식으로 정지 조건을 과거에 꼭 맞게 깎으면, 그 자체가 과최적화가 됩니다. 과거의 특정 사고에만 맞춘 안전장치는 미래의 다른 사고에는 헛발질할 수 있습니다. 안전장치도 전략만큼이나 단순하고 견고한 편이 낫습니다.
너무 둔하면 — 정작 위험할 때 못 멈춘다
반대로 한도를 너무 헐겁게 잡으면, 정작 큰 사고가 났을 때 제때 걸리지 않습니다. 안전장치가 있으나 마나 한 셈이죠. 그래서 임계값은 "자주 겪는 정상 변동은 통과시키되, 드물게 나타나는 명백한 이상은 잡아내는" 선에서 잡아야 합니다. 이 균형점은 전략·시장·자본에 따라 다르고, 한 번 정하고 끝이 아니라 운영하며 조정해야 합니다.
가장 무서운 함정 — 안전장치 자체의 버그: 안전장치는 '평소엔 안 쓰이다가 비상시에만 작동'하는 특성 탓에, 정작 필요할 때 작동 안 하는 버그가 오래 숨어 있기 쉽습니다. 킬 스위치를 눌렀는데 안 멈춘다거나, 서킷브레이커가 걸렸는데 그 와중에 중복 주문을 낸다면, 안전장치가 오히려 사고의 원인이 됩니다. 그래서 안전장치는 반드시 평소에 테스트해야 합니다 — 모의 환경에서 일부러 이상 신호를 만들어 정말 멈추는지, 멈춘 뒤 포지션 처리가 의도대로 되는지 확인하는 것입니다. "있다"와 "검증됐다"는 전혀 다릅니다.
8. 봇이 죽으면 킬도 못 누른다 — 외부 감시자와 데드맨 스위치
지금까지의 모든 안전장치에는 한 가지 치명적 전제가 깔려 있습니다. 봇이 살아서 돌아가고 있어야 작동한다는 것입니다. 그런데 봇 프로그램이 멈추거나, 서버가 다운되거나, 인터넷이 끊기면? 그 순간 열려 있던 포지션은 아무도 지키지 않는 상태로 방치될 수 있습니다. 죽은 봇은 자기 부고조차 보내지 못합니다. 이 사각지대를 메우는 것이 '봇 밖의 감시자'입니다.
하트비트 — "나 살아 있어" 신호
봇이 주기적으로(예: 1분마다) "정상 작동 중"이라는 신호를 보내게 합니다. 이 하트비트(맥박)가 일정 시간 이상 끊기면, 외부에서 "봇이 죽었을 수 있다"고 알아챕니다. 봇이 스스로 문제를 알리지 못하는 상황을 침묵으로 감지하는 방식입니다.
외부 감시자 — 봇과 분리된 파수꾼
봇과 별개의 작은 프로그램이나 서버가 봇의 하트비트와 계좌 상태를 밖에서 지켜봅니다. 봇이 죽거나 이상하면 사람에게 알림을 보내고, 경우에 따라 미리 약속된 안전 조치(예: 거래소에 걸어둔 예비 손절)가 작동하게 합니다. 핵심은 감시자가 봇과 같은 운명을 공유하지 않는다는 것입니다. 같은 서버, 같은 프로그램 안에 감시 기능을 넣으면 그 서버가 죽을 때 감시도 함께 죽어 무의미해집니다.
데드맨 스위치 — 신호가 끊기면 스스로 안전으로
한 걸음 더 나아간 개념이 데드맨 스위치입니다. 기관차 기관사가 손을 놓으면 열차가 자동으로 서는 장치에서 온 이름입니다. 봇이 정기적으로 "괜찮다"는 신호를 보내야 하고, 그 신호가 끊기면 시스템이 자동으로 안전 상태(예: 신규 주문 차단)로 넘어가게 하는 설계입니다. "적극적으로 멈추라고 명령"하는 대신 "살아 있다는 확인이 없으면 멈춘다"로 방향을 뒤집은 것입니다. 다만 거래소마다 이런 기능(예: 일정 시간 통신 없으면 주문 자동 취소)의 지원 여부와 방식이 다르므로, 실제 적용 가능성은 각 거래소·증권사 공식 문서로 반드시 확인해야 합니다.
정리하면, 진짜 안전한 설계는 '봇 안의 정지장치'와 '봇 밖의 감시자'를 이중으로 두는 것입니다. 안쪽 장치는 봇이 살아 있을 때 빠르게 반응하고, 바깥 감시자는 봇이 죽었을 때를 대비합니다. 24시간 무중단 운영과 장애 대응의 실무는 VPS 운영 가이드와 장애·복구 플레이북에서 더 깊이 다뤘습니다. 다만 어떤 이중화도 완벽을 보장하지는 않으니, 늘 감당 가능한 규모로 운영하는 것이 근본 안전장치입니다.
9. 자동화가 안전장치에서 특히 빛나는 이유 — 그러나 검증은 필수
흥미롭게도, 자동매매가 사람보다 확실히 우월한 영역이 바로 이 안전장치입니다. 이유는 두 가지입니다.
첫째, 속도입니다. 급락이 시작되고 손실이 한도를 넘는 순간, 사람은 상황을 인지하고 결심하고 주문을 내기까지 시간이 걸립니다. 그 몇 초·몇 분 사이 손실은 더 커집니다. 봇은 조건이 맞는 순간 즉시 멈춥니다. 둘째, 감정이 없다는 점입니다. 사람은 "조금만 더 기다리면 반등하지 않을까" 하는 미련 때문에 멈춰야 할 때 못 멈춥니다. 규칙으로 박아둔 안전장치는 망설이지 않습니다. 이 심리적 함정은 트레이딩 심리 글에서 자세히 다뤘는데, 안전장치의 자동화는 바로 이 인간적 약점을 보완합니다.
그러나 — 안전장치도 검증 대상입니다: 자동이라고 무조건 믿으면 안 됩니다. 앞서 말했듯 안전장치는 평소에 안 쓰이므로 버그가 숨기 쉽습니다. 그래서 실전 투입 전 검증 단계에서 정지 시나리오를 반드시 테스트해야 합니다. 일부러 손실 한도를 넘겨보고, 이상 데이터를 흘려보내고, 킬 스위치를 눌러보며 의도대로 멈추는지 확인하는 것입니다. 이 검증 없이 "안전장치 넣었으니 괜찮다"고 믿는 것이야말로 가장 위험합니다.
10. 직접 vs 맡기기 · 명세서에 박을 '안전 사양 6줄'
안전장치는 직접 만들 수도, 제작을 맡길 수도 있습니다. 다만 안전장치는 '있다/없다'가 아니라 '검증됐나'가 관건이라, 스스로 만들 경우 정지 시나리오 테스트까지 직접 해야 합니다. 맡길 때는 아래 여섯 줄을 명세서에 구체적으로 적어달라고 요청하면 됩니다. 이 여섯 줄이 있으면 안전장치가 두루뭉술한 약속이 아니라 코드로 박힙니다. 명세서 작성 전반은 명세서 완전 가이드를 참고하세요.
| 항목 | 정해야 할 내용 (예시 — 정답 아님) |
|---|---|
| ① 정지 조건 | 무엇을 감시하는가 — 일일 손실 한도·연속 손실·주문 실패·데이터 이상·연결 끊김 중 어느 것 |
| ② 임계값 | 각 조건의 발동 선 (내 전략·자본에 맞게, 남의 숫자 베끼지 말 것) |
| ③ 시간창 | 하루 기준인가, 롤링 기준인가 — 언제 초기화되는가 |
| ④ 발동 행동 | 신규 정지만 / 전량 청산 / 안전 모드 중 무엇을, 왜 멈췄는지에 따라 어떻게 |
| ⑤ 재개 규칙 | 자동 재개인가, 사람 확인 후 재개(래치)인가 |
| ⑥ 감시·알림 | 외부 감시자·하트비트 유무, 발동·정지 시 어디로 어떻게 알림 |
맡길 때 던지면 좋은 5가지 질문: ① "우리 봇은 어떤 이상 신호에 스스로 멈추나요?" ② "멈추면 보유 포지션은 어떻게 처리되나요?" ③ "봇이나 서버가 죽으면 누가 알아채나요(외부 감시자)?" ④ "정지·재개가 의도대로 되는지 검증 단계에서 테스트하나요?" ⑤ "원격 킬 스위치를 넣는다면 보안은 어떻게 지키나요(출금 권한 차단 포함)?" — 이 다섯에 구체적으로 답하는 제작자라면 안전을 진지하게 다루는 것입니다.
11. 흔한 안전 설계 실수 6가지 · 실전 시나리오 3가지
흔한 실수 6가지
- 손절만 있고 계좌 차원 안전장치가 없다 — 개별 손절이 밀리는 급변장에 무방비.
- 멈추는 조건만 정하고 재개 규칙을 안 정했다 — 봇이 꺼진 채 방치되거나 성급히 재가동.
- 남의 한도 숫자를 그대로 베꼈다 — 내 전략엔 너무 조이거나 너무 헐거움.
- 안전장치를 검증 없이 믿는다 — 정작 비상시에 작동 안 하는 버그가 숨어 있음.
- 봇 안에만 감시를 넣었다 — 봇·서버가 죽으면 감시도 함께 죽어 포지션 방치.
- 원격 킬에 출금 권한을 열어뒀다 — 안전장치를 달다가 보안 구멍을 뚫음.
실전 시나리오 3가지
새벽에 시장이 급락하며 손절이 연이어 밀립니다. 일일 손실 한도 서킷브레이커가 걸려 신규 매매를 자동 차단하고, 알림이 폰으로 옵니다. 사람이 아침에 원인을 확인한 뒤 래치를 해제합니다. 손실은 났지만 한도 아래에서 멈췄고 통제 불능의 연쇄로 번지지 않았습니다.
거래소 시세가 잠깐 0에 가까운 값으로 들어옵니다. 데이터 이상 트립와이어가 그 값을 근거로 한 주문을 내기 전에 차단합니다. 봇은 '데이터 이상'으로 멈추되 아무것도 청산하지 않고 신규만 막습니다. 잠시 후 데이터가 정상으로 돌아오자 사람이 확인 후 재개합니다. 멀쩡한 포지션을 엉뚱한 가격에 던지는 사고를 피했습니다.
서버가 한밤중에 다운돼 봇이 멈춥니다. 봇 안의 킬 스위치는 무용지물이지만, 외부 감시자가 하트비트 끊김을 감지해 즉시 알림을 보냅니다. 미리 거래소에 걸어둔 예비 손절이 포지션을 받쳐주는 사이, 사람이 서버를 재시작합니다. '봇 밖의 파수꾼'이 사각지대를 메운 경우입니다.
12. 흔한 오해 5가지 · 자주 묻는 질문
오해
- "손절만 잘 걸면 안전장치는 따로 필요 없다."
- "안전장치는 많고 민감할수록 좋다."
- "멈추면 무조건 전량 청산이 제일 안전하다."
- "킬 스위치만 있으면 무슨 일이든 막는다."
- "안전장치가 있으면 손실을 막을 수 있다."
사실에 가까운 이해
- 손절은 포지션 하나용 — 계좌 차원 방어선은 별도로 필요하다.
- 너무 민감하면 정상 변동에도 꺼져 전략을 질식시킨다.
- 왜 멈췄는지에 따라 뒷처리가 달라야 한다(청산이 자해일 수도).
- 봇·서버가 죽으면 킬도 못 누른다 — 외부 감시자가 필요하다.
- 안전장치는 무손실이 아니라 '재앙 방지' 안전벨트일 뿐이다.
자동매매 봇은 뭔가 잘못되면 스스로 멈추나요?
자동으로 멈추는 능력은 봇에 저절로 들어 있는 기본 기능이 아니라 설계 단계에서 명시적으로 넣어야 하는 기능입니다. 아무 안전장치도 없는 봇은 시세 오류·버그·급변에도 정해진 규칙만 반복하려 들 수 있습니다. 그래서 좋은 봇은 사전 차단(트립와이어)·조건부 차단(서킷브레이커)·전면 정지(킬 스위치)를 함께 설계합니다. 맡길 때는 '어떤 조건에서 멈추는가'를 명세서에 반드시 적어야 하며, 어떤 안전장치도 손실을 없애는 마법이 아닙니다.
킬 스위치와 서킷브레이커, 손절은 어떻게 다른가요?
'멈추는 범위'가 다릅니다. 손절은 개별 포지션 하나를 정리하는 정상 매매 규칙, 서킷브레이커는 손실·이상이 누적되면 계좌·전략 전체의 신규 매매를 자동 차단하는 안전장치, 킬 스위치는 봇 활동 전체를 즉시 전면 중단하는 비상 스위치입니다. 손절은 '이 거래는 손절매', 서킷브레이커는 '오늘은 장사 접자', 킬 스위치는 '지금 당장 셔터 내려'에 해당합니다. 셋은 대체재가 아니라 층층이 쌓는 보완재입니다.
봇이 멈추면 갖고 있던 포지션은 어떻게 되나요?
미리 정해야 하는 핵심입니다. 세 방식이 있습니다 — 신규만 정지(보유 포지션·손절은 유지), 전량 청산(모두 정리해 현금화), 안전 모드(신규 막고 손절만 보수적으로 조임). 어느 것이 맞는지는 전략·시장과 '왜 멈췄는가'에 따라 다릅니다. 급변 상황에서 무조건 전량 청산은 오히려 최악의 가격에 파는 자해가 될 수 있으므로, '멈춤=청산'을 당연시하지 말고 상황별 뒷처리를 명세서에 구체적으로 정해야 합니다.
안전장치를 너무 많이, 너무 민감하게 걸면 안 좋은가요?
많을수록 좋은 게 아니라 적절한 민감도가 핵심입니다. 너무 민감하면 정상 변동에도 자꾸 멈춰 기회를 놓치고 사람이 매번 다시 켜야 합니다. 과거에 꼭 맞게 정지 조건을 깎으면 그 자체가 과최적화가 됩니다. 반대로 너무 둔하면 정작 위험할 때 못 멈춥니다. 임계값은 '자주 겪는 정상 변동은 통과, 드문 명백한 이상은 차단'하는 선에서 잡아야 하고, 이 선은 전략·시장·자본마다 다르며 검증 대상입니다.
봇 프로그램 자체가 꺼지면 킬 스위치도 소용없지 않나요?
맞습니다. 킬 스위치·서킷브레이커는 봇이 살아 있어야 작동합니다. 봇·서버가 죽으면 열린 포지션이 방치될 수 있습니다. 그래서 하트비트(봇이 살아 있다는 신호)와 봇과 분리된 외부 감시자를 함께 둡니다. 감시자가 봇의 생사·계좌를 밖에서 지켜보다 이상하면 알리거나 약속된 안전 조치를 취하게 하는 것입니다. 진짜 안전한 설계는 '봇 안의 정지장치'와 '봇 밖의 감시자'를 이중으로 두되, 어떤 이중화도 완벽하지 않으니 감당 가능한 규모로 운영하는 것입니다.
안전 정지장치가 있으면 손실을 막을 수 있나요?
아닙니다. 목적은 손실을 없애는 것이 아니라 통제 불능의 큰 사고로 번지는 것을 막는 것입니다. 정지가 잘 걸려도 그 지점까지의 손실은 이미 발생했고, 정지 자체가 최악의 타이밍에 걸리기도 합니다. 안전장치는 '이익 장치'가 아니라 '한 번의 재앙으로 계좌가 회복 불능이 되는 걸 줄이는 안전벨트'입니다. 어떤 안전 설계도 미래 수익이나 무손실을 보장하지 않으며, 과거에 잘 작동한 규칙이 미래에도 그러리란 보장은 없습니다. 이 글은 투자 자문·종목 추천이 아니라 안전 설계 방법론 교육이며, 실제 적용은 소액 검증과 전문가 검토가 필요합니다.
'멈추는 능력'까지 설계에 넣어 드립니다
좋은 자동매매는 잘 버는 봇이 아니라, 이상할 때 스스로 멈출 줄 아는 봇입니다. 어떤 매매를 자동화하고 싶은지 알려주시면, 위 '안전 사양 6줄'을 함께 정하고 서킷브레이커·킬 스위치·외부 감시자·정지 시나리오 검증까지 설계에 넣어 제안드립니다. 종목 추천이나 수익 보장이 아니라 '안전과 검증'입니다. 24시간 빠른 답변 가능합니다.
상담 문의하기 →