ALMA (Arnaud Legoux Moving Average) 기존 이동평균선의 단점을 보완하기 위해 개발된 지표로 가격변동에 더 부드럽게 반응하면서 지연(lag)을 줄이는데 중점을 둔 지표입니다. $$\text{ALMA} = \frac{\sum^{n-1}_{i=0} w_i\text{price}_{t-i}}{\sum^{n-1}_{i=0} w_i}$$ n: 기간, 이동평균을 계산하기 위한 가격의 개수입니다. 일반적으로 9를 사용 price t-i : 현재로부터 i 번째 이전의 가격 w i : 가우시안 함수에 의해 결정되는 가중치 가우시안 가중치 $$w_i=\exp\left(-\frac{\left(i-\text{offset}\cdot (n-1)\right)^2}{2\sigma^2} \right)$$ offset: 부드러움과 반응성 사이의 균형을 조절하는 파라미터로 [0, 1]사이의 값입니다. 1에 가까울수록 최근가격에 더 가중치를 부여하고 0에 근접할 술록 과거 가격에 더큰 비중을 부여합니다. (다음 결과는 총 10개의 데이터에 offset을 변화시켰을 경우의 가중치의 변화를 나타낸 것입니다.) 일반적으로 0.85를 사용합니다. σ : 가우시안 분포의 폭을 결정하는 값으로 ALMA의 부드로움 정도를 조절합니다. 값이 클수록 분포가 넓어지고 부드러워 집니다. 기본적으로 6을 설정합니다. import numpy as np import pandas as pd import yfinance as yf import pandas_ta as ta import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'Malgun Gothic' plt.rcParams['axes.unicode_minus'] = False def weight(n, offset, sigma): result=[] for i in range(n): ...
python 언어를 적용하여 통계(statistics)와 미적분(Calculus), 선형대수학(Linear Algebra)을 소개합니다. 이 과정에서 빅데이터를 다루기 위해 pytorch를 적용합니다.