趋势追踪策略是由Andrew Abraham在1998年9月发表在《交易技术分析杂志》上的一篇名为《交易趋势》的文章中提出的。该策略利用移动平均真实波幅和最高价、最低价来判断价格趋势,并在趋势方向上进行交易。
该策略首先计算最近21天的平均真实波幅avgTR。然后计算最近21天的最高价highestC和最低价lowestC。接着计算上轨hiLimit,其值为最高价减去avgTR的3倍;计算下轨loLimit,其值为最低价加上avgTR的3倍。当收盘价超过上下轨时,分别取上下轨值作为参考价位ret。当收盘价高于参考价位时,做多;当收盘价低于参考价位时,做空。
该策略主要有以下优势:
该策略也存在一些风险:
该策略可从以下几个方面进行优化:
趋势追踪策略整体来说是一个简单实用的趋势交易策略。它利用价格通道判断趋势方向,可避免在震荡行情中被套牢。但也存在一定的风险,需要进一步优化以提高稳定性。该策略适合有一定交易经验的投资者使用。
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 12/01/2017
// This is plots the indicator developed by Andrew Abraham
// in the Trading the Trend article of TASC September 1998
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Trend Trader Strategy", overlay = true)
Length = input(21, minval=1),
Multiplier = input(3, minval=1)
reverse = input(false, title="Trade reverse")
avgTR = wma(atr(1), Length)
highestC = highest(Length)
lowestC = lowest(Length)
hiLimit = highestC[1]-(avgTR[1] * Multiplier)
loLimit = lowestC[1]+(avgTR[1] * Multiplier)
ret = iff(close > hiLimit and close > loLimit, hiLimit,
iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0)))
pos = iff(close > ret, 1,
iff(close < ret, -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(ret, color= blue , title="Trend Trader Strategy")