Strategi Perdagangan Saluran Persen EMA dan Rentang Bollinger Bands


Tanggal Pembuatan: 2023-11-13 17:38:01 Akhirnya memodifikasi: 2023-11-13 17:38:01
menyalin: 0 Jumlah klik: 854
1
fokus pada
1617
Pengikut

Strategi Perdagangan Saluran Persen EMA dan Rentang Bollinger Bands

Ringkasan

Strategi ini didasarkan pada EMA yang dipilih pengguna dan persentase saluran yang didefinisikan. Strategi ini dilakukan ketika harga lebih rendah dari tren atas; Strategi ini dilakukan ketika harga lebih tinggi dari tren bawah. Strategi ini dilakukan jika harga mulai berdagang tren dan menerobos saluran.

Untuk pasar tren, disarankan untuk menggunakan strategi perdagangan tren tren EMA persentase channel dan BRI.

Prinsip

  1. EMA 200 siklus dihitung sebagai EMA acuan.

  2. Perhitungan ini didasarkan pada persentase yang ditetapkan oleh pengguna: Uptrend = EMA * (1 + persen) Jalur bawah = EMA * (1 - persen)

  3. Perhitungan 20 siklus Brin Belt, menggambarkan ruang lingkup saluran.

  4. Ketika harga penutupan dari bawah ke atas menembus Bollinger Bands down, lakukan over; ketika harga penutupan dari atas ke bawah menembus Bollinger Bands up, lakukan over.

  5. Menggunakan ATR untuk menghitung stop loss, menghindari kerugian besar.

  6. Jika harga berada di luar batas persentase yang ditetapkan, maka semua posisi harus dihapus untuk mencegah kerugian lebih lanjut.

Keunggulan

  1. Menggunakan EMA sebagai acuan, kita dapat menangkap titik-titik perubahan tren dengan lebih baik.

  2. Persentase saluran menetapkan batas transaksi yang wajar dan menghindari terlalu sering transaksi.

  3. Sabuk Brin memberikan dukungan pada titik resistensi, membantu menentukan waktu masuk ke lapangan.

  4. Dengan menggunakan ATR trailing stopdynamically untuk mengatur stop loss, dan secara efektif mengendalikan risiko transaksi tunggal.

  5. Jika harga melebihi saluran, semua posisi akan ditutup dan kerugian dapat dikendalikan dengan cepat.

  6. Pengaturan parameter yang dapat disesuaikan dapat disesuaikan dengan pasar yang berbeda.

Risiko

  1. Jika persentase saluran terlalu luas, mungkin akan kehilangan tren atau mencegah terjadinya kerugian.

  2. Jika persentase saluran terlalu sempit, mungkin akan terjadi terlalu banyak transaksi dan meningkatkan biaya transaksi.

  3. Setting parameter Brin yang tidak tepat juga dapat menyebabkan kehilangan peluang perdagangan.

  4. Stop loss yang terlalu longgar dapat menyebabkan kerugian tunggal yang terlalu besar.

  5. Parameter harus dioptimalkan dengan tepat untuk menemukan ruang lingkup perdagangan yang optimal.

Arah optimasi

  1. Uji parameter siklus EMA yang berbeda untuk menemukan siklus rata-rata yang paling sesuai.

  2. Optimalkan persentase parameter saluran untuk mencari ruang optimal saluran.

  3. Menyesuaikan parameter periodik Brin untuk mengoptimalkan efek menangkap fluktuasi.

  4. Adaptasi siklus dan kelipatan ATR untuk lebih mengoptimalkan strategi stop loss.

  5. Uji hanya melakukan kondisi di atas atau di bawah, untuk melihat apakah itu meningkatkan tingkat keberhasilan.

  6. Dengan menggunakan indikator tren, Anda dapat menilai apakah Anda perlu melakukan penutupan lebih awal.

Meringkaskan

Strategi ini memanfaatkan keuntungan dari berbagai indikator, seperti garis rata-rata, saluran, dan volatilitas, untuk menghasilkan strategi perdagangan interval yang lebih stabil. Kuncinya adalah menemukan pengaturan parameter yang paling sesuai untuk pasar tertentu, untuk mencapai keseimbangan antara risiko dan keuntungan.

Kode Sumber Strategi
/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-12 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="[mdeacey] EMA% Channel + BB Range Strategy", shorttitle="[mdeacey] EMA% Channel + BB Range Strategy", overlay=true)

//EMA 200

len = input(title="EMA Length", type=input.integer, defval=200)
srce = input(title="EMA Source", type=input.source, defval=close)

ema1= ema(srce,len)

percent = input(title="Channel Percentage (%)", type=input.float, defval= 1) 
valuee = (percent*ema1)/100
upperbande = ema1 + valuee
lowerbande = ema1 - valuee


plot(ema1, title='EMA200', color=color.gray, linewidth=1, style=plot.style_line )
plot(upperbande, title='EMA Upper Band', color=color.gray, linewidth=1, style=plot.style_line )
plot(lowerbande, title='EMA Lower Band', color=color.gray, linewidth=1, style=plot.style_line )

length = input(20, minval=2)
src = input(close, title="Close price")
mult = input(2.0, minval=0.001, maxval=50)

MA2 = sma(src, length)
dev = mult * stdev(src, length)
upper = MA2 + dev
lower = MA2 - dev

signalColor = crossunder(close, upper) ? color.red : crossover(close, lower) ? color.green : color.white

barcolor(color=signalColor)


upperBand = plot(upper, color=color.gray, linewidth=1)
lowerBand = plot(lower, color=color.gray, linewidth=1)
fill(upperBand, lowerBand,color=color.gray)
strategy.entry("Long",true,when = crossover(close,lower)  and close <upperbande and close>lowerbande)
strategy.close("Long",when = crossunder(close,lowerbande))
strategy.entry("Short",false,when = crossunder(close,upper)  and close <upperbande and close>lowerbande)
strategy.close("Short",when = crossover(close,upperbande))

//Inputs
atrPeriod = input(defval=14, title="ATR Period",group='ATR Settings', type=input.integer) // Adjust this to change the ATR calculation length
multiplierPeriod = input(defval=1.75, title="ATR Multiplier Period",group='ATR Settings',  type=input.float)// Adjust this to change the distance between your candles and the line

//ATR Calculation
pine_rma(x, y) =>
    alpha = y
    sum = 0.0
    sum := (x + (alpha - 1) * nz(sum[1])) / alpha

true_range() =>
    max(high - low, max(abs(high - close[1]), abs(low - close[1])))

//Long SL
plot(low - pine_rma(true_range() * multiplierPeriod, atrPeriod), "Long Stop", color=color.red, offset = 1)
// Short SL
plot(high +pine_rma(true_range() * multiplierPeriod, atrPeriod), "Short Stop", color=color.red, offset = 1)
strategy.exit("Exit Long","Long",limit=upper ,stop = low - pine_rma(true_range() * multiplierPeriod, atrPeriod)  )
strategy.exit("eExit Short","Short",limit=lower ,stop =high +pine_rma(true_range() * multiplierPeriod, atrPeriod)  )