Saluran Persentase EMA dengan Strategi Trading Bollinger Band Range

Penulis:ChaoZhang, Tanggal: 2023-11-13 17:38:01
Tag:

img

Gambaran umum

Strategi ini didasarkan pada pilihan EMA dan saluran persentase yang ditentukan oleh pengguna. Ini akan panjang ketika harga berada di bawah band atas dan akan pendek ketika harga berada di atas band bawah. Jika harga mulai tren dan bergerak di luar saluran, semua posisi ditutup untuk mencegah kerugian.

Untuk pasar tren, EMA Percentage Channel sister with Bollinger Band Trend Trading Strategy harus digunakan sebagai gantinya.

Prinsip-prinsip

  1. Menghitung EMA 200 periode sebagai EMA dasar.

  2. Menghitung band atas dan bawah berdasarkan persentase yang ditentukan pengguna: Upper Band = EMA * (1 + Persen) Band bawah = EMA * (1 - Persen)

  3. Hitung Bollinger Bands 20 periode untuk menggambarkan rentang saluran.

  4. Pergi panjang ketika harga penutupan melintasi atas Bollinger Band bawah dari bawah. Pergi pendek ketika harga penutupan melintasi di bawah Bollinger Band atas dari atas.

  5. Gunakan ATR untuk menghitung stop loss untuk menghindari kerugian yang berlebihan.

  6. Jika harga bergerak di luar kisaran saluran persentase yang ditentukan, tutup semua posisi untuk mencegah kerugian lebih lanjut.

Keuntungan

  1. Garis dasar EMA membantu menangkap titik pembalikan tren dengan lebih baik.

  2. Saluran persentase menetapkan rentang perdagangan yang wajar untuk menghindari overtrading.

  3. Bollinger Bands menyediakan level support dan resistance untuk membantu waktu masuk.

  4. Stop trailing ATR secara dinamis mengatur stop loss untuk mengontrol risiko perdagangan secara efektif.

  5. Menutup semua posisi ketika harga melanggar saluran dengan cepat mengendalikan kerugian.

  6. Parameter yang dapat disesuaikan fleksibel untuk kondisi pasar yang berbeda.

Risiko

  1. Jangkauan saluran yang terlalu luas dapat melewatkan tren atau menunda penghentian kerugian.

  2. Jangkauan saluran yang terlalu sempit dapat menyebabkan overtrading dan meningkatkan biaya transaksi.

  3. Pengaturan parameter Bollinger Bands yang buruk dapat menyebabkan peluang perdagangan yang hilang.

  4. Batas stop loss yang ditetapkan terlalu longgar dapat menyebabkan kerugian yang berlebihan per perdagangan.

  5. Parameter perlu dioptimalkan untuk menemukan rentang perdagangan yang optimal.

Arahan Optimasi

  1. Uji periode EMA yang berbeda untuk menemukan rata-rata bergerak yang paling cocok.

  2. Optimalkan parameter persentase saluran untuk menentukan rentang saluran yang optimal.

  3. Sesuaikan periode Bollinger Bands untuk lebih menangkap volatilitas.

  4. Sesuaikan periode ATR dan pengganda untuk lebih memperbaiki strategi stop loss.

  5. Uji long-only di atas EMA atau short-only di bawah kondisi EMA dan lihat apakah itu meningkatkan tingkat kemenangan.

  6. Sertakan indikator tren untuk menentukan apakah perlu keluar lebih awal.

Kesimpulan

Strategi ini menggabungkan kekuatan rata-rata bergerak, saluran, volatilitas dan banyak lagi untuk menciptakan sistem perdagangan rentang yang relatif stabil. Kuncinya adalah menemukan pengaturan parameter yang paling cocok untuk setiap pasar tertentu untuk menyeimbangkan risiko dan imbalan.


/*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)  )


Lebih banyak