NOONOO TRADING봇에서 시작하기

봇 킬 스위치 — 이상하게 돌 때 확실하게 멈추는 장치

자동매매를 하다 보면 지금 당장 멈춰야 하는 순간이 옵니다. 시세가 이상하게 보이거나, 봇이 같은 주문을 반복하거나, 손실이 예상보다 빠르게 커질 때입니다. 그런데 무엇을 누를지 미리 정해 두지 않으면 가장 나쁜 방식으로 멈추게 됩니다.

멈춘다는 말에는 세 가지가 있다

"봇을 멈춘다"는 한 가지 지시처럼 들리지만 실제로는 세 가지 행동으로 갈립니다. 무엇을 뜻하는지 모호한 정지 버튼은 급할 때 사고를 만듭니다.

정지 3종

1. 신규 차단 · 가장 흔한 방식
· 새 진입 없음
· 물타기·증액 없음
· 보유분 손절·익절은 계속

2. 관리만 유지
· 1번에 더해 신호 계산도 정지
· 손절 주문만 지켜본다

3. 전량 청산
· 보유 포지션을 시장가로 정리
· 되돌릴 수 없다

─────────────
기본값 권장
1번. 노출을 늘리지 않으면서 보유분 보호는 남긴다.

3번이 기본값이면 일시적인 조회 실패 한 번에 멀쩡한 포지션이 청산돼 손실이 확정됩니다. 반대로 3번이 필요한 상황에 1번밖에 없으면 포지션을 손으로 정리해야 합니다. 그래서 버튼을 둘로 나누는 편이 낫습니다. 평소에 쓰는 신규 차단 하나, 확인을 한 번 더 받는 전량 청산 하나입니다.

창을 닫아 끄는 것은 나쁜 정지다

급하면 대개 창을 닫거나 작업 관리자에서 프로그램을 종료합니다. 그런데 그 행동은 시장 노출을 멈추는 것이 아니라 감시를 없애는 것일 수 있습니다.

강제 종료 뒤에 남는 것 (가정)

보유 포지션 · BTC 롱 · 20배 · 증거금 $40
노셔널 = 40 × 20 = $800
계획한 손절 −3% = −$24

손절이 봇 안에만 있었다면
봇 정지 → 손절 보호도 사라짐
가격 −8% → 손실 −$64
이 예시에서 증거금 $40의 1.6배

─────────────
차이 −24 → −64 = 2.7배
봇은 멈췄고 시장은 안 멈췄다

봇이 멈춰도 포지션은 그대로 열려 있습니다. 거래소에 실제 손절 주문을 걸어 두지 않고 봇이 가격을 보다가 청산하는 구조라면, 봇을 끄는 순간 그 포지션은 보호막이 없어집니다. 강제 종료를 선택지로 둘 생각이면 손절은 거래소 쪽에 올려 두어야 합니다.

다시 켤 때 또 다른 문제가 생깁니다. 보유분을 기억하지 못한 채 시작한 봇은 첫 사이클에 또 진입해 수량을 두 배로 만들 수 있습니다. 봇 재시작과 상태 복원 쪽에 정리돼 있습니다. 강제 종료는 정지 사고와 재시작 사고를 한꺼번에 만들 수 있습니다.

정지 신호는 즉시 닿지 않는다

킬 스위치는 대개 표시로 구현합니다. 파일을 하나 만들어 두거나 설정값을 끄는 식입니다. 봇은 매 사이클 그 표시를 읽고, 있으면 주문을 내지 않습니다. 문제는 그 사이클이 얼마나 걸리느냐입니다.

확인 주기 = 최대 지연

3초 루프에서 정지 표시
→ 최대 3초 안에 적용

30초 루프에서 정지 표시
30초 동안 주문이 나갈 수 있음
→ 그 사이 진입 1건과 물타기 1건이 더 나갈 수도

표시를 기동할 때만 읽는 봇
→ 정지가 영영 적용 안 될 수도

─────────────
규칙
· 주문 직전에 표시를 한 번 더 읽는다
· 표시를 못 읽었으면 = 정지로 간주

마지막 규칙이 중요합니다. 파일을 못 읽은 것을 "표시가 없다 = 계속해도 된다"로 처리하면, 디스크 문제 하나가 스위치를 무력화합니다. 상태를 모르면 멈춘다가 안전한 기본값입니다. 이것은 웹소켓 끊김과 같은 원칙입니다. 조용한 것을 정상으로 읽으면 안 됩니다.

어떤 조건에서 자동으로 멈춰야 하나

손으로 누르는 스위치만으로는 부족합니다. 자거나 자리를 비운 사이에도 멈춰야 하므로 숫자로 조건을 정해 둡니다.

자동 정지 조건 예시 (가정)

자본 $2,000

1. 하루 손실 −3% = −$60
건당 −$24면 3연패에 −$72라 그 전에 한도에 닿는다

2. 연패 4회

3. 주문 실패율
최근 20건 중 5건 실패 = 25%

4. 시세 신선도
마지막 시세가 8초 넘게 갱신 안 됨

5. 봇 수량 ≠ 거래소 수량
→ 2회 연속 불일치

─────────────
1·2번 = 전략이 지금 장에 안 맞는다
3·4·5번 = 봇이 고장 났다
다른 스위치로 나눈다

앞의 두 개는 시장이 예상과 다르게 움직이는 상황이고, 뒤의 세 개는 봇 자체가 잘못 동작하는 상황입니다. 뒤쪽은 즉시 멈춰야 하고, 앞쪽은 그날 하루를 쉬는 정도면 됩니다. 데일리 손실 한도가 사람의 규율 쪽 이야기라면, 여기서는 그 한도를 코드가 강제합니다.

수량 불일치는 특히 놓치기 쉽습니다. 봇이 아는 수량과 계좌의 실제 수량이 다르면 그다음 주문부터 크기가 틀립니다. 판단의 근거가 이미 깨진 상태라 계속 도는 것이 해롭습니다. 대조 방법은 포지션 대사 쪽에 있습니다.

반쪽 정지 — 한쪽만 멈춘다

봇이 하나면 스위치도 하나면 됩니다. 그런데 실제로는 계정이 둘이거나, 실수로 같은 봇이 두 번 떠 있거나, 코인마다 프로그램이 따로인 경우가 있습니다.

정지가 전부를 못 덮는 자리

· 스위치가 계정별인데 하나만 눌렀다
· 같은 봇이 두 개 떠 있는데 하나만 종료했다
· 코인별 봇 10개 중 2개만 멈췄다
· 정지 파일을 다른 폴더에 만들어 봇이 못 본다

─────────────
확인 방법
정지 뒤 주문 기록에 신규 주문 0건인지 본다
버튼을 눌렀다는 것이 멈췄다는 증거는 아니다

정지를 누른 것과 실제로 멈춘 것은 다릅니다. 누른 뒤 몇 분 동안 새 주문이 안 생기는지 확인해야 합니다. 프로세스가 둘이면 서로 독립적으로 주문을 내므로, 하나만 멈춰도 매매는 계속됩니다. 그때 생기는 피해는 중복 주문과 비슷한 모양입니다.

해제를 잊는 것도 사고다

킬 스위치는 안 멈춰서 실패하기도 하지만, 멈춘 채로 잊혀서 실패하기도 합니다. 뒤쪽은 손실이 안 나기 때문에 티가 잘 안 납니다. 그래도 비용은 생깁니다.

해제를 잊었을 때의 비용

점검하려고 정지 → 해제를 잊음

그동안
· 진입 기회를 전부 건너뜀
· 손실 0, 수익도 0
· 거래 기록에는 아무 흔적도 안 남음

─────────────
필요한 것
· 정지한 시각을 기록한다
· 일정 시간마다 알린다 "아직 멈춰 있음"
· 해제 뒤 정상 동작을 확인한다

멈춘 봇은 조용하기 때문에 며칠이 그냥 지나가기도 합니다. 정지 상태를 주기적으로 알리게 해 두면 잊는 일이 줄어듭니다. 해제할 때도 스위치만 올리고 끝내지 말고, 한 사이클을 지켜보며 주문이 정상적으로 다시 나가는지 봅니다.

킬 스위치를 시험하는 법

킬 스위치는 가장 급한 순간까지 한 번도 안 쓰일 수 있습니다. 급하지 않을 때 미리 시험해 둡니다.

시험 순서

1. 모의 모드최소 수량으로 진입
2. 정지 스위치를 켠다
3. 확인한다
· 몇 초 걸렸나?
· 신규 진입이 0건인가?
· 보유분 보호는 살아 있나?
4. 스위치를 끈다
5. 주문이 정상적으로 재개되나?

─────────────
추가 시험
· 표시 파일을 못 읽게 만들어 본다
→ 멈춰야 정상, 계속 돌면 버그
· 봇을 두 개 띄우고 한 번만 정지
→ 둘 다 멈추나?

세 번째 확인을 자주 빠뜨립니다. 어떤 구현은 신규 진입과 함께 손절 처리까지 멈춰 버려서, 위험을 줄이는 대신 늘립니다. 주문 처리 전반은 거래소 API 연동 가이드 쪽을 같이 보면 좋습니다.

정리

정지는 신규 차단·관리만 유지·전량 청산으로 갈린다
기본값은 신규 차단이 안전하다
전량 청산에는 확인 한 번을 더 건다
창을 닫는 것은 위험을 멈추는 게 아니라 감시를 끄는 것이다
봇 안에만 있는 손절은 봇이 꺼지면 같이 사라진다
정지 적용은 루프 한 주기만큼 늦을 수 있다
표시를 못 읽으면 멈추는 쪽이 맞다
전략 손실 조건과 고장·정지·수량 불일치 조건을 나눈다
봇이 여러 개면 반쪽 정지를 의심한다
눌렀다와 멈췄다는 다르다
해제를 잊는 것에도 비용이 있다
스위치는 급하기 전에 시험해서 확인한다

멈추는 장치는 사고가 난 뒤에 급조하는 것이 아니라 봇과 함께 만들어 두는 것입니다. 준비된 스위치가 있으면 이상한 움직임이 보일 때 무엇을 할지가 분명해집니다.

주의

본문의 자본·증거금·배율·손익·시간 수치는 가정 예시이며 특정 거래소의 실제 측정값이 아닙니다. 주문 취소 동작, 종료 후 조건부 주문이 남는지 여부, 요청 한도, 계정별 설정은 거래소마다 다릅니다. 쓰는 거래소의 문서를 확인하고 소액으로 먼저 시험하십시오. 레버리지 거래는 원금 전액을 잃을 수 있으며 판단과 결과는 본인 책임입니다.

NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.

봇에서 시작하기

📈 OKX 신규 가입 시 거래 수수료 할인

OKX 수수료 할인 가입 →