Chiến lược này tạo ra các tín hiệu giao dịch dựa trên chỉ số Bollinger Bands và quản lý các vị trí bằng cách sử dụng stop-loss / take-profit. Nó theo dõi sự đột phá của các dải Bollinger Bands trên và dưới, đi dài khi giá vượt qua dải trên, đi ngắn khi giá vượt qua dải dưới và thoát khi giá vượt qua các dải ngược lại bằng lệnh stop-loss.
Chiến lược này sử dụng các dải giữa, trên và dưới từ chỉ số Bollinger Bands. Dải giữa là đường trung bình động, dải trên là dải giữa cộng với 2 độ lệch chuẩn, và dải dưới là dải giữa trừ 2 độ lệch chuẩn.
Đầu tiên nó tính toán các dải Bollinger giữa, trên và dưới. Sau đó nó kiểm tra xem giá có phá vỡ trên dải trên hoặc dưới dải dưới. Nếu giá phá vỡ trên dải trên, nó sẽ dài. Nếu giá phá vỡ dưới dải dưới, nó sẽ ngắn. Ngoài ra nếu giá phá vỡ các dải ngược lại, nó sẽ thoát khỏi vị trí bằng lệnh dừng lỗ.
Cụ thể, chiến lược logic là:
Điều này cho phép bắt được xu hướng khi giá di chuyển lớn, trong khi hạn chế lỗ bằng cách sử dụng stop-loss.
Có thể tối ưu hóa thông qua kết hợp các chỉ số, điều chỉnh các đơn vị dừng lỗ v.v.
Đây là một xu hướng tương đối đơn giản sau chiến lược dựa trên Bollinger Bands. Nó có thể nhanh chóng nắm giữ vị trí khi giá phá vỡ và sử dụng stop-loss để kiểm soát rủi ro. Nhưng chỉ dựa vào giá có thể gây ra những đánh giá sai, trong khi stop-loss nhạy cảm có thể làm tăng tần suất giao dịch. Chúng ta có thể cải thiện nó hơn nữa thông qua điều chỉnh tham số, kết hợp các chỉ số, điều chỉnh stop vv. Nhìn chung nó cung cấp một khuôn khổ giao dịch lượng đơn giản và đáng tin cậy.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ROBO_Trading //@version=5 strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1) //Settings long = input(true) short = input(true) length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) source = input(close) showbb = input(true, title = "Show Bollinger Bands") showof = input(true, title = "Show Offset") startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1") finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1") //Bollinger Bands basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev //Show indicator offset = showof ? 1 : 0 colorBasis = showbb ? color.gray : na colorUpper = showbb ? color.blue : na colorLower = showbb ? color.blue : na colorBands = showbb ? color.blue : na p0 = plot(basis, "Basis", color = colorBasis, offset = offset) p1 = plot(upper, "Upper", color = colorUpper, offset = offset) p2 = plot(lower, "Lower", color = colorLower, offset = offset) fill(p1, p2, title = "Background", color = colorBands, transp = 90) //Trading truetime = true if basis > 0 and truetime if long strategy.entry("Long", strategy.long, stop = upper, when = truetime) if short strategy.entry("Short", strategy.short, stop = lower, when = truetime) if long == false strategy.exit("Exit", "Short", stop = upper) if short == false strategy.exit("Exit", "Long", stop = lower) if time > finalTime strategy.close_all()