반응형
파이썬
- 고수준 객체지향 인터프리터 언어
- 동적 의미 구조
- 고수준의 자료구조, 동적 타이핑, 동적 바인딩 특성 - 고속 응용프로그램 개발에 적합
파이썬의 장점
- 오픈소스
- 파이썬, 라이브러리 툴 등 오픈 라이센스 아래 소스 코드를 구할 수 있다.
- 인터프리터 언어
- 표준 CPython 런타임시 실행 가능한 바이트 코드로 변환
- 멀티패러다임
- 객체지향, 명령형 프로그래밍, 함수형 프로그래밍 등 여러 프로그래밍 구현가능
- 다목적
- 저수준의 시스템 기능 구현, 고수준의 해석 업무 모두 이용 가능
- 크로스 플랫폼
- 윈도우, 리눅스, 맥 등 대부분에서 사용 가능
- 동적 타입
- 정적 선언이 아닌 실행 중에 결정되는 동적 데이터 타입
- 가비지 콜렉션
- 자동화된 메모리 관리
과학 기술용 표준 라이브러리 모음
NumPy(http://www.numpy.org)
- 동일 또는 혼합 데이터 유형의 다차원 배열 객체 지원
- 배열 객체에 최적화된 함수, 메서드 제공
SciPy(http://www.scipy.org)
- 금융 분야에 필수적 표준 기능 구현 함수, 서브 라이브러리 모음
- ie. cubic spline interpolation, 수치 적분 등 제공
matplotlib(http://www.matplotlib.org)
- 파이썬용 플롯, 시각화 라이브러리
- 2차원, 3차원 시각화 기능 제공
PyTables(http://www.pytables.org)
- 파이썬용 HDF5 자료 저장 라이브러리 래퍼 라이브러리
- 파일 형식에 기반한 최적화된 디스크 입출력 기능 수행
pandas(http://pandas.pydata.org)
- numpy 기반
- 시계열 데이터, 테이블 데이터 관리 해석 가능한 다양한 클래스 제공
- 플롯팅, 데이터 저장/ 추출을 위해 matplotlib, PyTables 라이브러리와 통합
금융 분야의 기술 특징
- 금융산업의 기술 비용
- 새로운 비즈니스 혁신을 가능하게 하는 기술
- 금융산업의 진입 장벽으로서의 기술과 전문 인력
- 증가하는 속도와 빈도, 정보의 양
- 실시간 분석의 증가
유러피안 콜 옵션 가격을 몬테카를로 시뮬레이션을 통해 계산하는 간단한 금융 알고리즘
# 금융 분야에서 파이썬을 활용하는 이유 : 과학 문제, 금융 알고리즘 등 기술시 쓰이는 수학적 문법과 유사하여 활용 이에 대한 예시로 이 책에서는 간단한 금융 알고리즘 구현에 대해 서술한다.
옵션의 기초자산 위험 요인 - GBM모형을 따르는 블랙-숄즈-머튼$^{BSM} $ 옵션 가격 모형 사용
가격 결정시 사용되는 파라미터 값
- 초기의 주가지수 $ S_0 = 100 $
- 유러피안 콜 옵션의 행사가 K = 105
- 만기 T = 1년
- 무위험 단기 이자율 r = 5%
- 변동성 $ \sigma $= 20%
BSM 옵션 가격 모형시 만기 주가지수 $ S_T = S_0 $ $exp((r- $ $({1 \over \ 2}\sigma^2)T + \sigma \sqrt{Tz} )$ 과 같은 랜덤 변수
- z - 표준정규분포를 따르는 랜덤 변수
몬테카를로 방법을 사용한 가격결정 알고리즘
- 표준정규분포에서 I개의 난수 $ z(i), i \in {1,2, ..., I} $ 추출
- 1에서 선택한 z(i)와 BSM 모형에서의 만기 주가지수를 활용하여 만기에서의 지수값 $ S_T(i) $를 I개 계산
- 계산된 $ S_T(i) $ 에 대해 수식 $h_T(i) = max(S_T(i) - K,0) $을 이용하여 만기에서의 옵션 가격을 I개 계산
- 몬테카를로 추정식을 사용하여 옵션의 현재 가치 계산
몬테카를로 추정식
$ C_0 \approx e^{-rT}$ ${1 \over \ I}$ $\sum_I H_T(i) $
$ S_T = S_0 $ $exp((r- $ $({1 \over \ 2}\sigma^2)T + \sigma \sqrt{Tz} )$ 수식을 파이썬으로 구현
import numpy as np
#파라미터 값
S0 = 100. # 초기의 주가지수
K = 105. # 행사가
T = 1.0 # 만기까지 남은 시간
r = 0.05 # 무위험 이자율
sigma = 0.2 # 변동성
I = 100000 # 시뮬레이션 횟수
# 가격결정 알고리즘
z = np.random.standard_normal(I) # 의사 난수
ST = S0 * np.exp((r-0.5 * sigma ** 2) * T + sigma * np.sqrt(T) * z)
#만기 시의 주가지수
hT = np.maximum(ST - K, 0) # 만기 시의 내재 가치
C0 = np.exp(-r * T) * np.sum(hT) / I # 몬테카를로 추정식
print("Value of the European Call Option %5.3f" % C0)
결론
- 금융산업에 있어 파이썬은 프로그래밍 언어로 가장 이상적
- 파이썬은 정밀한 문법, 효율적인 개발 방식, 등 다양한 장점 존재
# 본 게시물은 "파이썬을 활용한 금융분석" 을 읽고 작성하였습니다. #
반응형
'----------책---------- > 파이썬을 활용한 금융 분석' 카테고리의 다른 글
CHAPTER 3 입문용 예제 (0) | 2020.03.23 |
---|
댓글