Chiến lược hệ thống băng Bollinger hai đường trung bình động

Tác giả:ChaoZhang, Ngày: 2023-10-18 11:01:19
Tags:

img

Tổng quan

Chiến lược hệ thống Bollinger Band Moving Average kép là một chiến lược giao dịch cảm ứng điển hình. Nó sử dụng chỉ số biến động Bollinger Bands và chạm hai đường để mở các vị trí, cùng với cơ chế dừng lợi nhuận và dừng lỗ để quản lý quỹ và tạo ra lợi nhuận.

Nguyên tắc

Chiến lược này chủ yếu dựa trên chỉ số Bollinger Bands. Bollinger Bands bao gồm một đường trung bình động và băng thông. Chiến lược đầu tiên tính toán trung bình động của giá đóng trong n giai đoạn như dải giữa, với băng thông là m lần độ lệch chuẩn của dải giữa. Dải trên và dải dưới sau đó được vẽ như m độ lệch chuẩn trên và dưới dải giữa. Khi giá chạm vào dải trên, một vị trí ngắn được mở. Khi giá chạm vào dải dưới, một vị trí dài được mở.

Cụ thể, chiến lược thực hiện các bước sau:

  1. Các thông số đầu vào: đặt độ dài trung bình động n và nhân độ lệch chuẩn m

  2. Tính toán dải trung bình: trung bình di chuyển đơn giản của giá đóng trong n giai đoạn

  3. Tính toán dải trên: dải giữa + m * n thời gian lệch chuẩn giá đóng

  4. Tính toán dải dưới: dải giữa - lệch chuẩn m * n thời gian của giá đóng

  5. Chụp các dải giữa, trên và dưới

  6. Khi giá đóng cửa vượt trên dải trung bình, mua dài

  7. Khi giá đóng cửa vượt qua dưới dải giữa, đi ngắn

  8. Đặt điểm dừng lợi nhuận và dừng lỗ cho các vị trí thoát

Nhập các vị trí trên hai đường chạm cùng với cơ chế dừng lợi nhuận và dừng lỗ có thể kiểm soát rủi ro hiệu quả và tạo ra lợi nhuận ổn định.

Ưu điểm

Những lợi thế của chiến lược này bao gồm:

  1. Quy tắc đơn giản và rõ ràng, dễ thực hiện.

  2. Dựa trên chỉ số Bollinger Bands với lý do khoa học.

  3. Hai đường liên lạc lọc các sự đột phá sai trên các thị trường khác nhau.

  4. Bao gồm dừng lợi nhuận và dừng lỗ, quản lý rủi ro.

  5. Dữ liệu backtesting đủ đảm bảo độ tin cậy.

  6. Không gian điều chỉnh tham số lớn để tối ưu hóa.

Rủi ro

Có một số rủi ro cần xem xét:

  1. Bollinger Bands nhạy cảm với các thông số có thể dẫn đến các kết quả khác nhau.

  2. Nhập hai dòng có thể bỏ lỡ cơ hội giao dịch do tần số thấp.

  3. Các thiết lập stop profit và stop loss không đúng có thể dẫn đến stop loss sớm hoặc không đủ lợi nhuận.

  4. Mất lớn có thể xảy ra khi xu hướng thị trường thay đổi.

  5. Thời gian kiểm tra ngược ngắn hơn có thể dẫn đến rủi ro quá mức.

Các giải pháp có thể:

  1. Tối ưu hóa các thông số để tìm kết hợp tốt nhất.

  2. Hẹp băng tần để tăng tần số.

  3. Điều chỉnh dừng dựa trên thị trường khác nhau.

  4. Thêm bộ lọc xu hướng để tránh giao dịch ngược xu hướng.

  5. Mở rộng khung thời gian backtest để đảm bảo độ bền.

Cải tiến

Một số cách để cải thiện chiến lược:

  1. Tối ưu hóa các tham số cho các mục nhập tốt hơn.

  2. Thêm phát hiện xu hướng. Các bộ lọc xu hướng ngăn chặn giao dịch chống lại xu hướng.

  3. Tối ưu hóa lối ra. Động lực hoặc dừng lại có thể cải thiện quản lý lợi nhuận.

  4. Thêm các bộ lọc với các chỉ số khác. MACD, KDJ vv có thể giúp lọc các đột phá sai.

  5. Kết hợp các mô hình học máy như LSTM để tối ưu hóa hơn nữa.

  6. Kết hợp với các chiến lược cơ bản hoặc nâng cao khác để quản lý danh mục đầu tư.

Kết luận

Hệ thống Bollinger Band Moving Average kép cho thấy kết quả tích cực tổng thể, với những lợi thế như chỉ số khoa học, quy tắc rõ ràng và các tham số linh hoạt.


/*backtest
start: 2023-09-17 00:00:00
end: 2023-10-17 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy("BB돌파", overlay=true)
length = input.int(20, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))


long = ta.crossover(close,basis)
short = ta.crossunder(close,basis)

strategy.entry("long", strategy.long, when =long)
strategy.entry("short", strategy.short, when =short)

Thêm nữa