Bollinger Bands Chiến lược giao dịch sai lệch chuẩn kép

Tác giả:ChaoZhang, Ngày: 2023-12-18 17:23:42
Tags:

img

Tổng quan

Chiến lược này là một chiến lược giao dịch được thiết kế dựa trên mô hình sai lệch chuẩn kép Bollinger Bands. Nó sử dụng các đường ray trên và dưới của Bollinger Bands và một và hai sai lệch chuẩn làm tín hiệu giao dịch. Nó đi dài khi giá vượt qua đường ray trên và đi ngắn khi giá vượt qua đường ray dưới. Chiến lược cũng sử dụng một và hai sai lệch chuẩn làm đường dừng lỗ.

Chiến lược logic

Chiến lược đầu tiên tính toán đường ray giữa, đường ray trên và đường ray dưới của Bollinger Bands. đường ray giữa là SMA của CLOSE, đường ray trên là đường ray giữa + 2độ lệch chuẩn, và đường ray dưới là đường ray giữa - 2đường lệch chuẩn. Khi giá vượt qua đường ray trên, một tín hiệu mua được tạo ra để đi dài. Khi giá vượt qua đường ray dưới, một tín hiệu bán được tạo ra để đi ngắn. Ngoài ra, chiến lược cũng vẽ ra các đường giữa đường ray + 1 đường lệch chuẩn và đường giữa đường ray - 1 đường lệch chuẩn. Chúng được sử dụng làm đường dừng lỗ.

  1. Tính toán SMA của CLOSE như đường ray giữa của Bollinger Bands
  2. Tính toán độ lệch chuẩn STD của CLOSE và tính toán 2 * STD
  3. Đường sắt giữa + 2STD là đường ray trên của Bollinger Bands, đường ray giữa - 2STD là đường ray dưới
  4. Đi dài khi giá vượt qua đường sắt trên
  5. Đi ngắn khi giá phá vỡ qua đường sắt dưới
  6. Đường sắt giữa + 1 * STD đóng vai trò là đường dừng lỗ. Nếu đường dừng lỗ bị phá vỡ, đóng vị trí.

Ưu điểm của Chiến lược

  1. Thiết kế sai lệch tiêu chuẩn kép làm cho phán quyết đột phá nghiêm ngặt hơn để tránh tín hiệu sai
  2. Thiết kế hai đường dừng lỗ tối đa hóa kiểm soát rủi ro
  3. Không gian tối ưu hóa tham số lớn, khoảng thời gian của đường ray giữa và số lần lệch chuẩn có thể được điều chỉnh
  4. Sự rút vốn có thể được kiểm soát bằng cách điều chỉnh mức dừng lỗ

Rủi ro của chiến lược

  1. Các chiến lược Bollinger Bands có xu hướng phá vỡ sai, dẫn đến các tín hiệu giao dịch không chính xác
  2. Các đường lệch chuẩn kép và đường dừng lỗ kép thiết lập có thể quá nghiêm ngặt, mất cơ hội bằng cách lọc ra quá nhiều tín hiệu
  3. Các thiết lập tham số không chính xác có thể làm tăng rủi ro của chiến lược
  4. Kiểm soát rút vốn không đủ hoàn hảo để kiểm soát thiệt hại hiệu quả trong điều kiện thị trường cực đoan

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

  1. Xem xét kết hợp các chỉ số khác để lọc tín hiệu giao dịch Bollinger Bands để tránh đột phá sai
  2. Kiểm tra các thiết lập tham số khác nhau và tối ưu hóa các tham số để có tỷ lệ trả lại / rút ra tốt hơn
  3. Thiết kế các cơ chế dừng lỗ năng động như dừng lỗ sau hoặc tỷ lệ dừng lỗ cổ phần
  4. Kết hợp các thuật toán học máy để tự động tối ưu hóa các thông số

Kết luận

Nói chung, chiến lược này là một chiến lược Bollinger Bands breakout điển hình. Nó sử dụng sai lệch tiêu chuẩn kép để tăng độ nghiêm ngặt của phán đoán tín hiệu và áp dụng hai đường dừng lỗ để kiểm soát rủi ro một cách tích cực. Chiến lược có một số không gian tối ưu hóa tham số. Bằng cách điều chỉnh các tham số như khoảng thời gian giữa đường ray và nhân sai lệch tiêu chuẩn, có thể đạt được hiệu suất chiến lược tốt hơn.


/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is 
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation

strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true)
src = input(close)
length = input.int(34, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))

// Entry conditions
longCondition = ta.crossover(close, upper1)
shortCondition = ta.crossunder(close, lower1)

// Entry and exit strategy
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)

strategy.close("Buy", when=shortCondition)
strategy.close("Sell", when=longCondition)

Thêm nữa