7월 21일 아침 9시 5분. 저는 증권사 계좌 화면을 열어 두고 앉아 있었거든요.
거기엔 제가 팔 수 없는 주식 여섯 종목이 75주 들어 있었습니다.
9시 10분에 같은 화면을 다시 열었습니다. 아무것도 없었습니다.

앞 글은 「0건」으로 끝났습니다
개발기 ④에서 이렇게 썼습니다.
“기록을 세어보니 매도 주문 26건 중 성공 0건.“
사는 주문은 멀쩡히 나가는데 파는 주문만 전부 거부되고 있었습니다. 그래서 더 못 알아챘습니다. 계좌엔 주식이 쌓이는데 나가는 문이 잠겨 있던 셈입니다.
그 글은 이렇게 닫았습니다. “없는 것보다 나쁜 건, 있다고 믿는 것.”
오늘은 그 뒤 이야기입니다. 닫아 둔 이야기에 결말이 붙었거든요.

표로 보기
| 항목 | 값 | 설명 |
|---|---|---|
| 시도한 매도 주문 | 26건 | 전부 거부 |
| 성공한 매도 | 0건 | 한 건도 없음 |
| 남아 버린 주식 | 6종목 | 75주 |
「유령 물량」이 뭐냐면
여기서 말이 하나 필요합니다. 제가 계속 유령 물량이라고 부르는 것이요.
쉽게 말하면 팔려고 주문을 냈는데 안 팔리고 계좌에 그대로 남은 주식입니다. 봇은 “팔았다”고 생각하고 다음 판단을 하는데, 계좌에는 아직 있는 거죠.
이게 왜 무서운지는 장바구니로 치면 이렇습니다. 계산대에서 물건을 뺐다고 생각했는데 실제로는 안 빠져 있고, 그 상태로 계속 장을 보는 겁니다. 총액이 처음부터 어긋나 있으니 그 뒤 계산이 전부 틀어지거든요.
봇에게는 더 심각합니다. 봇은 “지금 내가 얼마를 들고 있나”를 기준으로 다음에 얼마를 살지 정하는데, 그 기준이 틀려 있으면 모든 판단이 틀린 땅 위에 서 있는 셈입니다.

표로 보기
| 단계 | 내용 | 설명 |
|---|---|---|
| 1단계 | 매도 주문 실패 | 그런데 성공으로 기록 |
| 2단계 | 보유량이 어긋남 | 실제보다 적게 알고 있음 |
| 3단계 | 다음 매수 판단 | 어긋난 숫자를 기준으로 |
| 4단계 | 계좌는 계속 쌓임 | 아무도 모르는 채 |
나가는 문을 다시 달았습니다
원인을 손보는 데 시간이 걸렸습니다. 매도 명령이 증권사까지 가는 길이 온전하지 않았습니다.
그리고 7월 21일 아침, 남아 있던 여섯 종목을 정리하는 매도 주문을 냈습니다. 오래 막혀 있던 일이 5분 만에 끝났습니다.

표로 보기
| 시점 | 사건 | 설명 |
|---|---|---|
| 9시 5분 | 정리 매도 주문 | 여섯 종목 75주 |
| 주문 접수 | 증권사로 나감 | 처음으로 거부되지 않음 |
| 체결 | 여섯 건 전부 성공 | 기록에 남음 |
| 9시 10분 | 계좌 재조회 | 남은 유령 물량 0종목 |
주문 기록에 매도 성공 여섯 건이 찍혔습니다. 이 시스템 역사상 처음입니다.
그리고 9시 10분에 계좌를 다시 조회했습니다. 유령 물량 0종목. 전량 체결이었습니다.

표로 보기
| 매도 기능 | 고치기 전 | 고친 뒤 |
|---|---|---|
| 성공한 매도 주문 | 0건 | 6건 |
| 계좌에 남은 유령 물량 | 6종목 75주 | 0종목 |
| 봇이 아는 보유량 | 실제와 어긋남 | 실제와 일치 |
왜 이 여섯 건이 값어치가 있냐면
솔직히 여섯 건은 큰 숫자가 아닙니다. 금액도 크지 않았고요.
그런데 이 시리즈에서 처음으로 한 바퀴가 완결됐거든요.

표로 보기
| 단계 | 내용 | 설명 |
|---|---|---|
| 1단계 | 발견 | 매도 26건 중 0건 |
| 2단계 | 수리 | 나가는 길을 다시 깔았다 |
| 3단계 | 실증 | 여섯 건 성공·유령 0종목 |
지금까지 이 시리즈에 쓴 글을 다시 보면 대부분 첫 칸과 두 번째 칸에서 끝났습니다. “여기가 고장이었다”, “그래서 이렇게 고쳤다”까지요.
세 번째 칸이 비어 있었습니다. 고쳤다고 말은 했는데, 고쳐졌다는 증거를 계좌에서 꺼내 보인 적이 없었거든요.
이번엔 그 증거가 있습니다. 9시 5분과 9시 10분, 두 장의 화면이요.

그래서 배운 것
바꿔 말하면 이렇습니다. 고쳤다는 말은 고쳐졌다는 증거가 아니거든요.
저는 그동안 코드를 수정하고 “됐다”고 적었습니다. 그런데 그건 제가 짠 쪽에서 본 이야기일 뿐입니다. 증권사 계좌라는 바깥에서 본 숫자가 바뀌기 전까지는, 고쳤다는 것도 제 주장이었어요.
이 시리즈가 실패 이야기로 자주 흐르는 이유도 여기 있었던 것 같습니다. 고친 뒤에 확인하는 칸을 자꾸 비워 뒀거든요. 그래서 다음 고장을 만나면 또 처음부터 의심하게 됐습니다.
이번엔 세 번째 칸을 채워 놓고 갑니다. 다음에 매도가 이상해지면 비교할 정상 기록이 하나 생긴 셈입니다.
여러분도 뭔가를 고쳤을 때, 고쳐졌다는 걸 바깥에서 확인해 보신 적 있으신가요? 저는 이번에 그 화면 두 장이 코드 수정보다 값어치가 컸습니다.
다음 글 예고 — 만들어 놓고 한 번도 채점하지 않은 장치들
이번에 세 번째 칸을 채워 보니, 정작 채워진 적 없는 칸이 스물다섯 개 넘게 있다는 걸 알게 됐습니다. 관찰 장치를 잔뜩 만들어 두고 한 번도 전부 모아서 채점해 본 적이 없었거든요.
다음 편을 준비하고 있습니다 ✍️
이 글은 특정 종목의 매수·매도를 권유하는 글이 아니라, 개인이 만든 시스템의 개발 과정을 공유하는 정보·교육·참고용 글입니다. 본문의 기록은 실제 돈이 오가지 않는 모의계좌에서 일어난 일이며, 미래 성과를 보장하지 않습니다. 투자 판단과 책임은 본인에게 있습니다.
근거: StockBot_개발_개요 · 개발기 소재 — cl1 브리지 전달분 2026-07-26 — 본 글은 개발 과정의 경험 공유이며 투자 자문이 아닙니다.
아직 댓글이 없습니다. 이 글을 읽고 떠오른 생각을 남겨 주세요.