본문 바로가기
728x90
반응형

전체 글250

주식 차트 그리기 #1 : mplfinance 이 글은 2022.07.07 - [파이썬] - 주식 데이터 불러오기(yfinance) #1 주식 데이터 불러오기(yfinance) #1 python으로 주식이나 지수 데이터를 불러오는 다양한 방법이 있습니다. 그중 Yahoo Finance의 정보를 제공해 주는 pythion 오픈 소스가 있습니다. 바로 yfinance 입니다. yfinance tool 을 사용하기 위하여 pytho sine-qua-none.tistory.com 에서 이어집니다. 저번 글에서는 yahoo finance를 이용하여 삼성전자의 주가데이터를 불러오는 방법을 알아봤습니다. 이번 글에서는 불러온 주가데이터를 가지고 차트를 그리는 방법을 알아보겠습니다. 주가 데이터를 차트로 그리는 여러가지 방법이 있는데, 이번 글에서는 mplfina.. 2022. 7. 8.
주식 데이터 불러오기(yfinance) #1 python으로 주식이나 지수 데이터를 불러오는 다양한 방법이 있습니다. 그중 Yahoo Finance의 정보를 제공해 주는 pythion 오픈 소스가 있습니다. 바로 yfinance 입니다. yfinance tool 을 사용하기 위하여 python 코드에 우선 import yfinance as yf import를 해줍니다. 자 그럼, 삼성전자(005930.KS) 주가를 yfinance로 불러오는 방법을 알아보겠습니다. 1. 삼성전자 ticker 찾기 yahoo finance 홈페이지에서 지수나 종목의 ticker를 찾을 수 있습니다. 검색을 해보면 영어로 검색해야 하는 부담이 있으나, 종목 코드를 알고 있으면 찾기 더 쉽습니다. 어쨌든 삼성전자의 종목 코드는 005930.KS 입니다. 2. histor.. 2022. 7. 7.
상관계수와 상관계수 행렬 #2 이번 글은 2022.07.05 - [수학의 재미/행렬 이론] - 상관계수와 상관계수 행렬 #1 상관계수와 상관계수 행렬 #1 이번 글은 2022.07.04 - [수학의 재미/행렬 이론] - 공분산과 공분산 행렬 공분산과 공분산 행렬 어떤 현상이나 타깃을 관찰하다 보면 여러 특징(features)들이 있습니다. 예를 들어 사람을 관찰할 경우 sine-qua-none.tistory.com 에서 이어집니다. $X,Y$의 상관계수는 $$ \mathbf{Corr}(X,Y) =\frac{\mathbf{Cov}(X,Y)}{\sigma_X \sigma_Y} = \frac1{\sigma_X \sigma_Y} \frac1n \sum_{i=1}^n (x_i -\mu_X) (y_i -\mu_Y)$$ 로 정의가 됩니다. $X$.. 2022. 7. 6.
상관계수와 상관계수 행렬 #1 이번 글은 2022.07.04 - [수학의 재미/행렬 이론] - 공분산과 공분산 행렬 공분산과 공분산 행렬 어떤 현상이나 타깃을 관찰하다 보면 여러 특징(features)들이 있습니다. 예를 들어 사람을 관찰할 경우 키, 몸무게, 나이 등등 학생 학습 성취도를 관찰할 경우: 국어 점수, 수학 점수 등 그런데 경 sine-qua-none.tistory.com 에서 이어집니다. 저번 글에서는 아래의 예제로 공분산 행렬을 구하는 방법을 알아봤습니다. 공분산 행렬은 covariance matrix(python function): [[ 3.4344 15.84933333] [15.84933333 90.72888889]] 위와 같이 나왔습니다. 그런데 말이죠. 공분산 행렬의 원소들을 보고 어떤 정보들을 알 수 있을까.. 2022. 7. 5.
공분산 행렬을 엑셀로 구하기 이 글은 2022.07.04 - [수학의 재미/행렬 이론] - 공분산과 공분산 행렬 공분산과 공분산 행렬 어떤 현상이나 타깃을 관찰하다 보면 여러 특징(features)들이 있습니다. 예를 들어 사람을 관찰할 경우 키, 몸무게, 나이 등등 학생 학습 성취도를 관찰할 경우: 국어 점수, 수학 점수 등 그런데 경 sine-qua-none.tistory.com 을 엑셀의 함수들을 사용하여 구해보는 글입니다. 저번 글에서 봤던 데이터입니다. 다시 한번 살펴보면 공분산은 2가지 방법으로 구할 수 있다고 했습니다. $p$개의 변수(features) $X_1, X_2, \cdots, X_p$ 가 있고 각각이 $n$개의 관찰 데이터 샘플을 가지고 있는 상황에서, 즉 $$ \pmatrix { \mid & \mid & &.. 2022. 7. 5.
공분산과 공분산 행렬 어떤 현상이나 타깃을 관찰하다 보면 여러 특징(features)들이 있습니다. 예를 들어 사람을 관찰할 경우 키, 몸무게, 나이 등등 학생 학습 성취도를 관찰할 경우: 국어 점수, 수학 점수 등 그런데 경험적으로 키가 큰 사람이 몸무게도 많이 나가고, 수학 점수가 뛰어난 학생이 과학 점수도 좋은, 이른바 양의 상관관계를 띄는 경우도 있고, 같은 거리를 가는데 느리게 가면 시간이 많이 걸리는 등 속도와 시간의 음의 상관관계도 있고, 또 아예 관계가 없어 보이는 경우도 있습니다. 두 특징(또는 변량, 변수)의 관계를 따지는 유명한 방법이 공분산을 산출해 보는 것입니다. 두 변수 $X, Y$의 공분산은 아래와 같이 정의합니다. $X,Y$의 공분산(covariance) $X, Y$의 표본(sample, 즉 관찰.. 2022. 7. 4.
행렬이 양수다? positive semidefinite 금융공학을 공부하다 보면 자산간의 상관계수와 그 상관계수로 이루어진 행렬의 성질들을 잘 알아야 합니다. 또한 2차 형식이라 불리는 수학의 한 분야도 공간 속의 곡면을 분석하거나 최대/최솟값을 분석하는데 행렬이 쓰입니다. 이 때 등장하는 행렬의 개념이 positive semidefinite인데요. 우선, 정의가 어떻게 되는지 살펴보겠습니다. 어떤 $ n \times n$ 정방행렬 $\mathbf{A}$가 positive semidefinite라는 정의는 ● $\mathbf{A}$는 대칭 행렬이고, ● 임의의 벡터 $\mathbf{v} \in \mathbb{R}^n$에 대하여, $\mathbf{v}^T \mathbf{Av} \geq 0$이다. 참고로 행렬 $\mathbf{A}$가 positive defini.. 2022. 7. 4.
대칭행렬 만들고 고윳값 분해하기 이번 글은 2022.06.29 - [수학의 재미/행렬 이론] - 대칭행렬을 분해합시다 - 고유값 분해(eigen decomposition) #2 대칭행렬을 분해합시다 - 고유값 분해(eigen decomposition) #2 이번 글은 2022.06.03 - [수학의 재미/행렬 이론] - 고유값 분해(eigen decomposition) #1 고유값 분해(eigen decomposition) #1 2차원 땅이나 3차원 공간에서 물체의 움직임이나 현상의 변화를 설명할 때, 행렬이.. sine-qua-none.tistory.com 에서 이어집니다. 정방행렬 $\mathbf{A}$ 에 대해서 eigenvalue로 이루어진 대각 행렬 $\mathbf{D}$와 eigenvector로 이루어진 행렬 $\mathbb.. 2022. 7. 2.
순간의 선택으로 득템하자. 몬티홀 문제 확률 통계 분야에 아주 유명한 문제가 있습니다. 몬티 홀 문제(Monty Hall problem)인데요. 사실 몬티 홀은 사람 이름입니다. 미국 퀴즈 프로그램의 진행자였던 Monty Hall의 이름이 붙게 된 문제입니다. 몬티홀 문제는 1990년 [퍼레이드]라는 잡지에 소개되면서 확률분야의 유명한 문제로 알려지게 되는데, 그 잡지에 실린 원문을 그대로 써보면 다음과 같습니다(나무위키 참조) Suppose you’re on a game show, and you’re given the choice of three doors. Behind one door is a car, behind the others, goats. You pick a door, say #1, and the host, who knows wh.. 2022. 7. 1.
e 를 시뮬레이션으로 구하기 테일러 전개(여기를 참고)에 따르면, 오일러 수(Euler's number)라고도 불리는 $e$는 $$e = 1+ 1+\frac1{2!} + \frac1{3!} +\cdots $$ 로 구할 수 있다고 하였습니다. $e$의 근사값을 구하는 방법은 2022.05.19 - [수학의 재미/아름다운 이론] - 테일러 전개 #2 : $e$에 대하여 에서 소개를 한 바 있는데요. $e$의 값을 구하는 아주 흥미로운 방법이 있어서 소개해 보려 합니다. $U_1, U_2, U_3, \cdots $를 $\mathcal{U}[0,1]$ 분포를 따르는 iid 확률변수라고 합시다. 즉, 0과 1에서 균등 분포를 따르는 서로 독립인 확률 변수입니다. 이때, $N$을 $$ N = \min \{ n| U_1+U_2+\cdots +U.. 2022. 6. 30.
대칭행렬을 분해합시다 - 고유값 분해(eigen decomposition) #2 이번 글은 2022.06.03 - [수학의 재미/행렬 이론] - 고유값 분해(eigen decomposition) #1 고유값 분해(eigen decomposition) #1 2차원 땅이나 3차원 공간에서 물체의 움직임이나 현상의 변화를 설명할 때, 행렬이 많이 쓰입니다. 또는 숫자의 배열로서 행렬이 쓰이는데, 분석을 쉽게, 또 간단히 하기 위해 주어진 행렬을 더 sine-qua-none.tistory.com 에서 이어집니다. 정방행렬(square matrix)에서 고윳값 분해를 정의했었죠. 복습을 해보자면, $n \times n$ 정방 행렬 $\mathbf{A}$에 대해서 $$\det(\mathbf{A}-\lambda \mathbf{I_n}) =0\tag{1}$$ 을 만족하는 $\lambda$가 고유값.. 2022. 6. 29.
확률측도를 바꿉시다: Girsanov Theorem 이번 글은 2022.06.27 - [금융공학] - GBM 은 어떤 모델일까? GBM 은 어떤 모델일까? 이번 글은 2022.06.19 - [금융공학] - GBM 주가패스 만들기 #2: EveryDay 주가까지! GBM 주가패스 만들기 #2: EveryDay 주가까지! 이 글은 2022.06.19 - [금융공학] - GBM 주가패스 만들기 #1: 만기시점 주가만 GB.. sine-qua-none.tistory.com 에서 이어집니다. 지난 글의 말미에 주식 $S_t$의 모델은 $$ dS_t/S_t = \mu dt + \sigma dW_t$$ 라 했고, drift 항의 $\mu$는 주식마다 각각 다르고 통일되어 있지 않아서 좀 번잡스럽습니다. 따라서 위의 GBM모델을 tunning을 해서 금융공학적으로 분석.. 2022. 6. 28.
GBM 은 어떤 모델일까? 이번 글은 2022.06.19 - [금융공학] - GBM 주가패스 만들기 #2: EveryDay 주가까지! GBM 주가패스 만들기 #2: EveryDay 주가까지! 이 글은 2022.06.19 - [금융공학] - GBM 주가패스 만들기 #1: 만기시점 주가만 GBM 주가패스 만들기 #1: 만기시점 주가만 이 글은 2022.06.07 - [금융공학] - 주식의 수학적 모델 #3 : GBM모델 주식의 수학적 모 sine-qua-none.tistory.com 에서 이어집니다. 이번 글에서는 Geomtric Brownin Motion이 과연 어떤 성질들을 가지고 있는지 알아보겠습니다. GBM을 복습하자면, 시점 $t$에서의 주식의 가격 $S_t$는 $$ \frac{dS_t}{S_t} = \mu dt + \sig.. 2022. 6. 27.
randint를 사용할 땐 주의하라고? 파이썬의 randint 함수는 이름에서도 느껴지듯이 정수형 난수를 추출하는 함수입니다. 그런데 이 함수를 쓸 땐 조심해야 할 점이 있습니다. randint 함수는 다음의 두 경우가 있습니다. 1. numpy 모듈안의 random.randint numpy.random.randint 용법은 아래와 같이 씁니다. random.randint(low, high=None, size=None, dtype=int) numpy tutorial 을 보면 다음과 같은 말이 써 있습니다. Return random integers from low (inclusive) to high (exclusive). 즉 low 값은 포함하고, high 값은 포함하지 않습니다. 반면에 다음의 randint도 있습니다. 2. random.ra.. 2022. 6. 27.
움직이는 차트, 실시간 변하는 차트 그리기 파이썬에서 차트를 그리다 보면 실시간 변하면서 움직이는 차트를 그리고 싶을 때가 있습니다. 이럴 때 쓰는 것이 바로 다음의 함수입니다. matplotlib.pyplot.pause 입니다. interval이라는 변수를 input으로 받고, interval 초 동안 GUI event loop를 돌리면서 차트의 업데이트를 늦추는 기능을 합니다. 자세항 사항은 matplotlib totorial 을 참고하시면 됩니다. 예제 1. 2차원 Random walk 실시간으로 그리기. 2022.06.25 - [수학의 재미/확률분포] - 술 먹고 걷기(Random Walk) #2: 동서남북 내키는 대로~ 술먹고 걷기(Random Walk) #2: 동서남북 내키는대로~ 지난 글에서 길 따라 걷는 1차원적인 random wa.. 2022. 6. 26.
728x90
반응형