Chiến lược theo dõi biến động băng Bollinger kép

Tác giả:ChaoZhang, Ngày: 2023-12-25 11:49:41
Tags:

img

Tổng quan

Chiến lược theo dõi biến động băng Bollinger kép là một chiến lược giao dịch định lượng nắm bắt biến động giá bằng cách xây dựng băng Bollinger kép để theo dõi. Chiến lược này tận dụng các đường ray trên và dưới của các băng Bollinger để nắm bắt cơ hội biến động thị trường trong thời gian thực.

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

Chiến lược này đầu tiên tính toán trung bình động N ngày như đường cơ sở, sau đó tính toán các đường ray trên và dưới dựa trên số nhân của độ lệch chuẩn để xây dựng các dải Bollinger. Chiến lược sử dụng hai dải Bollinger, trong đó cả hai đường ray trên và dưới đều là số nhân của độ lệch chuẩn. Một khi các dải Bollinger kép được hình thành, một tín hiệu mua được kích hoạt khi giá vượt qua đường ray trên, và một tín hiệu bán được kích hoạt khi giá vượt qua đường ray dưới, nắm bắt các cơ hội biến động giá trên các dải Bollinger.

Chiến lược cũng thiết lập một cửa sổ thời gian để làm cho backtest nhiều hơn TARGET và ngăn chặn dữ liệu sớm ảnh hưởng đến kết quả thử nghiệm.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là nó có thể nắm bắt sự biến động giá trong thời gian thực bằng cách phá vỡ các đường ray trên và dưới của Bollinger Bands để xác định hướng OPERATION. So với các chỉ số khác, Bollinger Bands phản ứng với thị trường nhạy cảm hơn và có thể hình thành tín hiệu giao dịch trong một khoảng thời gian ngắn hơn. Ngoài ra, Bollinger Bands kép thiết lập một kênh rộng hơn để khả năng phá vỡ giá lớn hơn, cho phép chiến lược nắm bắt nhiều cơ hội giao dịch hơn.

Phân tích rủi ro

Rủi ro chính của chiến lược này nằm trong các thiết lập tham số của khoảng thời gian N ngày và số nhân độ lệch chuẩn tạo nên Bollinger Bands. Nếu các tham số không được thiết lập đúng cách, nó sẽ dẫn đến Bollinger Bands quá rộng hoặc quá hẹp, do đó bỏ lỡ cơ hội giao dịch hoặc tạo ra tín hiệu sai. Ngoài ra, không có mức dừng lỗ được thiết lập cho giao dịch hai hướng, có thể dẫn đến tổn thất mở rộng.

Các giải pháp là tối ưu hóa các thông số và đánh giá hình dạng của Bollinger Bands trong thời gian thực; cũng như thiết lập các chiến lược dừng lỗ dựa trên dữ liệu lịch sử để kiểm soát lỗ đơn.

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

Các khía cạnh chính để tối ưu hóa cho chiến lược này:

  1. Tối ưu hóa các tham số của Bollinger Bands, điều chỉnh thời gian N ngày và số lần lệch chuẩn để phù hợp hơn với các đặc điểm thị trường khác nhau.

  2. Tăng cơ chế gia hạn đơn đặt hàng để đặt thêm đơn đặt hàng sau khi một số lợi nhuận được thu được từ các đơn đặt hàng ban đầu, để mở rộng không gian lợi nhuận.

  3. Thiết lập các chiến lược dừng lỗ để thoát khỏi các vị trí khi giá vượt qua đường ray trên hoặc dưới của Bollinger Bands theo hướng bất lợi, kiểm soát lỗ.

  4. Kết hợp các chỉ số khác để sàng lọc tín hiệu và tránh tín hiệu sai trong thị trường biến động.

Kết luận

Chiến lược theo dõi biến động băng tần Bollinger kép nắm bắt biến động giá trong thời gian thực bằng cách xây dựng các băng tần Bollinger hai mặt, có thể nắm bắt nhiều cơ hội giao dịch ngắn hạn hơn. Những lợi thế của chiến lược này là nhạy cảm với những thay đổi thị trường và tạo ra tín hiệu nhanh chóng. Những rủi ro chính đến từ cài đặt tham số không phù hợp và thiếu dừng lỗ. Chúng ta có thể làm cho chiến lược ổn định và hiệu quả hơn thông qua tối ưu hóa đa chiều.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("BB_BB", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"


basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)

buy = crossover(sma(close,1), upper) or crossover(sma(close,1), lower)
sell = crossunder(sma(close,1), upper) or crossunder(sma(close,1), lower)

if(buy)
    strategy.entry("BUY", strategy.long, when = window())
if(sell)
    strategy.entry("SELL", strategy.short, when = window()) 

Thêm nữa