본문 바로가기

EP 빌드로그

EP.06 계좌에 돈은 있는데 안 사지던 이유

들어가며: 돈은 있는데 왜 안 사질까

프로그램을 미국 주식으로 확장하면서 예상치 못한 문제를 만났습니다. 계좌에는 분명히 돈이 남아 있고, 매수 조건도 맞아떨어지는데, 특정 종목은 도무지 사지지 않았습니다.
이번 글에서는 그 원인이 무엇이었는지, 왜 한국 주식에서는 문제가 없었는지를 기록으로 정리합니다.


한국 주식에는 없던 문제

프로그램을 처음 만든 기준은 한국 주식이었습니다. 그때는 아무 문제가 없었습니다. 그런데 같은 프로그램을 미국 주식에 붙이자 한국 주식 때는 없던 문제가 드러났습니다.
핵심 차이는 '주문 단위'였습니다.

  • 한국 주식: 보통 1주 단위(정수)로 매매
  • 미국 주식: 소수점 단위로도 매수가 가능

미국은 한 종목을 1주 단위가 아니라 소수점 단위로도 살 수 있습니다. 그런데 제 프로그램은 한국 주식에 맞춰 만들어져 있어서 무조건 정수 단위로만 매수하게 돼 있었습니다.


안 사지던 진짜 이유

문제 상황을 정리하면 이렇습니다.

  1. 매수해야 할 조건에는 맞아떨어졌다.
  2. 계좌에는 돈이 남아 있었다.
  3. 그런데 그 돈이 그 종목 '한 주 값'보다는 적었다.

프로그램은 정수 단위로만 살 수 있게 돼 있었기 때문에, 한 주를 통째로 살 돈이 없으면 아예 매수를 하지 못했습니다. 계좌에 있는 돈으로 소수점 단위로는 살 수 있어도, 프로그램은 그 선택지를 몰랐던 겁니다.
즉, 계좌에 있는 돈보다 한 주 값이 비싼 주식은 조건이 맞아도 사지지 않았습니다.


원인은 전제였다

버그의 근본 원인은 '한국 주식 시스템을 기준으로만 생각한 것'이었습니다.
한국 주식만을 기준으로 생각했던 전제가 미국 주식으로 넘어오면서 그대로 문제가 됐습니다.

반응형