Least Squares Moving Average(LSMA)는 최소자승법을 이용해 추세선을 계산하는 이동평균선입니다.
과거 일정 기간 동안의 가격 데이터를 직선으로 근사화하고, 해당 직선의 최종값을 현재 값으로 사용하는 방식입니다.
단순 이동평균(SMA)보다 추세 변화를 더 빠르게 포착할 수 있으며, 가격 흐름의 방향성 확인에 유용합니다.
회귀 분석 기법을 응용한 지표로, 노이즈를 줄이면서도 추세에 민감하게 반응하는 특성이 있습니다.
Least Squares Moving Average 구현
import pandas as pd
import ccxt
import pinetopy as pp
import numpy as np
# Binance Futures, BTCUSDT, 1h
bnb = ccxt.binance({'options': { 'defaultType': 'future' }})
ohlcv = bnb.fetch_ohlcv(symbol="BTC/USDT", timeframe="1h", limit=500)
df = pd.DataFrame(ohlcv, columns=['time', 'open', 'high', 'low', 'close', 'volume'])
df['time'] = pp.kst(df['time'])
# TradingView Default Settings
def main(df, len=25, offset=0):
df['lsma'] = pp.linreg(source=df['close'], length=len, offset=offset)
return df
print(main(df))
Check
트레이딩뷰 차트와 비교

