
문제 제기: 아무 일도 일어나지 않는다

자동화를 돌렸는데 결과가 나오지 않을 때가 있다. 매매 봇이 하루 종일 아무것도 사지 않거나, 알림이 오지 않거나, 조건 필터를 통과하는 후보가 하나도 없다. 이때 가장 흔한 반응은 "조건이 너무 빡빡한가 보다"라며 기준을 낮추는 것이다.
그런데 조건을 완화하기 전에 던져야 할 질문이 있다. 정말 조건이 문제인가, 아니면 다른 단계에서 후보가 사라지고 있는가? 원인을 모른 채 기준부터 낮추면, 겨우 만들어 둔 안전장치를 스스로 허무는 결과가 된다.
왜 위험한가: 완화는 안전 여유를 갉아먹는다

실제 운영 기록에서 얻은 원칙이 있다. 국내·해외 자동매매를 함께 관찰하던 중 양쪽 모두 매수가 발생하지 않는 무매수 현상이 나타났다. 이때 매수 기준을 낮추지 않고, 탈락 사유와 기회비용을 관찰하는 방식으로 전환했다.
이유는 명확하다. "거래가 없다"는 사실은 결과일 뿐, 원인이 아니다. 원인을 모른 채 조건부터 낮추면 다음 두 가지가 동시에 벌어질 수 있다.
- 진짜 병목(신호 만료, 알림 억제, shadow 미진입 사유 등)은 그대로 남는다.
- 전략의 안전 여유를 구성하던 필터가 느슨해져 위험만 커진다.
즉 문제는 안 풀리고 안전장치만 훼손될 수 있다. 이 두 가지가 겹치는 것이 가장 나쁜 시나리오다.
확인 절차: 어디서 후보가 사라졌는지 먼저 본다

완화 대신 해야 할 일은 관측이다. 실제 개선 작업에서는 무매수 원인을 찾기 위해 세 가지 진단을 강화했다.
- 신호 수명 확인: 오래된 신호가 아직도 주문 후보로 남아 있지는 않은지. 만료 규칙을 적용해 낡은 신호를 걸러냈다.
- 알림 억제 확인: 반복을 막느라 억제된 알림 때문에 놓치는 상황은 없는지. 손실이 더 확대되면 억제 중인 알림을 다시 보내도록 했다.
- 가상 진입(shadow) 탈락 사유 기록: 실제 주문 없이 조건만 통과했다고 가정하는 관찰용 경로가 왜 진입하지 못했는지를 단계별로 기록했다.
이렇게 하면 "어느 필터 단계에서 후보가 사라졌는가"와 "만약 통과했다면 어떤 가상 성과가 나왔을까(기회비용)"를 데이터로 볼 수 있다. 완화 여부는 그 데이터를 보고 나서 판단할 문제다.
체크리스트: 완화 버튼을 누르기 전에

- 시스템이 "아무것도 안 한다"는 것이 결과인지, 실제로 조건 때문인지 구분했는가?
- 어느 단계(신호 생성 → 필터 → 주문)에서 후보가 사라지는지 단계별로 로그를 남겼는가?
- 신호가 너무 오래돼 만료되었거나, 알림이 억제되어 안 보이는 것은 아닌지 확인했는가?
- 실제 주문 없이 조건 통과를 시뮬레이션하는 관찰 경로(shadow)를 운영하고 있는가?
- 조건을 완화했을 때 잃게 되는 안전 여유가 무엇인지 명시했는가?
- 완화가 아닌 다른 원인(설정 오류 등)일 가능성을 배제했는가?
적용 예시: 매매가 아닌 일반 자동화에도 통한다

이 원칙은 자동매매에만 해당하지 않는다. 조건을 만족해야 동작하는 모든 자동화에 적용할 수 있다.
- 알림/모니터링: 경보가 안 울린다고 임계치부터 낮추지 말고, 이벤트가 감지 단계에서 걸러졌는지 로그를 본다.
- 배치 처리: 처리 건수가 0이면 조건을 넓히기 전에 입력 데이터가 실제로 들어왔는지, 어느 필터에서 빠졌는지 확인한다.
- 승인 워크플로: 자동 승인이 안 되면 기준을 완화하기 전에 어떤 규칙에서 반려됐는지 사유를 수집한다.
공통 원리는 하나다. 먼저 관측하고, 병목을 특정한 뒤에 조건을 손댄다. 조건 완화는 마지막 카드다.
한계와 주의사항

여기서 소개한 진단 방식은 무매수·무동작의 원인을 찾기 위한 관찰 절차이며, 특정 수익이나 성과를 보장하지 않는다. 관측 결과 실제로 조건이 지나치게 엄격했다면 완화가 옳은 선택일 수도 있다. 핵심은 완화 자체를 금지하는 것이 아니라, 데이터 없이 감으로 완화하지 않는 것이다.
또한 진단 기능을 추가하면 로그와 관찰 기간이 필요하다. shadow 관찰은 실제 주문이 아니므로 시장 충격이나 체결 지연 같은 요소는 반영되지 않을 수 있다. 가상 성과와 실제 성과 사이의 차이를 항상 염두에 두어야 하며, 이 판단은 각자의 환경과 리스크 허용도에 맞춰 검증해야 한다.
'실전 원칙' 카테고리의 다른 글
| AI 자동화에 사람 검수 단계를 반드시 넣어야 하는 이유 (0) | 2026.08.04 |
|---|---|
| 여러 시스템을 다듬다 공통 매니저를 만든 이유 (0) | 2026.07.28 |
| 계좌에 돈이 있어도 주문이 안 되는 원인 체크리스트 (0) | 2026.07.28 |
| 다른 시장으로 자동화를 옮길 때 먼저 점검해야 할 것들 (0) | 2026.07.28 |
| 자동화 시스템을 만들기 전 API 가능 여부부터 확인하는 법 (0) | 2026.07.28 |