중복 매도 신호 차단 빨간 방패 아이콘 자동매매 안전장치 터미널
매도 주문 직후 일정 시간 동안 같은 종목의 추가 매도를 차단합니다

3월 20일 로그를 처음 봤을 때 이런 줄이 눈에 띄었다.

🛑 매도스킵(sell_cooldown): 445680 🛑 매도스킵(sell_cooldown): 445680 🛑 매도스킵(sell_cooldown): 445680 🛑 매도스킵(sell_cooldown): 445680 🛑 매도스킵(sell_cooldown): 445680 🛑 매도스킵(sell_cooldown): 445680

큐리옥스바이오시스템즈(445680)에 대한 매도 스킵이 수십 번 찍혔다. 매도 주문은 한 번만 나갔는데 그 다음에 계속 같은 종목 매도 신호가 들어오고, 시스템이 그걸 전부 막아낸 것이다.

만약 sell_cooldown이 없었다면? 같은 종목 매도 주문이 수십 번 나갔을 것이다. 이미 다 팔았는데 또 팔려고 하는 것이다. 공매도가 아닌 이상 잔고가 없으면 주문 자체가 거부되겠지만, 그 과정에서 API 오류, 잔고 꼬임 같은 부작용이 생길 수 있다.

🤔 왜 매도 신호가 여러 번 들어오는가

이게 처음엔 이해가 안 됐다. 매도 주문 하나 냈으면 끝 아닌가? 왜 같은 신호가 계속 들어오지?

이유는 시스템 구조에 있다. GENIE는 실시간 시세를 받을 때마다 포지션 상태를 체크한다. 트레일링 스탑 조건이 충족됐는지, 손절 기준을 넘었는지를 tick마다 확인하는 것이다.

매도 주문을 냈다고 해서 즉시 체결되는 게 아니다. 주문이 나간 후 체결 확인까지 시간이 걸린다. 그 사이에도 tick은 계속 들어오고, 조건 체크는 계속 돌아간다. 조건이 여전히 충족된 상태니까 매도 신호가 계속 발생하는 것이다.

트레이딩 파이프라인 중복 신호 차단 회로 차단기 빨간 블록 초록 체크마크 플랫 디자인
매도 주문 직후 cooldown 타이머가 시작되고, 타이머가 끝나기 전에 들어오는 같은 종목 신호는 전부 차단됩니다

⏱️ sell_cooldown 작동 방식

구조는 단순하다. 매도 주문이 나가는 순간 해당 종목에 cooldown 타이머를 건다. 타이머가 끝나기 전에 같은 종목 매도 신호가 들어오면 전부 스킵한다.

상황 cooldown 전 cooldown 후
매도 주문 발생 주문 실행 주문 실행 + 타이머 시작
타이머 중 같은 종목 신호 중복 주문 발생 ⚠️ 스킵 ✅
타이머 만료 후 신호 정상 처리
체결 확인 후 포지션 종료 포지션 종료 + cooldown 해제

※ GENIE V4.16 sell_cooldown 구조 기준

로그에서 큐리옥스바이오시스템즈 스킵이 수십 번 찍힌 것도 이 구조 덕분이다. 매도 주문 하나가 나가고, 체결까지 기다리는 동안 들어온 신호들이 전부 스킵된 것이다.

다만 3월 20일 큐리옥스 케이스는 특이했다. 장 시작 전 포지션 복구 직후 바로 트레일링 스탑 조건이 충족되면서 매도 주문이 나갔는데, 장이 아직 열리지 않은 상태라 체결이 안 됐다. 그러면서 cooldown은 계속 돌고, 스킵도 계속 찍혔다. 이건 장 시작 전 매도 처리 로직에 개선이 필요하다는 신호이기도 했다.

밤새 트레이딩 로그 디버깅 개발자 파란 모니터 화면 중복 매도 항목 빨간 강조
로그를 꼼꼼히 읽다 보면 예상치 못한 패턴이 보입니다 — 이게 시스템을 단단하게 만드는 과정입니다

❓ Q&A

Q. cooldown 시간을 너무 길게 잡으면 문제가 생기지 않나?

맞다. cooldown이 너무 길면 반대 상황이 생긴다. 매도 후 포지션이 종료됐는데 새로 같은 종목에 진입 신호가 와도 막혀버리는 것이다. 그래서 cooldown은 체결 확인 후 자동으로 해제되는 구조다. 시간 기반이 아니라 이벤트 기반으로 처리한다. 체결이 확인되면 바로 해제, 그래야 같은 종목을 다시 매수할 수 있는 기회를 놓치지 않는다.

✍️ 9편을 마치며

자동매매 시스템을 만들다 보면 예상치 못한 버그가 계속 나온다. 이번처럼 "같은 종목을 두 번 팔 뻔한" 상황도 실제로 돌려보기 전까지는 생각하지 못했다.

그래서 로그가 중요하다. 로그를 꼼꼼히 읽다 보면 숫자 뒤에 숨어있는 패턴이 보인다. sell_cooldown도 로그에서 스킵이 수십 번 찍히는 걸 보고 나서야 제대로 이해하고 다듬을 수 있었다.

다음 편에서는 지금까지의 개발 과정을 되돌아보고, 실계좌 전환 전 점검 체크리스트를 정리해볼 예정이다.

※ 본 글은 자동매매 시스템 개발 과정을 기록한 정보 제공 목적의 개발 일지입니다. 투자 권유나 수익 보장이 아니며, 모든 투자 판단과 책임은 본인에게 있습니다.