
该策略的核心思想是利用移动平均线的斜率判断市场趋势,构建趋势分析指数(Trend Analysis Index,TAI)作为交易信号。当价格在趋势中运行时,移动平均线斜率增大;当价格在无明确趋势的区间内震荡时,移动平均线斜率减小。趋势分析指数增大表明进入趋势,减小表示趋势结束。
该策略首先计算价格的简单移动平均线(X日移动平均线)。然后计算该移动平均线过去Y日的最高值和最低值,通过这两个extrema值计算移动平均线在过去Y日的波动范围。最后,通过将该Y日波动范围与价格比较,转换为0-1之间的标准化指标,即构建趋势分析指数。当指数高于某阈值时做多,低于某阈值时做空。
该策略具有如下优势:
该策略也存在一定风险:
对应解决方法:
该策略可从以下几个方面进行优化:
该策略整体来说是通过移动平均线斜率判断趋势的中长线策略,可有效捕捉趋势,但也存在一定的假信号风险。通过与其他指标组合使用、加入止损、参数优化等手段可以使策略更加稳健可靠,本质上仍是一个比较简单的趋势跟踪策略。
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 21/12/2017
// In essence, it is simply the standard deviation of the last x bars of a
// y-bar moving average. Thus, the TAI is a simple trend indicator when prices
// trend with authority, the slope of the moving average increases, and when
// prices meander in a trendless range, the slope of the moving average decreases.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Trend Analysis Index", shorttitle="TAI")
AvgLen = input(28, minval=1)
TAILen = input(5, minval=1)
TopBand = input(0.11, step=0.01)
LowBand = input(0.02, step=0.01)
reverse = input(false, title="Trade reverse")
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xPrice = close
xSMA = sma(xPrice, AvgLen)
xHH = highest(xSMA, TAILen)
xLL = lowest(xSMA, TAILen)
nRes = (xHH - xLL) * 100 / xPrice
pos = iff(nRes > TopBand, 1,
iff(nRes < LowBand, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="TAI")