Strategi ini didasarkan pada channel breakout dan menggunakan crossover rata-rata bergerak sebagai sinyal keluar.
Menghitung tertinggi tinggi dan terendah rendah selama periode tertentu untuk membangun saluran atas dan bawah.
Pergi panjang ketika harga pecah di atas saluran atas; pergi pendek ketika harga pecah di bawah saluran bawah.
Menghitung garis SMA cepat dan lambat.
Jika panjang, tutup panjang ketika SMA cepat melintasi SMA lambat; Jika pendek, tutup pendek ketika SMA cepat melintasi SMA lambat.
Menggabungkan sistem saluran dan rata-rata bergerak dapat meningkatkan profitabilitas.
Saluran menilai rotasi dan SMA menilai kelelahan tren.
Filter SMA menghindari whipsaws dan mengurangi perdagangan yang tidak perlu.
Jangkauan saluran yang dapat disesuaikan sesuai dengan periode dan volatilitas yang berbeda.
Jangkauan saluran yang tidak tepat dapat melewatkan breakout atau menghasilkan breakout palsu.
Parameter SMA yang tidak tepat bisa keluar lebih awal atau lebih lambat.
Butuh ukuran posisi yang wajar untuk membatasi kerugian tunggal.
Perhatikan untuk breakout yang valid, hindari mengejar tinggi / menjual rendah.
Parameter uji untuk mengoptimalkan rentang saluran dan periode SMA.
Tambahkan filter tren untuk meningkatkan tingkat keberhasilan.
Tambahkan ukuran posisi seperti pecahan tetap dan Martingale.
Tambahkan stop loss untuk mengendalikan single loss.
Strategi ini memanfaatkan saluran dan SMA untuk mencapai keuntungan yang stabil dalam tren yang kuat. Tetapi kerugian whipsaw harus dihindari dan ukuran posisi sangat penting. Peningkatan lebih lanjut pada penyesuaian parameter, penyaringan sinyal dan manajemen risiko akan meningkatkan ketahanan.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-13 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © anshuanshu333 //@version=4 // strategy("ChBrkOutStrategySMA", overlay=true, initial_capital = 200000) length = input(title="Length", type=input.integer, minval=1, maxval=1000, defval=7) fastSMA = sma(close,9) slowSMA = sma(close,21) upBound = highest(high, length) downBound = lowest(low, length) boundLongEntry = ((close >= upBound) or (high >= upBound)) and fastSMA>slowSMA and (close > open) boundShortEntry =((close <= downBound) or (low <= downBound)) and fastSMA<slowSMA and (close <open) u=plot(upBound, title = "Upper Bound",color=color.blue, linewidth=1) l=plot(downBound, title = "Lower Bound",color=color.red, linewidth=1) plot(fastSMA,title = "Fast SMA", color = color.red, linewidth =2) plot(slowSMA,title = "Slow SMA" ,color = color.green, linewidth =1) fill(u,l, transp=95) plot(avg(upBound,downBound), title = "Avg", color=color.gray,linewidth =1) if (boundLongEntry ) strategy.entry("LE", long = true) if (boundShortEntry) strategy.entry("SE", long = false) SmaLongExit = crossunder(fastSMA,slowSMA) SmaShortExit = crossover(fastSMA,slowSMA) //Close TRades if (strategy.position_size > 0) strategy.close(id="LE",when= SmaLongExit) if (strategy.position_size < 0) strategy.close(id="SE",when= SmaShortExit)