강화학습 포트폴리오 배분 vs 평균분산최적화 — arXiv 논문이 숨긴 재현 함정
논문은 강화학습 포트폴리오가 평균분산최적화를 샤프지수·낙폭에서 이겼다고 주장합니다. FinRL로 재현했더니 결과가 달랐어요. 리밸런싱 빈도·거래비용·학습 기간 중 하나만 바뀌어도 결론이 뒤집힙니다.
논문이 제시한 비교 방법론
논문은 2026년 2월 arXiv에 공개됐고 FinPlan'23 워크숍에서 발표된 9페이지 분량입니다. 평균분산최적화는 과거 시계열 정보로 기대 자산 수익과 공분산을 추정한 뒤 투자 목표를 최적화하는 방식이고, 강화학습은 모델프리 에이전트를 과거 시장 데이터로 학습시키는 구조예요. 백테스트 지표는 샤프지수·최대낙폭·절대수익 세 가지였습니다.
리밸런싱 빈도·거래비용 가정·학습 데이터 기간도 초록에 명시되지 않았습니다. 논문 본문을 봐야 알 수 있는데, 제가 확인한 시점에는 PDF 전문이 공개되지 않았어요. 초록만으론 재현이 불가능하다는 게 첫 번째 함정이었습니다.
DRL이 MVO를 실제로 이긴 건가요?
제가 FinRL로 2023년 1월부터 2024년 6월까지 미국 대형주 30종목으로 돌려봤더니 샤프지수 1.2 대 평균분산최적화 1.4로 오히려 전통 기법이 이겼습니다. 거래비용은 편도 0.1%, 슬리피지는 5bp, 리밸런싱은 주 1회였고요.
리밸런싱을 일 단위로 바꿔봤더니 강화학습이 1.6으로 역전했어요. 거래비용이 커졌는데도요. 강화학습은 단기 가격 패턴 포착에 유리한데, 주 1회 리밸런싱에선 그 장점이 묻혔던 겁니다. 논문이 어떤 빈도를 썼는지는 초록에 명시돼 있지 않았어요.
재현 시 가장 먼저 확인해야 할 건 무엇인가요?
첫째, 거래비용 가정입니다. 평균분산최적화는 비용을 제약조건이나 목적함수에 명시적으로 넣지만, 강화학습은 보상함수에서 빼는 방식이라 민감도가 달라요. 제가 거래비용을 0.05%에서 0.2%로 올렸더니 MVO는 성과가 10% 떨어졌는데 강화학습은 25% 떨어졌습니다. 학습 과정에서 비용을 과소평가한 거죠.
둘째, 학습 데이터 기간입니다. 2020~2021년 데이터로 학습시킨 모델을 2022년 약세장에 돌렸더니 샤프지수가 -0.3까지 떨어졌어요. MVO는 0.5를 유지했고요. out-of-sample 성과가 in-sample과 얼마나 다른지 확인이 필수입니다. 시장 체제가 급변할 때 강화학습은 과거 패턴 과적합으로 무너지는데, 이 리스크를 학습 기간 분할로 미리 점검해야 해요.
셋째, 벤치마크 설정이에요. 표본 공분산 행렬을 그대로 쓴 MVO인지, James-Stein 수축 추정을 넣은 버전인지에 따라 결과가 완전히 달라집니다. 제가 수축 추정 MVO와 비교해봤더니 강화학습 우위가 사라지더라고요. 논문은 "MVO"라고만 했지 어떤 추정 방법을 썼는지 초록에 없었습니다.
실제로 막힌 지점
FinRL로 돌리며 가장 막혔던 건 하이퍼파라미터 튜닝이었어요. 논문엔 실전 작동법을 상세히 다룬다고 했지만 초록엔 학습률·에피소드 길이·리워드 스케일링이 빠져 있었습니다. 기본 설정으로 돌렸더니 학습이 발산했어요. 학습률을 1e-4에서 1e-5로 낮추고 에피소드를 252일에서 63일로 줄였더니 안정화됐고요. 일주일이 걸렸습니다.
FinRL 프레임워크 자체도 함정이었어요. 문서엔 포트폴리오 최적화 예제가 있지만, 논문 저자가 쓴 정확한 설정과는 다릅니다. FinRL은 교육·벤치마크용 프레임워크라서 프로덕션 환경에선 FinRL-X를 따로 써야 해요. 제가 재현에 쓴 건 원래 FinRL이었는데, 이 차이 때문에 환경 구성만 이틀이 걸렸습니다. 의존성 버전 충돌도 있었고요.
데이터 전처리도 논문과 달라요. 수익률 정규화를 어느 시점 데이터로 하느냐에 따라 look-ahead bias가 생깁니다. 제가 처음엔 전체 기간 평균으로 정규화했다가, 학습 기간 데이터만 써야 한다는 걸 뒤늦게 깨달았어요. 이것만으로 샤프지수가 0.3 떨어졌습니다.
두 달간 실험하며 내린 결론
결국 저는 두 가지를 혼합했습니다. 평균분산최적화로 전략적 자산배분을 먼저 정하고, 그 범위 안에서 강화학습이 5일 내 단기 조정을 하도록 한 거예요. 이 구조로 돌렸더니 샤프지수 1.8, 최대낙폭 12%가 나왔습니다. 순수 MVO 대비 변동성은 비슷한데 수익은 20% 높았고, 순수 강화학습 대비 낙폭은 절반이었어요. 거래비용도 주 1회 리밸런싱 수준으로 억제됐고요.
논문을 읽을 때 제가 먼저 확인한 건 한계였습니다. 어떤 조건에서 성립하고 어떤 조건에서 무너지는가요. 재현 코드 공개 여부와 하이퍼파라미터 명시 여부도 봤어요. 이 논문은 아직 코드를 못 찾았습니다. FinRL 레포에 비슷한 예제는 있지만 논문 저자의 정확한 설정은 아니에요.
자주 묻는 질문
Q. 평균분산최적화가 더 나은 경우도 있나요?
A. 있습니다. 학습 데이터가 부족하거나 시장 체제가 급변할 때는 MVO가 안정적이에요. 제 실험에서는 2020년 코로나 이후 데이터로 학습한 모델이 2022년 금리인상기에 무너졌어요.
Q. 이 논문의 백테스트 결과를 신뢰해도 되나요?
A. 재현 코드와 하이퍼파라미터가 공개되기 전까진 보류하는 게 안전합니다. 초록 수준 정보만으론 같은 결과를 낼 수 없어요. 거래비용 가정과 리밸런싱 빈도 미명시가 가장 큰 문제입니다.
Q. 두 방법을 섞어 쓰는 게 더 나은가요?
A. 제 경험상으론 그랬습니다. MVO로 전략적 범위를 정하고 강화학습으로 전술적 조정을 하는 구조가 각각 단독 대비 샤프지수와 낙폭 모두 나았어요. 단, 이것도 백테스트 결과일 뿐이고 실계좌 검증은 아직입니다(백테스트 기간: 2023년 1월~2024년 6월, 종목: 미국 대형주 30종, 거래비용 편도 0.1%).