개발일지

파이썬 투자 보조 지표 분석 / 전략 설계 - TRIX

kirion 2022. 12. 1. 09:35
728x90
반응형

투자 보조 지표 TRIX

Trix는 이동평균선의 불필요한 데이터 값을 제거해 명확하게 추세를 파악할 수 있는 장점이 있다.

불필요한 값을 제거한다는 것은 이동평균선을 3번에 거쳐 완만하게 표현시켜주는 것이다. 따라서 추세선이 부드러워지고, 시장의 변동성에 대응하기 쉬워진다.

계산방법

EMA1 = 종가의 N일 지수 이동 평균

EMA2 = EMA1의 N일 지수 이동 평균

EMA3 = EMA2의 N일 지수 이동 평균

 

TRIX = (금일의 EMA3 값 - 전일을 EMA3값) / 전일의 EMA3값 * 100

 

해석

3번의 필터(지수이동평균)을 거쳐 완만하고 정확성이 높은 이동평균선을 활용해 추세의 등락 및 매매시점을 포착하는데 유용한 지표이다.

 

전략

TRIX는 12일 Signal은 9일을 기준으로 한다.

  • TRIX선이 상승하여 0 돌파시 상승 추세 : 매수시점
  • TRIX선이 하락하여 0 돌파시 하락 추세 : 매도시점
  • TRIX선이 Signal선을 상향하여 돌파시 : 매수시점
  • TRIX선이 Signal선을 하향하여 돌파시 : 매도시점

 


파이썬 구현

import ta
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import FinanceDataReader as fdr
import copy
df_krx = fdr.StockListing('KRX')

kospi_data = df_krx[(df_krx["Market"]=="KOSPI") & (~df_krx["Sector"].isna())]

target = kospi_data[kospi_data["Name"]=="KT&G"]

price_data = fdr.DataReader("033780","2020","2022-11-29")

 

trix = ta.trend.TRIXIndicator(price_data["Close"],12).trix()
ma_trix = trix.rolling(window=9).mean()

ta 패키지로 Trix, signal 계산은 함수 하나로 간단하다.

 

ema1 = price_data["Close"].ewm(span= 12).mean()
ema2 = ema1.ewm(span= 12).mean()
ema3 = ema2.ewm(span= 12).mean()

trix = (ema3 - ema3.shift(1))/ema3.shift(1)*100
ma_trix = trix.rolling(window=9).mean()

pandas로 계산하는 식도 간단하다. pandas의 내장 함수를 적절히 이용해주면 된다.

 

price_data["trix"] = trix
price_data["ma_trix"] = ma_trix

trix 12일, signal 9일로 계산해준 지표 값이다.

 

fig, ax1 = plt.subplots(figsize = (14,7)) 
ax1.set_ylabel('Price') 
ax1.plot(price_data["Close"],color = "black",alpha = 0.7)

ax2 = ax1.twinx() 
ax2.set_ylabel('Index') 

ax2.plot(price_data["trix"],color = "tab:blue",alpha = 0.5)
ax2.plot(price_data["ma_trix"],color = "tab:red",alpha = 0.5)
ax2.legend(["trix","ma_trix"],loc = "upper left")
plt.title(target["Name"].values[0])

plt.show()

TRIX

2020년 부터의 KT&G Trix 지표.

주가는 파동이 심한 반면, Trix지표는 주가의 흐름을 따르면서 매우 완만해진 것을 볼 수 있다. 3번의 지수 이동 평균으로 추세를 확인하기가 쉬워진 것으로 보인다.

2022년부터 최근 추세를 보자.

 

 

2022년 Trix

Trix지표가 0선 위에 있을 때 상승세가 두드러진다. 조금 후행하기는 하지만, 0선 이하로 내려왔을 때 한 번 매도해도 괜찮았던 포인트가 6월 말쯤에 있었다. 그 후 다시 0선을 돌파하고, Trix선이 signal선을 돌파하면서 주가는 큰 폭으로 상승했다.

현재는 Trix지표가 0.22, signal이 0.28 정도로 signal 선에 대해서는 하향 돌파했지만, Trix 지표값 자체가 0.2로 큰 편이다. 

기본적인 전략 중 한가지만 만족하고 0선을 기준으로는 아직 여지가 남아있어 보인다. 물론 추세가 꺾여서 하락할 수도 있겠지만 말이다.

다른 지표를 봤을 때도 하락하는 시그널은 크지 않은 것 같았다. 이렇기 때문에 여러 지 표를 동시에 보면서 자신만의 매매 기준을 세워야 한다는 것 같다. 

 

 TRIX선의 경우 흐름이 완만하기 때문에 벡테스팅이나 매매 포인트, 발생 횟수 등의 분석에 사용하기 적절해 보인다. RSI도 변동폭이 큰 편이라 시그널이 많이 발생한 것을 이전 포스팅에서 확인했었다.

2022.11.15 - [개발일지] - 8. 투자지표를 활용한 매매 시점 모니터링 - 전략 설계 참고

 

Trix 0기준선 매매 시그널 분석

역시 조금 후행하는 것으로 보인다. 아무래도 3번의 지수 이동평균으로 반영이 조금 늦게 되는 것 같다. 오르기 시작한 후 매수 사인이, 내리기 시작한 후 매도 사인이 많이 발생하는 것을 보아서는 Trix 단일 지표만으로는 활용 가능성이 낮아보이기도 한다. 

물론 시그널 선을 돌파하는 전략까지 벡테스팅에 반영하지는 못했다. 코드 수정이 좀 필요한데 다양한 지표에 사용 가능하도록 통합하며 수정할 예정이다.

따라서 전략의 검증은 지표를 모두 구현한 후 해야할 것 같다.

728x90
반응형