
Portfolio Construction as Linearly Constrained Separable Optimization
Nicholas Moehle, Jack Gindi, Stephen Boyd, Mykel Kochenderfer
최적화 프로그램은 '1주' 단위를 모르고, 세금도 모릅니다. 그런데 현실의 포트폴리오는 1주 단위이고 세금이 붙습니다 — 2021년, 스탠퍼드 연구진은 이 간극을 수백 밀리초 만에 메우고 답의 품질까지 보증하는 방법을 내놓았습니다.
들어가며: 계란 1개만 사고 싶은데, 계란판만 팝니다
마트에서 계란을 살 때를 생각해 봅시다. 레시피에는 계란 2.5개가 필요하지만, 마트는 계란판 단위로만 팝니다. 게다가 계란을 사면 영수증에 세금이 붙고, 이미 냉장고에 있는 계란을 먼저 쓰면(손실을 실현하면) 절세가 되기도 합니다. 현실의 쇼핑은 "이론적으로 필요한 만큼"이 아니라 쪼개지는 단위, 세금, 이미 갖고 있는 것이라는 제약 덩어리 속에서 이루어집니다.
주식 투자도 정확히 같습니다. 교과서의 포트폴리오 최적화(마코위츠, 1952)는 "종목별 비중을 소수점 아래 원하는 만큼" 조정할 수 있다고 가정합니다. 하지만 실제 계좌에서는 주식을 1주 단위로만 사고팔 수 있고, 어떤 종목은 최소 100주 이상 사야 하고, 팔면 양도차익 세금이 붙으며, 종목별로 최소 보유 금액을 지켜야 합니다. 큰 기관 계좌라면 이런 게 '오차'로 묻히지만, 로보어드바이저나 SMA(별도 관리 계좌)처럼 작은 계좌를 수천 개 운영하는 곳에서는 이 제약들이 곧 비용입니다.
2021년 3월에 발표된 이 글의 주인공 — Portfolio Construction as Linearly Constrained Separable Optimization(Moehle, Gindi, Boyd, Kochenderfer, arXiv:2103.05455) — 은 바로 이 "지저분한 현실"을 정면으로 다룹니다. 그리고 이 연구는 우리 OHSE AI Lab의 KB 기준 S등급(복합점수 80.6)으로 평가된, 실무 적용성이 특히 뛰어난 논문입니다. 이 글은 그 논문을 처음부터 끝까지 쉽게 풀어쓴 단독 리뷰입니다.
무엇이 문제였나: 매끈한 문제는 빠르지만, 현실은 울퉁불퉁합니다
최적화 이론에서 문제가 "볼록하다"는 것은, 직관적으로 말해 골짜기가 하나뿐인 매끈한 그릇이라는 뜻입니다. 그런 문제는 빠르고 확실하게 풀립니다. 포트폴리오 최적화의 기본형(평균-분산 최적화)도 이런 좋은 성질을 가졌고, 포지션 한도 같은 제약을 넣어도 볼록함이 유지되면 계산은 여전히 신속합니다.
그런데 현실의 제약들은 이 매끈함을 깨뜨립니다.
- 정수 주식 제약: 비중 3.33%가 아니라 3주, 33주처럼 정수여야 합니다.
- 최소 거래·보유 단위: 너무 작은 주문은 금지됩니다.
- 양도차익 세금: 이익을 실현하는 거래에는 세금이 붙어, "이득이 크면 클수록 페널티가 커지는" 비용 곡선이 됩니다. 이미 가진 주식의 매입가(기준가)에 따라 곡선의 모양이 종목마다 다릅니다.
이 세 가지는 모두 종목별로 따로따로(separable) 붙지만, 문제 전체를 울퉁불퉁하게 만듭니다. 전통적인 해결책은 이를 혼합정수 최적화 문제로 바꿔 푸는 것인데, 보통은 빠르지만 가끔은 평소의 수백 배까지 느려지는 "운" 문제가 있습니다. 리밸런싱이 정해진 시각에 맞춰 나가야 하는 실무에서 "가끔 멈추는" 계산 엔진은 쓸 수가 없습니다. 게다가 계산이 끝나도 "이 답이 진짜 최적에 얼마나 가까운지"는 알기 어렵습니다.
핵심 아이디어: 쪼개서 풀고, 우산으로 덮어 보증한다
1단계 — 문제를 "자산별로 쪼개기"
논문의 첫 번째 묘안은 문제의 구조를 다시 쓰는 것입니다. 포트폴리오 비용을 자산별 조각들의 합으로 쓰고, 종목들을 연결하는 고리는 몇 개 되지 않는 등식 제약(예: "총 투자 비중은 98~99% 사이")으로 표현하는 겁니다. 이렇게 하면 문제는 "각자 따로인 비용 함수들 + 하나의 연결 고리"라는 형태가 됩니다. 저자들은 이를 분리-아핀(separable–affine) 문제라고 부릅니다.
왜 이렇게 할까요? 울퉁불퉁한 비용 함수가 자산별로 분리되어 있으면, 계산 알고리즘이 각 종목의 복잡한 비용 곡선을 "종목당 몇 번의 사칙연산"만으로 처리할 수 있기 때문입니다. 세금이든 정수 제약이든, 각 종목에게 필요한 계산은 놀라울 정도로 단순합니다.
2단계 — ADMM: 스터디 모둠처럼 각자 풀고 답안지만 맞추기
이 형태의 문제를 푸는 표준적인 강력한 도구가 ADMM(교대 방향 승수법)입니다. 비유하자면 이렇습니다. 모둠 스터디에서 각 멤버(자산)가 자기 문제를 각자 풀고, 조장이 "전체 합계만 맞아야 한다"는 답안지만 확인해서 돌려주는 과정을 반복하는 겁니다. 각 멤버의 문제 풀이는 근접 연산자(proximal operator)라는 단순 계산이고, 조장의 확인은 미리 계산해 둔 하나의 선형 시스템을 다시 쓰는 것이라 아주 빠릅니다.
물론 ADMM은 이 울퉁불퉁한 문제에서 "반드시 최적해에 수렴한다"는 보장을 주지 못합니다. 원래 이 알고리즘의 보장은 볼록한 문제에 대한 것입니다. 그래서 논문은 세 번째, 가장 인상적인 단계로 넘어갑니다.
3단계 — "성능 보증서": 볼록 우산으로 하한 구하기
각 종목의 울퉁불퉁한 비용 곡선을, 그 곡선을 아래에서 포근하게 덮는 가장 낮은 볼록 곡선(convex envelope, 볼록 포락)으로 바꿔 보는 겁니다. 오목한 계곡 위를 우산으로 덮으면, 우산 아래에 진짜 최저점이 있다는 것을 알 수 있는 것과 같습니다. 이렇게 덮은 문제는 볼록하기에 신뢰할 수 있는 최적값이 나오고, 이 값은 원래 문제 최적값의 하한이 됩니다.
결국 다음 구조가 완성됩니다.
하한 d* ≤ 진짜 최적값 p* ≤ ADMM이 찾은 해 p_admm
ADMM의 답과 하한 사이의 갭은 "이 휴리스틱이 최악으로 얼마나 실수할 수 있는가"를 정량적으로 말해 줍니다. 휴리스틱을 쓰되, 휴리스틱의 오차를 계산해 주는 보증서를 함께 발급하는 설계입니다. 저자들은 조각 이차 함수(포트폴리오에서 자주 나오는 곡선 유형)에 대한 볼록 포락을 빠르게 계산하는 재귀 알고리즘도 함께 제시합니다.
결과: 692개 문제 전부 수렴, 오차 평균 0.6 베이시스포인트
저자들은 자기들이 만든 도구를 "진짜에 가까운 문제"에 시험했습니다. 미국 주식 지수(S&P 500)를 추적하면서 세금을 인식하는 패시브 전략의 백테스트를 2002년 8월부터 2019년 8월까지 204개월치 돌리고, 12개의 6년짜리 구간에서 매달 리밸런스 최적화 문제를 하나씩 저장했습니다. 이렇게 모인 문제가 692개입니다. 각 문제는 스프레드 비용, 종목당 고정 거래비, 양도차익 세금 페널티, 정수 주식·최소 거래 단위 제약을 모두 포함한, 제목 그대로의 "지저분한" 문제였습니다.
실험 설정을 그대로 옮기면 이렇습니다. 위험 대비 계수 γ_risk = 100, 종목당 고정 비용 c_hld = c_trd = 3×10⁻⁵, 세금 계수 γ_tax = 1. 포트폴리오는 S&P 500 중 200300종목을 보유하고 한 달에 약 30종목을 거래하며, 투자 비중은 9899%로 유지합니다(나머지는 현금). 포트폴리오의 활성 위험은 0.5~1% 수준입니다.
결과는 인상적입니다.
| 지표 | 결과 |
|---|---|
| 수렴 | 692개 문제 전부 수렴 |
| 최적성 갭 (ADMM 해 − 하한) | 0~10bp, 평균 0.6bp, 표준편차 1.1bp |
| 문제 값 자체의 범위 | −1,028bp ~ 184bp (평균 94bp, 표준편차 57bp) |
| 계산 시간 — 비볼록 원문제 | 평균 251ms (표준편차 159ms) |
| 계산 시간 — 볼록 이완 문제(하한 계산) | 평균 152ms (표준편차 67ms) |
해석해 보죠. ADMM이 찾은 답과 이론적 하한의 거리는 평균 0.6 베이시스포인트(0.006%)입니다. 문제 값 자체가 수백 베이시스포인트 단위로 흔들리는 와중에 나온 수치라, "거의 최적에 근접한 답을 매번 빠르게 낸다"는 뜻입니다. 하한까지 포함해도 0.1초대에 끝나므로, 리밸런싱 시각에 맞춘 실시간 계산 엔진으로 충분한 속도입니다. 초록에서는 이 방법이 약 1,000종목·100팩터 규모에서도 수십~수백 밀리초에 풀린다고 주장합니다(다만 실제 실험은 스탠 500 근방 규모였던 점은 나중에 짚겠습니다).
또 하나 흥미로운 관찰이 있습니다. 존슨앤존슨, 와이어스, 메드트로닉 세 종목의 비용 곡선을 그려 보면, 보유 수량 0 부근(보유 고정비)과 현재 보유량 부근(세금으로 인한 비볼록한 꺾임)에 울퉁불퉁한 지점이 있습니다. 그런데도 이 곡선들을 볼록 우산으로 덮은 곡선이 원곡선에 상당히 밀착해 있습니다. 하한과 실제 해의 갭이 작게 나온 이유가 바로 이것입니다 — 이 문제의 비볼록함은 생각보다 "다루기 쉬운" 형태였고, 논문의 이론적 장치가 그 성질을 정확히 포착한 겁니다.
한계와 주의점
정직하게 짚어야 할 부분입니다.
- ADMM은 비볼록 문제에서 수렴을 보장하지 못하는 휴리스틱입니다. 논문 스스로 명시합니다. 다만 앞서 본 것처럼 하한을 함께 계산하므로 "최악의 실수"를 사후에 검증할 수 있다는 것이 이 논문의 핵심 방어선입니다. 보증서 없는 휴리스틱과는 다른 셈이죠.
- 정수 주식 제약을 그대로 만족하는 해를 보장하지는 않습니다. 비볼록 항을 볼록 포락으로 이완해 처리하므로, 최종 해가 실제로 정수 조건을 만족하는지는 별도 확인이 필요합니다.
- 실험은 미국 세제와 SMA(별도 관리 계좌) 맥락에 특화되어 있습니다. 양도차익 세금, wash sale(손실 실현 후 30일 내 재매입 제한) 같은 미국 제도가 비용 함수의 형태를 결정합니다. 한국의 양도소득세 구조(대주주 요건, 산식이 다름)에서는 비용 함수를 다시 설계해야 합니다.
- "1,000종목"이라는 초록의 주장은 실험이 아닌 일반화된 스케일입니다. 실제 검증은 스탠 500 유니버스의 200~300종목 보유 포트폴리오였습니다.
- 논문 본문 첫 장에 "전문 투자자 대상, 비공개 배포, 허가를 받아 게시" 표기가 있는 배포판이며(2021년 3월 초판, 2022년 7월 개정판), 학회 논문 형태의 동료심사 여부는 원문에서 확인되지 않습니다. 아이디어와 실험의 질 자체는 스탠퍼드 최적화 그룹의 이름값 이상으로 탄탄합니다.
2026년 지금 시점에서 이 연구가 갖는 의미
이 논문은 외딴 곳에 선 고립된 연구가 아닙니다. 같은 그룹의 "Tax-Aware Portfolio Construction via Convex Optimization"(Moehle, Kochenderfer, Boyd, Ang, Journal of Optimization Theory and Applications 189(2), 2021)에서 세금 인식 최적화의 기본 틀이 먼저 정리됐고, "Multi-Period Trading via Convex Optimization"(Boyd 외, 2017)이 다기간 운용의 틀을, OSQP 솔버 연구(Stellato 외, 2020)가 이 논문의 z 스텝이 쓰는 "인수분해 캐싱" 기법의 실전 구현을 각각 떠받칩니다. 즉 이 논문은 성숙한 연구 계보의 실무 결정체입니다.
발표 이후 지금까지, 세금 인식 리밸런싱은 로보어드바이저·SMA 플랫폼의 표준 기능이 되었고, "빠른 휴리스틱 + 하한으로 품질 인증"이라는 설계 패턴은 최적화 엔지니어링의 상식에 가까워졌습니다. 새로울 것 없는 이야기처럼 들리겠지만, 정확히 그렇기 때문에 이 논문이 중요합니다 — 이 패턴을 가장 깔끔하게 정리한 기준 문서가 바로 여기 있기 때문입니다.
그래서 투자/실무엔?
- 작은 계좌일수록 이 논문의 세계가 직접 적용됩니다. 세금·정수 주식·최소 거래 단위는 대형 기관에는 오차지만, 소규모 자기자본 계좌에는 곧 비용입니다. 세금 인식 리밸런싱 엔진의 설계 근거로 그대로 쓸 수 있습니다.
- "답을 내는 것"과 "답이 좋은지 아는 것"을 분리하지 마세요. 이 논문은 휴리스틱을 쓰면서도 하한을 계산해 오차를 보고합니다. 실전 운용에서 전략의 실행 품질을 이처럼 정량 보고하는 습관은 신뢰성의 기본입니다.
- 계산 속도는 전략의 자유도를 늘립니다. 수백 밀리초 안에 풀리면, 월 1회 리밸런스가 아니라 더 자주, 더 많은 시나리오를 돌려볼 수 있습니다. 세금 시나리오(예: 연말 절세 실현) 비교 같은 것도 실시간으로 가능해집니다.
- 다만 제도를 그대로 베끼지 마세요. 비용 함수의 형태가 곧 전략입니다. 국내 세제·거래 단위 규칙에 맞게 비용 함수를 다시 설계하는 작업이 선행되어야 합니다.
더 알아보기
- 📄 원문: arXiv:2103.05455 — Portfolio Construction as Linearly Constrained Separable Optimization (Nicholas Moehle, Jack Gindi, Stephen Boyd, Mykel J. Kochenderfer, 2021)
- 📊 OHSE AI Lab 5차원 점수: 새로움 72 · 적용성 88 · 엄밀성 83 · 재현성 76 · 통찰 78 (복합점수 80.6, S등급) — 적용성 88점이 말해주듯, 이론이 곧바로 엔진이 되는 논문입니다.
- 🏷️ 분과: B3 (포트폴리오 최적화)
- 함께 읽으면 좋은 논문 (같은 달 코호트에서):
- Functional portfolio optimization in stochastic portfolio theory (arXiv:2103.10925) — 순위 기반 포트폴리오를 함수 최적화로 푸는 다른 실용 경로.
- Robustifying Conditional Portfolio Decisions via Optimal Transport (arXiv:2103.16451) — 불확실성을 최적수송으로 다루는 강건 포트폴리오 선택.
- Multi-Period Portfolio Optimization using Model Predictive Control (arXiv:2103.10813) — 여러 기간에 걸친 리밸런싱을 제어 이론으로.
- Portfolio Optimization with Sparse Multivariate Modelling (arXiv:2103.15232) — 추정 오차·비정상성까지 고려한 희소 모형 기반 최적화.
2021년 3월 코호트의 전체 리뷰는 백필 리포트(analysis/reports/backfill/2103.md)에서 확인할 수 있습니다. "더 큰 모델" 경쟁의 한가운데서, 이 달의 최고 성과들은 오히려 더 정직한 제약과 더 정직한 검증에서 나왔습니다.
관련 글
포트폴리오 최적화S2020년 Deep Empirical Risk Minimization in finance: AI 투자 전략이 '미래를 훔쳐보는' 이유
백테스트에서는 대박이 나는데 실전에서는 안 되는 그 이유. 2020년 발표된 이 논문은 딥러닝 투자 모델이 훈련 데이터 안에서 미래 정보를 몰래 암기하는 메커니즘을 이론적으로 증명했습니다. 데이터 규모와 모델 복잡도의 균형으로 과학습을 통제하는 조건까지 쉽게 풀어 설명합니다.
팩터 투자S팩터 t-통계량 임계값을 올려야 할까? 2022년 출판편향 연구의 답
수백 개 팩터를 검증하다 보면 거짓 신호가 섞이기 마련이고, 학계는 't-통계량 임계값을 올리자'고 제안했습니다. 그런데 2022년 논문은 그 임계값 자체가 데이터로는 정해질 수 없다는 놀라운 결론을 내립니다. 대신 써야 할 지표가 무엇인지, 퀀트 실무에 어떻게 적용하는지 쉽게 풀어 설명합니다.
포트폴리오 최적화A포트폴리오 최적화, 어렵게 풀 필요 없이 LASSO 한 번으로 — 효율적 프런티어의 놀라운 등가성
머신러닝에서 흔히 쓰는 변수 선택 도구 LASSO가 마코위츠의 효율적 프런티어를 그대로 그려 준다는 연구를 쉽게 풀어 설명합니다. 포트폴리오 최적화 계산이 왜 수십 배 빨라지는지, 그리고 주의할 한계까지 정리합니다.