Strategi ini menggunakan indikator Bollinger Bands untuk menggambar saluran harga berdasarkan retracement ATR dan Fibonacci sebagai grid.
Gunakan garis tengah Bollinger Bands dan rel atas dan bawah yang dibangun dari ATR dan 4 garis retracement Fibonacci untuk membangun band gelombang harga.
Garis EMA cepat dan garis SMA lambat membentuk rata-rata bergerak ganda untuk menentukan arah tren keseluruhan. Garis cepat yang menembus garis lambat adalah pasar bull, dan sebaliknya adalah pasar bear.
Di pasar bull, hanya pergi panjang, pilih harga dekat rel bawah Bollinger Bands untuk menembus bagian bawah saluran untuk membuka posisi panjang; di pasar bear, hanya pergi pendek, pilih harga dekat rel atas Bollinger Bands untuk menembus bagian atas saluran untuk membuka posisi pendek.
Atur kondisi stop loss: keluar posisi arah saat ini ketika muncul batang pembalikan besar.
Gunakan rata-rata bergerak ganda untuk menentukan tren tingkat mega untuk menghindari perdagangan kontra-tren.
Garis saluran Bollinger ATR menetapkan beberapa harga pembukaan untuk meningkatkan probabilitas pembukaan posisi dengan sukses.
Band gelombang Fibonacci retrace menetapkan volatilitas harga, dengan jumlah posisi yang berbeda di band yang berbeda, mencapai dispersi modal.
Kondisi stop loss real-time memfasilitasi stop loss cepat dan mengurangi retracement keuntungan.
Kesalahan dalam menilai tren tingkat mega dapat menyebabkan kerugian yang berlawanan. Sesuai menyesuaikan parameter rata-rata bergerak atau menambahkan indikator lain untuk penilaian tambahan.
Ketika volatilitas terlalu besar, harga dapat menerobos area grid secara langsung, tidak dapat membuka posisi.
Kondisi stop loss lebih subjektif, dan kriteria pengakuan dapat berbeda di antara pedagang.
Tambahkan indikator APO untuk analisis tambahan dari penilaian tren rata-rata bergerak ganda.
Menggunakan indikator volatilitas pasar untuk mengoptimalkan parameter Bollinger waveband untuk lebih beradaptasi dengan perubahan pasar yang dinamis.
Mengurangi amplitudo stop loss dan menambahkan cara lain untuk mengatur kondisi stop loss untuk mengurangi kesalahan.
Ide keseluruhan dari strategi ini jelas, menggabungkan saluran Bollinger ATR dan rata-rata bergerak ganda untuk mencapai penilaian komprehensif dari sinyal perdagangan strategi, memaksimalkan pengurangan risiko penilaian yang salah. Keuntungan dari strategi ini jelas dan dapat diterapkan dalam perdagangan yang sebenarnya; tetapi masih ada ruang untuk pengoptimalan dalam detail seperti pengaturan parameter dan kondisi stop loss, yang perlu ditingkatkan lebih lanjut. Diyakini bahwa dengan pengoptimalan berkelanjutan, profitabilitas dan stabilitas strategi ini akan terus meningkat.
/*backtest start: 2023-11-12 00:00:00 end: 2023-12-12 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("fib trend grid@Aa", overlay=true,initial_capital=2000, default_qty_type=strategy.fixed, default_qty_value=1) //回测时间 useDateFilter=input.bool(true,title = "启用回测时间范围限定(backtest)", group = "回测范围(backtest)") backtesStarDate=input(timestamp("1 Jan 2015"),title = "开始时间(Start)", group = "回测范围(backtest)") backtestEndDate=input(timestamp("1 Jan 2040"),title = "结束时间(finish)",group = "回测范围(backtest)") inTradeWindow=true //入场位 entry bolllen=input.int(defval=20,minval=1,title="布林长度,(boll length)",group = "入场位(entry)") sma=ta.sma(close,bolllen) avg=ta.atr(bolllen) fib1=input(defval=1.236,title="Fib 1",group = "入场位(entry)") fib2=input(defval=2.382,title="Fib 2",group = "入场位(entry)") fib3=input(defval=3.618,title="fib 3",group = "入场位(entry)") fib4=input(defval=4.236,title="Fib 4",group = "入场位(entry)") r1=avg*fib1 r2=avg*fib2 r3=avg*fib3 r4=avg*fib4 top4=sma+r4 top3=sma+r3 top2=sma+r2 top1=sma+r1 bott1=sma-r1 bott2=sma-r2 bott3=sma-r3 bott4=sma-r4 //趋势 trend t4=plot(top4,title="卖 (sell)4",color=color.rgb(244, 9, 9)) t3=plot(top3,title = "卖(sell) 3",color=color.rgb(211, 8, 8)) t2=plot(top2,title="卖 (sell)2",color=color.rgb(146, 13, 13)) t1=plot(top1,title="卖(sell) 1",color=color.rgb(100, 3, 3)) b1=plot(bott1,title="买(buy)1",color=color.rgb(4, 81, 40)) b2=plot(bott2,title="买(buy)2",color=color.rgb(15, 117, 46)) b3=plot(bott3,title = "买(buy)3",color =color.rgb(8, 176, 42) ) b4=plot(bott4,title="买(buy)4",color=color.rgb(15, 226, 103)) plot(sma,style=plot.style_cross,title="SMA",color=color.rgb(47, 16, 225)) //趋势 LengthF=input(defval = 25,title = "快线长度(fastlength)") LengthS=input(defval=200,title = "慢线长度(slowlength)") emaF=ta.ema(close,LengthF) smaS=ta.sma(close,LengthS) longTrend=emaF>smaS longb=ta.crossover(emaF,smaS) bgcolor(longb ? color.new(color.green,40):na,title = "多头强势(bull trend)") shortTrend=smaS>emaF shortb=ta.crossunder(emaF,smaS) bgcolor(shortb ? color.new(#951313, 40):na,title = "空头强势(bear trend)") //pinbar bullPinBar = ((close > open) and ((open - low) > 0.6* (high - low))) or ((close < open) and ((close - low) > 0.9 * (high - low))) //plotshape(bullPinBar , text ="pinbar", textcolor=color.rgb(9, 168, 144),location=location.belowbar, color=color.rgb(29, 103, 67), size=size.tiny) bearPinBar = ((close > open) and ((high - close) > 0.7 * (high - low))) or ((close < open) and ((high - open) > 0.7 * (high - low))) //plotshape(bearPinBar , text ="pinbar", textcolor=color.rgb(219, 12, 12),location=location.abovebar, color=color.rgb(146, 7, 7), size=size.tiny) buy1=ta.crossunder(close,bott1) and longTrend and close>ta.ema(close,100) buy2=ta.crossunder(close,bott2) and longTrend and close>ta.ema(close,80) buy3=ta.crossunder(close,bott3) and longTrend and close>ta.ema(close,80) buy4=ta.crossunder(close,bott4) and longTrend and close>ta.ema(close,80) buyclose=bearPinBar or ta.crossunder(close,smaS) if buy2 or buy3 or buy4 or buy1 and inTradeWindow strategy.order("多(buy)",strategy.long) if buyclose and inTradeWindow strategy.close("多(buy)") sell1=ta.crossover(close,top1) and shortTrend and close<ta.ema(close,200) sell2=ta.crossover(close,top2) and shortTrend and close<ta.ema(close,200) sell3=ta.crossover(close,top3) and shortTrend and close<ta.ema(close,200) sell4=ta.crossover(close,top4) and shortTrend and close<ta.ema(close,200) sellclose=bullPinBar or ta.crossover(close,ta.sma(close,220)) if sell1 or sell2 or sell3 or sell4 and inTradeWindow strategy.order("空(sell)",strategy.short) if sellclose and inTradeWindow strategy.close("空(sell)")