외환 시장에서 포트폴리오 거래는 어떻게 이루어지나요? 포트폴리오 비율 최적화를 위한 마코위츠 포트폴리오 이론과 포트폴리오 위험 최적화를 위한 VaR 모델이 어떻게 통합될 수 있을까요? 여기서 우리는 포트폴리오 이론에 기반한 코드를 개발해서 한편으로는 낮은 위험을, 다른 한편으로는 만족스러운 장기적인 수익성을 확보해 볼 것입니다.
저는 지난 3년간 외환 거래 로봇 개발에 매진해 왔습니다. 그리고 그거 아세요? 위험 관리는 정말 골칫거리입니다. 처음에 저는 몇 번 계좌를 날릴 때까지 고정된 손절매 주문을 설정했었습니다. 그러다가 더 깊이 파고들기 시작했고 마코위츠의 포트폴리오 최적화 이론을 접하게 되었습니다.
좋아 보였습니다 - 상관관계를 계산하고 가중치를 최적화하는군요... 하지만 현실적으로 외환 거래에는 그다지 효과적이지 않습니다. 왜 그럴까요? 외환 시장에서는 모든 통화쌍이 서로 연관되어 있기 때문입니다! EURUSD와 EURGBP를 동시에 거래해 보시면 제 말이 무슨 뜻인지 아시게 될 겁니다. 유로화의 급격한 변동과 함께 두 포지션이 동조화 됩니다. 아름다운 이론이 냉혹한 현실에 부딪혀 산산조각 났습니다.
진저리가 날 만큼의 시도 끝에 다른 접근법을 찾아보기 시작했습니다. 결국 저는 VaR(Value at Risk) 방법론을 접하게 되었습니다. 처음에는 그게 뭔지도 몰랐어요 - 그저 복잡한 방정식 같은 것으로 보였죠. 그런데 그때 문득 깨달었어요 - 바로 이게 내가 필요했던 거였구나! VaR는 주어진 확률에 대한 최대 손실을 나타냅니다. 다시 말해 하루/주/월 동안 얼마나 손실을 볼 수 있는지 직접적으로 추정할 수 있다는 뜻입니다.
결국 저는 VaR과 마코위츠를 결합하기로 결정했습니다. 말도 안 되는 소리 같죠? 그럴지도요. 하지만 다른 선택지는 보이지 않았습니다. 마코위츠는 최적의 자금 배분 방식을 제시하고 VaR는 마진콜 발생을 방지합니다. 이론상으로는 훌륭해 보였습니다.
그렇게 연구 프로그래머로서의 고된 일상이 시작되었습니다. 파이썬, МetaТrader 5 터미널, 방대한 히스토리 데이터... 쉽지는 않을 거라고 생각했지만 현실은 제 모든 예상을 뛰어넘었습니다. 제가 여러분께 말씀드리려고 하는 것은 단순히 백테스팅에서 보기 좋은 시스템이 아니라 실제로 작동하는 시스템을 어떻게 만들려고 노력했는지에 대한 것입니다.
여러분이 외환 거래 자동화를 시도해 본 적이 있으시다면 제 고충을 이해하실 겁니다. 그렇지 않더라도 제 경험이 여러분이 겪을 수 있는 어려움들을 최소한 몇 가지라도 피하는 데 도움이 될 수 있기를 바랍니다.
새로운 기고글 외환 거래에서 포트폴리오 최적화: VaR와 마코위츠 이론의 결합 가 게재되었습니다:
저는 지난 3년간 외환 거래 로봇 개발에 매진해 왔습니다. 그리고 그거 아세요? 위험 관리는 정말 골칫거리입니다. 처음에 저는 몇 번 계좌를 날릴 때까지 고정된 손절매 주문을 설정했었습니다. 그러다가 더 깊이 파고들기 시작했고 마코위츠의 포트폴리오 최적화 이론을 접하게 되었습니다.
좋아 보였습니다 - 상관관계를 계산하고 가중치를 최적화하는군요... 하지만 현실적으로 외환 거래에는 그다지 효과적이지 않습니다. 왜 그럴까요? 외환 시장에서는 모든 통화쌍이 서로 연관되어 있기 때문입니다! EURUSD와 EURGBP를 동시에 거래해 보시면 제 말이 무슨 뜻인지 아시게 될 겁니다. 유로화의 급격한 변동과 함께 두 포지션이 동조화 됩니다. 아름다운 이론이 냉혹한 현실에 부딪혀 산산조각 났습니다.
진저리가 날 만큼의 시도 끝에 다른 접근법을 찾아보기 시작했습니다. 결국 저는 VaR(Value at Risk) 방법론을 접하게 되었습니다. 처음에는 그게 뭔지도 몰랐어요 - 그저 복잡한 방정식 같은 것으로 보였죠. 그런데 그때 문득 깨달었어요 - 바로 이게 내가 필요했던 거였구나! VaR는 주어진 확률에 대한 최대 손실을 나타냅니다. 다시 말해 하루/주/월 동안 얼마나 손실을 볼 수 있는지 직접적으로 추정할 수 있다는 뜻입니다.
결국 저는 VaR과 마코위츠를 결합하기로 결정했습니다. 말도 안 되는 소리 같죠? 그럴지도요. 하지만 다른 선택지는 보이지 않았습니다. 마코위츠는 최적의 자금 배분 방식을 제시하고 VaR는 마진콜 발생을 방지합니다. 이론상으로는 훌륭해 보였습니다.
그렇게 연구 프로그래머로서의 고된 일상이 시작되었습니다. 파이썬, МetaТrader 5 터미널, 방대한 히스토리 데이터... 쉽지는 않을 거라고 생각했지만 현실은 제 모든 예상을 뛰어넘었습니다. 제가 여러분께 말씀드리려고 하는 것은 단순히 백테스팅에서 보기 좋은 시스템이 아니라 실제로 작동하는 시스템을 어떻게 만들려고 노력했는지에 대한 것입니다.
여러분이 외환 거래 자동화를 시도해 본 적이 있으시다면 제 고충을 이해하실 겁니다. 그렇지 않더라도 제 경험이 여러분이 겪을 수 있는 어려움들을 최소한 몇 가지라도 피하는 데 도움이 될 수 있기를 바랍니다.
작성자: Yevgeniy Koshtenko