
Chiến lược theo dõi xu hướng được đề xuất bởi Andrew Abraham trong một bài báo có tên là “Trend Tracking” được xuất bản vào tháng 9 năm 1998 trên tạp chí Phân tích kỹ thuật giao dịch Forex. Chiến lược này sử dụng các bước trung bình di chuyển và giá cao nhất, giá thấp nhất để xác định xu hướng giá và giao dịch theo hướng của xu hướng.
Chiến lược này đầu tiên tính trung bình sóng thực avgTR trong 21 ngày gần đây. Sau đó tính giá cao nhất (highestC) và giá thấp nhất (lowestC) trong 21 ngày gần đây. Sau đó tính hiLimit trên đường đua, giá cao nhất trừ đi 3 lần avgTR; tính loLimit dưới đường đua, giá thấp nhất cộng với 3 lần avgTR.
Chiến lược này có những lợi thế chính như sau:
Chiến lược này cũng có một số rủi ro:
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược theo dõi xu hướng nói chung là một chiến lược giao dịch xu hướng đơn giản và thực tế. Nó sử dụng kênh giá để xác định hướng xu hướng và tránh bị mắc kẹt trong tình huống biến động. Nhưng cũng có một số rủi ro cần được tối ưu hóa hơn nữa để tăng sự ổn định.
/*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")