CHAPTER 03.5 / LIQUIDITY COSTS
3.5 거래 가능성과 비용이 수익률에 미치는 영향
비용 전 수익에서 스프레드·슬리피지·수수료를 차감하고 회전율과 주문 크기가 순수익을 바꾸는 과정을 살펴봅니다.
3.5 거래 가능성과 비용이 수익률에 미치는 영향
이 페이지는 3장의 필수 복습 개념이다. 2장에서 배운 유동성을 다시 정의하는 대신, 화면에 보이는 비용 전 수익률이 실제 주문 뒤 비용 후 수익률로 바뀌는 과정을 계산하는 것이 목표다.
3.4까지는 원하는 가격에 바로 사고팔 수 있다고 가정했다. 하지만 실제로 거래하면 화면에서 본 가격과 실제로 사고판 가격이 다를 수 있고, 매매 수수료도 내야 한다.
예를 들어 가격 변화만 보면 10,000원을 벌었더라도 거래 과정에서 3,000원의 비용이 들었다면 실제로 남는 이익은 7,000원이다. 이처럼 거래 비용을 빼기 전의 수익률을 Gross return(총수익률), 비용을 빼고 실제로 남은 수익률을 **Net return(순수익률)**이라고 한다.
2장의 Market liquidity(시장 유동성)를 한 문장으로 복습한다
시장 유동성은 원하는 수량을 비교적 빠르게, 작은 Spread(스프레드), 작은 Slippage(슬리피지)와 작은 Market impact(시장 충격)로 거래할 수 있는 정도다. 거래량 하나가 아니라 가격·수량·시간과 주문 뒤 회복을 함께 본다.
이제 거래 비용을 빼기 전과 후의 수익률을 비교해 보자.
Gross return(총수익률)과 Net return(순수익률)을 분리한다
여기서 Gross return(총수익률)은 거래 실행 비용을 빼기 전 전략 수익률이다. Net return(순수익률)은 실행 비용을 뺀 뒤의 결과다.
- Spread cost(스프레드 비용): 별도로 내는 수수료가 아니라, 살 때는 조금 비싸게 사고 팔 때는 조금 싸게 팔게 되어 수익이 줄어드는 부분이다. 예를 들어 기준 가격이 100원일 때 100.1원에 사고, 보유한 뒤 기준 가격이 110원이 되었을 때 109.9원에 판다면 가격은 10원 올랐지만 실제 매매 차익은 9.8원이다. 줄어든 0.2원이 매수와 매도에서 발생한 스프레드 비용이다.
- Slippage cost(슬리피지 비용): 주문할 때 예상한 가격보다 불리한 가격에 실제 거래가 이루어져 생기는 비용이다. 예를 들어 100.1원에 살 것으로 예상했지만 100.2원에 체결되는 경우다.
- Gross profit(비용 전 손익)
- 단위: 통화
- Net profit(비용 후 손익)
- 단위: 통화
- 즉시 살 수 있는 가격과 즉시 팔 수 있는 가격의 차이로 생긴 Spread cost(스프레드 비용)
- 단위: 통화
- 예상보다 불리한 가격에 실제 거래되어 생긴 Slippage cost(슬리피지 비용)
- 단위: 통화
- Fee(수수료)
- 단위: 통화
- 그 밖의 실행 비용
- 단위: 통화
- 시작 자산가치
- 단위: 통화
- Net return(순수익률)
- 단위: 기간 비율 또는 퍼센트
총수익률이 양수여도 비용 합계가 더 크면 순수익률은 음수가 된다. 백테스트의 신호 정확도와 실제 거래 전략의 수익성은 같은 질문이 아니다.
한 번의 왕복 거래 비용을 원화로 풀어 본다
가상 원금 100만원으로 한 번 진입하고 한 번 청산한다고 하자.
| 항목 | 비율 | 100만원 기준 금액 |
|---|---|---|
| 비용 전 수익 | +0.50% | +5,000원 |
| 왕복 스프레드 | -0.20% | -2,000원 |
| 총 슬리피지 | -0.10% | -1,000원 |
| 총수수료 | -0.05% | -500원 |
| 비용 후 결과 | +0.15% | +1,500원 |
이 표는 모든 비용을 시작 원금에 대한 일정 비율로 빼는 교육용 근사다. 실제 시장 충격은 주문 크기, 체결 순서와 시장 상태에 따라 비선형적으로 커질 수 있다.
- 비용 전 손익
- ₩5,000
- 왕복 스프레드
- -₩2,000
- 슬리피지
- -₩1,000
- 수수료
- -₩500
- 비용 후 손익
- ₩1,500
Mid-price(중간가격), Closing price(종가)와 체결가는 서로 다른 역할을 한다
백테스트에서는 계산하기 편한 중간가격이나 종가를 자주 사용한다. 하지만 실제 주문은 그 가격과 다르게 체결될 수 있다.
| 가격 | 쉽게 말하면 | 어디에 사용하는가 | 주의점 |
|---|---|---|---|
| Mid-price(중간가격) | 현재 가장 높은 매수호가와 가장 낮은 매도호가의 중간값 | 현재 가격이 대략 얼마인지 가늠할 때 사용한다 | 실제로 그 가격에 사거나 팔 수 있다는 뜻은 아니다 |
| Closing price(종가) | 하루 거래가 끝날 때 정해진 대표 가격 | 날짜별 가격 변화와 수익률을 계산할 때 사용한다 | 종가를 확인한 뒤 그날의 종가로 거래할 수는 없다 |
| Average execution price(평균 체결가) | 여러 가격에 나누어 거래된 주문의 실제 평균 가격 | 실제로 얼마에 사고팔았는지와 손익을 계산할 때 사용한다 | 주문량이 많으면 처음 예상한 가격과 달라질 수 있다 |
포지션 평가는 중간가격으로 하더라도 진입과 청산 비용은 실제 매수·매도 방향의 호가로 계산해야 한다.
Turnover(회전율)가 높으면 작은 비용도 반복된다
Round-trip cost(왕복 거래 비용)는 자산을 한 번 사고 나중에 파는 전체 과정에서 발생한 비용을 모두 합한 것이다. 살 때와 팔 때 발생한 스프레드·슬리피지·수수료가 모두 포함된다.
예를 들어 100만원으로 한 번 사고파는 데 0.20%, 즉 2,000원의 비용이 든다고 하자. 한 번만 거래하면 비용도 한 번 발생하지만, 계속 사고팔면 거래를 마칠 때마다 비용이 다시 발생한다. 이처럼 자산을 자주 사고팔아 보유 종목이 많이 바뀌는 정도를 Turnover(회전율)라고 한다.
한 번의 거래에서 비용을 빼기 전 예상 이익이 0.10%, 즉 1,000원인데 왕복 거래 비용이 0.20%, 즉 2,000원이라면 거래를 마칠 때마다 약 1,000원의 손실이 남는다. 따라서 작은 이익을 기대하며 너무 자주 거래하면 전체 결과가 손실로 바뀔 수 있다.
Capacity(전략 용량)는 비용 후 수익이 남는 운용 규모다
같은 전략이라도 투자금이 커지면 원하는 가격에 모두 사고팔기 어려워진다. 예를 들어 1,000원에 살 수 있는 주식이 100주뿐이라면, 10주는 모두 1,000원에 살 수 있다. 하지만 1,000주를 사려면 부족한 수량을 1,001원, 1,002원처럼 더 비싼 가격에도 사야 할 수 있다. 그러면 실제 평균 매수 가격이 올라가고 이익은 줄어든다.
큰 금액을 운용할 때는 다음 문제가 생길 수 있다.
- 한 번에 거래하지 못해 여러 번 나누어 사고팔아야 한다.
- 주문을 마치기 전에 가격이 달라질 수 있다.
- 살 때뿐 아니라 나중에 보유 수량을 모두 팔기도 어려울 수 있다.
- 예상보다 비싸게 사고 싸게 팔면서 거래 비용이 커질 수 있다.
Capacity(전략 용량)는 이러한 거래 비용을 모두 빼고도 이익이 남도록 실제로 운용할 수 있는 최대 금액이다. 예를 들어 1,000만원을 운용할 때는 이익이 나지만 10억원을 운용하면 큰 주문 때문에 거래 가격이 불리해져 손실이 난다면, 그 전략은 10억원을 감당할 수 없다.
스트레스 시기의 Liquidity risk(유동성 위험)를 따로 본다
평온한 기간의 평균 스프레드와 평균 거래량만 사용하면 위험을 작게 볼 수 있다. 급격한 가격 움직임에서는 스프레드가 넓어지고 호가 깊이가 줄며 시장 충격이 커질 수 있다.
특히 레버리지 포지션은 손실 직후 담보를 맞추기 위해 거래해야 할 수 있다. 가장 팔기 싫은 시점에 가장 큰 주문을 내야 하는 상황이므로 정상 시기 비용만으로는 충분하지 않다.
Backtest(백테스트)에서는 거래한 날마다 비용을 뺀다
백테스트에서도 실제 거래와 같은 순서로 계산해야 한다.
- 언제 매수하거나 매도하기로 결정했는지 정한다.
- 결정한 시점보다 나중에 실제로 거래할 수 있었던 가격을 사용한다.
- 주문량을 고려해 실제 평균 매수 가격이나 평균 매도 가격을 예상한다.
- 거래할 때마다 스프레드·슬리피지·수수료를 뺀다.
- 비용을 뺀 뒤 남은 금액으로 다음 날의 수익과 손실을 계산한다.
- 평소보다 거래 비용이 커지는 상황에서도 이익이 남는지 확인한다.
예를 들어 100만원으로 거래해 하루 동안 1%인 10,000원을 벌었지만 거래 비용이 2,000원 들었다면, 다음 계산의 시작 금액은 101만원이 아니라 100만 8,000원이다. 다음 수익과 손실은 이 줄어든 금액을 기준으로 계산해야 한다.
따라서 여러 번 거래한 비용을 백테스트가 끝난 뒤 한꺼번에 빼면 실제 자산가치의 변화를 정확히 반영할 수 없다.
자주 생기는 오해
- 스프레드 비용은 수수료처럼 따로 청구되는 돈이 아니다. 살 때는 조금 비싸게 사고 팔 때는 조금 싸게 팔아 이익이 줄어드는 부분이다.
- 평소 거래가 활발한 자산도 한꺼번에 많은 수량을 주문하면 예상보다 비싸게 사거나 싸게 팔 수 있다.
- 종가는 하루를 대표하는 가격일 뿐, 원하는 수량을 모두 그 가격에 거래할 수 있다는 뜻은 아니다.
- 가격 변화만 보면 이익이어도 스프레드·슬리피지·수수료를 빼면 실제 결과는 손실이 될 수 있다.
- 거래할 때 드는 비용이 작아 보여도 자주 사고팔면 계속 반복되어 큰 금액이 될 수 있다.
- 시장이 크게 흔들릴 때는 평소보다 사고파는 가격 차이가 벌어져 보유 자산을 파는 비용이 커질 수 있다.
- 많은 수량을 쉽게 샀더라도 나중에 같은 수량을 같은 조건으로 쉽게 팔 수 있다고 단정하면 안 된다.
이해 점검
기준 가격이 100원에서 110원으로 올랐지만 100.1원에 사고 109.9원에 팔았다면 실제 매매 차익은 얼마인가?
이다.
기준 가격의 상승 폭 10원보다 실제 매매 차익이 0.2원 작다. 이 차이가 매수와 매도에서 발생한 스프레드 비용이다.
100만원에서 총수익 0.50%, 스프레드 0.20%, 슬리피지 0.10%, 수수료 0.05%라면 단순 근사 순손익은 얼마인가?
비용 전 이익은 5,000원이고 비용 합계는 3,500원이다.
순손익은 1,500원, 순수익률은 0.15%다.
회전율이 높은 전략에서 작은 비용을 무시하면 안 되는 이유는 무엇인가?
포지션을 바꿀 때마다 스프레드, 슬리피지와 수수료가 다시 발생하기 때문이다.
비용은 자산가치를 매 거래마다 줄여 이후 복리 기준까지 낮춘다.
왜 정상 시기의 평균 비용만으로 레버리지 포지션의 청산 가능성을 판단하면 안 되는가?
손실이 큰 시기에는 스프레드가 넓어지고 깊이가 줄어 비용이 동시에 커질 수 있기 때문이다.
담보 조건 때문에 거래 시점을 미룰 수 없으면 가장 유동성이 나쁜 때 강제로 청산할 수 있다.
완료 기준
실제 매수·매도 가격으로 매매 차익을 계산하고, 가상 원금에서 스프레드·슬리피지·수수료를 차감해 순수익률을 구하며 회전율·주문 크기·스트레스 상황이 비용을 바꾸는 이유를 설명할 수 있으면 다음 페이지로 넘어간다. 다음 페이지에서는 이 비용과 수익률 경로에 레버리지를 적용한다.
이 자료는 거래 비용과 유동성 위험의 일반 원리를 설명하는 교육 자료이며 실제 체결 가격이나 투자 성과를 보장하지 않는다.