Strategi dagangan indeks yang kukuh didorong oleh jalur berganda


Tarikh penciptaan: 2023-12-12 17:12:35 Akhirnya diubah suai: 2023-12-12 17:47:33
Salin: 1 Bilangan klik: 920
1
fokus pada
1621
Pengikut

Strategi dagangan indeks yang kukuh didorong oleh jalur berganda

Gambaran keseluruhan

Strategi ini menggabungkan indikator dual band dan indikator kuat untuk mewujudkan mod perdagangan yang pecah. Apabila EMA cepat menembusi saluran band gelombang, ia menggabungkan isyarat arah kosong dengan isyarat AO untuk menghasilkan isyarat membeli dan menjual.

Prinsip Strategi

  1. Garis tengah, atas dan bawah yang digunakan untuk menilai saluran harga.
  2. Apabila EMA pantas melintasi orbit tengah, ia dianggap sebagai penembusan laluan.
  3. Indeks Kekuatan AO menunjukkan arah kepalanya dan kepalanya kosong.
  4. Apabila EMA laju ke atas menembusi tengah-tengah orbit dan AO adalah positif, ia menghasilkan isyarat beli.
  5. Apabila EMA laju ke bawah menembusi pertengahan lintasan, dan AO negatif, ia menghasilkan isyarat menjual.

Analisis kelebihan

  1. Indeks pita gelombang dua menilai saluran harga, mengelakkan isyarat yang salah.
  2. Penunjuk AO menilai arah trend, menjadikan isyarat perdagangan lebih tepat.
  3. Berpadu dengan model penembusan saluran, ia boleh menangkap lebih banyak mata wang pada peringkat permulaan trend.

Analisis risiko

  1. Parameter Brin yang tidak betul boleh menyebabkan saluran terlalu lebar atau terlalu sempit.
  2. Tetapan parameter penunjuk AO akan mempengaruhi ketepatan penghakiman.
  3. Isyarat penembusan mungkin palsu, perlu memastikan kekuatan penembusan yang mencukupi.

Penyelesaian

  1. Mengoptimumkan parameter Brin dan AO untuk mencari kombinasi terbaik.
  2. Meningkatkan keadaan kekuatan untuk menembusi dan mengelakkan penembusan palsu.
  3. Ia digunakan bersama-sama dengan pelbagai penunjuk lain untuk memastikan kebolehpercayaan isyarat perdagangan.

Arah pengoptimuman

  1. Mengoptimumkan parameter Brin Belt untuk mencari ruang laluan yang paling sesuai.
  2. Mengoptimumkan parameter garis purata jangka panjang dan jangka pendek untuk penunjuk AO, meningkatkan ketepatan penilaian.
  3. Menambah jumlah atau penapis lain untuk memastikan kebolehpercayaan penembusan.
  4. Mengoptimumkan parameter kekuatan penembusan, mengurangkan kadar penembusan palsu.

ringkaskan

Strategi ini mengambil kira saluran harga, arah trend dan mod penembusan, merupakan strategi perdagangan yang lebih stabil dan cekap. Dengan pengoptimuman parameter dan penapisan indikator gabungan, anda dapat meningkatkan lagi kestabilan dan kadar keuntungan strategi.

Kod sumber strategi
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(shorttitle="BB+AO STRAT", title="BB+AO STRAT", overlay=true)


// === BACKTEST RANGE ===
FromMonth = input(defval = 6, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// Bollinger Bands Inputs
bb_use_ema = input(false, title="Use EMA for Bollinger Band")
bb_length = input(5, minval=1, title="Bollinger Length")
bb_source = input(close, title="Bollinger Source")
bb_mult = input(2.0, title="Base Multiplier", minval=0.5, maxval=10)
// EMA inputs
fast_ma_len = input(2, title="Fast EMA length", minval=2)
// Awesome Inputs
nLengthSlow = input(34, minval=1, title="Awesome Length Slow")
nLengthFast = input(5, minval=1, title="Awesome Length Fast")




// Breakout Indicator Inputs
bb_basis = bb_use_ema ? ema(bb_source, bb_length) : sma(bb_source, bb_length)
fast_ma  = ema(bb_source, fast_ma_len)

// Deviation

dev = stdev(bb_source, bb_length)
bb_dev_inner = bb_mult * dev

// Upper bands
inner_high = bb_basis + bb_dev_inner
// Lower Bands
inner_low = bb_basis - bb_dev_inner

// Calculate Awesome Oscillator
xSMA1_hl2 = sma(hl2, nLengthFast)
xSMA2_hl2 = sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
// Calculate direction of AO
AO = xSMA1_SMA2>=0? xSMA1_SMA2 > xSMA1_SMA2[1] ? 1 : 2 : xSMA1_SMA2 > xSMA1_SMA2[1] ? -1 : -2



// === PLOTTING ===

// plot BB basis
plot(bb_basis, title="Basis Line", color=red, transp=10, linewidth=2)
// plot BB upper and lower bands
ubi = plot(inner_high, title="Upper Band Inner", color=blue, transp=10, linewidth=1)
lbi = plot(inner_low, title="Lower Band Inner", color=blue, transp=10, linewidth=1)
// center BB channel fill
fill(ubi, lbi, title="Center Channel Fill", color=silver, transp=90)

// plot fast ma
plot(fast_ma, title="Fast EMA", color=black, transp=10, linewidth=2)

// Calc breakouts
break_down =   crossunder(fast_ma, bb_basis) and close < bb_basis and abs(AO)==2
break_up   =  crossover(fast_ma, bb_basis) and close > bb_basis and abs(AO)==1

// Show Break Alerts
plotshape(break_down, title="Breakout Down", style=shape.arrowdown, location=location.abovebar, size=size.auto, text="Sell", color=red, transp=0)
plotshape(break_up, title="Breakout Up", style=shape.arrowup, location=location.belowbar, size=size.auto, text="Buy", color=green, transp=0)
// === ALERTS ===



strategy.entry("L", strategy.long, when=(break_up and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))


strategy.close("L", when=(break_down and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

// === /PLOTTING ===
barcolor(AO == 2 ? red: AO == 1 ? green : blue )



// eof