Chiến lược này sử dụng chỉ số Bollinger Bands để xác định hướng xu hướng thị trường và thực hiện các giao dịch ngược xu hướng khi xu hướng đảo ngược xảy ra. Nó đi dài khi giá phá vỡ dưới dải dưới trong xu hướng tăng; và đi ngắn khi giá phá vỡ trên dải trên trong xu hướng giảm. Ngoài ra, một đường trung bình động được sử dụng làm điểm chuẩn cho xu hướng dài hạn để làm cho chiến lược ổn định hơn.
Chiến lược này sử dụng dải giữa, dải trên và dải dưới của Bollinger Bands để xác định hướng xu hướng thị trường. Dải giữa là đường trung bình chuyển động theo cấp số n, trong khi dải trên và dải dưới là dải giữa +2.3 độ lệch chuẩn và dải giữa -2.3 độ lệch chuẩn. Khi giá phá vỡ dưới dải dưới, nó chỉ ra xu hướng tăng hiện tại. Khi giá phá vỡ trên dải trên, nó chỉ ra xu hướng giảm hiện tại.
Ngoài ra, chiến lược đặt một trung bình di chuyển đơn giản 200 giai đoạn (sma) làm điểm chuẩn để đánh giá xu hướng dài hạn. Các tín hiệu giao dịch chỉ được kích hoạt khi các chỉ số BB và sma đồng ý theo cùng một hướng. Điều này có thể lọc hiệu quả một số sự đột phá sai.
Lý thuyết giao dịch cụ thể là như sau:
Cải tiến:
Nói chung, đây là một chiến lược đơn giản và dễ hiểu, sử dụng BB để xác định xu hướng và thực hiện các giao dịch chống xu hướng tại các điểm chuyển đổi. Thêm các chỉ số ngắn hạn và chỉ số chuẩn cũng giúp lọc tín hiệu.
/*backtest start: 2023-10-23 00:00:00 end: 2023-11-22 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/ // © Aayonga //@version=5 strategy("布林趋势震荡单", overlay=true,initial_capital=10000,default_qty_type=strategy.fixed, default_qty_value=1 ) bollL=input.int(20,minval=1,title = "长度") bollmult=input.float(2.3,minval=0,step=0.1,title = "标准差") basis=ta.ema(close,bollL) dev=bollmult*ta.stdev(close,bollL) upper=basis+dev lower=basis-dev smaL=input.int(200,minval=1,step=1,title = "趋势分界线") sma=ta.sma(close,smaL) //多头趋势 longT=upper>sma and basis>sma and lower>=sma //空头趋势 shortT=upper<sma and basis<sma and lower<=sma //入场位 longE=ta.crossover(close,lower) shortE=ta.crossover(close,upper) //出场位 longEXIT=ta.crossover(high,upper) shortEXIT=ta.crossunder(close,basis) or ta.crossover(close,ta.sma(close,230)) if longT and longE strategy.entry("多",strategy.long) if longEXIT strategy.close("多",comment = "多出场") if shortE and shortT strategy.entry("空",strategy.short) if shortEXIT strategy.close("空",comment = "空出场")