Strategi ini menggunakan penunjuk Bollinger Bands untuk menentukan arah trend pasaran, dan mengambil dagangan kontra-trend apabila pembalikan trend berlaku. Ia pergi lama apabila harga pecah di bawah band bawah dalam trend menaik; dan pergi pendek apabila harga pecah di atas band atas dalam trend menurun. Juga, purata bergerak digunakan sebagai penanda aras untuk trend jangka panjang untuk menjadikan strategi lebih stabil.
Strategi ini menggunakan band tengah, band atas dan band bawah Bollinger Bands untuk menentukan arah trend pasaran. Band tengah adalah purata bergerak eksponensial n-periode, sementara band atas dan band bawah adalah band tengah +2.3 penyimpangan standard dan band tengah -2.3 penyimpangan standard masing-masing. Apabila harga pecah di bawah band bawah, ia menunjukkan trend menaik semasa. Apabila harga pecah di atas band atas, ia menunjukkan trend penurunan semasa.
Di samping itu, strategi menetapkan purata bergerak mudah (sma) 200 tempoh sebagai penanda aras untuk penilaian trend jangka panjang. Isyarat dagangan hanya dicetuskan apabila penunjuk BB dan sma bersetuju ke arah yang sama. Ini dapat menapis beberapa pecah palsu dengan berkesan.
Logik perdagangan khusus adalah seperti berikut:
Penambahbaikan:
Secara keseluruhan ini adalah strategi yang mudah dan mudah difahami, menggunakan BB untuk menentukan trend dan mengambil perdagangan kontra-trend pada titik perubahan. Menambah indikator jangka pendek dan penanda aras juga membantu menapis isyarat.
/*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 = "空出场")