금융공학

Financial Engineering
金融工學

1 개요

한국 안에서 똑같은 사람이 금융공학이라는 단어를 쓰더라도 3가지 정도의 의미를 지닐 수 있다. 증권/금융업계에서 는 금융공학이라는 표현을 상당히 중의적으로 사용하고 있으니 주의할 것.

1. 학술적 의미의 금융공학 : 파생된 상품 -주로 구조화된 상품- 의 공정가치를 구하는 작업을 수행하는 학문. 이러한 의미로서의 금융공학은 주로 구조화 상품 관련 부서/세일즈/기타 상황에서 쓰인다. 기존 문서에 서술된 금융공학과 의미가 같다.

2. 공학적 뒷받침으로서의 금융공학 : 증권/금융업계에는 나름대로의 보급된 툴들이 있다. 예컨대 fnguide를 비롯한 여러 회사들에서 각 회사에 맞추어진 금융관련 툴을 제공한다. 그런데 이 툴들은 공정가치를 구하는 그런 작업들이 아니라 단순히 거래기록의 취합, 아주 단순한 위험의 측정(주로 표준편차등을 이용한다.), 현재 보유한 포지션의 가치, 펀드 등 금융상품의 기준가, 이자율 및 주가 정보 등을 제공할 뿐이다.

그러나 이 툴들은 상당히 방대한 데이터에 기반하고 있기 때문에 상당한 공학적 기술이 요구된다. 또한 숫자가 틀릴경우 그 파장이 무지막지하게 크다. 기준가가 틀리면 어떤 사태가 벌어지겠는가? 회사 문 닫아야 될수도 있다. 그러므로 이러한 분야에서는 상당히 숙달된 인력과 고도의 지식이 필요한데, 이에 쓰이는 기술 혹은 이와 관련한 활동들을 금융공학이라고 부르는 경우도 있다.

3. 계량적 분석 전반을 의미하는 금융공학 : 각종 증권사 홈페이지에서 제공하는 보고서들을 보자. 퀀트 리서치 부분이 있을 것이다.(혹은 계량분석) 이러한 분야에서 사용하는 지식이나 분석 과정등을 금융공학이라고 부르기도 한다. 다만 이러한 용례가 흔한 편은 아니다. 이외에 계량적 방법을 응용한 포트폴리오 관리, 투자 의사결정 등을 의미하는 경우는 종종 있다.

구인/구직 등에 응모할 경우에는 이런 중의성을 고려해서 단순히 금융공학 이라는 표현에만 현혹되지 말고 구체적인 업무 분야를 정확하게 숙지하여야 한다. 또한 자신이 사용하는 금융공학이라는 표현이 받아들이는 사람 입장에서는 다르게 받아들여질수도 있음을 고려하자. 금융공학이 다 같은 금융공학이 아니다.

2 학술 분야의 금융공학

20세기 후반에 들어서 파생상품을 비롯, 금융현장에 점차 복잡한 금융상품이 개발되고 유통되게 되었다. 이에 따라 이러한 상품을 관리하는 데 있어 기존의 단순한 운용방식을 넘어선 방법론이 요구되었다. 특히나, 금융상품의 위험을 분석하고 리스크를 분산시키기 위해 기존의 방법을 개선하고 발전시키는 데에는 상당한 수준의 수리적인 지식이 필요하게 되었다. 따라서 이와 같은 필요성에 의해 수학적 이론과 통계, 프로그래밍을 아우르는 전반적인 공학적 방법론이 금융현장에 적용되게 되고, 이를 아우르는 용어로 금융공학이라는 단어가 등장하게 되었다.

흔히 퀀트 (Quantitative Analyst)[1]로 대변되는 직종의 직무와 능력을 통해 금융공학이 어떻게 현장에서 사용되는지를 알 수 있겠다. 퀀트들은 시장에서 유통되는 상품의 가격구조를 분석하고 운용하는 포트폴리오의 위험 척도를 수리적으로 계산하며, 새로운 파생상품을 설계하고 가격을 제시하는 직무를 수행한다. 또한, 금융기관의 여러 부서에서 즉각적으로 사용할 수 있는 분석 모형을 구축하는 것 역시 퀀트의 지식이 요구되는 부분이다. [2]

최초의 퀀트 직군은 수리적 방법론에 익숙한 수학과 / 물리학과 박사 인력이 주축을 이루었으나 점차 전문화된 금융공학 과정을 제공하는 교육기관이 늘어났으며, 단순히 수리적 지식만을 갖추는 것이 아니라 실제 금융시장을 이해할 수 있는 경영학 / 경제학 지식 역시 같이 강조하게 되었다.

금융공학의 목표 혹은 목적을 간단히 요약하면 다음과 같다 : 어떤 금융상품이 있을때, 이 상품의 공정가치는 얼마인가?

이때 이 공정가치는 어떤 금융상품이 시장에서 무재정조건을 만족할때의 가치를 말한다. 예를 들어보자. 사과가 100원, 오렌지가 200원이라고 하자. 그런데 누군가가 사과 1개, 오렌지 1개를 한 세트로 팔겠다고 한다. 그런데 지금 시장에서 사과 1개, 오렌지 1개로 이루어진 세트는 거래되고 있지 않다. 그렇다면 이 세트는 얼마의 가치가 있는 것인가? 당연하게도 300원이다. 이 세트는 사과 1개, 오렌지 1개를 이용하여 똑같이 구성할 수 있기 때문이다. 이때 이 세트의 공정가치는 300원이다.

금융공학의 목표가 바로 이런 것이다. 위의 예에서 "똑같이 구성"하는 부분은 헷징에 해당하고, "사과 1개, 오렌지 1개 세트"는 어떤 금융상품(주로 구조화된 금융상품이다. 구조화된 금융상품이란 기업 혹은 개인의 특수화된 금전 거래 약정을 말한다.)이라 할 수 있다. 또한 300원이 "공정가치"인 이유는 이 세트가 300원일때 어떤 무위험 차익거래가 불가능하기 때문이다. 즉 금융공학은 어떤 금융상품(사과 1개, 오렌지 1개 세트)의 가치를 기존에 존재하는 금융상품(사과 및 오렌지)의 가치를 이용하여 구하는 활동이다.

물론 현실의 금융시장은 위의 예처럼 단순하지 않다. 또한 어떤 금융상품을 구성할 수 있는 조합이 없을수도 있다.(불완전한 시장, 혹은 헷지 불가능한 경우. 대표적으로 GARCH (1,1) 과정을 활용하는 Heston 모형이 그 예이다.) 그렇기 때문에 금융공학은 현대에 개발된 여러가지 고도의 기법들을 활용한다. 그럼에도 불구하고 현재의 금융공학이 현실에 존재하는 많은 문제점들을 모조리 해결해 주는 것은 아니다. 예컨대 Heston 모형에도 여러가지 문제점들이 존재한다. 따라서 금융공학은 여전히 열린 분야이며, 아직도 많은 연구 과제들이 남아 있다.

주요 개념들은 다음과 같다.

(1) 위험중립가치평가법 : 현대에 주로 쓰이는 개념이다. 위험중립가치평가법이 성립하면 이에 따른 헷지방법이 반드시 존재한다.(수학적 정리이므로 반드시 성립함.)

(2) 완전시장 : 좀더 명확히 말하면 완전한 애로우 증권이 존재하는 것이다. 완전시장에서는 위험중립가치형가법이 성립하며, 따라서 헷지방법도 반드시 존재한다.(애로우 증권에 관해서는 미시경제학의 일반균형이론 부분을 살펴보자.)

(3) 헷지 : 위험을 제거, 혹은 경감하는것. 주로 어떤 자산의 매입과 다른 자산의 매도로 구성된다. 즉 포트폴리오 구성을 통해 이루어진다.

(4) 불완전 시장 : 애로우 증권이 실제 시장에서 불비되어 있는 것을 의미한다. 대표적으로 Heston 모형이 이러한 문제점을 안고 있다. 다만 이러한 경우에도 위험중립가치는 존재한다. 다만 유일성이 보장되지 않을 뿐이다. 이 문제는 Least Square fit 등의 방법으로 대응한다.

(5) 위험중립확률측도, 동치마팅게일측도, 상태가격밀도(다 같은 대상을 지칭함) : 위험중립가치평가를 위해 적용되는 확률분포이다. 금융공학에서는 어떤 금융자산에 결부된 실제 분포를 그대로 이용하지는 않는다. 주로 기대값을 변환하되 기타 변동성 관련 변수들을 그대로 유지하는 새로운 확률을 적용한다. 이 위험중립확률측도는 반드시 존재한다. 다만 불완전 시장의 경우 이 측도가 유일하지 않을 뿐이다.

(6) 확률과정 : 어떤 금융자산가격의 움직임을 표현하는 것이다. 금융자산의 가격은 확률적으로 변동하며, 확정적으로 변동하지는 않는다. 금융공학의 모든 제문제는 바로 이러한 측면에서 시작한다. 금융자산의 가격이 확률적으로 변동하기 때문에 이에 결부된 파생금융상품의 가치도 확률적으로 변동하게 된다.

(7) 기타 : 블랙숄즈 편미분 방정식, 이토-도에블린 보조정리, 파인만-카츠 정리, C/C++ 혹은 MATLAB, 몬테카를로법(+Control Variate). 이외에도 금융공학은 양자역학에서 미시경제학에 이르기까지 여러 분야에서 발전된 아주 다양한 기법들을 활용하고 있으므로 알아두어야 할 것들은 지금도 수없이 쏟아져나오고 있다. 자세한 것들은 더 많이 공부해보자.

2.1 학부 / 대학원 과정 과목의 금융공학

1990년대 후반부터 우리나라의 대학에서 봇물처럼 금융공학 관련 과목들이 개설되었는데, 실상은 수리적 / 통계적 지식을 기반으로 한 관련 서적 공부 혹은 완전한 수학과목의 양상을 보이며, 선물과 옵션에 국한된 범위로 운영되는게 사실이다. 실무에서의 공학적 뒷받침으로서의 금융공학의 적용범위는 파생상품만 있는 것이 아니라 리스크 관리 (Risk management), 포트폴리오 운영 등 금융 전반에 걸쳐 이루어지므로 대학교에서 금융공학을 전공했다고 해서 공부가 끝나는 것은 아니다.

우리나라 역시 많은 대학교가 별도의 금융공학 관련 인력을 교육하는 과정을 만들거나 과목을 개설하고 있다. 다만 금융공학에 대한 일종의 거품낀 시각과 돈되겠다 싶은 것에 달려드는 습성이 겹쳐 과도하게 많은 학교에서 금융공학의 이름을 건 과정이 생겨있는 것 역시 사실이다. [3]

주로 다음이 있다.

카이스트의 경우 경영공학 석사과정으로 입학해서 금융공학과 관련된 세부전공을 이수한다면 병역특례가 있다. 바로 금융공학 석사과정으로 입학하게 된다면 현재까지는 병역특례는 받을수 없다.
나머지 과정들의 경우 병역특례가 없다.

세부전공

  • 계량적 자산운용 (Quant)
  • 채권- 통화- 상품
  • 파생상품
  • 리스크 관리

2.2 시험과목

3 실무에 대한 공학적 뒷받침으로서의 금융공학

종종 대학교에서 금융공학을 배우면 당장 금융업계에 취직할 수 있다거나 돈을 벌 수 있다는 생각을 가지는데, 이는 잘못된 생각이다. 이론적으로 서술하는 금융공학의 어느 수준까지 현업에서 사용되는지도 모르고서 백날 책만 파면 무슨 소용이겠는가...

실무에서의 응용을 위한 방법론은 여러 학문에서 유입된만큼 다양한 분야에 대한 지식이 큰 역할을 한다. 모든 지식을 깊이 알 필요는 없지만 어느정도는 대략적이나마 알고 있어야 한다. 적어도 무엇이든 새로운 기법을 알게 되었을때 이해하고 활용할 수 있을 정도의 준비는 되어 있어야 제대로 금융공학을 배웠다고 할 수 있는 것이다. 특히 코딩능력은 필수.

투자론 등의 재무관리 이론이나 거시경제학 등의 경제학 이론이 차지하는 비중은 크지 않다. 이들은 여러 접근법 가운데 하나에 불과하며, 주류로 보기도 힘들다. 특히 경제학 지식의 경우에는 거시경제학에서 일반균형이 성립할때 위험중립확률측도가 존재한다는 증명을 통해 실무에서의 응용을 위한 채널을 열어두는 정도인 경우가 많다. [4]

확률과정, 통계학, 수치해석 등에 대한 이해는 매우 중요한 역할을 담당한다.

프로그래밍 언어의 경우 MATLAB을 많이 쓰므로 꼭 알아두어야 한다.[5][6]금융공학을 공부하고자 하는 사람이라면 지식의 확충 역시 중요하지만 자신의 간단한 지식이라도 이를 구현하고 활용할 수 있는 능력에도 초점을 맞춰 공부할 것을 추천한다.

수학 중에서는 편미분방정식을 수치적으로 풀 줄 알아야 한다. 과거에는 Binomial Tree 방법만 알아도 쓸모가 있었다. 하지만 요즘에는[7] 이것은 너무나 기초적인 방법이기 때문에 거의 의미가 없고, 한국거래소처럼 실시간으로 이론가격을 산출해야 하는 경우에만 제한적으로 사용한다. 요즈음에는 한국에서도 Binomial tree보다는 복잡한 Pricing Technique을 활용한다. 적어도 crank-nicolson법을 이용해 편미분 방정식을 수치적으로 풀수 있는 수준은 되어야 하며, 이것이 최소한 가운데서도 최소한임을 명심하자. 금융공학이 유명해진 이후로 인력 공급이 엄청나게 늘어났다. 공급이 수요를 한참 넘어서다 보니 요즈음에는 박사도 아주 흔한데, crank-nicolson법을 이용한 편미분방정식 풀이조차도 사실은 학부 수준의 지식에 불과한 것이다. 미래를 보고 롱런하기 위해서 요구되는 지식의 수준이 수학과 대학원 수준 중에서도 높다는 것은 잊지 말자. 실제로 금융공학으로 유명한 콜럼비아 대학에서도 박사과정은 거의 대부분이 코딩이 아닌 수학이다. 금융공학을 박사과정에서 공부하다 보면 중심극한정리의 일반화된 버전 -알파 정상 분포- 를 공부하는 자신을 발견할 수 있을 것이다.

Hull 책은 금융공학의 다양한 이슈들을 잘 정리하고 있지만, 1~2주 정도 보면 되는 간단한 개론서에 불과하다. Hull책은 금융공학의 다양한 이슈들을 잘 정리하고 있지만, 다양한 이슈들을 다루고 있는만큼 (아마도 분량의 압박으로 인해) 이슈 하나하나에 대해서 깊이있게 다루지는 않고 있다.
골드만삭스를 비롯한 해외 유수의 기업들에서는 각자 개발한 방법론들을 활용하는 것이 대부분이다. 즉 출판물 형태로 알려진것은 과거에 사용하다가 용도폐기된 것들로서 최신 트렌드는 아니다. 실무에 응용할 수 있을 수준으로 배우려면 기출간된 논문들을 주로 이용한다.

실무적인 모든 지식을 입사 전에 갖춰가야 하는 것은 아니다. 경력이 짧은 사람의 경우 직장에서도 기본적인 것들은 친절하게 알려준다. 예를 들어 금융공학 수업에서 옵션 이야기를 다루지만 대학원생 입장에서는 우리나라 옵션 시세를 찾을 수 없다. 금융공학에서는 아주 일반적인 파생상품 -플레인 바닐라 유러피안 옵션- 보다는 주로 구조화된 상품들을 주로 다룬다. 그리고 구조화된 상품들은 사인간의 약정이므로 불법적인 방법을 동원하지 않는 한 시세라는 것을 찾을수가 없다.(시세를 알아보고 다니는 행위 자체가 엄격하게 금지되어 있다.) 그러므로 한국의 옵션 시세를 찾을줄 모르는 것이 큰 흠이 되는것은 아니며, 실제로 현업에서는 블룸버그 터미널이나 로이터를 이용하여 아주 쉽게 간단하게 조회할 수 있다. 위에서 설명한 여러 지식들 역시 금융공학 전문가가 되기 위한 필요요소일 뿐 실제로 이와 같은 지식 모두를 가져야지만 금융공학을 공부했다고 할 수 있는 것은 아니다.

이런 지식들이 실제 상황과 맞지 않아 쓸모없다는 의견을 내놓는 사람들도 간혹 있지만, Black-Scholes 식에 의한 옵션가치식의 이론적 가정은 시장의 특성과 다름이 알려져있으며, 그 누구도 GARCH 모형으로 산출한 변동성이 100% 정확하다 인정하지 않는다. 그럼에도 불구하고 시장에 발표되는 지표들이 이 식을 이용하는 것은 이론적으로 이 방법들이 주는 유의미성, 그리고 비교적 단순하다는 점이 크게 어필을 하는 것이다.
  1. 이 문서에서 퀀트라는 표현을 사용하고 있는데, 퀀트는 다양한 맥락으로 사용되고 있다는 점을 유의하자. 퀀트는 기존 문서에서 설명하는 직군을 표현하기도 하지만, 단순히 계량적 분석을 수행하는 사람들을 퀀트라고 부르기도 한다. 학교에서의 용어와 직장에서의 용어는 미묘하게 다른 것들이 있다. 예로서 아무 증권사나 들어가서 계량분석, 혹은 퀀트분석 보고서를 살펴보자. 이들이 발간하는 보고서는 구조화된 상품의 가치와 관련된 업무가 아닌, 단순히 주식으로 돈 버는 기술에 관한 것들인 경우가 대부분이다.
  2. 그러나 아직까지 한국의 경우에는 은행에 퀀트라고 하는 직종이 이론적 분석과 연구에만 집중하는 직종으로 확립되지 않았으며, 파생상품 디자인과 세일즈 역시 퀀트 직종의 업무 범주에 들어가있다. 또한, 기본적으로 새로운 파생상품을 디자인하는 것은 구조만 제시하는 것이 아니라 파생상품의 계약기간동안 판매자로서의 위험관리와 운영 방법 역시 갖추어져야 하는 복잡한 작업이다. 이러한 이유로 한국에서 거래되는 파생상품은 외국 금융기관에서 만들어진 것을 구매하여 유통하는 것이 대부분이고, 퀀트 직무가 정확하게 이것이다라고 할 만큼 정확하게 직무구성이 분리된 것은 아니다.
  3. 따라서, 관련 과정에 관심이 있는 분들은 꼭 구성 교수진의 규모와 수준을 꼭 확인하기 바란다.
  4. 다만, 경제학의 범위를 매우 넓게 잡는다면 실무에서의 응용을 포함하는 것도 가능은 하다.
  5. MATLAB을 많이 쓴다는건 학부나 석사과정에서 제공해주는 경우를 말하는 것이므로, 실무를 논한다면 앞의 문장은 잘못된것이다. 실무에선, 프로그램이 그리 많이 들어가지 않는 곳에서는 VBA를, 프로그램이 다소 필요한 곳에서는 C++이 압도적이다. (Java는 너무 느리기 때문에 쓰지 않는다) 사실 금융공학의 메인 언어는 누가뭐래도 C++이다. 프로그램의 난이도자체는 사실 MATLAB과 같은 사용자 친화적 프로그램과는 타의 추종을 불가할 정도로 어렵지만, 익혀만 둔다면 유용하게 써먹을 일이 많다. 일단 속도가 다른프로그램과는 말도안되게 차이나므로, C++을 익히길 권하며, 혹자는 파이선을 권하긴 하나 일단 C++부터 익혀놓는것을 권한다. C++을 자유자재로 사용할 수 있는데 다른 프로그램을 못할 리가 없다.
  6. 설명을 좀 덧붙이자면, 혹자는 C++같은 난해한 언어를 왜하는지 이해못하겠다고 하는 분들이 많다. 사실 전세계 주가데이터로 뭔가를 작업한다고 해도 복잡한 업무나 실시간으로 연동해야하는 업무가 아니라면 엑셀만으로도 어느정도 수준까진 가능하다. 그러나 실시간으로, 이를테면 자신이 전세계 주식들간의 가격괴리나, 해당 주식들로 포트폴리오를 실시간으로 짠다거나, 그런 것에 이론을 적용시킨다거나 할때 엑셀이나 MATLAB으로 가능하다고 생각하는 사람이 과연 있을까. 만약 가능할거같다고 하시는 분들은 안해봐서 모르는 것이라고 확신한다. C++이 필요없다고 하는 사람은 그게 필요없는 단순한 업무를 하고 있으니 그런것이지, 필요한 업무를 하는 사람은 MATLAB을 줘도 C++을 쓰려고 할 것이다. 물론 MATLAB이 편한건 사실이나, 데이터가 많이 늘어나면 현저하게 느려지는 것은 어쩔수가 없다.
  7. 언제를 말하는 것인지 추가바람