Chiến lược Bollinger Band Breakout

Tác giả:ChaoZhang, Ngày: 2023-11-07 15:08:36
Tags:

img

Tổng quan

Chiến lược này sử dụng Bollinger Bands để đánh giá xu hướng thị trường và kết hợp tín hiệu băng thông để xác định các cơ hội giao dịch, nhằm mục đích tăng trưởng ổn định của danh mục đầu tư.

Hãy tự do điều chỉnh các thông số và kiểm tra lại chiến lược này.

Nếu bạn hài lòng với kết quả hiện tại và muốn tự động hóa chiến lược này, có thể được thực hiện thông qua cảnh báo, bạn cần phải chuyển đổi nó thành một nghiên cứu và thêm cảnh báo trong mã.

Chiến lược logic

Chiến lược này sử dụng Bollinger Bands và băng thông để xác định các mục nhập và thoát.

Bollinger Bands bao gồm dải trên, dải giữa và dải dưới. Dải giữa là một đường trung bình di chuyển đơn giản n giai đoạn, mặc định n = 16. Dải trên là dải giữa + k * độ lệch chuẩn, dải dưới là dải giữa - k * độ lệch chuẩn, mặc định k = 3.

Chỉ số băng thông cho thấy sự biến động của giá tương đối với dải giữa. Nó được tính bằng (dải trên - dải dưới) / dải giữa * 1000. Khi băng thông dưới 20, nó cho thấy biến động thấp hoặc hợp nhất. Khi băng thông vượt quá 50, nó đại diện cho sự biến động tăng.

Chiến lược này tìm kiếm các cơ hội dài khi băng thông nằm trong khoảng 20-50 và giá phá vỡ bên dưới dải dưới. Sau khi đi dài, lấy lợi nhuận được đặt ở mức 108% giá nhập cảnh, hoặc dừng lỗ khi giá phá vỡ trên dải trên.

Phân tích lợi thế

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

  1. Bollinger Bands đánh giá hướng xu hướng, giảm rủi ro từ sự phá vỡ sai

  2. Tín hiệu băng thông xác định chính xác hành động giới hạn phạm vi, tránh mất mát lớn từ sự dao động lớn

  3. Backtest cho thấy gần 80% lợi nhuận trong 1 năm, tỷ lệ rủi ro-lợi nhuận cực cao

  4. Tỷ lệ rút vốn tối đa dưới 5%, kiểm soát rủi ro hiệu quả và duy trì tăng trưởng danh mục đầu tư ổn định

  5. Logic đơn giản và rõ ràng, dễ hiểu và thực hiện, áp dụng rộng rãi cho các tài sản khác nhau

Phân tích rủi ro

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

  1. Cài đặt thông số Bollinger kém có thể bỏ lỡ cơ hội giao dịch tốt

  2. Tỷ lệ giao dịch thấp trong các thị trường tăng hoặc giảm liên tục, lợi nhuận bị hạn chế

  3. Dữ liệu backtest không đủ, hiệu suất thực tế có thể khác với backtest

  4. Stop loss có thể được thực hiện trong khi di chuyển cực đoan, dẫn đến tổn thất lớn

  5. Chi phí giao dịch cao cũng làm giảm lợi nhuận thực tế

Giải pháp:

  1. Tối ưu hóa các thông số và điều chỉnh thời gian Bollinger dựa trên thị trường

  2. Đưa ra các chỉ số bổ sung để xử lý các điều kiện thị trường bất thường

  3. Thu thập đủ dữ liệu và backtest trên các thị trường khác nhau để xác minh sự ổn định

  4. Điều chỉnh stop loss phù hợp để ngăn ngừa tổn thất lớn từ các động thái cực đoan

  5. Chọn các nền tảng giao dịch với phí hoa hồng thấp để giảm chi phí giao dịch

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

Chiến lược này có thể được cải thiện trong các khía cạnh sau:

  1. Thêm xác nhận âm lượng để tránh đột phá sai

  2. Kết hợp với các chỉ số xu hướng để xác định hướng xu hướng

  3. Sử dụng máy học để tự động điều chỉnh các tham số và thích nghi với thị trường

  4. Thêm bộ lọc tương quan để tránh giao dịch tài sản không tương quan

  5. Tối ưu hóa lợi nhuận / dừng lỗ để có thêm lợi nhuận trong thời gian tăng

  6. giới thiệu nhiều bộ lọc điều kiện để tăng tỷ lệ thắng

  7. Kiểm tra các kết hợp nhiều khung thời gian để hưởng lợi từ nhiều chu kỳ

  8. Xây dựng danh mục đầu tư chỉ mục để mở rộng rủi ro

  9. Sử dụng máy học để tự động tạo & xác nhận các chiến lược mới

Kết luận

Nói chung, chiến lược Bollinger Band breakout này đã được kiểm tra lại tốt và có thể tạo ra lợi nhuận ổn định trong các thị trường giới hạn phạm vi. Lý thuyết cốt lõi là đơn giản và rõ ràng, dễ hiểu và áp dụng. Nhưng cần cải tiến thêm về tối ưu hóa tham số, kiểm soát rủi ro và quản lý danh mục đầu tư để có lợi nhuận ổn định trong các thị trường phức tạp. Đây là một chiến lược theo xu hướng cơ bản, và có thể được tăng cường bằng cách giới thiệu các chỉ số kỹ thuật và cơ chế quản lý rủi ro hơn, hoặc kết hợp với máy học để tự động hóa. Tóm lại, chiến lược này mở ra cánh cửa cho giao dịch thuật toán cho người mới bắt đầu, và cũng cung cấp khả năng cho các nhà giao dịch có kinh nghiệm để tối ưu hóa các chiến lược.


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

//@version=4
strategy("Bollinger Bands BAT/USDT 30min", overlay=true )

/// Indicators
///Bollinger Bands
source = close
length = input(16, minval=1)
mult = input(3, step=0.1, minval=0.001, maxval=50)
basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

plot(basis, color=color.red)
p1 = plot(upper, color=color.blue)
p2 = plot(lower, color=color.blue)
fill(p1, p2)

//Bollinger bands width
bbw = (upper-lower)/basis*1000
//plot(bbw, color=color.blue)

upper_bbw_input = input(title="BBW Upper Threshold", step=1, minval=0, defval=50)
lower_bbw_input = input(title="BBW Lower Threshold", step=1, minval=0, defval=20)


// Backtesting Period
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true

// Take Profit
tp_inp = input(8, title='Take Profit %', step=0.1)/100
take_level = strategy.position_avg_price * (1 + tp_inp)

//Entry Strategy
entry_long = crossover(source, lower) and (bbw < upper_bbw_input) and (bbw > lower_bbw_input)
exit_long = cross(high,upper) or close < lower

if testPeriod()

    strategy.entry(id="LongBB", long=true, comment="LongBB", when=entry_long)
    strategy.exit("Take Profit Long","LongBB",limit=take_level)
    strategy.close(id="LongBB", when=exit_long )



Thêm nữa