큰 주문은 왜 한 번에 안 넣을까 — 자동매매 '집행 알고리즘' 완전 정리
자동매매를 알아보는 분들과 이야기하면, 대화의 90%는 "무엇을 언제 살까"에 쏠립니다. 어떤 신호에서 사고, 어떤 조건에서 팔고, 손절은 어디에 두는지 — 즉 전략 이야기입니다. 그런데 프로의 세계에는 그와 완전히 다른, 그러나 성과를 조용히 갉아먹거나 지켜주는 또 하나의 알고리즘이 있습니다. 정해진 그 주문을 '어떻게 잘 실행하느냐' — 바로 집행(execution) 알고리즘입니다. 사는 종목이 같고 방향이 같아도, 큰 주문을 한 번에 툭 던지느냐 잘게 나눠 살살 넣느냐에 따라 실제로 사지는 평균 가격이 달라집니다. 기관 트레이더가 TWAP·VWAP·아이스버그 같은 낯선 이름을 입에 달고 사는 이유가 여기에 있습니다. 이 글은 그 '집행'의 세계를 코딩 한 줄 없이 풀어냅니다. 큰 주문이 왜 스스로 값을 밀어 올리는지, '결정한 가격'과 '실제 체결가'는 왜 벌어지는지, 대표적인 집행 알고 네 가지의 원리와 차이, 그리고 개인에게 이게 정말 필요한지의 정직한 답까지 다룹니다. 미리 밝혀두면, 이 글은 어떤 자산의 방향이나 수익을 예측하지 않습니다. 정량적인 집행 방법론을 설명하는 교육 자료이며, 집행이 아무리 좋아도 그 자체가 이익을 만들어 주지는 않습니다.
이 글의 흐름
- 두 개의 다른 알고리즘 — '무엇을 살까'와 '어떻게 잘 살까'
- 가격은 하나가 아니다 — 호가창과 시장충격
- 집행의 진짜 비용 — '결정가'와 '체결가'의 괴리(구현 손실)
- 집행 알고 4대장 — TWAP·VWAP·참여율(POV)·구현손실 최소화
- 숨기는 기술 — 아이스버그(빙산) 주문
- 잘 샀는지 어떻게 아나 — 벤치마크로 채점하기
- 개인에게도 필요할까 — 정직한 스케일 이야기
- 봇은 집행을 어떻게 하나 — 거래소 제공 vs 직접 구현
- 집행이 좋아도 전략이 나쁘면 소용없다
- 직접 vs 맡기기 · 명세서 '집행 사양 6줄'
- 흔한 집행 실수 6가지 · 실전 시나리오 3가지
- 흔한 오해 5가지 · 자주 묻는 질문
1. 두 개의 다른 알고리즘 — '무엇을 살까'와 '어떻게 잘 살까'
자동매매 이야기를 할 때 우리는 보통 하나의 알고리즘만 상상합니다. "이동평균이 교차하면 사고, 목표가에 닿으면 판다" 같은 판단의 규칙 말입니다. 그런데 실제 매매는 그 판단이 끝난 뒤에 한 단계가 더 남습니다. "좋아, 비트코인 1개를 지금 사기로 결정했어" — 그다음 질문은 "그걸 대체 어떻게 살 건데?"입니다. 지금 이 순간 시장가로 한 방에? 아니면 지정가를 걸어두고 기다려? 나눠서? 10분에 걸쳐? 이 두 번째 질문에 답하는 것이 바로 집행 알고리즘입니다.
비유하자면 이렇습니다. 전략은 "오늘 저녁은 삼겹살을 먹겠다"는 결정이고, 집행은 "그 삼겹살을 어느 정육점에서, 한 번에 5근을 살지 하루 세 번 나눠 살지, 붐비는 시간을 피할지"라는 실행 방법입니다. 메뉴를 아무리 잘 골라도 장을 어설프게 보면 더 비싸게 사거나 품절을 만나는 것처럼, 매매도 판단이 옳았어도 집행이 서투르면 예상보다 나쁜 가격에 체결됩니다.
이 구분은 사실 트레이딩 용어를 정리할 때 이미 등장했습니다. '자동매매·시스템·알고리즘·퀀트'가 어떻게 다른지를 다룬 글에서, 알고리즘 트레이딩에는 '무엇을 살지 정하는 전략 알고'와 '정해진 걸 잘 집행하는 집행 알고'가 있다고 잠깐 짚었는데, 이번 글은 바로 그 집행 알고만을 파고듭니다.
전략 알고리즘 — 무엇을·언제
어떤 신호에서, 어느 방향으로, 얼마나 사고팔지 판단합니다. "왜 이 거래를 하는가"의 영역.
집행 알고리즘 — 어떻게 잘
정해진 주문을 시장을 덜 흔들고 좋은 평균가로 실행합니다. "이 거래를 어떻게 체결하는가"의 영역.
둘은 목표가 다르다
전략의 목표는 수익 기회 포착, 집행의 목표는 거래 비용 최소화. 좋은 봇은 둘을 따로 설계합니다.
집행은 '비용'의 문제
집행은 돈을 버는 장치가 아니라 새어 나가는 비용을 줄이는 장치입니다. 이 차이를 기억하세요.
핵심 프레임: 전략이 "무엇을 살까"라면 집행은 "어떻게 잘 살까"입니다. 개인이 대형 종목을 소액으로 한 번 사는 정도라면 집행은 거의 문제가 안 됩니다. 하지만 주문이 시장에 비해 커지거나, 시장이 얇거나, 한꺼번에 여러 주문을 낼 때 집행은 성과를 좌우하는 별도의 문제로 떠오릅니다.
2. 가격은 하나가 아니다 — 호가창과 시장충격
집행이 왜 문제가 되는지 이해하려면, 먼저 "시장 가격은 하나의 숫자가 아니다"라는 사실을 받아들여야 합니다. 우리가 시세판에서 보는 '현재가'는 방금 체결된 한 건의 가격일 뿐입니다. 실제로 사고팔 수 있는 가격은 호가창(order book)에 계단처럼 쌓여 있습니다. 가장 싸게 팔겠다는 물량이 맨 아래, 그다음 조금 비싼 물량, 또 그다음… 이렇게 여러 가격에 물량이 분산되어 있습니다.
이 구조에서 시장가로 큰 수량을 한 번에 사면 무슨 일이 일어날까요? 가장 싼 매도 물량부터 차례로 먹어치우며 위로 올라갑니다. 처음 몇 개는 싸게 사지만, 물량이 소진될수록 점점 비싼 가격에 사지고, 결국 내 주문 자체가 값을 밀어 올립니다. 이것을 시장충격(market impact)이라고 부릅니다. 내가 큰 걸 사려 한다는 사실이 그대로 가격을 불리하게 만드는 것이죠. 팔 때는 반대로, 큰 매도가 값을 아래로 눌러 내립니다.
시장충격의 크기는 내 주문이 그 순간의 호가 물량에 비해 얼마나 큰가에 달려 있습니다. 물량이 두껍게 쌓인 대형 종목·메이저 코인에서 소액을 사면 충격이 거의 없습니다. 반대로 유동성이 얇은 소형주, 상장 초기 코인, 거래가 뜸한 새벽 시간대에서는 조금만 사도 값이 훌쩍 뜁니다. 그래서 집행의 첫 번째 원리는 "큰 주문을 시장이 소화할 수 있게 잘게 나눠, 시간을 두고 흘려보낸다"가 됩니다. 이 시장충격과 슬리피지가 실제 체결에서 어떻게 나타나는지는 주문 체결의 진짜 원리(슬리피지·미체결·부분체결)에서 더 기초부터 다뤘습니다. 이번 글은 그 위에서, '큰 주문을 어떻게 쪼갤 것인가'라는 집행 알고리즘으로 한 걸음 더 들어갑니다.
3. 집행의 진짜 비용 — '결정가'와 '체결가'의 괴리
집행을 이야기할 때 프로들이 가장 중요하게 여기는 개념이 하나 있습니다. 구현 손실(implementation shortfall)입니다. 이름은 거창하지만 뜻은 단순합니다 — "사기로 마음먹은 순간의 가격"과 "실제로 다 사고 난 뒤의 평균 가격"의 차이입니다.
예를 들어 봅시다. 어떤 신호가 떠서 "지금 이 가격(결정가)에 사자"고 봇이 판단했습니다. 그런데 주문을 실제로 실행해 다 채우는 데는 시간이 걸립니다. 그사이 ① 내 주문이 값을 밀어 올린 시장충격, ② 수수료, ③ 주문을 다 못 채워 놓친 부분, ④ 시간이 흐르는 동안 시장 자체가 움직인 변화 — 이 모든 것이 쌓여 결정가와 실제 체결가가 벌어집니다. 이 벌어진 폭이 바로 구현 손실이고, 집행이 새어 나가게 만든 진짜 비용입니다.
왜 이 개념이 중요할까요? 많은 사람이 백테스트에서 "이 전략은 연 O% 벌었다"고 흥분하지만, 그 백테스트는 대개 결정가에 딱 맞게 체결됐다고 가정합니다. 현실의 구현 손실을 빼고 계산한 것이죠. 그래서 백테스트와 실거래가 벌어지는 이유 중 큰 몫이 바로 이 집행 비용입니다. 집행을 무시한 화려한 백테스트일수록 실전에서 실망하기 쉽습니다.
구현 손실을 이해하면 집행의 본질이 보입니다. 집행 알고리즘은 결국 이 네 가지 비용을 어떻게 배분하고 최소화할 것인가의 문제입니다. 그리고 여기엔 피할 수 없는 딜레마가 있습니다. 빨리 사면 시장충격이 크고, 천천히 나눠 사면 충격은 줄지만 그동안 시장이 반대로 움직일 시간 위험이 커집니다. '빨리 vs 천천히'는 집행의 영원한 트레이드오프이며, 어느 쪽이 정답인지는 상황마다 다릅니다.
4. 집행 알고 4대장 — TWAP·VWAP·참여율·구현손실 최소화
그럼 실제로 '큰 주문을 어떻게 나눠 낼 것인가'를 규칙으로 만든 것이 집행 알고리즘입니다. 대표적인 네 가지를 비개발자 눈높이로 정리하겠습니다. 이름은 낯설어도 발상은 직관적입니다.
① TWAP — 시간을 균등하게 쪼갠다
TWAP(Time-Weighted Average Price, 시간가중평균가)는 가장 단순합니다. 정해진 시간 동안 주문을 대체로 균등하게 나눠 냅니다. "한 시간에 걸쳐 5분마다 조금씩 사라" 같은 식이죠. 시계처럼 규칙적이라 예측 가능하고 구현이 쉽습니다. 대신 시장의 거래량 흐름을 고려하지 않아서, 마침 거래가 한산한 시간에 기계적으로 주문을 내면 그 조각이 오히려 값을 밀 수도 있습니다.
② VWAP — 거래량이 많은 때 더 많이
VWAP(Volume-Weighted Average Price, 거래량가중평균가)는 한 걸음 더 나아갑니다. 하루 중 거래가 활발한 시간대에 더 많이, 한산한 시간대에 더 적게 주문을 배분합니다. 사람이 붐빌 때 슬쩍 섞여 들어가면 내 주문이 티가 덜 나고 충격도 덜하다는 발상입니다. 시장이 원래 거래하던 리듬을 따라가므로 대량 주문을 자연스럽게 녹이는 데 유리합니다. 대신 과거 거래량 패턴을 참고해 배분하는데, 그날따라 패턴이 어긋나면 예상과 다르게 집행될 수 있습니다.
③ 참여율(POV) — 시장의 몇 %만 따라간다
참여율 알고리즘(POV, Percent of Volume)은 시간이 아니라 시장의 실제 거래량에 내 주문을 연동합니다. "이 순간 시장에서 거래되는 양의 10%만큼만 나도 사겠다"는 식입니다. 시장이 활발하면 나도 빨리, 시장이 조용하면 나도 천천히 — 시장의 숨결에 맞춰 따라갑니다. 내 주문이 항상 시장의 일정 비율을 넘지 않으니 티가 덜 난다는 장점이 있지만, 시장이 하루 종일 한산하면 주문을 다 못 채울 위험도 있습니다.
④ 구현손실 최소화(IS) — 급함과 충격 사이의 저울질
구현손실 최소화(Implementation Shortfall) 방식은 가장 '똑똑하게' 저울질하는 접근입니다. 3절에서 말한 그 결정가 대비 괴리를 최소화하도록, "빨리 채워서 시간 위험을 줄일지 vs 천천히 채워서 충격을 줄일지"를 상황에 맞춰 조절합니다. 급하게 잡아야 할 기회면 앞부분에 더 많이 실행하고, 시간이 여유로우면 살살 흘립니다. 발상은 우아하지만 그만큼 가정과 설정이 많아 구현·검증 난도가 높습니다.
| 알고 | 배분 기준 | 강점 | 약점·주의 |
|---|---|---|---|
| TWAP | 시간을 균등 분할 | 단순·예측 가능·구현 쉬움 | 거래량 흐름 무시 — 한산한 때 충격 가능 |
| VWAP | 거래량 프로파일 따라 | 대량을 자연스럽게 녹임 | 그날 패턴이 어긋나면 예상과 다름 |
| 참여율(POV) | 실시간 거래량의 % | 시장에 늘 일정 비율 — 티가 덜 남 | 한산하면 미체결 위험 |
| 구현손실(IS) | 급함↔충격 동적 저울질 | 결정가 괴리 최소화 지향 | 가정·설정 많음 — 구현·검증 난도 높음 |
YMYL 주의: 위 네 방식은 어느 것도 "더 좋은 가격"이나 수익을 보장하지 않습니다. 각각은 서로 다른 트레이드오프를 택할 뿐이며, 같은 알고라도 시장 상황에 따라 결과가 딴판일 수 있습니다. 또한 TWAP·VWAP·POV·아이스버그 같은 기능은 거래소·증권사마다 지원 여부와 이름, 동작 방식이 모두 다릅니다. 어떤 곳은 기본 주문 유형으로 제공하고, 어떤 곳은 없어서 봇이 직접 쪼개 구현해야 합니다. 반드시 각 거래소·증권사의 공식 문서로 최신 사양을 확인하세요.
5. 숨기는 기술 — 아이스버그(빙산) 주문
지금까지가 "시간에 걸쳐 나눠 내는" 이야기였다면, 아이스버그는 결이 조금 다른 '숨기는' 기술입니다. 아이스버그(iceberg, 빙산) 주문은 큰 주문을 낼 때 전체 수량을 호가창에 다 드러내지 않고, 작은 일부만 겉으로 보이고 나머지는 감춰 둡니다. 빙산이 물 위로는 일각만 보이고 대부분 물밑에 잠겨 있는 것과 같습니다. 겉에 보이는 조각이 체결되면, 숨겨 둔 다음 조각이 자동으로 다시 호가에 올라옵니다.
왜 숨길까요? 호가창에 큰 매수 물량이 통째로 뜨면, 그걸 본 다른 참여자가 "누가 크게 사려나 보다" 하고 미리 값을 올려 버리거나 물량을 거둬들일 수 있기 때문입니다. 내 의도가 노출되는 것 자체가 비용이 되는 것이죠. 아이스버그는 그 노출을 줄여 조용히 큰 주문을 소화하려는 시도입니다.
오해 방지: 아이스버그는 완벽한 은폐가 아닙니다. 같은 크기의 물량이 같은 가격에 반복해서 나타나는 패턴을 보면, 숙련된 참여자나 다른 알고리즘이 "여기 빙산이 있구나" 하고 추정할 수 있습니다. 또한 이 주문 유형의 지원 여부, 최소 노출 수량, 동작 방식은 거래소·증권사마다 다릅니다. 아이스버그를 쓴다고 해서 유리한 체결이나 수익이 보장되지 않으며, 이는 어디까지나 노출을 줄이는 하나의 도구일 뿐입니다. 정확한 사양은 공식 문서로 확인하세요.
6. 잘 샀는지 어떻게 아나 — 벤치마크로 채점하기
집행을 잘했는지 어떻게 채점할까요? "싸게 샀으면 잘한 것" 같은 막연한 감이 아니라, 프로들은 기준가(벤치마크)를 정해 놓고 내 평균 체결가를 그것과 비교합니다. 대표적인 두 가지 채점법이 있습니다.
VWAP 대비 채점
- 그 시간대 시장 전체의 거래량가중평균가를 기준으로 삼음
- 내 평균 체결가가 시장 VWAP보다 유리했나 불리했나로 평가
- "시장 평균만큼은 했나"를 보는, 널리 쓰이는 잣대
구현 손실(결정가) 대비 채점
- 주문을 내기로 결정한 순간의 가격을 기준으로 삼음
- 결정가와 최종 평균 체결가의 차이(3절의 구현 손실)를 측정
- "판단한 시점 대비 얼마나 새어 나갔나"를 보는 엄격한 잣대
두 잣대의 핵심은 똑같습니다 — 집행 평가는 '수익이 났는가'가 아니라 '정해진 거래를 비용 낮게 실행했는가'를 본다는 것입니다. 전략이 옳았는지와는 별개로, 집행이라는 실행 단계만 떼어 채점하는 것이죠. 이 기록을 꾸준히 남기면, 봇이 "어느 시장·어느 시간대에 집행이 특히 나빴는가"를 데이터로 알 수 있고, 그것이 다음 개선의 실마리가 됩니다. 이런 사후 점검은 백테스트 리포트 읽는 법이나 실전 투입 전 검증 3단계와도 자연스럽게 이어집니다 — 백테스트가 집행 비용을 얼마나 낙관했는지, 소액 실계좌에서 결정가와 실제 체결가가 얼마나 벌어지는지를 함께 봐야 하니까요.
7. 개인에게도 필요할까 — 정직한 스케일 이야기
여기까지 읽고 "그럼 나도 VWAP 알고를 넣어야 하나?" 싶다면, 잠깐 멈추시길 권합니다. 정직하게 말하면, 대부분의 개인에게 정교한 집행 알고리즘의 효용은 생각보다 작습니다. 집행 알고는 원래 수백억을 한 종목에 넣어야 하는 기관이, 그 큰 주문이 시장을 흔드는 걸 막으려고 발전시킨 기술이기 때문입니다.
그렇다면 개인은 언제 집행에 신경 써야 할까요? 판단 기준은 딱 하나, "내 주문이 그 시장에 비해 큰가"입니다.
집행이 별로 안 중요한 경우
유동성 풍부한 대형주·메이저 코인을, 호가 물량에 비해 작은 금액으로, 급하지 않게 사고팜. 이럴 땐 그냥 지정가나 단순 시장가로 충분.
집행이 중요해지는 경우
유동성 얇은 소형주·상장 초기 코인·한산한 시간대, 또는 내 주문이 호가 물량 대비 큰 경우. 조금만 사도 값이 튐.
여러 주문이 겹칠 때
봇이 여러 종목·여러 전략을 동시에 굴리거나, 리밸런싱으로 한꺼번에 많은 주문을 낼 때. 개별은 작아도 합치면 충격.
가장 실용적인 첫걸음
거창한 알고보다, 큰 주문을 몇 조각으로 나눠 시간 간격을 두고 내는 단순 분할만 해도 대부분의 효과를 얻습니다.
실제로 개인이 얻는 집행 개선의 대부분은 가장 단순한 '분할 주문'에서 나옵니다. 한 번에 툭 던지지 않고 서너 조각으로 나눠 몇 분 간격으로 내는 것만으로도 얇은 시장에서의 충격을 크게 줄일 수 있습니다. 이는 그리드 매매가 매수를 여러 가격에 분산하는 발상과도 통하고, 얼마의 자본으로 어떤 비용 구조에서 매매하는지를 따지는 최소 자본금·수수료·손익분기 문제와도 맞닿아 있습니다. 반대로, 필요도 없는데 복잡한 집행 알고를 넣으면 구현·유지보수 비용과 버그 위험만 키우는 과잉 설계가 됩니다.
한 줄 정리: 집행은 "내가 시장에 비해 큰가?"라는 질문에서 시작합니다. 작으면 신경 쓸 것 없고, 크거나 시장이 얇으면 그때 분할부터 시작하세요. 정교한 알고는 정말 필요할 때 얹는 것이지, 있어 보이려고 넣는 장식이 아닙니다.
8. 봇은 집행을 어떻게 하나 — 거래소 제공 vs 직접 구현
자동매매 봇이 집행 알고리즘을 실제로 실행하는 방법은 크게 두 갈래입니다.
A. 거래소·증권사가 제공하는 주문 유형을 쓴다
일부 거래소·증권사는 TWAP나 아이스버그 같은 고급 주문 유형을 아예 기본 기능으로 제공합니다. 이 경우 봇은 "TWAP로 한 시간에 걸쳐 사줘"라고 주문 한 번만 내면, 나눠 넣는 실행은 거래소가 알아서 합니다. 구현이 간단하고 안정적입니다. 단, 어떤 알고를 제공하는지, 파라미터를 어디까지 조절할 수 있는지는 거래소마다 천차만별입니다.
B. 봇이 직접 잘게 쪼개 실행한다
제공되는 알고가 없거나 세밀하게 제어하고 싶으면, 봇이 스스로 큰 주문을 여러 개의 작은 주문으로 나눠 시간 간격을 두고 내보냅니다. 유연하지만, 그만큼 미체결·부분체결 처리, 남은 수량 관리, 중간에 시장이 급변했을 때의 대응 같은 까다로운 로직을 직접 짜야 합니다. 여기서 부분체결과 미체결을 봇이 제대로 인식하는지가 결정적으로 중요해집니다 — "주문을 냈다"와 "체결됐다"를 혼동하면 같은 걸 두 번 사는 사고가 납니다.
중요: 집행 로직을 직접 구현할 때 가장 흔한 사고는 '주문 상태를 잘못 추적'하는 것입니다. 조각 주문을 냈는데 체결 확인이 늦거나 누락되면, 봇이 "아직 안 샀네" 하고 또 주문을 낼 수 있습니다. 이런 주문 폭주는 계좌를 순식간에 망가뜨릴 수 있어, 안전 정지장치(서킷브레이커·킬 스위치)와 반드시 함께 설계해야 합니다. 집행은 '더 잘 사려는' 기능이지만, 잘못 만들면 오히려 새로운 위험이 됩니다.
어느 쪽이든, 집행은 리스크 관리의 일부로 봐야 합니다. 잘 사고파는 것(집행)과 얼마나 사는가(포지션 사이징), 위험할 때 멈추는 것(안전장치)은 같은 '실행 인프라'의 세 기둥입니다.
9. 집행이 좋아도 전략이 나쁘면 소용없다
이 글을 읽고 집행에 마음이 뺏겼다면, 마지막으로 가장 중요한 균형추를 놓아 드리겠습니다. 집행은 비용을 줄이는 기술이지, 수익을 만드는 기술이 아닙니다.
아무리 우아한 VWAP 알고로 완벽하게 체결해도, 애초에 그 매매 판단이 틀렸다면 손실은 손실입니다. 집행이 하는 일은 그 손실을 조금 덜 나쁘게 만드는 것뿐입니다. 반대로 전략이 훌륭한데 집행이 엉망이면, 새어 나가는 비용이 수익을 갉아먹습니다. 즉 집행은 전략의 성과를 지켜 주는 '방패'이지, 없던 성과를 만들어 내는 '창'이 아닙니다.
YMYL 균형: 이 글의 어떤 내용도 특정 종목·시점의 방향이나 수익률을 예측하지 않습니다. TWAP·VWAP·POV·아이스버그·분할 주문은 모두 거래 비용을 관리하려는 방법론일 뿐, 유리한 체결이나 이익을 보장하지 않습니다. 과거에 어떤 집행 방식이 잘 통했다고 해서 미래에도 그러리란 보장은 없으며, 실제 적용은 소액 검증과 전문가 검토, 그리고 각 거래소·증권사 공식 문서 확인을 거쳐야 합니다. 이 글은 정량적 집행 방법론을 설명하는 교육 자료이지 투자 자문이나 종목 추천이 아닙니다.
10. 직접 vs 맡기기 · 명세서 '집행 사양 6줄'
집행을 스스로 설계하려면 시장 미시구조·주문 상태 관리·거래소별 사양이라는 세 가지 난관을 넘어야 합니다. 부담스럽다면 제작을 맡기는 선택도 합리적입니다. 다만 맡기든 직접 하든, 아래 여섯 줄만 명확히 정하면 집행 설계의 8할은 잡힙니다. 제작 의뢰 시 명세서에 그대로 옮겨 적을 수 있는 항목들입니다.
| # | 집행 사양 | 정할 내용(예시) |
|---|---|---|
| 1 | 기본 주문 방식 | 지정가/시장가 중 무엇을 기본으로, 어떤 상황에 바꾸나 |
| 2 | 분할 여부·기준 | 주문이 얼마 이상이면 나누나 · 몇 조각 · 어느 간격 |
| 3 | 집행 알고 사용 | TWAP/VWAP/POV를 쓸지, 거래소 제공을 쓸지 직접 구현할지 |
| 4 | 미체결·부분체결 처리 | 안 채워진 잔량을 취소·재주문·포기 — 어떤 규칙으로 |
| 5 | 슬리피지 한도 | 예상보다 얼마나 불리하면 주문을 멈추나(폭주 방지) |
| 6 | 집행 평가·기록 | 결정가/체결가를 기록해 구현 손실을 사후 점검하나 |
맡기면 좋은 경우
- 얇은 시장·큰 주문·다전략을 다뤄 집행이 실제로 중요한 경우
- 미체결·주문 상태 관리 같은 까다로운 로직을 안정적으로 원함
- 거래소별 사양 확인과 검증에 쓸 시간이 부족함
직접 해도 되는 경우
- 대형·유동성 풍부한 시장에서 소액을 다룸(집행 영향 미미)
- 단순 분할 정도면 충분한데 굳이 복잡하게 갈 이유가 없음
- 학습 목적으로 주문 상태 관리를 직접 익히고 싶음
11. 흔한 집행 실수 6가지 · 실전 시나리오 3가지
흔한 집행 실수 6가지
- 백테스트에서 집행 비용을 0으로 가정 — 결정가에 딱 체결됐다고 계산해 실전 괴리에 놀란다.
- 얇은 시장에 큰 시장가 한 방 — 호가를 훑어 올려 스스로 최악의 평균가를 만든다.
- 주문 상태를 잘못 추적 — 체결 확인 누락으로 같은 걸 또 사는 중복·폭주 사고.
- 필요도 없는데 과한 집행 알고 — 소액·대형주에 복잡한 로직을 얹어 비용·버그만 키운다.
- '천천히'만 좋다고 믿음 — 너무 오래 나눠 내다 시장이 반대로 가는 시간 위험을 무시.
- 거래소 사양을 확인 안 함 — 지원하지 않는 주문 유형을 전제하거나, 명칭·동작 차이를 놓친다.
거래가 뜸한 새벽, 상장 초기 알트코인을 봇이 시장가로 한 번에 크게 삽니다. 호가가 얇아 값이 훌쩍 뛰고, 평균 체결가가 판단했던 가격보다 크게 벌어집니다. 단순 분할(몇 조각으로 나눠 간격을 둠)이나 지정가 위주 집행만으로도 이 충격을 상당히 줄일 수 있었던 경우입니다.
포트폴리오 리밸런싱으로 여러 전략·종목의 주문이 한꺼번에 쏟아집니다. 개별은 작아도 합치면 시장충격이 커지고, 부분체결 처리가 허술해 일부는 중복 주문됩니다. 집행을 시간에 분산하고 주문 상태를 정확히 추적했다면 피할 수 있었던 사고입니다.
백테스트 성과가 눈부셨는데 실계좌에선 초라합니다. 원인을 추적하니 상당 부분이 집행 비용이었습니다 — 백테스트는 결정가 체결을 가정했지만, 실제로는 시장충격·슬리피지·미체결이 수익을 갉아먹은 것. 백테스트와 실거래의 괴리에서 집행이 큰 몫을 차지한 전형적 사례입니다.
12. 흔한 오해 5가지 · 자주 묻는 질문
오해
- "시장 가격은 하나의 숫자다."
- "큰 주문도 시장가면 한 번에 깔끔히 체결된다."
- "집행 알고를 쓰면 더 싸게(유리하게) 살 수 있다."
- "개인도 무조건 VWAP 같은 알고를 써야 한다."
- "집행만 잘하면 수익이 난다."
사실에 가까운 이해
- 가격은 호가창에 계단처럼 쌓인 여러 가격이다.
- 큰 시장가는 호가를 훑어 올려 스스로 값을 민다(시장충격).
- 집행은 '비용을 줄이려는' 시도지 유리한 체결을 보장하지 않는다.
- 내 주문이 시장에 비해 작으면 대개 불필요 — 과잉 설계 주의.
- 집행은 비용을 줄이는 방패일 뿐, 없던 수익을 만들지 않는다.
집행 알고리즘이 전략 알고리즘과 다른 게 뭔가요?
대답하는 질문이 다릅니다. 전략은 '무엇을, 어느 방향으로, 언제 살까'를 판단하고, 집행은 그렇게 정해진 주문을 '어떻게 시장을 덜 흔들고 좋은 평균가로 체결할까'를 다룹니다. 전략이 '무엇을 살지'라면 집행은 '어떻게 잘 살지'입니다. 소액 한 종목을 한 번에 사는 개인에겐 집행이 크게 문제되지 않지만, 주문이 호가 물량에 비해 커지거나 시장이 얇을수록 집행이 성과를 좌우하는 별도의 문제가 됩니다. 두 알고 모두 미래 수익을 보장하지 않으며, 집행이 좋아도 전략 판단이 틀리면 손실은 손실입니다.
큰 주문을 한 번에 내면 왜 손해인가요?
가격이 하나가 아니라 호가창에 여러 가격으로 물량이 쌓여 있기 때문입니다. 시장가로 큰 수량을 한 번에 사면 가장 싼 물량부터 위로 훑어 올라가며 체결돼, 나중 수량일수록 비싸게 사지고 내 주문이 값을 밀어 올립니다(시장충격). 그래서 큰 주문을 여러 조각으로 나눠 시간을 두고 내보내 충격을 줄이려 합니다. 다만 천천히 내는 동안 시장이 반대로 움직이면 그것도 비용이라, 집행엔 '빨리 vs 천천히'의 트레이드오프가 늘 존재합니다. 그 정도는 종목·시장·시점마다 다르며 특정 손익을 예측할 수 없습니다.
TWAP와 VWAP는 각각 무엇이고 어떻게 다른가요?
둘 다 큰 주문을 시간에 걸쳐 쪼개 내지만 '어떻게 쪼개느냐'가 다릅니다. TWAP(시간가중평균가)는 정해진 시간 동안 대체로 균등하게 나눠 냅니다 — 단순하고 예측 가능하지만 거래량 흐름은 고려하지 않습니다. VWAP(거래량가중평균가)는 거래가 많은 시간대에 더 많이, 한산할 때 더 적게 배분해 시장의 거래량 리듬을 따라갑니다. 어느 쪽이 항상 낫다고 할 수 없고 상황·목적에 따라 고릅니다. 둘 다 유리한 체결이나 수익을 보장하지 않으며, 거래소·증권사마다 지원 여부와 동작이 다르므로 공식 문서를 확인해야 합니다.
개인 투자자에게도 집행 알고리즘이 필요한가요?
솔직히, 유동성 풍부한 대형 종목·메이저 코인을 소액으로 사고파는 개인에겐 효용이 크지 않습니다. 시장충격이 미미하기 때문입니다. 집행이 중요해지는 건 주문이 호가 물량에 비해 클 때, 또는 소형주·상장 초기 코인·한산한 시간대처럼 조금만 사도 값이 밀리는 얇은 시장일 때입니다. 이럴 땐 소액이라도 단순 분할 주문이 도움이 됩니다. 봇이 여러 종목·전략을 동시에 굴리거나 리밸런싱으로 많은 주문을 낼 때도 마찬가지입니다. 기준은 '내 주문이 시장에 비해 큰가, 시장이 얇은가'이며, 무조건 복잡한 집행 알고를 넣는 게 답은 아닙니다 — 과한 설계는 비용과 복잡성만 키웁니다.
아이스버그(빙산) 주문은 무엇인가요?
큰 주문의 전체 수량을 호가창에 다 보여주지 않고, 작은 일부만 드러내고 나머지는 숨겨 두는 방식입니다. 빙산이 일각만 보이는 데서 이름이 왔습니다. 보이는 물량이 체결되면 숨겨 둔 다음 조각이 자동으로 다시 올라옵니다. 큰 주문을 통째로 노출하면 다른 참여자가 미리 반응해 값이 불리해질 수 있는데, 아이스버그는 그 노출을 줄이려는 기법입니다. 다만 완벽한 은폐는 아니며 반복 패턴으로 존재가 추정되기도 합니다. 지원 여부·최소 노출 수량 등은 거래소·증권사마다 달라 공식 문서 확인이 필요하고, 이 기법도 유리한 체결이나 수익을 보장하지 않습니다.
집행이 잘 됐는지는 어떻게 평가하나요?
보통 기준가(벤치마크) 대비 평가합니다. 그 시간대 시장의 거래량가중평균가(VWAP)와 내 평균 체결가를 비교하거나, 주문을 내기로 결정한 순간의 가격(결정가)과 최종 평균 체결가의 차이 — 구현 손실을 봅니다. 여기엔 시장충격·수수료·미체결로 놓친 부분·시간 경과에 따른 가격 변화가 모두 반영됩니다. 핵심은 '수익이 났는가'가 아니라 '정해진 거래를 비용 낮게 실행했는가'를 본다는 점입니다. 집행 평가는 백테스트에서 과소평가되기 쉬우니, 실계좌에서 결정가와 실제 체결가를 기록해 지속 점검하는 게 좋습니다. 어떤 지표도 미래 체결 품질이나 수익을 보장하지 않으며, 기준은 전략·시장에 맞게 정하고 검증해야 합니다.
'어떻게 잘 사고파느냐'까지 설계에 넣어 드립니다
좋은 자동매매는 '무엇을 살까'만큼이나 '정해진 걸 어떻게 잘 집행하느냐'가 중요합니다. 어떤 시장에서 어느 규모로 매매하려는지 알려주시면, 위 '집행 사양 6줄'을 함께 정하고 분할 주문·미체결 처리·슬리피지 한도·집행 기록까지 설계에 넣어 제안드립니다. 종목 추천이나 수익 보장이 아니라 '비용 관리와 검증'입니다. 24시간 빠른 답변 가능합니다.
상담 문의하기 →