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

Adaptive Bollinger Breakout với Hệ thống Chiến lược Số lượng Động trung bình

Tác giả:ChaoZhang, Ngày: 2024-11-27 15:55:28
Tags:BBMASMA

img

Tổng quan

Chiến lược này là một hệ thống giao dịch định lượng kết hợp sự đột phá của Bollinger Bands với xu hướng trung bình động. Hệ thống tự động nắm bắt các cơ hội thị trường bằng cách theo dõi mối quan hệ giá với Bollinger Bands trong khi sử dụng trung bình động 100 ngày để xác nhận xu hướng. Nó thực hiện kích thước vị trí năng động dựa trên vốn chủ sở hữu tài khoản để quản lý rủi ro tự động.

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

Logic cốt lõi dựa trên các yếu tố chính sau:

  1. Sử dụng Bollinger Bands 20 giai đoạn như các kênh biến động với 2 độ lệch chuẩn
  2. Sử dụng đường trung bình động 100 ngày để xác nhận xu hướng trung hạn đến dài hạn
  3. Tạo ra tín hiệu dài khi giá phá vỡ trên dải trên và không ở trên trong giai đoạn trước
  4. Tạo ra tín hiệu ngắn khi giá phá vỡ dưới dải dưới và không dưới trong giai đoạn trước
  5. Tính toán kích thước vị thế theo cách năng động dựa trên vốn hóa tài khoản vãng lai
  6. Tự động đóng các vị trí theo tín hiệu trái ngược để quản lý rủi ro kịp thời

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

  1. Khả năng thích nghi cao - Bollinger Bands tự động điều chỉnh chiều rộng kênh dựa trên biến động thị trường
  2. Rủi ro được kiểm soát - Định dạng vị trí động đảm bảo rủi ro phù hợp với kích thước tài khoản
  3. Xác nhận xu hướng - Tích hợp với đường trung bình động cải thiện độ tin cậy tín hiệu
  4. Stop Loss kịp thời - Các điều kiện thoát rõ ràng ngăn chặn tổn thất quá mức
  5. Thương mại song phương - Khám phá cả xu hướng tăng và giảm để cải thiện hiệu quả vốn
  6. Mã sạch - Logic chiến lược rõ ràng để bảo trì và tối ưu hóa dễ dàng

Rủi ro chiến lược

  1. Sự phá vỡ sai trên các thị trường khác nhau có thể dẫn đến tổn thất liên tiếp
  2. Các thông số Bollinger Bands cố định có thể không phù hợp với tất cả các điều kiện thị trường
  3. Thiếu các điểm dừng sau có thể không khóa lợi nhuận hiệu quả
  4. Thời gian trung bình động dài có thể dẫn đến tín hiệu bị trì hoãn
  5. Chi phí giao dịch không được xem xét, hiệu suất trực tiếp có thể khác với backtests

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

  1. Thêm bộ lọc biến động để giảm tần suất giao dịch trong môi trường biến động thấp
  2. Thực hiện các cơ chế dừng lỗ năng động dựa trên biến động thị trường
  3. Tối ưu hóa các tham số Bollinger Bands với thời gian thích nghi
  4. Thêm bộ lọc âm lượng và thời gian giữ
  5. Bao gồm các chỉ số kỹ thuật bổ sung để xác nhận tín hiệu
  6. Đặt giới hạn rút vốn tối đa để kiểm soát rủi ro tăng cường

Tóm lại

Chiến lược này xây dựng một hệ thống giao dịch định lượng hoàn chỉnh bằng cách kết hợp Bollinger Bands và đường trung bình động. Trong khi duy trì logic đơn giản, nó thực hiện các chức năng cốt lõi bao gồm tạo tín hiệu, quản lý vị trí và kiểm soát rủi ro. Mặc dù có các lĩnh vực tối ưu hóa, thiết kế tổng thể là âm thanh và có giá trị ứng dụng thực tế.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BB Breakout with MA 100 Strategy", overlay=true)

// Parameter Bollinger Bands
length = input(20, title="BB Length")
stdDev = input(2.0, title="BB Standard Deviation")

// Hitung Bollinger Bands
basis = ta.sma(close, length)
dev = stdDev * ta.stdev(close, length)
upperBB = basis + dev
lowerBB = basis - dev

// Hitung Moving Average 100
ma100 = ta.sma(close, 100)

// Logika untuk sinyal beli dan jual
longCondition = close > upperBB and close[1] <= upperBB[1]
shortCondition = close < lowerBB and close[1] >= lowerBB[1]

// Menentukan ukuran posisi (jumlah lot)
size = strategy.equity / close // Menentukan ukuran posisi berdasarkan ekuitas saat ini

// Eksekusi order
if (longCondition)
    strategy.entry("Long", strategy.long, qty=size)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=size)

// Menutup posisi ketika kondisi terbalik
if (longCondition and strategy.position_size < 0)
    strategy.close("Short")

if (shortCondition and strategy.position_size > 0)
    strategy.close("Long")

// Plotting
plot(upperBB, color=color.red, title="Upper BB")
plot(lowerBB, color=color.green, title="Lower BB")
plot(basis, color=color.blue, title="Basis BB")
plot(ma100, color=color.orange, title="MA 100")

// Menambahkan informasi ke grafik
bgcolor(longCondition ? color.new(color.green, 90) : na, title="Buy Signal Background")
bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Sell Signal Background")


Có liên quan

Thêm nữa