Chiến lược giao dịch định lượng theo xu hướng của dải Bollinger Band Triple Touch

BB SMA SD CROSS
Ngày tạo: 2024-12-11 11:01:52 sửa đổi lần cuối: 2024-12-11 11:01:52
sao chép: 2 Số nhấp chuột: 351
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch định lượng theo xu hướng của dải Bollinger Band Triple Touch

Tổng quan

Chiến lược này là một chiến lược theo dõi xu hướng được cải tiến dựa trên chỉ số Brin Belt. Nó xác nhận sự tin cậy của xu hướng bằng cách giám sát giá với Brin Belt ba lần liên tiếp, do đó giao dịch với tỷ lệ thắng cao hơn. Chiến lược sử dụng đường trung bình di chuyển 20 chu kỳ làm đường trung tâm và tính toán cơ sở cho đường đi lên xuống với chênh lệch tiêu chuẩn gấp 2 lần.

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

Lập luận cốt lõi của chiến lược này là nhận diện giá tiếp xúc liên tục với biên giới của vùng Brin thông qua cơ chế tính toán. Khi giá phá vỡ đường mòn ba lần liên tiếp, hệ thống sẽ phát ra nhiều tín hiệu; Khi giá phá vỡ đường mòn ba lần liên tiếp, hệ thống sẽ phát ra tín hiệu trống.

Lợi thế chiến lược

  1. Độ tin cậy cao: Giảm đáng kể tác động của đột phá giả mạo bằng cách yêu cầu chạm liên tiếp 3 lần vào ranh giới Brin để xác nhận tín hiệu giao dịch.
  2. Kiểm soát rủi ro: Sử dụng đường trung bình di chuyển làm điểm cân bằng, có thể dừng lỗ kịp thời khi xu hướng đảo ngược
  3. Khả năng thích ứng: Các tham số chiến lược có thể được điều chỉnh theo các điều kiện thị trường khác nhau và có khả năng thích ứng tốt.
  4. Tần suất giao dịch vừa phải: Do điều kiện nhập cảnh nghiêm ngặt hơn, nó tránh được giao dịch quá mức.
  5. Quản lý tài chính hợp lý: Sử dụng tỷ lệ phần trăm tổng giá trị tài khoản để quản lý vị trí, rủi ro có thể kiểm soát được.

Rủi ro chiến lược

  1. Rủi ro của thị trường biến động: có thể tạo ra các tín hiệu sai lệch thường xuyên trong thị trường biến động ngang.
  2. Rủi ro trượt: Trong một thị trường biến động mạnh, bạn có thể phải đối mặt với tổn thất trượt lớn.
  3. Tính nhạy cảm của tham số: Thiết lập tham số trong vùng Brin có ảnh hưởng lớn đến hiệu suất của chiến lược.
  4. Rủi ro đảo ngược xu hướng: có thể chịu tổn thất lớn nếu xu hướng mạnh đột ngột đảo ngược.

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

  1. Tiến hành chỉ số giao thông: Kết hợp phân tích giao thông có thể cải thiện độ tin cậy của tín hiệu.
  2. Tham số điều chỉnh động: Tham số điều chỉnh theo biến động thị trường để thích ứng với tham số vùng Brin.
  3. Thêm chỉ số xác nhận xu hướng: Các chỉ số kỹ thuật khác có thể được thêm vào để xác nhận hướng xu hướng.
  4. Tối ưu hóa giải pháp dừng lỗ: Thiết kế các cơ chế dừng lỗ linh hoạt hơn để đối phó với các môi trường thị trường khác nhau.
  5. Quản lý vị trí hoàn thiện: Điều chỉnh tỷ lệ giữ vị trí theo cường độ tín hiệu động.

Tóm tắt

Chiến lược này thực hiện một chiến lược theo dõi xu hướng có độ tin cậy cao hơn bằng cách cải tiến hệ thống giao dịch Bollinger Bands truyền thống. Cơ chế xác nhận ba lần chạm của nó có hiệu quả trong việc tăng tỷ lệ giao dịch, trong khi cơ chế đặt cược bằng phẳng dựa trên đường trung bình di chuyển cung cấp một giải pháp kết thúc có lợi nhuận hợp lý. Mặc dù chiến lược vẫn có một số rủi ro vốn có, nhưng bằng cách cung cấp hướng tối ưu hóa, bạn có thể nâng cao hơn nữa sự ổn định và khả năng lợi nhuận của chiến lược.

Mã nguồn chiến lược
/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("Bollinger Bands Strategy - 3 Crossings", overlay=true)

// Input Parameters
length = input.int(20, title="Bollinger Bands Length", minval=1)
src = input(close, title="Source")
mult = input.float(2.0, title="Multiplier", step=0.1)

// Calculate Bollinger Bands
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev

// Plot Bollinger Bands
plotBasis = plot(basis, color=color.blue, title="Basis")
plotUpper = plot(upper, color=color.red, title="Upper Band")
plotLower = plot(lower, color=color.green, title="Lower Band")
fill(plot1=plotUpper, plot2=plotLower, color=color.new(color.blue, 90), title="Band Fill")

// Counter Variables
var int longCrossCount = 0
var int shortCrossCount = 0

// Detect Crossings
longCondition = close < lower  // Price closes below the lower band
shortCondition = close > upper  // Price closes above the upper band

if longCondition
    longCrossCount += 1  // Increment the counter for long
    shortCrossCount := 0  // Reset the short counter

if shortCondition
    shortCrossCount += 1  // Increment the counter for short
    longCrossCount := 0  // Reset the long counter

if not longCondition and not shortCondition
    longCrossCount := 0  // Reset if no crossing
    shortCrossCount := 0

// Entry and Exit Rules
if longCrossCount >= 3 and strategy.position_size <= 0
    strategy.entry("Long", strategy.long)
    longCrossCount := 0  // Reset the counter after entering

if shortCrossCount >= 3 and strategy.position_size >= 0
    strategy.entry("Short", strategy.short)
    shortCrossCount := 0  // Reset the counter after entering

// Exit Condition (When Price Returns to the Middle Band)
exitCondition = ta.crossover(src, basis) or ta.crossunder(src, basis)

if exitCondition and strategy.position_size > 0
    strategy.close("Long")
if exitCondition and strategy.position_size < 0
    strategy.close("Short")