
-
第一步:计算12日的指数移动平均(EMA)。
-
第二步:对第一步的结果再计算12日EMA。
-
第三步:对第二步的结果再计算12日EMA。
-
买入信号:当TRIX指标从负值区域向上穿过0线,表明股价动量开始增强,可能是一个买入信号。
-
卖出信号:当TRIX指标从正值区域向下穿过0线,表明股价动量开始减弱,可能是一个卖出信号。
-
交叉信号:TRIX指标与其移动平均(如6日简单移动平均)的交叉,也可以作为交易信号。
-
优点:
-
过滤市场噪音,突出中期趋势。
-
适用于识别动量变化和趋势反转。
-
-
缺点:
-
滞后性:TRIX指标可能会在趋势形成后才发出信号。
-
信号频率:在高波动市场中可能会产生误导信号。
-
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import pandas_datareader.data as web
# 获取股票数据
df = web.DataReader('AAPL', 'yahoo', start='2020-01-01', end='2021-01-01')
# 计算TRIX
def trix(data, period=12):
ema1 = data.ewm(span=period, adjust=False).mean()
ema2 = ema1.ewm(span=period, adjust=False).mean()
ema3 = ema2.ewm(span=period, adjust=False).mean()
trix = (ema3 - ema3.shift(1)) / ema3.shift(1) * 100
return trix
df['TRIX'] = trix(df['Close'])
# 交易信号
df['Signal'] = 0
df['Signal'][period:] = np.where(df['TRIX'][period:] > df['TRIX'].shift(1)[period:], 1, 0)
df['Position'] = df['Signal'].diff()
# 绘制TRIX和交易信号
plt.figure(figsize=(14, 7))
plt.plot(df['TRIX'], label='TRIX')
plt.scatter(df.index, df['TRIX'], label='TRIX Signal', marker='^', color='g', s=100, alpha=0.8)
plt.axhline(y=0, color='r', linestyle='--', label='Zero Line')
plt.title('TRIX Indicator with Trading Signals')
plt.legend()
plt.show()
# 输出交易信号
print(df[['Close', 'TRIX', 'Signal', 'Position']])
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/106009
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!