Strategi Penembusan Saluran Donchian adalah tindakan harga dan trend yang mengikuti strategi perdagangan penembusan. Ia menggunakan jalur atas dan bawah Saluran Donchian untuk mengenal pasti titik penembusan yang berpotensi dan mengambil kedudukan panjang atau pendek apabila harga keluar dari saluran.
Logik teras strategi ini ialah:
Gunakan fungsi Ta.highest dan Ta.lowest untuk mengira tertinggi tertinggi dan terendah rendah dalam tempoh tertentu (contohnya 60 bar) untuk membina jalur atas dan bawah Saluran Donchian.
Apabila harga memecahkan di atas band atas, ia menunjukkan bahawa trend menaik mungkin bermula, jadi pergi panjang di bar berikutnya yang terbuka selepas pecah band atas.
Apabila harga jatuh semula di bawah band atas atau naik semula di atas band bawah, ia menunjukkan pembalikan trend, jadi rata kedudukan panjang atau pendek yang sedia ada.
Untuk mengawal risiko, tetapkan stop loss pada harga kemasukan tolak/tambah satu tik minimum selepas memulakan kedudukan panjang/pendek.
Strategi penembusan saluran jenis ini adalah mudah dan mudah, mengambil kira kedua-dua tindakan harga dan trend mengikuti, mudah dilaksanakan dan stabil.
Strategi ini mempunyai beberapa kelebihan:
Logiknya jelas, mudah dan mudah difahami, dengan pelaksanaan yang tinggi.
Menggunakan Saluran Donchian untuk menentukan arah trend dapat menapis bunyi bising dengan berkesan dan mengenal pasti isyarat pecah yang boleh dipercayai.
Tetapan stop loss yang munasabah selepas masuk boleh mengawal kerugian perdagangan tunggal.
Tidak kira keadaan pasaran, strategi boleh berdagang bersama-sama dengan trend apabila pecah berlaku dan menangkap pergerakan besar yang berpotensi.
Parameter yang sangat sedikit, tidak terdedah kepada pemasangan berlebihan, dengan ruang penyesuaian yang besar dan plastisiti yang tinggi.
Terdapat juga beberapa risiko dengan strategi ini:
Sebagai trend mengikuti strategi, ia tidak boleh menangkap pergerakan pembalikan.
Stop loss yang terlalu dekat boleh dihentikan oleh turun naik harga jangka pendek.
Tetapan panjang saluran yang tidak betul meningkatkan kebarangkalian pecah palsu.
Beberapa langkah balas:
Sertakan penunjuk lain untuk mengenal pasti kemungkinan pembalikan, elakkan mengikuti trend secara membabi buta.
Gunakan berhenti yang munasabah untuk mengunci keuntungan dan bukannya berpegang pada kerugian berhenti awal.
Uji nilai parameter yang berbeza untuk mencari kombinasi yang optimum.
Terdapat ruang untuk pengoptimuman lanjut:
Cuba strategi keluar saluran Donchian berganda, satu untuk masuk dan satu untuk berhenti kerugian / mengambil keuntungan.
Hanya mengambil perdagangan selepas pecah melebihi jumlah tertentu kutu untuk menapis beberapa pecah palsu.
Tambah penapis jumlah atau turun naik untuk mengelakkan perdagangan buruk apabila harga berubah dengan ganas.
Cuba strategi penahan yang berbeza seperti trend berikut atau pembalikan purata dalam kombinasi untuk hasil yang lebih baik.
Tambah modul pengurusan risiko untuk mengehadkan kerugian harian maksimum, pengeluaran maksimum dan sebagainya.
Ringkasnya, Strategi Penembusan Saluran Donchian adalah strategi yang sangat praktikal untuk mengikuti trend jangka pendek. Ia mengenal pasti perubahan trend yang berpotensi melalui tindakan harga, dan menggunakan penembusan saluran untuk memasuki perdagangan. Logiknya mudah dan mudah dilaksanakan, dan dapat mencapai hasil yang baik di pelbagai pasaran. Dengan pengoptimuman lanjut seperti penyesuaian parameter, mekanisme hentian kerugian, pengenalan pembalikan, dan lain-lain, peningkatan prestasi yang ketara dapat diharapkan. Ia berfungsi sebagai strategi titik permulaan yang hebat untuk perdagangan algo.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Step 1. Define strategy settings strategy(title="Price action and breakout Channel Forexrn", overlay=true, pyramiding=0, initial_capital=100000, commission_type=strategy.commission.cash_per_order, commission_value=4, slippage=2) dochLen = input.int(60, title="Price action and breackout Channel Forexrn") // Position sizing inputs usePosSize = input.bool(true, title="Use Position Sizing?") atrLen = input.int(10, title="ATR Length") atrRiskOffset = input.float(4, title="ATR Risk Offset Multiple", step=0.25) maxRisk = input.float(2, title="Max Position Risk %", step=.25, minval=0.25, maxval=15) maxExposure = input.float(10, title="Max Position Exposure %", step=1, minval=1, maxval=100) marginPerc = input.int(10, title="Margin %", minval=1, maxval=100) // Step 2. Calculate strategy values upperband = ta.highest(high, dochLen)[1] lowerband = ta.lowest(low, dochLen)[1] // Calculate position size riskEquity = (maxRisk * 0.01) * strategy.equity riskTrade = (ta.atr(atrLen) * atrRiskOffset) * syminfo.pointvalue maxPos = ((maxExposure * 0.01) * strategy.equity) / ((marginPerc * 0.01) * (close * syminfo.pointvalue)) posSize = usePosSize ? math.min(math.floor(riskEquity / riskTrade), maxPos) : 1 // Step 3. Output strategy data plot(upperband, color=color.green, linewidth=2, title="DoCh Upperband") plot(lowerband, color=color.red, linewidth=2, title="DoCh Lowerband") // Step 4. Determine trading conditions tradeWindow = true tradeAllowed = tradeWindow and bar_index > dochLen // Step 5. Submit entry orders if tradeAllowed if strategy.position_size < 1 strategy.entry("EL", strategy.long, qty=posSize, stop=upperband + syminfo.mintick) if strategy.position_size > -1 strategy.entry("ES", strategy.short, qty=posSize, stop=lowerband - syminfo.mintick) // Step 6. Submit exit orders if not tradeWindow strategy.close_all()