월간 모멘텀 전략은 자산 순위를 정확히 매기고도 거래 비용을 터무니없이 낮게 보고할 수 있습니다. 빠진 단계는 리밸런싱입니다. 기존 보유 자산과 오늘의 목표 비중을 실제 주문으로 바꾸는 과정이죠. 손으로 검산할 수 있을 만큼 단순한 수치를 사용해 유동성이 높은 암호화폐 현물 자산 4개로 작은 사례를 살펴보겠습니다.
포트폴리오 규모가 $100,000이고 공매도 없이 매월 리밸런싱한다고 가정해 보겠습니다. 직전 수익률 기준 상위 2개 자산을 같은 비중으로 보유합니다. 직전 리밸런싱 때는 A와 B를 각각 $50,000어치 보유했습니다. 한 달 뒤 가격이 움직여 포트폴리오 가치는 $110,000이 됐습니다. A의 가치는 $60,000, B는 $50,000입니다. 새 순위에서는 B와 C가 상위 2개에 들었고, C는 아직 보유하지 않은 자산입니다.
순위 행: 포트폴리오에 어떤 자산을 담을까?
신호는 B와 C를 각각 50% 비중으로 보유하라고 합니다. 현재 포트폴리오 가치에 적용하면 각 자산의 목표 보유액은 $55,000입니다. 순위 변화는 어떤 자산을 보유할지 알려주지만, 얼마나 거래해야 하는지는 알려주지 않습니다. 거래 규모는 리밸런싱 직전 보유 자산에 따라 달라집니다.
| 자산 | 현재 가치 | 목표 가치 | 주문 |
|---|---|---|---|
| A | $60,000 | $0 | $60,000 매도 |
| B | $50,000 | $55,000 | $5,000 매수 |
| C | $0 | $55,000 | $55,000 매수 |
| 합계 | $110,000 | $110,000 | 총 거래액 $120,000 |
눈에 잘 띄지 않는 점이 있습니다. B는 포트폴리오에 계속 남지만 비중을 원래대로 맞추려면 $5,000 주문이 필요합니다. 신규 편입과 편출만 거래하는 백테스트는 이 비중 조정을 놓칩니다.
주문 행: 회전율은 얼마나 발생했을까?
총 거래 명목액은 매수와 매도 금액의 합입니다. $60,000 + $5,000 + $55,000 = $120,000입니다. 이를 포트폴리오 가치 $110,000으로 나누면 이번 리밸런싱의 총 회전율은 109.1%입니다. 전략이 편도 회전율을 보고한다면 매도와 재투자를 한 번의 회전으로 계산해 2로 나눌 수도 있습니다. 어느 기준을 써도 되지만, 기준을 명확히 밝히고 그에 맞는 비용 계산식을 사용해야 합니다.
모든 주문이 건당 0.10% 수수료가 붙는 taker 체결이라고 가정해 보겠습니다. 수수료는 $120입니다. 편도 가격 충격을 0.15%로 가정하면 예상 충격 비용이 $180 추가됩니다. 리밸런싱 총비용은 $300, 즉 포트폴리오 가치의 약 27bp입니다. 총 거래 명목액에서 0.25%를 한 번 빼도 여기서는 $300이 나옵니다. 이 간편 계산은 거래된 금액 전체에 수수료와 가격 충격 가정을 일관되게 적용했기 때문에 성립합니다.
이 수치는 실제 체결 내역이 아니라 가정입니다. 가격 충격은 보통 주문 규모와 시장 거래량의 상대적 크기에 따라 달라지므로, 단일 고정 비율을 적용하면 큰 주문의 비용을 크게 잘못 계산할 수 있습니다. 유동성이 풍부한 시장에서는 $55,000 매수가 수월할 수 있지만, 거래가 뜸한 토큰에서는 같은 주문이 호가창을 밀어 올릴 수 있습니다. 전략이 순위만으로 매매 규모를 정하면 가장 유동성이 낮은 종목에 거래가 몰릴 수도 있습니다.
타이밍 행: 전략은 실제로 어떤 가격에 거래할 수 있을까?
이 예시에는 또 다른 함정이 있습니다. 순위 산정에 월말 종가를 쓴다면 그 가격은 장 마감 후에야 확정됩니다. 완성된 순위를 확인하면서 동시에 그 종가에 거래할 수는 없습니다. 타당한 시뮬레이션 방법 하나는 종가 기준으로 목표 비중을 계산하고 다음 거래일 시가에 체결한 뒤, 그 주문에 비용을 부과하는 것입니다. 연중무휴 거래되는 암호화폐라면 기준 시각과 그 이후의 체결 구간을 정해야 합니다. ‘월말 종가’에는 시간대와 실제 주문 시각이 필요합니다.
이 지연은 보유 자산과 주문 규모를 바꿀 수 있습니다. 체결 전에 A가 더 오르면 매도 금액이 늘고, C가 급등하면 매수 비용이 커집니다. 주문을 넣는 시점의 포트폴리오 가치와 실제 체결 가능한 가격을 기준으로 목표 수량을 다시 계산해야 합니다. 종가 기준 목표 금액을 고정한 채 체결 시점만 늦추면 목표 비중이 모르는 사이에 달라집니다.
원장 행: 비용이 포트폴리오 가치를 줄이는가?
체결 후 현금 잔고나 자기자본에서 $300을 차감합니다. 이후 시장이 움직이기 전 포트폴리오 가치는 $109,700입니다. 시뮬레이터가 수익률에서는 비용을 빼면서 현금은 그대로 두면, 이미 지출한 금액을 이후 주문에 다시 쓸 수 있게 됩니다. 주문, 체결, 수수료와 보유 자산을 같은 원장에서 관리해야 합니다. 그러지 않으면 다음 리밸런싱이 실제로 존재한 적 없는 포트폴리오를 기준으로 시작할 수 있습니다.
이 예시라면 자산별로 신호 시각, 목표 비중, 거래 전 보유량, 주문 명목액, 체결 가격, 수수료와 가격 충격 추정치를 저장하겠습니다. 그런 다음 계산한 회전율을 체결 명목액의 직접 합계와 비교하겠습니다. 이렇게 검산하면 자주 발생하는 오류를 찾아낼 수 있습니다. 보유 자산의 비중 변화를 빠뜨리는 오류, 편도 회전율에 비용을 2번 부과하는 오류, 목표 비중을 실제 체결 결과처럼 다루는 오류입니다.
리밸런싱을 거쳐야 포트폴리오 규칙이 실제 매매로 바뀝니다. 각 변환 과정을 기록하고 원장을 보존하며 회전율 산정 기준을 명확히 하세요. 그러면 백테스트가 덜 매끈해 보일 수 있습니다. 적어도 전략이 실제로 낼 수 있었던 주문을 설명하게 됩니다.
← 전체 글

