Chiến lược trung bình động Bollinger Band T3

Tác giả:ChaoZhang, Ngày: 2023-11-02 15:45:31
Tags:

img

Tổng quan

Chiến lược này sử dụng đầy đủ phán đoán xu hướng của đường trung bình động và phán đoán mua quá mức / bán quá mức của Bollinger Bands. Với việc làm mịn đường trung bình di chuyển T3, nó có thể xác định sự đảo ngược xu hướng kịp thời và vào thị trường. Trong vùng dao động, nó sử dụng Bollinger Bands để xác định các khu vực mua quá mức / bán quá mức cho giao dịch xu hướng đối phó. Vì vậy, nó nhận ra giao dịch cực ngắn hạn.

Chiến lược logic

Chiến lược này chủ yếu sử dụng ba nhóm trung bình động để xác định xu hướng và tạo ra tín hiệu giao dịch. Thứ nhất là trung bình động T3, có thể lọc biến động giá thông qua làm mịn theo cấp số nhân và đánh giá hướng xu hướng. Thứ hai là trung bình động trung bình, ở đây sử dụng SMA 20 giai đoạn để xác định xu hướng trung hạn. Cuối cùng là trung bình động nhanh và chậm, trung bình động T3 50 giai đoạn và 200 giai đoạn tương ứng. Khi đường nhanh lớn hơn đường chậm, nó chỉ ra xu hướng tăng, nếu không xu hướng giảm.

Các tín hiệu giao dịch được tạo ra khi SMA trung hạn vượt qua T3 trung hạn tăng kết hợp với xu hướng tăng, đi dài. Khi SMA trung hạn vượt qua dưới T3 trung hạn giảm kết hợp với xu hướng giảm, đi ngắn. Ngoài ra, Bollinger Bands có thể được sử dụng để lấy lợi nhuận và dừng lỗ. Nếu giá vượt qua dải trên, hãy xem xét lấy lợi nhuận. Nếu giá vượt qua dải dưới, hãy xem xét dừng lỗ.

Cụ thể, điều kiện dài là đường SMA giữa vượt qua đường T3 giữa lên, và MA nhanh lớn hơn đường MA chậm. Nếu giá vượt qua dải Bollinger phía trên hoặc đường SMA giữa vượt qua dưới T3, hãy xem xét lấy lợi nhuận. Điều kiện ngắn là đường SMA giữa vượt qua dải T3 phía dưới và đường MA nhanh thấp hơn đường MA chậm. Nếu giá vượt qua dải Bollinger phía dưới hoặc đường SMA giữa vượt qua trên T3, hãy xem xét dừng lỗ.

Ưu điểm

  • Sử dụng đầy đủ các lợi thế của nhiều đường trung bình động, T3 để làm mịn, SMA trung bình cho xu hướng, MAs nhanh và chậm cho xu hướng dài hạn
  • Bollinger Bands Dải trên và dưới đánh giá mức mua quá mức / bán quá mức, giảm rủi ro mất mát
  • Kết hợp tín hiệu giao dịch nghiêm ngặt, tránh gây hiểu lầm bởi biến động

Rủi ro

  • Các thông số T3 không chính xác có thể không làm mịn hoặc gây ra sự chậm trễ
  • Các thông số Bollinger Bands không chính xác có thể gây ra các band không hợp lệ
  • Thời gian trung bình động sai dẫn đến hướng xu hướng sai
  • Các điểm đột phá không chính xác cho việc lấy lợi nhuận và dừng lỗ, có thể thoát quá sớm hoặc quá muộn

Cải tiến:

  • Điều chỉnh các thông số T3 để cân bằng làm mịn và chậm
  • Điều chỉnh các thông số Bollinger Bands để bao gồm phạm vi biến động bình thường
  • Kiểm tra các giai đoạn trung bình động khác nhau để tìm những giai đoạn phù hợp với tài sản
  • Tối ưu hóa điểm lấy lợi nhuận và dừng lỗ dựa trên kết quả backtest

Hướng dẫn tối ưu hóa

  • Thêm chỉ số sức mạnh xu hướng như ADX để tránh đảo ngược tại các điểm chuyển hướng xu hướng
  • Thêm chỉ số biến động để điều chỉnh các tham số dựa trên biến động thị trường
  • Thêm dừng lỗ để cho phép nhiều lợi nhuận hơn để chạy ra
  • Xem xét chiến lược breakout, theo dõi dừng lỗ sau khi phá vỡ các dải

Tóm lại

Tóm lại, chiến lược này sử dụng trung bình động một cách có hệ thống để xác định xu hướng, và xác định mức mua quá mức / bán quá mức với Bollinger Bands. Nó có thể vào thị trường kịp thời khi xu hướng đảo ngược, và cũng kiểm soát rủi ro một cách hiệu quả. Nhưng điều chỉnh và tối ưu hóa các tham số là quan trọng để chiến lược thực sự hoạt động tốt. Kết hợp thêm với sức mạnh xu hướng, biến động và dừng lỗ có thể làm cho chiến lược mạnh mẽ và thông minh hơn.


/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle="BB T3 Strategy", title="BB T3 Strategy", overlay=true)

//T3
b = 0.7
c1 = -b*b*b
c2 = 3*b*b+3*b*b*b
c3 = -6*b*b-3*b-3*b*b*b
c4 = 1+3*b+b*b*b+3*b*b

t3(len) => c1 * ema(ema(ema(ema(ema(ema(close, len), len), len), len), len), len) + c2 * ema(ema(ema(ema(ema(close, len), len), len), len), len) + c3 * ema(ema(ema(ema(close, len), len), len), len) + c4 * ema(ema(ema(close, len), len), len)
//T3 end

length = input(20, minval=1)

mult = input(2.5, minval=0.001, maxval=50, title="StdDev")
basis = t3(length)
basisDev = t3(length/10)

dev = mult * stdev(basisDev,length)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#872323, offset = offset)
p1 = plot(upper, "Upper", color=color.teal, offset = offset)
p2 = plot(lower, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=#198787, transp=95)

stoploss = input(true, "Stop Loss")

basisSma = sma(close, length)
p3 = plot(basisSma, color=color.blue, title="MA", offset=offset)

fastT3 = t3(50)
slowT3 = t3(200)

crossUp = crossover(basisSma, basis)
crossDown = crossunder(basisSma, basis)
bollBounce = crossover(close, upper)
bollReject = crossunder(close, lower)
underBasis = crossunder(close, basis)
overBasis = crossover(close, basis)

trendUp = fastT3 > slowT3
trendDown = fastT3 < slowT3

strategy.entry("long", strategy.long, when=(trendUp and crossUp), stop=(stoploss ? high+syminfo.mintick : na))
strategy.close("long", when=(bollBounce or crossDown or underBasis))
strategy.entry("short", strategy.short, when=(trendDown and crossDown), stop=(stoploss ? low-syminfo.mintick : na))
strategy.close("short", when=(bollReject or crossUp or overBasis))


Thêm nữa