Chiến lược này dựa trên chỉ số Bollinger Bands, lấy các vị trí dài hoặc ngắn khi giá vượt qua đường trên hoặc dưới của Bollinger Bands.
Cụ thể, nó đầu tiên tính toán đường SMA giữa đường dài, và đường trên / dưới của nhiều lần độ lệch chuẩn. Khi đóng phá vỡ lên từ đường dưới, đi dài. Khi đóng phá vỡ từ đường trên, đi ngắn. Cũng đặt thời gian bắt đầu và kết thúc để giới hạn giờ giao dịch. Ra khỏi trước khi mở hàng ngày.
Chiến lược này cố gắng nắm bắt các động thái mở rộng sau khi giá vượt ra khỏi các dải. Bước qua dải dưới cho thấy tăng cường lực tăng, trong khi bước qua dải trên có nghĩa là tăng cường lực giảm, vì vậy giao dịch theo đường lối phá vỡ là thuận lợi.
Rủi ro có thể được giảm bằng cách tối ưu hóa các quy tắc nhập cảnh, thêm stop loss, giới thiệu bộ lọc xu hướng vv.
Đây là một chiến lược breakout dựa trên Bollinger Bands. Nó lợi nhuận từ các động thái breakout. Ưu điểm là logic đơn giản và dễ thực hiện; Nhược điểm là dễ bị breakout sai. Rủi ro có thể được quản lý thông qua tối ưu hóa tham số, dừng lỗ, kiểm soát giờ giao dịch vv. Nó cho phép các nhà giao dịch hiểu những điều cơ bản về sử dụng các chỉ số và breakout giao dịch.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") length = input(20, minval=1) mult = input(1.0, minval=0.001, maxval=50) fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") source = close basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev up = close < lower dn = close > upper exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) if up strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00))) if time > timestamp(toyear, tomonth, 31, 00, 00) or exit strategy.close_all()