Chiến lược giao dịch hợp nhất đường băng Bollinger Moving Average

Tác giả:ChaoZhang, Ngày: 2023-09-18 16:08:43
Tags:

Tổng quan

Chiến lược này kết hợp các đường trung bình động và Bollinger Bands để xác nhận tín hiệu chỉ số kép để xác định và giao dịch xu hướng.

Chiến lược logic

Đường trung bình di chuyển nhanh và chậm được tính toán. Khi đường nhanh vượt qua đường chậm, một tín hiệu dài được tạo ra. Dưới đây cung cấp một tín hiệu ngắn. Các dải Bollinger Band trên và dưới cũng được tính toán. Các tín hiệu trung bình di chuyển chỉ được xác nhận khi giá cũng phá vỡ các dải Bollinger. Điều này tránh những cú đập từ các đột phá sai.

Ưu điểm

  • Xác nhận hai chỉ số tránh tín hiệu sai
  • Các đường trung bình động xác định hướng xu hướng chính
  • Bollinger Bands xác nhận chất lượng của breakout
  • Khả năng đi cả dài và ngắn cung cấp tính linh hoạt

Rủi ro

  • Đường trung bình di chuyển và Bollinger Bands có sự chậm trễ
  • Các điều kiện kép hạn chế tần suất giao dịch, không phù hợp với giao dịch tần số cao
  • Các điểm đảo ngược chính xác không thể được xác định chính xác
  • Sự điều chỉnh tham số kém có nguy cơ mất cơ hội

Nguy cơ có thể được quản lý bằng cách rút ngắn thời gian trung bình động và thời gian Bollinger hoặc tối ưu hóa sự kết hợp các tham số.

Những cải tiến

  • Kiểm tra các kết hợp thông số Bollinger và đường trung bình động khác nhau
  • Xem xét thêm các chiến lược dừng lỗ để kiểm soát lỗ
  • Tối ưu hóa các quy tắc logic cho xác thực hai
  • Kiểm tra độ bền trên các sản phẩm khác nhau

Kết luận

Chiến lược này xác nhận tín hiệu với các chỉ số kép để giảm tín hiệu sai, phù hợp với việc giữ trung bình / dài hạn.


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

//@version=2
strategy("MA-Zorrillo",overlay=true)

ma_short= sma(close,8)
ma_long= sma(close,89)

entry_ma = crossover (ma_short,ma_long)
exit_ma = crossunder (ma_short,ma_long) 


BBlength = input(24, minval=1,title="Bollinger Period Length")
BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(close, BBlength)
BBdev = BBmult * stdev(close, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev

source = close
entry_bb = crossover(source, BBlower)
exit_bb = crossunder(source, BBupper)


vs_entry = false
vs_exit = false
for i = 0 to 63
    if (entry_bb[i])
        vs_entry :=  true
    if (exit_bb[i])
        vs_exit :=  true
        

entry = entry_ma and vs_entry
exit =  exit_ma and vs_exit

strategy.entry(id="long_ma",long=true,when=entry)
strategy.close(id="long_ma", when=exit)

strategy.entry(id="short_ma",long=false,when=exit)
strategy.close(id="short_ma",when=entry)


Thêm nữa