Python으로 TRIX 지표 구현하기

TRIX(Triple Exponential Moving Average)는 기술적 분석에서 사용되는 모멘텀 오실레이터로, 추세를 파악하기 위한 지표입니다. 3번의 EMA 계산을 거쳐서 TRIX 값을 완성하며, 이렇게 계산된 자산 가격의 변동성을 보다 부드럽게 표현하며, 추세의 방향과 강도를 파악하는 데 도움을 줍니다. 이렇게 계산된 TRIX 값은 추세의 변화를 식별하는 데 사용되며, 신호선과의 교차나 다이버전스를 통해 매매 신호를 제공할 수 있습니다.

1️⃣ 첫 번째 EMA를 계산합니다.
2️⃣ 첫 번째 EMA의 EMA를 다시 계산합니다.
3️⃣ 두 번째 EMA의 EMA를 다시 계산하여 삼중 EMA를 완성합니다.
4️⃣ TRIX 값: 삼중 EMA의 일일 변화율을 계산합니다.

트레이딩뷰와 동일한 값으로 계산하겠습니다.

pip install pandas ccxt pinetopy numpy

import pandas as pd
import ccxt
import pinetopy as pp
import numpy as np

# 예시) 바이낸스 선물 BTCUSDT, 1시간 봉 
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'])

def trix(df, len=18):
    close = np.log(df['close'])
    ema1 = pp.ema(close, len)
    ema2 = pp.ema(ema1, len)
    ema3 = pp.ema(ema2, len)
    df['TRIX'] = (10000 * np.diff(ema3, prepend=ema3[0])).round(2)

    return df

print(trix(df, len=18)) # 트레이딩뷰 디폴트 값

트레이딩뷰 차트와 비교