Ý tưởng chính của chiến lược này là đánh giá xu hướng giá và tạo ra tín hiệu giao dịch bằng cách sử dụng đường trung bình động và Bollinger Bands. Cụ thể, nó đầu tiên tính toán phạm vi trung bình thực sự (ATR) trong một khoảng thời gian nhất định để có được phạm vi biến động, sau đó kết hợp giá cao nhất và thấp nhất để tạo thành một kênh giới hạn. Nếu giá vượt qua kênh này, giá đóng được thiết lập là giá kênh. Sau đó, nó tính toán trung bình động của giá đóng hạn chế, được gọi là Trung bình di chuyển của Trend Trader (AVR). Cuối cùng, vẽ các dải Bollinger trên và dưới Trung bình di chuyển của Trend Trader để tạo ra tín hiệu giao dịch. Đi dài khi giá vượt qua dải trên và đi ngắn khi vượt qua dải dưới.
Chiến lược này đầu tiên tính toán phạm vi ATR và tạo thành một kênh giới hạn kết hợp với giá cao nhất và thấp nhất. Giá đóng sẽ bị giới hạn ở giá kênh chỉ khi nó phá vỡ kênh. Sau đó, nó tính toán trung bình di chuyển của giá đóng giới hạn, phản ánh hướng xu hướng trung dài hạn. Cuối cùng, vẽ một dải trên và một dải dưới song song với trung bình di chuyển của Trend Trader như các dải Bollinger. Bước qua dải trên tạo ra tín hiệu dài và bước qua dải dưới tạo ra tín hiệu ngắn.
Trọng tâm của việc đánh giá xu hướng nằm ở trung bình di chuyển của Trend Trader, thể hiện hướng xu hướng trung hạn dài hạn. Vai trò của Bollinger Bands là lọc một số đột phá sai và làm cho các tín hiệu giao dịch đáng tin cậy hơn. Toàn bộ chiến lược kết hợp theo xu hướng và đột phá, tạo thành một hệ thống xu hướng mạnh mẽ.
Giải pháp:
Chiến lược này nói chung là một hệ thống theo xu hướng mạnh mẽ. Nó có thể đánh giá xu hướng trung dài hạn và tạo ra các tín hiệu giao dịch kết hợp với các băng tần Bollinger. Thông qua tối ưu hóa tham số, nó có thể có được alpha ổn định. Nhưng kiểm soát rủi ro cũng rất quan trọng để tránh tổn thất lớn do một số sự kiện đột ngột khi nắm giữ dài hạn. Nói chung, chiến lược xứng đáng nghiên cứu và tối ưu hóa thêm cho alpha bền vững dài hạn.
/*backtest start: 2022-12-04 00:00:00 end: 2023-12-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 16/10/2018 // This is plots the indicator developed by Andrew Abraham // in the Trading the Trend article of TASC September 1998 // It was modified, result values wass averages. // And draw two bands above and below TT line. //////////////////////////////////////////////////////////// strategy(title="Trend Trader Bands Backtest", overlay = true) Length = input(21, minval=1), LengthMA = input(21, minval=1), BandStep = input(20), 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 = 0.0 ret := iff(close > hiLimit and close > loLimit, hiLimit, iff(close < loLimit and close < hiLimit, loLimit, nz(ret[1], 0))) nResMA = ema(ret, LengthMA) pos = 0.0 pos := iff(close < nResMA - BandStep , -1, iff(close > nResMA + BandStep, 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 ) barcolor(pos == -1 ? red: pos == 1 ? green : blue ) plot(nResMA, color= blue , title="Trend Trader AVR") plot(nResMA+BandStep, color= red , title="Trend Trader UpBand") plot(nResMA-BandStep, color= green, title="Trend Trader DnBand")