금융 데이터 분석(19)
-
TA-Lib을 활용한 기술적 분석 (2/2)
지난 포스팅에 이어서, 이번 포스팅에서도 많이 활용되는 주요지표를 정리하고 talib을 활용하여 어떻게 계산할 수 있는지에 대해서 다루어보도록 하겠습니다. [RSI(Relative Strength Index)]RSI는 지난번에도 다룬적이 있지만, 기술적분석에서 활발히 활용되는 지표로, 현재 주가의 움직임이 어떠한 속도로 움직이고 있는지를 측정하는 지표입니다. 이를 활용해서, 과매수가 이루어지고 있는지 과매도가 이루어지고 있는지 확인할 수 있습니다. 보통 RSI 70~80 이상을 과매수, RSI 20~30 이하를 과매도 상태로 판단하게 됩니다. RSI의 계산 수식은 아래와 같습니다.여기서 RS는 특정기간에 평균 상승폭을 평균 하락폭으로 나눈 값입니다. 수식에서 확인할 수 있듯이 RS는 증가폭이 커지면 ..
2024.05.12 -
TA-Lib을 활용한 기술적 분석 (1/2)
TA-Lib은 기술적 분석을 위해, 주요 지표들을 쉽게 다룰수 있도록 지원해주는 Python 패키지입니다. 이 패키지에 대해서 간략하게 소개한적이 있지만( https://direction-f.tistory.com/110) 구체적인 활용예시들에 대해서는 다루지 않아, 이번 포스팅에서 주요 지표들과 함께 TA-Lib 활용 방법에 대해서 한번 정리해보겠습니다. TA-lib의 설치는 일반적으로 pip install을 활용하여 설치하기가 어렵습니다. 제가 앞서 정리하면서 활용했던 사이트도 사라지고, 조금씩 설치방법이 변경되는 것으로 보입니다. 따라서 Ta-lib 공식 페이지에서 어떻게 설치하는지 확인하시어 진행하는것이 좋을 것 같습니다. https://pypi.org/project/TA-Lib/ [이동평균선(SM..
2024.04.23 -
시계열 데이터 Trend 감지
앞선 포스팅에서 시계열 데이터에서 변하는 지점을 식별하는 알고리즘을 다뤘다면, 이번 포스팅에서는 시계열 데이터의 트렌드를 감지할 수 있는 방법에 대해서 다뤄보겠습니다. 트렌드는 증가/감소/방향없음으로 나타낼 수 있을 것입니다. Kat 패키지에서는 Mann-Kendall test라는 알고리즘을 활용하여, 현재 시계열 데이터가 어떤 트렌드를 가지고 있는지를 감지합니다. Mann-Kendall test는 시계열 기간에 있는 모든 지점에 대해서 이원비교를 수행하고 데이터 지점이 n개라고 한다면 총 비교 수는 n(n-1)/2가 됩니다. 모든 쌍을 대상으로 아래와 같이 indicator function을 활용하여 0인지 1인지 -1인지를 결정합니다. 그 후 indicator function들의 값을 합합니다. 활용..
2024.04.01 -
Outlier 식별
금융시장에서 Outlier는 그 자체로 중요한 의미를 가질 수도 있고, 어떤 주식에서는 변곡점을 나타낼 수도 있습니다. 또는 그냥 이상현상일 수도 있습니다. 따라서 Outlier처리를 어떻게 할지는 또 다른 어려운 과제지만 먼저 Outlier을 어떻게 식별할지에 대해서 다루어 보도록 하겠습니다. 이번 포스팅에서는 Outlier 식별을 하는데 있어서 고전적인 방법을 다루도록 하겠습니다. 간단하지만 직관적이고 여전히 많이 활용되고 있는 방법입니다. [평균과 표준편차 활용] 시계열 데이터의 경우 rolling할 window를 정하고 해당 window에서 평균과 표준편차를 활용해서 얼마만큼 평균과 차이가 나는지를 확인하는 것입니다. 일반적으로 정규분포를 생각하면 "평균 + 3*표준편차"보다 특정값이 클 확률은 ..
2024.03.13 -
Portfolio optimization(포트폴리오 최적화)
이번 포스팅에서는 시뮬레이션과 최적화를 활용하여 포트폴리오의 종목 비중을 최적화 할 수 있는 방법에 대해서 작성해보겠습니다. Sharpe ratio 개념에서 엿볼 수 있듯이 변동성을 최소화하면서 수익률을 극대화하는 것이 좋은 포트폴리오를 구성하는 방법일 것입니다. 물론 미래를 알 수 있다면 수익률이 가장 좋은 단일 종목을 선택하여 가지고 가는 것이 좋겠지만, 미래는 불확실하기 때문에 우리가 선정한 후보 종목들 중에서 어떻게 비중을 가져가는 것이 좋은 포트폴리오를 구성하는 것인지 선택하는 기준에 대해서 살펴보겠습니다. [시뮬레이션] 시뮬레이션 방법은 종목을 구성하고자 한 비중들을 무작위로 생성하고, 생성한 비중일 때의 수익률과 변동성을 계산하여 Plotting 해보는 방법입니다. 예를 들어 삼성전자/네이버..
2023.10.10 -
Sharpe ratio, CAPM
주식을 하다보면, 하나의 종목만을 사고 팔고하는 경우가 없고 여러 종목을 선정하고 비중을 조정하는 경우가 많습니다. 이런 여러 종목들을 섞는 것을 포트폴리오를 구성한다고 하는 것이고, 포트폴리오의 성과와 위험을 관리하는 것은 중요 합니다. 이번 포스팅에서는 포트폴리오의 성과를 측정하기 위한 가장 기본적인 숫자들을 다뤄보도록 하겠습니다. [Sharpe Ratio] Sharpe Ratio는 포트폴리오 위험성 대비 수익성이 어떠한지를 나타내는 것으로, 값이 클수록 좋습니다. Sharpe Ratio가 크다는 것은 포포트폴리오 위험성(표준편차)가 낮고 수익성이 높다는 것입니다. 결국 변동(위험)대비 수익률이 어떠한지를 보는 것입니다. $R_p$는 포트폴리의 수익률, $R_f$는 무위험 수익률, $\sigma_p$..
2023.10.09