본문 바로가기
운용기록 [LOG]

자동매매 장부와 잔고 대조, 매일 맞춰 보는 이유

by WealthGRID 2026. 10. 8.

자동매매는 무엇을 샀고 얼마를 가지고 있는지를 스스로 장부에 적어 두고, 그 장부를 기준으로 다음 판단을 내립니다. 그런데 이 장부와 증권사·거래소의 실제 잔고는 생각보다 자주 어긋나고, 어긋난 장부로 내린 판단은 조용히 사고로 이어집니다. 실계좌로 운용 중인 여섯 개의 시스템이 모두 장부와 실제 잔고를 매일 대조하는 이유와, 그렇게 하게 된 실제 사고를 정리했습니다.

장부와 잔고는 왜 어긋나는가

자동매매가 주문을 넣으면, 시스템은 "이만큼 샀다"고 장부에 적습니다. 문제는 실제 체결이 장부에 적은 것과 똑같이 끝나지 않는 경우가 많다는 점입니다. 운용하면서 실제로 만난 이유만 추려도 다섯 가지입니다.

  • 부분 체결: 주문한 수량 중 일부만 체결되고 나머지는 남아 있는 경우
  • 수수료: 코인을 살 때 수수료가 코인 수량에서 빠져서, 지갑의 실제 수량이 장부보다 아주 조금 적어지는 경우
  • 자투리 잔고: 팔고 나서 거래소 최소 주문 단위보다 작은 양이 남아, 팔 수도 없고 장부에서 지우기도 애매한 경우
  • 결제 시점: 주식은 체결과 결제 날짜가 달라서, 증권사 앱 화면의 숫자와 시스템이 조회한 숫자가 하루 이틀 다르게 보이는 경우
  • 사람의 개입: 입금, 출금, 수동 매매처럼 시스템이 모르는 사이에 계좌가 바뀐 경우

하나하나는 작은 차이입니다. 하지만 장부를 믿고 움직이는 시스템에게는 작지 않습니다. 장부에는 있는데 실제로는 없는 코인을 팔려고 하면 주문이 거절되고, 실제로는 있는데 장부에는 없는 주식은 아무도 관리하지 않는 상태로 남습니다.

장부와 실제 잔고가 어긋나는 다섯 가지 이유

실제로 있었던 일: 모의 계좌와 실계좌가 장부를 같이 쓰고 있었다

가장 큰 사고는 주식 단타 시스템을 처음 실계좌로 돌린 날 나왔습니다. 이 시스템은 실계좌로 넘어가기 전까지 모의 계좌로 운용됐고, 실계좌 전환 뒤에도 모의 운용을 함께 돌리고 있었습니다. 그런데 두 운용이 같은 장부 파일 하나를 함께 쓰고 있었습니다.

결과는 두 가지로 나타났습니다. 하나는 안전장치의 오작동입니다. 하루 손실을 계산하는 기준이 두 계좌의 기록이 섞인 장부였기 때문에, 실제로는 손실이 크지 않았는데도 하루 손실 한도를 넘었다고 판단해 거래를 멈췄습니다. 다른 하나는 정산이 섞인 것입니다. 한쪽 계좌의 매매 결과가 다른 쪽 장부에 반영되면서, 실제 계좌에는 없는 보유 종목이 장부에 남았습니다.

원인을 확인한 그날 바로 모의 운용과 실계좌 운용의 장부를 완전히 나눴습니다. 장부, 거래 일지, 주문 잠금 파일까지 계좌마다 따로 두고, 이전에 함께 쓰던 파일은 지우지 않고 보관했습니다. (근거: 단타 시스템 운영 이력의 첫 실전일 기록)

이 일 이후로 원칙이 하나 더 생겼습니다. 장부와 실제 잔고가 다르면 시스템은 보고만 하고, 고치는 것은 사람이 합니다. 수량이 어긋났을 때 시스템이 알아서 장부를 맞추면, 무엇이 왜 어긋났는지 아무도 모르게 되기 때문입니다. 실제로 그 전까지는 "증권사에 없는 보유 종목을 장부에서 자동으로 지우는" 처리가 기록 파일에만 남아 있었는데, 지금은 문제가 없었던 경우까지 예외 없이 휴대폰 알림으로 드러나게 바꿨습니다.

매일 대조는 이렇게 합니다

대조는 매일 보내는 운용 보고서에 묶여 있습니다. 보고서를 보내기 직전에 시스템이 거래소나 증권사의 실제 잔고를 조회해 장부와 한 줄씩 비교하고, 결과를 보고서 맨 위 신호등에 반영합니다.

  • 일치하면 보고서에 "장부와 잔고 일치"가 찍히고 신호등은 초록색입니다.
  • 어긋나면 어떤 종목이 얼마나 다른지가 찍히고, 신호등은 초록에서 노란색으로 바뀝니다. 이미 빨간색이면 빨간색을 유지하고 사유만 추가합니다.
  • 대조 자체가 실패하면 그 사실도 따로 표시합니다. "확인하지 못함"을 "일치"로 오해하지 않게 하기 위해서입니다.

몇 가지 차이는 미리 규칙으로 처리합니다. 수수료 때문에 줄어든 수량은 팔기 직전에 실제 잔고를 다시 조회해 주문 수량을 맞춥니다. 최소 주문 단위보다 작은 자투리는 거래소에 주문을 보내지 않고 장부에서 정리합니다. 이 규칙이 생기기 전에는 팔고 남은 자투리가 장부에 "보유 중"으로 남아, 실제로는 거의 없는 코인을 시스템이 계속 가지고 있다고 여기거나 팔 수 없는 양을 팔려다 막히는 일이 있었습니다. 보고서에 보유 종목으로 잘못 찍히는 것도 같은 원인이었습니다. 결제 시점 때문에 생기는 숫자 차이는 증권사 앱 화면과 같은 기준으로 계산하도록 맞췄습니다. 이렇게 이유가 분명한 차이를 먼저 걸러 두어야, 남은 불일치가 진짜 확인해야 할 문제가 됩니다.

사람이 계좌를 건드리는 경우도 따로 다룹니다. 입금이나 출금을 하면 장부의 원금과 실제 잔고가 그 금액만큼 달라지는데, 이것을 그대로 두면 시스템은 입금을 수익으로, 출금을 손실로 착각합니다. 출금 직후 하루 손실 한도를 넘었다고 판단해 스스로 멈출 수도 있습니다. 그래서 입출금이 있을 때는 원금 기준과 안전장치가 비교하는 전일 자산을 함께 고치고, 고친 뒤 대조 결과가 일치하는 것을 확인하고 나서 시스템을 다시 켭니다.

정리: 장부 대조 점검 질문

  • 모의 운용과 실계좌 운용이 장부, 일지, 상태 파일을 따로 쓰고 있는가
  • 장부와 실제 잔고를 매일 비교하고, 그 결과가 사람이 보는 곳에 표시되는가
  • 어긋났을 때 시스템이 스스로 고치는가, 아니면 보고하고 사람이 판단하는가
  • 수수료, 자투리, 결제 시점처럼 이유가 분명한 차이를 미리 규칙으로 걸러내는가
  • "대조 실패"와 "일치"를 구분해서 보여주는가

다음 글에서는 실제로 만들었다가 버린 전략들에서 배운 것을 정리합니다. 같은 기록을 카드로 정리한 요약은 인스타그램 @wealthgrid.lab 에 올립니다.

※ 특정 종목·수익을 권유하지 않는 개인 시스템 개발 기록입니다. 투자 판단과 책임은 본인에게 있습니다.