Strategi ini menggunakan indikator Bollinger Bands untuk menentukan arah tren pasar, dan mengambil perdagangan kontra-tren ketika terjadi pembalikan tren. Ini pergi panjang ketika harga pecah di bawah band bawah dalam tren naik; dan pergi pendek ketika harga pecah di atas band atas dalam tren turun. Juga, moving average digunakan sebagai patokan untuk tren jangka panjang untuk membuat strategi lebih stabil.
Strategi ini menggunakan band tengah, band atas dan band bawah Bollinger Bands untuk menentukan arah tren pasar. Band tengah adalah rata-rata bergerak eksponensial periode n, sedangkan band atas dan band bawah adalah band tengah +2,3 standar deviasi dan band tengah -2,3 standar deviasi masing-masing. Ketika harga pecah di bawah band bawah, itu menunjukkan tren naik saat ini. Ketika harga pecah di atas band atas, itu menunjukkan tren penurunan saat ini.
Selain itu, strategi menetapkan rata-rata bergerak sederhana (sma) 200 periode sebagai patokan untuk penilaian tren jangka panjang. Sinyal perdagangan hanya dipicu ketika indikator BB dan sma sepakat pada arah yang sama. Ini dapat secara efektif menyaring beberapa pecah palsu.
Logika perdagangan spesifik adalah sebagai berikut:
Peningkatan:
Secara keseluruhan ini adalah strategi yang sederhana dan mudah dimengerti, menggunakan BB untuk menentukan tren dan mengambil perdagangan kontra-tren pada titik balik. Menambahkan indikator jangka pendek dan patokan juga membantu menyaring sinyal. Masih banyak ruang untuk optimasi, seperti penyesuaian parameter, indikator volume dll dapat lebih meningkatkannya.
/*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 = "空出场")