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,
Menghitung EMA 200 periode sebagai EMA dasar.
Menghitung band atas dan bawah berdasarkan persentase yang ditentukan pengguna: Upper Band = EMA * (1 + Persen) Band bawah = EMA * (1 - Persen)
Hitung Bollinger Bands 20 periode untuk menggambarkan rentang saluran.
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.
Gunakan ATR untuk menghitung stop loss untuk menghindari kerugian yang berlebihan.
Jika harga bergerak di luar kisaran saluran persentase yang ditentukan, tutup semua posisi untuk mencegah kerugian lebih lanjut.
Garis dasar EMA membantu menangkap titik pembalikan tren dengan lebih baik.
Saluran persentase menetapkan rentang perdagangan yang wajar untuk menghindari overtrading.
Bollinger Bands menyediakan level support dan resistance untuk membantu waktu masuk.
Stop trailing ATR secara dinamis mengatur stop loss untuk mengontrol risiko perdagangan secara efektif.
Menutup semua posisi ketika harga melanggar saluran dengan cepat mengendalikan kerugian.
Parameter yang dapat disesuaikan fleksibel untuk kondisi pasar yang berbeda.
Jangkauan saluran yang terlalu luas dapat melewatkan tren atau menunda penghentian kerugian.
Jangkauan saluran yang terlalu sempit dapat menyebabkan overtrading dan meningkatkan biaya transaksi.
Pengaturan parameter Bollinger Bands yang buruk dapat menyebabkan peluang perdagangan yang hilang.
Batas stop loss yang ditetapkan terlalu longgar dapat menyebabkan kerugian yang berlebihan per perdagangan.
Parameter perlu dioptimalkan untuk menemukan rentang perdagangan yang optimal.
Uji periode EMA yang berbeda untuk menemukan rata-rata bergerak yang paling cocok.
Optimalkan parameter persentase saluran untuk menentukan rentang saluran yang optimal.
Sesuaikan periode Bollinger Bands untuk lebih menangkap volatilitas.
Sesuaikan periode ATR dan pengganda untuk lebih memperbaiki strategi stop loss.
Uji long-only di atas EMA atau short-only di bawah kondisi EMA dan lihat apakah itu meningkatkan tingkat kemenangan.
Sertakan indikator tren untuk menentukan apakah perlu keluar lebih awal.
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) )