본문 바로가기
4060 세대를 위한 실용적인 경제와 금융 이야기
경제 금융 포털사이트 경제 금융 포털사이트

자동매매 슬리피지란? 주문 가격과 체결 가격이 다른 이유

금알남 조회 3

슬리피지(Slippage)는 주문할 때 예상했던 가격과 실제 체결된 가격 사이에 발생하는 차이를 말합니다. 주식이나 ETF 자동매매에서 슬리피지가 반복되면 백테스트에서는 수익이 났던 전략도 실전에서는 수익이 줄거나 손실로 바뀔 수 있습니다. 따라서 자동매매의 성과를 평가할 때는 매매 신호의 정확도뿐 아니라 실제 체결가격과 거래비용을 함께 계산해야 합니다.

자동매매 프로그램에서 10000원에 매수하도록 설정했는데 실제 체결가격은 10030원으로 나오는 경우가 있습니다.

30원 차이라면 별것 아니라고 생각할 수 있지만 같은 일이 반복되면 이야기가 달라집니다. 특히 매매 횟수가 많은 단기매매에서는 작은 가격 차이가 누적되면서 예상 수익률과 실제 계좌 수익률을 크게 벌려놓을 수 있습니다.

왜 이런 차이가 발생할까요? 그리고 시장가 주문을 지정가 주문으로 바꾸면 해결할 수 있을까요?

주문한 가격과 실제 체결가격이 다른 이유

주식시장에서는 주문 버튼을 누르는 순간의 가격과 실제 거래가 이루어지는 시점의 가격이 다를 수 있습니다.

자동매매 프로그램도 마찬가지입니다. 매수 조건이 충족되면 프로그램이 주문을 전송하지만, 거래소에서 체결되는 시점에는 호가나 거래 가능한 수량이 이미 달라졌을 수 있습니다.

이때 예상가격과 실제 체결가격 사이의 차이를 슬리피지라고 합니다.

슬리피지가 발생하는 주요 원인

원인발생하는 상황투자자에게 미치는 영향
빠른 가격 변동주문 전송 중 주가가 움직임예상과 다른 가격에 체결
유동성 부족원하는 가격에 거래할 수 있는 수량이 적음여러 가격에 나눠 체결
호가 스프레드매수·매도 호가 사이에 차이 발생거래 시작부터 비용 부담
주문 처리 지연주문 전송과 체결 사이에 시간 소요가격 변동에 노출
대량 주문주문 규모가 호가 물량보다 큼불리한 가격까지 체결될 수 있음

여기서 반드시 구분해야 할 것이 있습니다.

슬리피지와 호가 스프레드는 서로 다른 개념입니다.

호가 스프레드는 매수하려는 사람이 제시한 최고가격과 매도하려는 사람이 제시한 최저가격의 차이입니다.

예를 들어 가장 높은 매수호가가 9990원이고 가장 낮은 매도호가가 10000원이라면 스프레드는 10원입니다.

이때 시장가로 10000원에 매수했다면 마지막 거래가격과 차이가 있더라도 반드시 슬리피지가 발생했다고 볼 수는 없습니다.

주문 시점의 최우선 매도호가가 10000원이었고 실제로 10030원에 매수됐다면, 같은 조건의 기준가격과 비교해 30원의 불리한 체결 차이가 발생한 것입니다.

따라서 실제 슬리피지를 정확하게 측정하려면 단순히 차트에 표시된 종가와 체결가격을 비교해서는 안 됩니다.

주문 당시의 매수·매도 호가와 실제 체결가격을 함께 살펴봐야 합니다.

슬리피지 0.3%가 수익에 미치는 영향

슬리피지는 한 번의 거래보다 반복되는 거래에서 더 큰 문제가 됩니다.

100만원을 투자하는 자동매매 전략이 있다고 하겠습니다.

다음은 실제 투자 성과가 아닌 계산 예시이며, 매수와 매도 과정에서 모두 불리한 체결이 발생한 경우입니다.

매수할 때 30원, 매도할 때 30원 차이가 발생한다면?

구분예상 거래실제 체결
매수 가격10000원10030원
매수 수량100주100주
매수 금액100만원100만3000원
매도 가격10200원10170원
매도 금액102만원101만7000원
매매 차익20000원14000원

예상했던 매매 차익은 20000원이지만 실제로는 14000원에 그쳤습니다.

매수와 매도에서 각각 30원의 불리한 가격 차이가 발생하면서 예상 수익의 30%인 6000원이 줄어든 것입니다.

이 계산에는 증권사 수수료와 세금 등 다른 거래비용은 포함하지 않았습니다.

실제 매매에서는 거래비용까지 반영해야 최종 수익을 확인할 수 있습니다.

매매 횟수가 많아지면 어떻게 될까?

한 번의 매매에서 6000원의 추가 비용이 발생했다면 같은 수준의 거래가 반복될 때 누적 비용도 커집니다.

왕복 매매 횟수회당 추가 비용누적 비용
1회6000원6000원
10회6000원60000원
30회6000원180000원
50회6000원300000원
100회6000원600000원

모든 거래에서 동일한 슬리피지가 발생한다고 놓은 단순 계산입니다. 실제로는 유리한 방향으로 체결되는 경우도 있고, 거래마다 주문 수량과 시장 상황이 달라집니다.

그럼에도 이 계산에서 확인할 수 있는 중요한 사실이 있습니다.

자동매매는 매매 횟수가 많아질수록 주문 실행 과정에서 발생하는 비용이 전략의 성과에 더 큰 영향을 줄 수 있다는 점입니다.

특히 한 번의 매매에서 0.5% 정도의 수익을 목표로 하는 단기 전략이라면 매수와 매도에서 합산 0.4%의 불리한 체결이 발생할 경우 다른 비용을 제외해도 기대했던 수익의 상당 부분이 사라질 수 있습니다.

백테스트 수익률이 높더라도 슬리피지를 반영하지 않았다면 실제 수익률을 과대평가했을 가능성이 있습니다.

시장가와 지정가, 어느 쪽이 유리할까?

슬리피지를 줄이려면 시장가 주문과 지정가 주문의 차이를 이해할 필요가 있습니다.

시장가 주문은 가격보다 거래 실행을 우선하는 방식이고, 지정가 주문은 원하는 가격이나 그보다 유리한 가격에서만 거래하도록 제한하는 방식입니다.

구분시장가 주문지정가 주문
주문 목적빠른 거래 실행체결가격 관리
가격 보장없음지정가격 또는 더 유리한 가격
체결 가능성상대적으로 높음시장 상황에 따라 미체결 가능
슬리피지 위험불리한 체결 가능가격 제한으로 불리한 체결 방지
주의점급변 시 예상보다 나쁜 가격거래 자체가 이루어지지 않을 수 있음

미국 증권거래위원회(SEC)도 시장가 주문은 실행가격이 보장되지 않으며, 지정가 주문은 가격을 통제할 수 있지만 체결되지 않을 수 있다고 설명합니다.

그렇다면 자동매매에서는 무조건 지정가 주문을 사용하는 것이 좋을까요?

반드시 그렇지는 않습니다.

예를 들어 주가가 빠르게 상승할 때 10000원에 지정가 매수 주문을 넣었는데 이미 시장가격이 10100원으로 올라갔다면 주문이 체결되지 않을 수 있습니다.

매도할 때도 마찬가지입니다. 손실을 제한하려는 상황에서 지정가 주문이 체결되지 않으면 주가가 추가로 하락하는 위험에 노출될 수 있습니다.

따라서 주문 방식은 체결가격뿐 아니라 거래 목적과 미체결 위험을 함께 고려해야 합니다.

자동매매에서는 매수·매도 조건, 주문 유형, 시장의 유동성에 따라 서로 다른 체결 전략을 사용하는 방법을 검토할 수 있습니다.

자동매매에서 체결 오차를 줄이는 방법

슬리피지는 완전히 없애기보다 발생 원인을 확인하고 예상 범위 안에서 관리하는 것이 현실적입니다.

1. 거래량이 충분한 종목인지 확인합니다

같은 금액을 주문하더라도 거래가 활발한 종목과 거래량이 적은 종목의 체결 결과는 다를 수 있습니다.

특히 거래량이 적거나 호가 간격이 넓은 ETF는 소액 주문에서도 기대한 가격에 체결되지 않을 수 있습니다.

따라서 매매 전에 일평균 거래대금뿐 아니라 실제 주문 시간대의 호가와 매도·매수 가능 물량까지 살펴보는 것이 좋습니다.

자동매매 슬리피지주문 가격과 체결 가격이 다른 이유

2. 주문을 나누는 방법을 검토합니다

한 번에 큰 금액을 매수하면 여러 가격대의 매도 물량을 소진하면서 평균 매수가격이 높아질 수 있습니다.

이런 경우 주문을 나눠서 실행하면 시장에 미치는 영향을 줄일 가능성이 있습니다.

다만 분할 주문은 거래 횟수와 대기 시간이 늘어나며, 그 사이에 시장가격이 변할 수 있다는 단점도 있습니다.

따라서 분할 주문이 항상 더 좋은 체결가격을 보장하는 것은 아닙니다.

3. 변동성이 큰 시간대를 구분합니다

미국 주식시장 개장 직후나 주요 경제지표 발표 직후에는 가격이 빠르게 움직이고 스프레드가 확대될 수 있습니다.

이때 자동매매 프로그램이 평소와 동일한 조건으로 시장가 주문을 실행한다면 슬리피지가 커질 가능성이 있습니다.

체결 오차가 특정 시간대에 반복된다면 해당 시간대의 거래를 제한하거나 주문 방식을 변경하는 방법을 검토할 수 있습니다.

단, 거래를 제한하면 수익 기회도 줄어들 수 있으므로 실제 데이터를 통한 검증이 필요합니다.

4. 백테스트에 거래비용을 반영합니다

자동매매 전략을 검증할 때 가장 중요한 부분입니다.

과거 차트에서 매매 신호가 발생한 가격을 그대로 체결가격으로 사용하면 실제 거래보다 지나치게 좋은 결과가 나올 수 있습니다.

따라서 수수료, 세금, 슬리피지와 함께 주문이 체결되지 않는 경우까지 고려해야 합니다.

특히 짧은 시간에 여러 번 매매하는 전략이라면 슬리피지 0%, 0.1%, 0.3%, 0.5% 등 여러 조건으로 백테스트를 비교할 필요가 있습니다.

이 숫자들은 실제 시장의 평균 슬리피지를 뜻하는 것이 아니라 전략이 거래비용에 얼마나 민감한지 확인하기 위한 시험 조건입니다.

매매비용을 조금만 높였는데도 수익이 크게 줄어드는 전략이라면 실전 적용 전에 추가 검증이 필요합니다.

틱 데이터로 실제 거래비용 확인하기

자동매매의 체결 오차를 더 정확하게 분석하려면 틱 데이터(Tick Data)를 활용할 수 있습니다.

틱 데이터는 거래나 호가가 발생한 시점의 가격, 수량, 시간 등을 기록한 시장 자료입니다.

일봉이나 분봉 차트보다 세밀한 시장 움직임을 확인할 수 있다는 장점이 있습니다.

하지만 체결 거래내역만 기록된 틱 데이터와 실시간 매수·매도 호가 데이터는 서로 다릅니다.

실제 슬리피지를 분석하려면 틱 데이터뿐 아니라 주문 시각, 주문 당시 호가, 실제 체결 내역이 필요합니다.

체결 오차 계산에 필요한 자료

데이터확인할 내용
주문 시각매매 신호가 발생하거나 주문을 전송한 시간
주문 당시 호가매수·매도 가능한 가격과 수량
주문 수량실제 요청한 매수·매도 수량
체결 시각거래가 실제 성사된 시간
체결가격실제 매수·매도 가격
체결 수량일부 체결까지 포함한 수량
거래비용수수료와 세금 등

예를 들어 파이썬의 Pandas 라이브러리를 활용하면 주문 기록과 체결 기록을 시간순으로 정리하고 거래별 가격 차이를 계산할 수 있습니다.

매수 주문의 불리한 슬리피지 비율은 다음과 같이 계산할 수 있습니다.

매수 슬리피지(%) = (실제 체결가격 – 주문 당시 기준 매도호가) ÷ 주문 당시 기준 매도호가 × 100

매도 주문은 반대로 계산합니다.

매도 슬리피지(%) = (주문 당시 기준 매수호가 – 실제 체결가격) ÷ 주문 당시 기준 매수호가 × 100

여기서 양수는 불리한 체결, 음수는 기준가격보다 유리한 체결을 의미하도록 정의했습니다.

주문이 여러 가격에 나뉘어 체결됐다면 체결수량으로 가중평균한 가격을 사용해야 합니다.

이렇게 계산한 거래별 슬리피지를 시간대, 종목, 주문 유형, 거래량에 따라 비교하면 어느 상황에서 체결비용이 커지는지 파악하는 데 도움이 됩니다.

다만 파이썬으로 분석했다고 해서 과거 주문을 넣었을 때 실제로 체결됐을 가격을 완벽하게 복원할 수 있는 것은 아닙니다. 과거의 호가 잔량, 주문 대기 순서, 지연 시간 등의 자료가 부족하면 실제 체결환경과 차이가 발생할 수 있습니다.

따라서 파이썬 분석은 슬리피지를 없애는 마법 같은 기술이 아니라, 실제 거래에서 발생한 비용을 측정하고 주문 전략을 개선하기 위한 도구로 이해하는 것이 적절합니다.

자동매매 슬리피지란? 주문 가격과 체결 가격이 다른 이유

자주 묻는 질문

Q. 슬리피지는 무조건 손실인가요?

아닙니다. 예상보다 유리한 가격으로 체결되는 긍정적 슬리피지도 있습니다. 다만 자동매매에서는 불리한 체결이 반복될 경우 수익률을 낮출 수 있으므로 거래별로 구분해 분석해야 합니다.

Q. 지정가 주문을 사용하면 슬리피지가 없어지나요?

지정가 주문은 정한 가격보다 불리한 가격에 체결되는 것을 제한하지만, 체결되지 않을 수 있습니다. 따라서 가격 위험과 미체결 위험을 함께 관리해야 합니다.

Q. 백테스트에 슬리피지 0.1%를 적용하면 충분할까요?

모든 종목과 전략에 동일하게 적용할 수 있는 기준은 없습니다. 실제 슬리피지는 유동성, 주문 규모, 거래 시간대, 시장 변동성에 따라 달라집니다. 가능하다면 자신의 주문 기록으로 확인한 비용을 바탕으로 여러 조건을 비교해야 합니다.

Q. 자동매매 수익률이 백테스트보다 낮으면 슬리피지가 원인인가요?

슬리피지가 원인 중 하나일 수 있지만 수수료, 세금, 주문 누락, 미체결, 데이터 오류, 시장 환경 변화도 영향을 줍니다. 실제 주문기록과 백테스트 결과를 거래별로 비교해야 원인을 구분할 수 있습니다.

자동매매의 핵심은 매매 신호보다 실제 계좌 수익입니다

자동매매 프로그램이 아무리 정교한 매수·매도 신호를 만들어도 예상한 가격으로 거래가 이루어지지 않는다면 수익률은 달라집니다.

특히 작은 수익을 반복해서 쌓는 단기매매 전략에서는 눈에 잘 띄지 않는 거래비용이 전체 성과를 결정하는 중요한 요인이 될 수 있습니다.

따라서 자동매매 전략을 검토할 때는 과거 차트에서 수익이 얼마나 났는지만 보지 말고 실제 체결가격과 거래비용까지 확인하는 과정이 필요합니다.

좋은 자동매매 전략은 백테스트에서 높은 수익률을 보여주는 전략이 아니라, 현실적인 거래비용과 손실 가능성을 반영하고도 지속 가능한 성과를 기대할 수 있는 전략입니다.

꾸준한 수익을 목표로 한다면 매매 횟수를 늘리는 것보다 한 번의 거래에서 얼마의 비용이 발생하고, 실제 계좌에 얼마의 수익이 남는지를 먼저 관리하는 것이 중요합니다.

참고 자료: 미국 증권거래위원회(SEC) 투자자 교육자료 Understanding Order Types

금알남

금알남
함께 보면 좋은 글

댓글 0

첫 댓글을 남겨보세요.