EMA Peratusan Saluran dan Bollinger Bands Julat Strategi Perdagangan


Tarikh penciptaan: 2023-11-13 17:38:01 Akhirnya diubah suai: 2023-11-13 17:38:01
Salin: 0 Bilangan klik: 854
1
fokus pada
1617
Pengikut

EMA Peratusan Saluran dan Bollinger Bands Julat Strategi Perdagangan

Gambaran keseluruhan

Strategi ini berdasarkan EMA pilihan pengguna dan saluran peratusan yang ditakrifkan. Apabila harga lebih rendah daripada rantaian atas, strategi melakukan lebih banyak; apabila harga lebih tinggi daripada rantaian bawah, strategi kosong.

Untuk pasaran yang sedang trending, disyorkan untuk menggunakan strategi perdagangan tren yang disertakan dengan saluran peratusan EMA yang disertakan dengan strategi perdagangan tren BRI.

Prinsip

  1. Hitung EMA 200 kitaran sebagai EMA asas.

  2. Bergantung kepada peratusan yang ditetapkan oleh pengguna, kiraan naik turun: Uptrend = EMA * (1 + peratus) Laluan bawah = EMA * (1 - peratus)

  3. Hitung 20 pusingan tali pinggang Brin, gambarkan ruang laluan.

  4. Apabila harga penutupan dari bawah ke atas menembusi Bollinger Bands down, buatlah lebih; apabila harga penutupan dari atas ke bawah menembusi Bollinger Bands up, buatlah kosong.

  5. Menggunakan ATR untuk mengira stop loss untuk mengelakkan kerugian yang terlalu besar.

  6. Jika harga melebihi peratusan laluan yang ditetapkan, semua kedudukan akan ditutup untuk mengelakkan kerugian lebih lanjut.

Kelebihan

  1. Menggunakan EMA sebagai penanda aras, kita dapat menangkap titik peralihan trend dengan lebih baik.

  2. Peratusan saluran menetapkan julat urus niaga yang munasabah dan mengelakkan terlalu kerap.

  3. Talian Brin menyediakan sokongan rintangan, membantu menentukan masa masuk ke dalam permainan.

  4. Menggunakan ATR trailing stopdynamically untuk menetapkan hentian kerugian dan mengawal risiko perdagangan tunggal secara berkesan.

  5. Harga melebihi saluran dan semua saham akan dihapuskan, dengan itu anda dapat mengawal kerugian dengan cepat.

  6. Tetapan parameter yang boleh disesuaikan adalah fleksibel dan boleh disesuaikan dengan pasaran yang berbeza.

Risiko

  1. Jika peratusan saluran terlalu luas, ia mungkin terlepas trend atau mencegah kerugian yang tidak tepat pada masanya.

  2. Jika peratusan saluran terlalu sempit, ia boleh menyebabkan transaksi terlalu kerap dan meningkatkan kos transaksi.

  3. Penetapan parameter Brin yang tidak betul juga boleh menyebabkan peluang perdagangan yang hilang.

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

  5. Parameter perlu dioptimumkan dengan sewajarnya untuk mencari ruang dagangan terbaik.

Arah pengoptimuman

  1. Uji parameter kitaran EMA yang berbeza untuk mencari kitaran garis purata yang paling sesuai.

  2. Mengoptimumkan peratusan parameter saluran untuk mencari ruang laluan yang optimum.

  3. Menyesuaikan parameter kitaran Brin untuk mengoptimumkan kesan menangkap pergerakan.

  4. Menyesuaikan kitaran dan kelipatan ATR untuk mengoptimumkan lagi strategi hentikan kerugian.

  5. Uji hanya dengan melakukan lebih banyak di atas atau melakukan lebih sedikit di bawah untuk melihat sama ada ia akan meningkatkan kadar kejayaan.

  6. Menggabungkan indikator trend untuk menilai keperluan untuk melonggarkan kedudukan awal.

ringkaskan

Strategi ini menggunakan kelebihan pelbagai indikator seperti garis rata-rata, saluran, dan kadar turun naik untuk mewujudkan strategi perdagangan jarak yang lebih stabil. Kuncinya adalah untuk mencari parameter yang paling sesuai untuk pasaran tertentu, untuk mencapai keseimbangan risiko dan keuntungan.

Kod 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)  )