Strategi Pelacakan Rata-rata Pergerakan Ganda Bollinger Bands


Tanggal Pembuatan: 2023-12-13 17:12:38 Akhirnya memodifikasi: 2023-12-13 17:12:38
menyalin: 0 Jumlah klik: 733
1
fokus pada
1621
Pengikut

Strategi Pelacakan Rata-rata Pergerakan Ganda Bollinger Bands

Ringkasan

Strategi ini menggunakan indikator Brin channel untuk memetakan band yang didasarkan pada ATR dan Fibonacci Regression sebagai saluran harga grid. Dalam kombinasi dengan dua rata-rata EMA untuk menentukan arah tren keseluruhan, untuk mengatur grid tracking stop loss pada harga Brin band secara selektif dalam arah tren, untuk mencapai trend tracking arbitrage.

Prinsip Strategi

  1. Menggunakan Brin saluran dalam sumbu dan berdasarkan ATR dan 4 garis Fibonacci Regression untuk memetakan naik dan turun konstruksi harga gelombang.

  2. Garis cepat EMA dan garis lambat SMA membentuk garis rata ganda untuk menentukan arah tren keseluruhan. Garis cepat menembus garis lambat untuk pasar multihead, sebaliknya untuk pasar kosong.

  3. Dalam pasar multihead, hanya melakukan lebih banyak, pilih Brin untuk melakukan lebih banyak posisi di bawah terowongan terobosan harga di dekat terowongan terobosan harga; di pasar kosong hanya kosong, pilih Brin untuk melakukan posisi di atas terobosan harga di dekat terowongan terobosan harga.

  4. Setting Stop Loss Condition: K Line Reversal yang signifikan berarti keluar dari posisi arah saat ini.

Analisis Keunggulan

  1. Menggunakan dua garis rata untuk menilai tren tingkat besar dan menghindari perdagangan berlawanan.

  2. Brin ATR channel grid telah mengatur beberapa harga untuk membuka posisi, meningkatkan tingkat keberhasilan membuka posisi.

  3. Fibonacci Regression Bands mengatur harga dispersi, dengan jumlah posisi yang berbeda pada setiap band, untuk mencapai dispersi dana.

  4. Kondisi Stop Loss Real-Time memfasilitasi Stop Loss yang cepat dan mengurangi pengembalian keuntungan.

Analisis risiko

  1. Kesalahan penilaian tren tingkat besar, dapat menyebabkan kerugian yang berlawanan. Parameter garis rata-rata dapat disesuaikan sesuai, atau menambahkan indikator lain untuk penilaian tambahan.

  2. Jika harga berfluktuasi terlalu besar, maka harga bisa langsung menerobos area grid dan tidak dapat membuka posisi. Anda dapat menyesuaikan parameter band untuk meningkatkan peluang membuka posisi.

  3. Kondisi stop loss bersifat subjektif, dan kriteria untuk mengidentifikasi pedagang yang berbeda mungkin memiliki kesalahan. Disarankan untuk menguji dan mengoptimalkan kondisi stop loss.

Arah optimasi

  1. Menambahkan analisa tambahan dari indikator apo untuk penilaian tren bilateral.

  2. Menggunakan indikator volatilitas pasar untuk mengoptimalkan parameter Brin band agar lebih sesuai dengan perubahan dinamika pasar.

  3. Menurunkan stop loss, dan menambahkan pengaturan kondisi stop loss dengan metode OTHER, untuk mengurangi kesalahan.

Meringkaskan

Strategi ini secara keseluruhan ide yang jelas, menggunakan Brin ATR saluran dan dua garis sejajar untuk mencapai penilaian komprehensif dan komprehensif dari sinyal perdagangan strategi, untuk mengurangi risiko kesalahan penilaian. Keunggulan strategi jelas, dapat diterapkan secara praktis; tetapi detail seperti parameter pengaturan dan kondisi stop loss masih memiliki ruang untuk optimasi, harus disempurnakan lebih lanjut.

Kode Sumber Strategi
/*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)")