Chiến lược này sử dụng chỉ số Bollinger Band kết hợp với stop loss theo dõi để thực hiện giao dịch theo dõi xu hướng. Nó đi ngắn khi giá vượt qua đường ray trên và đi dài khi giá vượt qua đường ray dưới. Bằng cách đặt giá stop loss và lấy lợi nhuận, lợi nhuận có thể bị khóa. Trong khi đó, chiến lược này cũng cung cấp một lựa chọn vào đảo ngược tùy chọn, có nghĩa là thực hiện các lệnh đảo ngược khi giá tái nhập vào dải.
Chiến lược đầu tiên tính toán đường ray giữa, đường ray trên và đường ray dưới của Bollinger Band.
Khi giá vượt qua đường ray trên, đi ngắn; khi giá vượt qua đường ray dưới, đi dài. Sau khi mở vị trí, đặt giá dừng lỗ và lấy lợi nhuận. Giá dừng lỗ là giá trị Stop đầu vào, và giá lấy lợi nhuận là giá trị Limit đầu vào.
Ngoài ra, chiến lược cũng cung cấp tùy chọn mở đảo ngược. Khi
Cho dù đó là mở xu hướng hoặc mở đảo ngược, các cài đặt cho dừng lỗ và lấy lợi nhuận là như nhau. Có hai tùy chọn cho dừng lỗ và lấy lợi nhuận - dừng lỗ cố định hoặc dừng kéo theo sẽ được điều chỉnh theo sự thay đổi giá.
Chiến lược kết hợp chỉ số Bollinger Band và theo dõi dừng lỗ để kiểm soát rủi ro một cách hiệu quả trong khi khóa lợi nhuận xu hướng.
Bollinger Band đường ray trên và dưới có thể xác định rõ ràng sự đột phá giá. Phương pháp giao dịch theo dải làm cho kết quả PnL rõ ràng. Theo dõi dừng lỗ điều chỉnh vị trí dừng lỗ để ngăn chặn lợi nhuận kiếm được bị rút lại.
Rủi ro lớn nhất của chiến lược Bollinger Band là sự đảo ngược xu hướng. Sau khi đi ngắn khi giá phá vỡ đường ray trên, giá có thể xuất hiện đảo ngược hình chữ V, dẫn đến dừng lỗ nhanh chóng.
Khởi mở đảo ngược có thể bỏ lỡ cơ hội tiếp tục xu hướng.
Ngoài ra, cài đặt tham số không đúng cũng có thể làm tăng rủi ro. Len và Deviation cần phải được đặt cẩn thận, nếu không nguy cơ dừng lỗ sẽ tăng lên.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Thêm chức năng thích nghi tham số. Len và Deviation có thể được điều chỉnh năng động theo biến động thị trường để làm cho Bollinger Band gần với giá.
Thêm các bộ lọc vị trí mở. Các điều kiện bổ sung có thể được thêm như tăng khối lượng giao dịch và tăng giao dịch giao dịch để tránh bị rút lại.
Kết hợp với các chỉ số khác
Chỉ giao dịch trong một khoảng thời gian nhất định có thể giảm rủi ro qua đêm.
Chiến lược theo dõi Bollinger Band xác định sự đột phá giá bằng cách sử dụng chỉ số Bollinger Band. Nó khóa lợi nhuận bằng cách thiết lập dừng lỗ và lấy lợi nhuận, và sử dụng theo dõi dừng lỗ để điều chỉnh rủi ro. Chiến lược đơn giản và thực tế. Dựa trên điều kiện thị trường, giao dịch xu hướng hoặc đảo ngược có thể được lựa chọn. Bằng cách tối ưu hóa các tham số và thêm các điều kiện lọc, rủi ro có thể được giảm thêm để có được lợi nhuận ổn định hơn.
/*backtest start: 2024-02-19 00:00:00 end: 2024-02-26 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="BB Strategy (Basic)",overlay=true, initial_capital=25000, default_qty_value=1, commission_type=strategy.commission.cash_per_contract, commission_value=3.02) len = input(20, minval=1, title="Length") src = input(close, title="Source") mult = input(2.0, "Deviation", minval=0.001, maxval=50) //price_drop = input(.003, "When price drops (In Ticks) Enter Long", step=.001) //price_climb = input(.003, "When price climbs (In Ticks) Enter Short", step=.001) trail = input(true, "Trailing Stop(checked), Market stop(unchecked)") stop = input(10000, "Stop (in ticks)", step=5) limit = input(20000, "Limit Out", step=5) //size = input(1, "Limit Position Size (pyramiding)", minval=1) revt = input(true, "Reversal Entry(checked, Trend Entry(unchecked)") timec = input(false, "Limit Time of Day (Buying Side)") //calculations and plots revti = if revt==false true basis = wma(src, len) dev = mult * stdev(src, len) upper = basis + dev lower = basis - dev plot(basis, color=red) p1 = plot(upper, color=teal) p2 = plot(lower, color=teal) fill(p1, p2) u = crossover(high, upper) d = crossunder(low, lower) //Time Session sess = input("1600-0500", "Start/Stop trades (Est time)") t = time(timeframe.period, sess) //Orders if(timec) strategy.entry("Enterlong", long=revt, when=d and t>1) else strategy.entry("Enterlong", long=revt, when=d) if(trail) strategy.exit("Exit","Enterlong", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Enterlong", profit=limit, loss = stop ) if(timec) strategy.entry("Entershort", long=revti, when=u and t>1) else strategy.entry("Entershort", long=revti, when=u) if(trail) strategy.exit("Exit","Entershort", profit=limit, trail_points = 0, trail_offset = stop ) else strategy.exit("Exit","Entershort", profit=limit, loss = stop )