Strategi ini berdasarkan penembusan saluran dan menggunakan persilangan purata bergerak sebagai isyarat keluar.
Mengira tertinggi tinggi dan terendah rendah dalam tempoh tertentu untuk membina saluran atas dan bawah.
Pergi panjang apabila harga memecahkan di atas saluran atas; pergi pendek apabila harga memecahkan di bawah saluran bawah.
Mengira garis SMA pantas dan perlahan.
Jika panjang, tutup panjang apabila SMA pantas melintasi di bawah SMA perlahan; Jika pendek, tutup pendek apabila SMA pantas melintasi di atas SMA perlahan.
Menggabungkan saluran dan sistem purata bergerak boleh meningkatkan keuntungan.
Saluran menilai putaran dan SMA menilai keletihan trend.
Penapis SMA mengelakkan whipsaws dan mengurangkan perdagangan yang tidak perlu.
Julat saluran yang boleh diselaraskan sesuai dengan tempoh dan turun naik yang berbeza.
Julat saluran yang tidak betul boleh terlepas atau menghasilkan pembocoran palsu.
Parameter SMA yang tidak betul boleh keluar lebih awal atau lewat.
Perlu saiz kedudukan yang munasabah untuk mengehadkan kerugian tunggal.
Perhatikan penembusan yang sah, elakkan mengejar tinggi / menjual rendah.
Parameter ujian untuk mengoptimumkan julat saluran dan tempoh SMA.
Tambah penapis trend untuk meningkatkan kadar kejayaan.
Tambah saiz kedudukan seperti pecahan tetap dan Martingale.
Tambah stop loss untuk mengawal kerugian tunggal.
Strategi ini memanfaatkan saluran dan SMA untuk mencapai keuntungan yang stabil dalam trend yang kuat. Tetapi kerugian whipsaw mesti dielakkan dan saiz kedudukan adalah penting. Penambahbaikan lanjut pada penyesuaian parameter, penapisan isyarat dan pengurusan 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)