Strategi Perdagangan Momentum Breakout


Tarikh penciptaan: 2023-11-14 11:19:05 Akhirnya diubah suai: 2023-11-14 11:19:05
Salin: 3 Bilangan klik: 731
1
fokus pada
1617
Pengikut

Strategi Perdagangan Momentum Breakout

Gambaran keseluruhan

Strategi ini menggunakan garis Brin dan indikator ATR yang digabungkan dengan garis rata EMA untuk membuat keputusan, membentuk strategi perdagangan yang bergerak. Ia menghasilkan isyarat beli apabila harga naik menerobos garis Brin dan cepat menerobos garis rata EMA; ia menghasilkan isyarat jual apabila harga turun menerobos garis Brin dan cepat menembus garis rata EMA. Ia juga menggunakan indikator ATR untuk menghentikan kerugian.

Prinsip Strategi

  1. Hitung garis tengah, garis atas dan garis bawah garis Brin. Garis tengah adalah garis rata-rata SMA bagi n kitaran, garis atas ialah garis tengah + m*n kitaran standard perbezaan, subtraject adalah garis tengah-m*n kitaran standard berbeza.

  2. Mengira Indeks ATR untuk Mengesan Hentikan Kerugian

  3. Hitung EMA purata untuk 1 dan n kitaran untuk menentukan pergerakan harga.

  4. Apabila harga melintasi Bolling dan melintasi garis rata-rata EMA n kitaran dengan cepat, ia menghasilkan isyarat beli.

  5. Apabila harga menembusi tren bawah Brin, dan dengan cepat menembusi garis rata-rata EMA n-siklus, ia menghasilkan isyarat menjual.

  6. Tanda ATR digunakan untuk menetapkan titik hentian, mengesan arah harga yang pecah, dan mengelakkan daripada dirampas.

Analisis kelebihan

  1. Garis putar berpasangan dengan ATR Stop Loss dapat mengawal risiko secara berkesan.

  2. EMA cepat-cepat menilai arah momentum dan mengelakkan penembusan palsu.

  3. Parameter strategi boleh disesuaikan untuk persekitaran pasaran yang berbeza.

  4. Isyarat beli dan jual jelas, frekuensi dagangan tinggi, sesuai untuk perdagangan garis pendek.

  5. Menggunakan indikator ATR untuk mengesan kerugian, anda boleh menghentikan kerugian tepat pada masanya.

Analisis risiko

  1. Jika ia terlalu sempit, ia boleh menyebabkan lebih banyak transaksi bising.

  2. Tetapan parameter ATR terlalu kecil, yang boleh menyebabkan jarak henti terlalu dekat.

  3. Parameter EMA memerlukan penyesuaian kitaran, dengan kesan yang berbeza untuk setiap kitaran.

  4. Ia mungkin akan menghasilkan lebih banyak dagangan di bandar-bandar di zon gempa, jadi berhati-hatilah.

  5. Tracking stop loss kadang-kadang terlalu radikal dan boleh menyebabkan kerugian meningkat.

Arah pengoptimuman

  1. Ia boleh digabungkan dengan indikator lain untuk menapis isyarat dagangan. Contohnya, indikator RSI untuk menilai overbought dan oversold, indikator KDJ untuk menilai deviasi dan sebagainya.

  2. Anda boleh mempertimbangkan untuk menyesuaikan parameter Brinline mengikut dinamik ATR, untuk menjadikan Brinline lebih sesuai dengan turun naik harga.

  3. Anda boleh menguji kesan parameter EMA yang berbeza untuk mencari kombinasi parameter terbaik.

  4. ATR parameter boleh disesuaikan dengan kadar turun naik yang bijak untuk mengelakkan stop loss yang terlalu radikal.

  5. Anda boleh mempertimbangkan untuk menggunakan model pembelajaran mendalam untuk membantu anda menentukan masa untuk membeli atau menjual.

ringkaskan

Strategi ini secara keseluruhan idea yang jelas, menggunakan Brinline menangkap harga pecah, ATR menetapkan ruang stop loss, EMA menilai arah momentum, untuk membuat penilaian menyeluruh terhadap momentum pecah, boleh menangkap trend harga garis pendek. Pada masa yang sama menggabungkan pelbagai petunjuk untuk membuat penilaian komprehensif, boleh meningkatkan kualiti isyarat.

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

//@version=4
strategy(title="UT Bot Strategy", overlay = true)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol. 
// Inputs
a = input(1,     title = "Key Vaule. 'This changes the sensitivity'")
c = input(10,    title = "ATR Period")
h = input(false, title = "Signals from Heikin Ashi Candles")

src = h ? security(heikinashi(syminfo.tickerid), timeframe.period, close, lookahead = false) : close

length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
// plot(bbr, "Bollinger Bands %B", color=#26A69A)
// band1 = hline(1, "Overbought", color=#787B86, linestyle=hline.style_dashed)
// hline(0.5, "Middle Band", color=color.new(#787B86, 50))
// band0 = hline(0, "Oversold", color=#787B86, linestyle=hline.style_dashed)
// fill(band1, band0, color=color.rgb(38, 166, 154, 90), title="Background")








xATR  = atr(c)
nLoss = a * xATR




xATRTrailingStop = 0.0
xATRTrailingStop := iff(src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), src - nLoss),
   iff(src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), src + nLoss), 
   iff(src > nz(xATRTrailingStop[1], 0), src - nLoss, src + nLoss)))
 
pos = 0   
pos :=	iff(src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0), 1,
   iff(src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 
   
xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

ema   = ema(src,1)
emaFast   = ema(src,144)
emaSlow   = ema(src,576)
sma       =  sma(src, c)

above = crossover(ema, xATRTrailingStop)
below = crossover(xATRTrailingStop, ema)

smaabove = crossover(src, sma)
smabelow = crossover(sma, src)


buy  = src > xATRTrailingStop and above and (bbr>20  or bbr<80)
sell = src < xATRTrailingStop and below  and  (bbr>20  or bbr<80)

// buy  = src > xATRTrailingStop 
// sell = src < xATRTrailingStop 


barbuy  = src > xATRTrailingStop 
barsell = src < xATRTrailingStop 

// plot(emaFast , color = color.rgb(243, 206, 127), title="emaFast")

plot(xATRTrailingStop, color = color.rgb(233, 233, 232), title="xATRTrailingStop")

plotshape(buy,  title = "Buy",  text = 'Buy',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
plotshape(sell, title = "Sell", text = 'Sell', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)


// plotshape(buy,  title = "Sell",  text = 'Sell',  style = shape.labelup,   location = location.belowbar, color= color.green, textcolor = color.white, transp = 0, size = size.tiny)
// plotshape(sell, title = "buy", text = 'buy', style = shape.labeldown, location = location.abovebar, color= color.red,   textcolor = color.white, transp = 0, size = size.tiny)

barcolor(barbuy  ? color.green : na)
barcolor(barsell ? color.red   : na)

// strategy.entry("short",   false, when = buy)
// strategy.entry("long ", true, when = sell)


strategy.entry("long",   true, when = buy)
strategy.entry("short ", false, when = sell)