최적화 스터디: Equity Portfolio Selection in Practice
해당 게시글은 SIMULATION AND OPTIMIZATION IN FINANCE 원서를 리뷰한 글입니다.
이 장에서는 다양한 제약을 포함하여 투자 프로세스를 반영하는 법에 대해 소개한다.
9.1 THE INVESTMENT PROCESS
포트폴리오 관리는 크게 4가지 활동으로 구성된다.
- 투자 목표 설정
- 포트폴리오 전략 개발 및 실행
- 포트폴리오 모니터링
- 포트폴리오 조정
9.1.2 Developing and Implementing a Portfolio Strategy
일반적으로 서로 다른 자산군 간의 포트폴리오 배분은 사전에 결정되며, 그 후에는 각 포트폴리오 매니저가 각 자산군의 하위집합을 관리하게 된다.
포트폴리오 전략 구현은 다음과 같은 작업으로 이루어진다.
- 투자 전략 유형 선택
- 포트폴리오 구성을 위한 입력 데이터 공식화
- 포트폴리오 구성
※ 투자 전략 유형 선택
포트폴리오 전략은 패시브 전략과 액티브 전략으로 분류할 수 있다.
액티브 전략은 포트폴리오 매니저의 역량이 매우 중요한 전략으로, 매니저의 직관 및 모델이 제공하는 정보를 직접 활용한다.
반면 패시브 전략은 최소한의 관리만을 필요로 하는 전략이며, 대표적인 전략이 indexing으로 특정 지수를 그대로 추종하는 형태의 전략이다.
※ 포트폴리오 구성을 위한 입력 데이터 공식화
액티브 퀀트 전략에서 성과에 영향을 미칠 것으로 예상되는 입력 값을 예측하는 과정을 의미한다.
MVO의 경우라고 한다면 기대수익률과 공분산을 추정하는 과정이 이에 속한다.
※ 포트폴리오 구성
위 과정을 통해 얻은 정보를 기반으로 매니저는 매력적인 투자를 식별하고 포트폴리오를 구성한다.
9.1.3 Monitoring the Portfolio
포트폴리오가 구성된 후에는 모니터링 작업이 필수적이다. 이는 두가지 활동을 포함하는데,
- 시장 변화가 있었는지를 확인하여 포트폴리오를 구성하는 데 사용된 주요 입력값 추정에 문제가 없는지 확인
- 포트폴리오의 성과 모니터링
- 특정 기간동안 관리자가 실현한 수익률 계산
- 매니저의 역량으로 얻은 성과인지 확인
→ 이렇게 성과를 쪼개서 설명하는 것을 Return Attribution이라고 한다.
9.1.4 Adjusting the Portfolio
포트폴리오를 상황에 따라 재조정을 해주는 과정이다.
자본 시장의 변화를 모니터링하여 추정하는 입력값을 수정해야 하는지를 거래비용과 세금을 반영하여 평가해야 한다.
9.2 PORTFOLIO CONSTRAINTS COMMONLY USED IN PRACTICE
다양한 투자 정책으로 인해 실제로는 단순히 리스크 최소화, 수익 극대화보다 더욱 복잡한 요구사항들이 존재하는데, 대표적으로 거래횟수, 특정 산업에 대한 노출, 포트폴리오에 들어갈 주식 수에 대한 제약이 존재한다.
9.2.1 Long-Only (No-Short-Selling) Constraints
가장 대표적인 제약 중 하나로, 공매도에 대한 제한이 있을 경우, 포트폴리오 최적화의 제약식에는 각 자산의 가중치에 대한 식 $w \geq 0$ 이 포함된다.
9.2.2 Holding Constraints
다각화 원칙은 포트폴리오의 많은 비중을 특정 산업 또는 특정 자산에 집중시키지 않도록 하는 것이다. 특정 자산에 대한 제한은 $l \geq w \geq u$ 로 설정할 수 있으며, 이때 l과 u는 각각 주식 보유량의 하한, 상한 벡터이다.
9.2.3 Turnover Constraints
포트폴리오의 turnover가 높으면 포트폴리오 리밸런싱이 비효율적이고 거래비용이 많이 들 수 있다.
따라서 포트폴리오 매니저는 포트폴리오를 거래할 때 허용되는 turnover에 대한 제약을 주는데, 다음과 같이 설정해줄 수 있다.
$|w_i - w_{0,i}| \leq u_i$
즉 포트폴리오 내 자산의 초기 가중치와 최종 가중치 간 차이가 특정 범위 이상으로 벗어나지 않게 하는 것이며, turnover 제약은 보통 주식의 평균 일일 거래량(ADV)을 기준으로 부과된다.
ex. turnover를 ADV의 5%를 넘지 않도록 제한.
9.2.4 Risk Factor Constraints
실무에서 포트폴리오 매니저들은 서로 다른 리스크 팩터에 대한 위험 노출을 통제하기 위해 팩터 모델을 사용한다.
주식 i의 수익률이 k개의 리스크 팩터를 가진 팩터모델으로 이루어진다고 가정하면, 이는 다음과 같다.
$\beta$ 는 각 주식이 해당 팩터에 얼마나 민감한지를 알려주며, $\alpha_i$ 는 각 주식이 해당 팩터들로부터 설명되지 않는 초과수익을, $\epsilon_i$ 는 각 주식의 특이적(or 비체계적) 수익을 의미한다.
이때 k번째 리스크 팩터에 대한 노출을 제한하기 위해 포트폴리오 매니저는 다음과 같이 제약을 추가할 수 있다.
$\sum_{i=1}^N \beta_{ik} \cdot w_i \leq U_k$
포트폴리오가 특정 팩터 k에 민감한 정도를 보기 위해 각 자산이 팩터 k에 노출되어 있는 정도를 파악해야 하며, 대표적으로 사용되는 제약으로는 시장 팩터에 대한 노출이 0이 되도록 하여 market neutralization을 해주는 것으로, 식은 다음과 같다.
$\sum_{i=1}^N \beta_{iM} \cdot w_i = 0$
9.2.5 Cardinality Constraints
또다른 제약으로 카디널리티 제약이 있는데, 이는 포트폴리오에 들어갈 자산의 수를 제한하는 것이다.
이를 위해 N개의 포트폴리오 내 주식 각각에 대한 이진 변수를 도입한다.
주식 i가 포트폴리오에 포함되면 1, 포함되지 않으면 0을 가지도록 하며, K개의 주식만을 포함하고 싶다고 할 때 카디널리티 제약식은 다음과 같다.

여기에 롱온리 제약까지 포함된다면 제약식은 $0 \leq w_i \leq \delta_i$ 로 설정할 수 있다.
반면 공매도가 허용될 경우에는 big M을 도입하여 $−M·δ_i ≤ w_i ≤ M·δ_i$ 로 설정 가능하다.
9.2.6 Minimum Holding and Transaction Size Constraints
카디널리티 제약과 함께 사용되는 것이 최소 보유/거래 제약인데, 이는 포트폴리오에서 보유 또는 거래할 수 있는 주식의 최소량을 설정하여 소규모 거래를 제거하는 방식이다.
이 또한 거래비용을 줄이는 것을 목표로 하며, 포트폴리오에서 보유할 주식의 양에 대한 제약은 다음과 같이 나타낼 수 있다.
$|w_i| ≥ L_i · δ_i$
이때 $L_i$ 는 주식 i에 대해 허용되는 최소 보유 규모이며, $\delta_i$ 는 이진 변수로, 주식 i가 포트폴리오에 포함되면 1, 아니면 0이다.
주식 i에 대한 최소 거래 금액에도 제약을 부과할 수 있다.
$|w_i − w_{0,i}| ≥ L_{trade} \cdot \delta_i$
문제는, 이러한 이진 변수를 추가한 최적화 문제는 해결하기 더 어렵기 때문에 계산 시간이 매우 많이 증가한다. 실제로 포트폴리오 매니저들도 최적화 과정에서 이러한 제약을 생략하고 수동으로 직접 자산의 가중치를 조절하는 방식을 사용하기도 한다.
9.2.7 Round Lot Constraints
실제로 주식은 최소 거래 단우 또는 묶음 단위로 거래된다. 따라서 이를 위한 제약조건이 필요하다.
정수를 가지는 결정변수 $z_i$ 를 도입하여 다음과 같이 나타낼 수 있다.
$w_i = z_i · f_i$
이때 $f_i$ 는 달러, 즉 투자할 금액을 의미한다.
기존의 제약조건이었던 예산 제약식 $w′ι=1$ 은 사실상 $\sum_{i=1}^N z_i \cdot f_i = 1$ 인데, 이는 서로 다른 예산 규모를 가지기 때문에 정확히 1이 되지 않을 수 있다.
→ 따라서 예산 제약을 완화함. $w′ι ≤ 1$
또는 두 개의 비음수 결정변수를 도입하는 방법도 존재한다.
$\sum_{i=1}^N z_if_i + \epsilon^- - \epsilon^+ = 1$
$\epsilon^- \geq 0 \quad \epsilon^+ \geq$
이후 목적함수에 다음을 추가한다(패널티항).
$λ_{rl} · (ε^− + ε^+)$
9.3 BENCHMARK EXPOSURE AND TRACKING ERROR MINIMIZATION
기존의 MVO에서 수행한 기대수익률 극대화, 리스크 최소화는 액티브 투자의 한 예이다.
반면, 패시브 투자는 시장을 이길 수 있는 전략은 거의 없다고 주장하며, 일반적으로 특정 지수들을 잘 추정하도록(tracking error가 작게) 구성된다.
9.3.1 Standard Definition of Tracking Error
패시브 투자 전략을 위해, 목적함수에 벤치마크에 대한 tracking error를 최소화하는 식을 넣어줘야 한다.
벤치마크 포트폴리오의 가중치를 $w_b$ 라고 한다면, tracking error는 다음과 같다.
$TE = Var(w’ \tilde r - w_b’ \tilde r) = (w−w_b)’ \sum (w−w_b)$
어떤 매니저들은 단순한 인덱스 펀드보다 추가적인 알파를 노리는 인핸스드 알파 전략을 원할 수 있는데, 이럴때는 목적함수가 아닌 제약식 형태로 추적 오차를 설정해준다.
$(w−w_b)’ \sum (w−w_b) ≤ σ_{TE}^2$
9.3.2 Alternative Ways of Defining Tracking Error
Tracking Error 제약을 대체할 수 있는 방법이 있는데, 포트폴리오 가중치가 벤치마크 지수 가중치에서 벗어나는 정도에 대한 제약식을 주는 것.
$|w −w_b|≤u$
또는 총 추적 오차에 대한 제약식을 부과해줄 수도 있다.

CVaR을 사용해서 추적 오차를 관리하는 방법도 존재하는데, 벤치마크 수익률에 대한 S개의 시나리오( $b_s$ )가 주어졌다고 가정하면,
→ 문제는 벤치마크보다 성과가 낮아지는 경우(양수)인데, 표준편차를 쓰면 성과가 더 좋아지는 경우(음수)도 함께 반영하기 때문에 CVaR을 사용하여 이를 제한한다.

여기서 $U_{TE}$ 는 부정적 편차에 대한 상한이며, 이 공식은 벤치마크 대비 양의 편차와 음의 편차를 다르게 취급해주기 때문에 수익을 최대화하는데 도움이 되고, 선형제약식이기 때문에 계산적으로도 더욱 편하다.
9.3.3 Actual vs. Predicted Tracking Error
실무에서 tracking error를 구하기 위해서는 과거 데이터를 활용하는데, 이렇게 계산된 추적 오차를 ex post tracking error, backward-looking error, actual tracking error 라고 부른다.
이러한 방법은 미래 위험을 예측하는 데는 별로 도움이 되지 않기 때문에, 미래의 위험을 예측할 필요가 있다.
가장 대표적인 것은 멀티팩터 모델을 통해 포트폴리오가 어떤 팩터에 노출되어있는지 파악한 후 벤치마크와의 차이를 분석함으로써 추적 오차를 계산한다.
이러한 과정을 사전 추적 오차(ex ante tracking error) 또는 예측 추적 오차(predicted tracking error)라고 한다.
9.4 INCORPORATING TRANSACTION COSTS
거래비용은 일반적으로 explicit(ex. 매매 스프레드, 수수료 및 요금)과 implicit(ex. 가격 변동 위험 비용 및 시장 영향 비용) 으로 구분된다.
실제 포트폴리오 성과를 보기 위해서 거래비용을 반영하는 것은 매우 중요하며, 이 섹션에서 리밸런싱을 위한 몇가지 일반적인 거래비용 모델을 보여준다.
가장 단순한 방법이자 널리 사용되는 모델은 목적함수에 거래비용을 반영한 모델이다.

거래비용에 대한 함수는 비선형 함수이기 때문에 일반적으로 계산 비용이 낮은 함수로 근사되고, 각 개별 주식의 거래비용이 서로 독립적이라고 가정한다.
9.4.1 Linear Transaction Costs
이는 절댓값 항을 결정변수 $y_i$ 로 바꾼 후에 제약조건을 추가해주면 해결하기 쉽게 만들어진다.
9.4.2 Piecewise-Linear Transaction Costs
이번엔 거래비용 함수를 구간별 선형 근사를 도입하여 만들 수 있다.
이런 종류의 함수는 특히 대규모 거래의 경우 단순 선형 비용 함수보다 더 현실적이다(규모가 커질수록 그 거래가 시장에 미치는 영향으로 인해 거래비용이 더 커지기 때문).
위 그림은 특정 증권을 t만큼 거래할 때의 거래비용에 대한 구간별 선형 함수의 예이다.
이 거래 비용 함수는 거래 비용의 증가율이 특정 임계점에서 변화한다고 가정한다.
이를 수학적으로 표현하면 다음과 같다.
이때 $s_1, s_2, s_3$ 는 그래프상에서 세 선형 구간의 기울기이며, MVO의 목적함수에 거래비용에 대한 구간별 선형 함수를 포함시키기 위해서는 구간 수에 해당하는 결정변수를 도입해야 한다.
결정변수 z를 도입하여 목적함수의 패널티항을 다음과 같이 쓸 수 있다.

이는 변수 $y_i$ 를 도입해서 포트폴리오의 주식 i 거래에서 발생하는 거래비용의 양을 나타내도록 할 수 있다.
$y_i = z_{1,i} + z_{2,i} + z_{3,i}$
9.4.3 Quadratic Transaction Costs
또다른 형태는 이차형식으로 나타날 수 있다.
$TC_i(t) = c_i ·|t|+d_i ·|t|^2$
9.4.4 Fixed Transaction Costs
거래비용을 고정한 상태로 진행할 수도 있다.
이때는 각 주식에 이진 변수를 도입하여 해당 종목의 거래금액이 0이면 0을, 아니면 1을 주도록 한다.
9.5 INCORPORATING TAXES
주식을 매도할 때, 투자자는 실현된 순자본 이득에 대해 세금을 납부해야 한다.
세금은 각 투자자마다 거래 실행 시점, 포트폴리오의 세금 기준, 누적된 단기 및 장기 자본이득, 투자자의 세율 구간에 따라 달라진다.
세금은 실제로 포트폴리오 거래로 인한 수수료보다 더 큰 영향을 미치며, 따라서 포트폴리오 매니저는 리밸런싱을 결정할 때 세금 요소를 포함하여 성과를 보고해야 한다.
그러나 세금을 반영하는 것은 다음과 같은 점에서 어려움이 존재한다.
- 포트폴리오의 성과를 해석하는 데 어려움이 있다.
- 세금을 반영하면 포트폴리오가 손실을 겪는 것이 오히려 이익이 되버리는 상황이 발생함.
- 동일한 세금이 아니면 벤치마크를 써도 해석이 어려워짐.
- 세금을 고려하는 것을 수식으로 포함하는 것이 굉장히 복잡함.
- 세금을 반영하려면 다기간 포트폴리오 최적화를 풀어야 하는데, 이 최적화 자체가 계산적으로 매우 어려움.
그래서 실제로는 간단하게 리밸런싱 때마다 가장 오랫동안 가지고 있었던 종목들부터 매도하거나, 인덱스펀드 또는 배당수익률을 최소화하는 전략으로 세금을 관리한다.
세금을 포트폴리오 최적화 과정에 통합하는 프레임워크도 존재하는데, 같은 종목의 거래더라도 거래했던 기간이 다르다면 다른 종목으로 인식하도록 하는 것이다.
→ 그러나 이 경우 다뤄야 할 종목이 기하급수적으로 늘어나기 때문에 한계점이 많음.
9.6 MULTIACCOUNT OPTIMIZATION
포트폴리오 매니저들은 각 고객의 선호 사항, 제약 등을 반영해야 하는데, 실제로는 서로 다른 계정에서 필요한 매매 주문을 한번에 모아서 동시에 처리한다.
또한 매매를 상계할 수도 없는데, 예를들어 한 고객 계좌에서 매도해야 하는 자산을 다른 고객 계좌에서 매수해야 한다고 해서 그걸 그대로 넘길 수가 없다.
→ 각 고객의 거래가 다른 고객의 결과에도 영향을 미치게 되는 원인(거래비용이 높아지기 때문)
따라서 multiaccount 운용을 위해서는 개별 계좌별로 손익을 정확히 반영하고, 거래비용을 공정하게 배분하는 것이 중요하다.
이를 반영하는 한가지 방법으로는, 이전 반복에서의 거래를 통한 시장 영향을 각 반복에서 고려하는 방식이다.
즉 이전 거래에서 발생한 비용을 최적화에 포함시키는 방식.
→ 이 방식은 기존 single-account 방식을 그대로 사용하면 되서 좋지만, 수렴이 보장되지 않으며 최적해가 모든 고객에게 공정한 결과(fair equilibrium)로 이어지지 않을 수 있다.
※ fair equilibrium?
모든 고객이 서로 독립된 플레이어처럼 시장 유동성을 놓고 경쟁한다고 가정했을 때 도달하는 균형
대안이 될 수 있는 방법은 모든 계좌의 거래를 동시에 최적하하는 것.
→ 이를 통해 fair equilibrium을 달성할 수 있음.
고객 k의 효용함수를 $U_k$ 라고 하고, 거래비용 모델 τ는 볼록하고 증가하는 함수라고 가정한다.
t를 거래 벡터라고 하면, 자산 i의 매수와 매도를 지정한다.
만약 여기서 한 자산의 거래가 다른 자산의 거래비용에 영향을 미치지 않는다고 가정하면, 거래비용 함수를 더 쉽게 만들 수 있다.
따라서 다계좌 최적화 문제를 다음과 같이 나타낸다.

이때 거래비용 함수는 다음과 같다.
이를 통해 더 현실적인 포트폴리오의 정보비율 및 총 거래비용과 같은 지표 값을 얻을 수 있다.
9.7 ROBUST PARAMETER ESTIMATION
대부분의 파라미터는 과거 실현값을 사용하여 이 값이 미래에도 나타날 것이라고 가정하는건데, 수익률의 경우는 변동성이 심하기 때문에 예측력이 많이 낮고, 공분산 행렬 또한 자산이 많아질수록 추정 안정성이 떨어지는데 이를 위해 팩터모델을 사용하기도 한다.
또한 베이지안 추정치 또는 shrinkage 추정치를 사용하는 방법도 존재하며, 여기서는 가장 널리 사용되는 개념들에 대해 소개한다.
shrinkage는 세가지의 구성요소로 이루어지는데,
- 구조가 없는 추정량(ex. 표본 공분산)
- 구조가 많은 추정량(target 공분산)
- 수축 강도 계수
기대수익률의 경우 Jorion(1986)에 의해 제안되었으며, 타겟은 GMV의 수익률을 가진 벡터이다.
공분산의 경우, Ledoit and Wolf(2003)의 모델이 가장 대표적이다.
베이즈 추정 접근방식은 이미 알고있는 사전 분포를 통해서 사후 분포를 계산하는 방식이며, 이러한 프레임워크를 사용한 방법론 중 하나가 블랙리터만 모델이다.
9.8 PORTFOLIO RESAMPLING
강건한 파라미터의 추정은 파라미터의 추정 불안정성, 특히 평균-분산 최적화에서 두드러지는 영향을 제어하기 위해 필요한 부분 중 하나이다.
이를 고려하는 방법으로는 대표적으로 강건 최적화, 시뮬레이션 등이 존재하며 이 섹션에서는 이들에 대해 소개한다.
시뮬레이션은 입력 파라미터가 가질 수 있는 값에 대한 다양한 시나리오를 생성함으로써 안정적인 값을 찾아내는 것이다. 이를 재표본추출(resampling)이라고 한다.
먼저 기대수익률과 공분산 행렬을 가지는 다변량 정규분포에서 S개의 샘플을 시뮬레이션한다.
이후 S개의 샘플을 통해 기대수익 벡터와 공분산 행렬에 대한 새로운 S개의 추정값을 계산하며, 각각 포트폴리오 최적화를 수행하여 S개의 각 자산의 가중치를 평균낸다.
이렇게 나온 포트폴리오 가중치들은 통계적 검정을 통해 통계적으로 유의하게 다른지를 알 수 있다.
$d(w∗,w) = (w∗ −w) \sum (w∗ −w)$
이때 이 검정통계량은 자유도가 포트폴리오의 자산 수와 같은 카이제곱 분포를 따른다.
그러나 리샘플링에도 단점이 존재한다.
- 포트폴리오 규모가 클 경우 계산이 복잡해진다.
- 최종 포트폴리오 가중치 계산에서 평균이 되기 때문에 어떤 자산도 0이 아닐 가능성이 높고, 이는 큰 거래비용을 만들어낸다.
- 마지막 평균 과정에서 최종 가중치가 실제 최적화의 제약 조건을 모두 만족시키지 않는 값일 수도 있다.
9.9 ROBUST PORTFOLIO OPTIMIZATION
입력 파라미터에 대한 불확실성을 반영하는 또다른 방법으로 강건 최적화(robust optimization)가 있다.
이는 기대수익률과 공분산과 같은 파라미터에 대한 예측치를 사용하지 않고, 이러한 점 추정치를 포함하는 불확실성 집합을 사용한다.
이러한 불확실성 집합의 예로는 기대수익률에 대한 신뢰구간을 사용하는 것이며, 더 발전된 다양한 집합이 있지만 실무에서 가장 널리 사용되는 것은 타원체형 불확실성 집합(ellipsoidal uncertainty set)이다.
예를들어 MVO 문제의 경우, 추정치 $\hat \mu$ 대신 $\mu$ 의 집합을 고려한다. 불확실성 집합 중 하나로 “box” 불확실성 집합을 사용하면,

이때 $\mu$ 는 집합 안에서 움직이기 때문에 이를 제약식으로 넣어주면 기존의 효용함수를 최대화하는 MVO에서 보조변수 v를 새로 도입하여 다음과 같이 바꿔줄 수 있다.

이를 위해 먼저 다음의 최적화 문제를 푼다.

이후 목적함수에 패널티 함수를 추가한다.

이 문제는 계산 복잡도가 기존 MVO와 큰 차이가 없으며,
강건 최적화는 기대수익률의 추정 오차 문제를 덜어준다는 측면에서 장점이 존재하고, 또한 추정 오차에 대한 패널티항의 계수(delta)를 투자자의 위험 회피도에 맞춰 결정해줄 수 있다.
가장 대표적으로 사용되는 타원형 불확실성 집합은 다음과 같다.

이때 $\sum_{\mu}$ 는 기대수익 벡터의 추정오차의 공분산 행렬을 의미한다.
실무에서는 이 공분산 행렬을 대각행렬로 가정하기도 하며, 이 불확실성 집합을 사용한 MVO 문제는 다음과 같다.

이 문제는 SOCP(second-order cone problem)로, 해결 방법 자체는 크게 문제가 없다.
이러한 강건 최적화는 기존의 단순한 MVO문제를 매우 높은 비율로 능가한다는 결과를 보여주며, 매개변수의 불확실성이 어떻게 모델링되었는지에 따라 포트폴리오 성과에 큰 영향을 미친다.
강건 최적화는 기존의 MVO문제에 있던 코너해 문제를 해결해준다는 점에 있어서 큰 장점을 가지지만, 비교적으로 보수적인 결과가 나올 수 있다는 단점이 있다.




