真实强度指数
业务意义
TSI 是基于价格变化的双重平滑动量指标,通过两次指数移动平均来过滤市场噪音,提供更平滑、更可靠的动量信号,减少虚假交易信号。
核心使用场景
1. 趋势动量确认
TSI > 0:看涨动量,考虑做多
TSI < 0:看跌动量,考虑做空
TSI 上升:动量增强
TSI 下降:动量减弱
2. 金叉死叉信号(主要交易信号)
金叉:TSI 线上穿信号线,买入信号
死叉:TSI 线下穿信号线,卖出信号
零轴金叉:在零轴以上的金叉更可靠
零轴死叉:在零轴以下的死叉更可靠
使用要点总结
核心优势:
双重平滑减少市场噪音
提供清晰的动量方向
比单一周期指标更可靠
最佳参数设置:
默认参数:25/13/7(长 / 短 / 信号)
短线交易:缩短所有周期
长线投资:延长长周期参数
信号优先级:
背离信号 > 零轴穿越 > 金叉死叉
有趋势确认 > 无趋势确认
有成交量配合 > 无成交量配合
风险控制:
TSI 在极端区域要谨慎
结合价格位置确认信号
设置基于 TSI 动量的动态止损
TSI 通过双重平滑处理,提供了比其他动量指标更可靠、更平滑的信号,特别适合趋势跟踪和动量确认策略。
计算公式
第一步:计算平滑系数 k(n 为周期):
k=2/(n+1)
第二步:计算 ema:
ema =if(#>1, k* 价格列 +(1- k)*ema [-1], 价格列 )
第三步:计算 TSI:
价格变化 = 收盘 - 收盘 [-1]
绝对价格变化 =abs(价格变化)
TSI = ema(ema( 价格变化, 长周期), 短周期 )/ ema(ema( 绝对价格变化, 长周期), 短周期 )*100
第四步:计算信号线(TSI 的 EMA)
TSI_sig =ema(TSI, 信号周期)
EMA 实现代码
指标参数:
y |
指标返回的字段名。 |
x |
要计算的价格字段,如收盘 |
n |
时间周期,如 5 |
函数代码:
A |
B |
|
1 |
func EMA(A, $y, $x, n) |
=ema_k=2/(n+1) |
2 |
=A.run(if(#>1,ema_k*${x}+(1-ema_k)*${y}[-1],${x}):${y}) |
TSI 实现代码
指标参数:
y1 |
TSI 输出列名 |
y2 |
TSI_sig 输出列名 |
x |
要计算的价格字段,如收盘 |
n1 |
长周期,缺省 25 |
n2 |
短周期,缺省 13 |
n3 |
信号线周期,缺省 7 |
函数代码:
A |
B |
|
1 |
func TSI (A,$y1, $y2, $x,n1,n2,n3) |
=A.derive@o(${x}-${x}[-1]:价格变化, abs(${x}-${x}[-1]): 绝对价格变化, :ema_l, :ema_la, :ema_s, :ema_sa) |
2 |
= EMA(A,ema_l,价格变化,n1) |
|
3 |
=EMA(A,ema_la,绝对价格变化,n1) |
|
4 |
=EMA(A,ema_s,ema_l,n2) |
|
5 |
=EMA(A,ema_sa,ema_la,n2) |
|
6 |
=A.run(ema_s/ema_sa*100:${y1}) |
|
7 |
=EMA(A,${y2},${y1},n3) |
|
8 |
=A.alter(;价格变化, 绝对价格变化, ema_l, ema_la, ema_s, ema_sa) |
举例:
调用脚本计算浦发银行 2024 年的真实强度指数
A |
||
1 |
… |
/计算出源数据 |
2 |
=A1.derive(:TSI, :TSI_sig) |
/增加要返回的指标字段 |
3 |
=TSI (A2,TSI,TSI_sig,收盘,25,13,7) |
/调用函数计算指标 |
运行效果:

