Chiến lược xu hướng Bollinger Bands Momentum Wave

Tác giả:ChaoZhang, Ngày: 2024-01-17 17:33:37
Tags:

img

Tổng quan

Đây là một chiến lược theo xu hướng dựa trên Bollinger Bands. Nó sử dụng các dải trên và dưới của Bollinger Bands để xác định xu hướng giá và tạo ra tín hiệu mua và bán. Cụ thể, nó đi dài khi giá đóng phá vỡ trên dải trên và đi ngắn khi giá đóng phá vỡ dưới dải dưới.

Chiến lược logic

Chiến lược này sử dụng các dải trên và dưới của Bollinger Bands để xác định xu hướng. Dải giữa của Bollinger Bands là trung bình di chuyển đơn giản của giá đóng trong n giai đoạn.

Dải trung: SMA ((Close, n) Phạm vi trên: Phạm vi giữa + k * STDEV ((Close, n) Phạm vi dưới: Phạm vi giữa - k * STDEV(Close, n)

Khi giá phá vỡ trên dải trên, điều đó có nghĩa là giá đã vượt quá phạm vi biến động bình thường xung quanh dải giữa, cho thấy xu hướng tăng. Khi giá phá vỡ dưới dải dưới, điều đó có nghĩa là giá đã giảm ra ngoài phạm vi bình thường, cho thấy xu hướng giảm.

Dựa trên điều này, chiến lược xác định:

  1. Đi dài khi giá đóng phá vỡ trên dải trên
  2. Đi ngắn khi giá đóng phá vỡ dưới dải dưới

Sử dụng Bollinger Bands để xác định xu hướng hoạt động tốt cho xu hướng trung và dài hạn.

Phân tích lợi thế

Những lợi thế chính của chiến lược này là:

  1. Sử dụng Bollinger Bands để xác định xu hướng là đáng tin cậy.

  2. Các quy tắc chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện.

  3. Không cần dự đoán giá cả, chỉ cần theo dõi mối quan hệ giữa giá và Bollinger Bands.

  4. Các tín hiệu được tạo ra trên băng tần, nắm bắt sự thay đổi xu hướng kịp thời mà không bỏ lỡ cơ hội.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Bollinger Bands không thể dự đoán đầy đủ các biến động giá.

  2. Giá có thể dao động gần các dải, gây ra nhiều tổn thất nhỏ.

  3. Các thiết lập tham số không đầy đủ cũng có thể dẫn đến tín hiệu xấu. Một n quá nhỏ có thể gây ra quá nhiều thay đổi băng tần và tín hiệu. Một k quá lớn có thể dẫn đến tín hiệu chậm.

  4. Xu hướng thị trường có thể ảnh hưởng đến các cổ phiếu cá nhân và dẫn đến rủi ro hệ thống.

Các biện pháp kiểm soát rủi ro tương ứng:

  1. Điều chỉnh n và k phù hợp để cân bằng độ nhạy.
  2. Sử dụng điểm dừng để kiểm soát lỗ trên các giao dịch đơn.
  3. Thêm các bộ lọc với các chỉ báo khác để lọc tín hiệu.

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

Chiến lược có thể được tối ưu hóa theo nhiều cách:

  1. Tối ưu hóa n và kiểm tra các thiết lập khác nhau.

  2. Thêm bộ lọc sử dụng các chỉ số khác như MACD và KDJ để lọc tín hiệu mua / bán và giảm tín hiệu sai.

  3. Thêm các cơ chế dừng lỗ như giá dựa trên hoặc biến động dựa trên dừng để kiểm soát tổn thất.

  4. Sử dụng băng thông Bollinger để xác định biến động giá và điều chỉnh kích thước vị trí.

  5. Kết hợp với các chỉ số xác định xu hướng và sử dụng các băng tần cho các tín hiệu đầu vào trong xu hướng đã được xác định.

Tóm lại

Nói chung, đây là một chiến lược theo xu hướng đáng tin cậy. Nó sử dụng Bollinger Bands để xác định xu hướng và hoạt động đơn giản. Ưu điểm chính là tín hiệu kịp thời nắm bắt sự thay đổi trong xu hướng. Nhưng một số whipsaws và khó khăn tối ưu hóa tham số tồn tại. Các phương pháp như tối ưu hóa tham số, thêm bộ lọc có thể kiểm soát rủi ro và cải thiện sự ổn định. Nó phù hợp với các nhà đầu tư có nhu cầu độ chính xác xu hướng vừa phải và thích tần suất hoạt động cao.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Bollinger Bands Trend Strategy", shorttitle="BB Trend", overlay=true)
source = close
length = input(8, minval=1)
mult = input(1.00, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

buyEntry = crossover(source, upper)
sellEntry = crossunder(source, lower)

if (crossover(source, upper))
    strategy.entry("BBandLE", strategy.long, stop=upper, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, lower))
    strategy.entry("BBandSE", strategy.short, stop=lower, oca_name="BollingerBands", comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Thêm nữa