Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch định lượng đa cấp dựa trên Bollinger Bands Trend Divergence

Tác giả:ChaoZhang, Ngày: 2024-12-27
Tags:BBEMASMAstdevBBDIVXu hướng

img

Tổng quan

Chiến lược này là một hệ thống giao dịch định lượng đa cấp dựa trên sự khác biệt xu hướng của Bollinger Bands và thay đổi băng thông năng động. Chiến lược xây dựng một khuôn khổ quyết định giao dịch hoàn chỉnh bằng cách theo dõi động lực chiều rộng của Bollinger Bands, đột phá giá và phối hợp EMA200. Nó sử dụng một cơ chế theo dõi biến động thích nghi để nắm bắt hiệu quả các bước ngoặt xu hướng thị trường.

Nguyên tắc chiến lược

Chiến lược dựa trên các yếu tố chính sau:

  1. Tính toán Bollinger Bands bằng cách sử dụng trung bình động 20 giai đoạn và 2 độ lệch chuẩn
  2. Xác định sức mạnh xu hướng thông qua thay đổi băng thông qua ba thời điểm liên tiếp
  3. Xác thực đột phá bằng cách sử dụng tỷ lệ thân nến đến băng thông
  4. EMA200 như một bộ lọc xu hướng trung bình dài hạn
  5. Đăng nhập dài khi giá vượt qua dải trên cùng với các điều kiện mở rộng băng thông
  6. Ra khỏi khi giá phá vỡ dưới dải thấp hơn với điều kiện băng thông co lại

Ưu điểm chiến lược

  1. Hệ thống tín hiệu nhìn về tương lai xác định các điểm chuyển hướng tiềm năng
  2. Xác nhận chéo nhiều chỉ số kỹ thuật làm giảm tín hiệu sai
  3. Chỉ số tỷ lệ thay đổi băng thông thích nghi tốt với biến động thị trường
  4. Logic vào và ra rõ ràng, dễ thực hiện theo chương trình
  5. Các cơ chế kiểm soát rủi ro toàn diện kiểm soát hiệu quả việc rút tiền

Rủi ro chiến lược

  1. Có thể tạo ra giao dịch thường xuyên trên các thị trường khác nhau
  2. Sự chậm trễ tiềm năng trong các thay đổi xu hướng đột ngột
  3. Tối ưu hóa tham số đối mặt với rủi ro quá phù hợp
  4. Rủi ro trượt trong thời gian biến động thị trường cao
  5. Cần theo dõi liên tục hiệu quả của chỉ số băng thông

Hướng dẫn tối ưu hóa chiến lược

  1. Đưa ra các cơ chế tối ưu hóa tham số thích nghi
  2. Thêm khối lượng và các chỉ số phụ trợ khác để xác nhận
  3. Tối ưu hóa các điều kiện dừng lỗ và lấy lợi nhuận
  4. Cải thiện các tiêu chuẩn định lượng để đánh giá sức mạnh xu hướng
  5. Tích hợp các bộ lọc môi trường thị trường bổ sung

Tóm lại

Chiến lược này xây dựng một hệ thống giao dịch mạnh mẽ thông qua sự khác biệt xu hướng và thay đổi băng thông năng động. Trong khi hoạt động xuất sắc trong các thị trường xu hướng, cần cải tiến cho các thị trường và tối ưu hóa tham số. Nhìn chung, chiến lược chứng minh giá trị thực tế tốt và có nhiều cơ hội mở rộng.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("BBDIV_Strategy", overlay=true)

// Inputs for Bollinger Bands
length = input.int(20, title="BB Length")
mult = input.float(2.0, title="BB Multiplier")

// Calculate Bollinger Bands
basis = ta.sma(close, length)
deviation = mult * ta.stdev(close, length)
upperBB = basis + deviation
lowerBB = basis - deviation

// Calculate Bollinger Band width
bb_width = upperBB - lowerBB
prev_width = ta.valuewhen(not na(bb_width[1]), bb_width[1], 0)
prev_prev_width = ta.valuewhen(not na(bb_width[2]), bb_width[2], 0)

// Determine BB state
bb_state = bb_width > prev_width and prev_width > prev_prev_width ? 1 : bb_width < prev_width and prev_width < prev_prev_width ? -1 : 0

// Assign colors based on BB state
bb_color = bb_state == 1 ? color.green : bb_state == -1 ? color.red : color.gray

// Highlight candles closed outside BB
candle_size = high - low
highlight_color = (candle_size > bb_width / 2 and close > upperBB) ? color.new(color.green, 50) : (candle_size > bb_width / 2 and close < lowerBB) ? color.new(color.red, 50) : na

bgcolor(highlight_color, title="Highlight Candles")

// Plot Bollinger Bands
plot(upperBB, title="Upper BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(lowerBB, title="Lower BB", color=bb_color, linewidth=2, style=plot.style_line)
plot(basis, title="Middle BB", color=color.blue, linewidth=1, style=plot.style_line)

// Calculate EMA 200
ema200 = ta.ema(close, 200)

// Plot EMA 200
plot(ema200, title="EMA 200", color=color.orange, linewidth=2, style=plot.style_line)

// Strategy logic
enter_long = highlight_color == color.new(color.green, 50)
exit_long = highlight_color == color.new(color.red, 50)

if (enter_long)
    strategy.entry("Buy", strategy.long)

if (exit_long)
    strategy.close("Buy")

// Display profit at close
if (exit_long)
    var float entry_price = na
    var float close_price = na
    var float profit = na

    if (strategy.opentrades > 0)
        entry_price := strategy.opentrades.entry_price(strategy.opentrades - 1)
        close_price := close
        profit := (close_price - entry_price) * 100 / entry_price * 2 * 10 // Assuming 1 pip = 0.01 for XAUUSD
        label.new(bar_index, high + (candle_size * 2), str.tostring(profit, format.mintick) + " USD", style=label.style_label_up, color=color.green)


Có liên quan

Thêm nữa